주번호(Major Number)
디바이스 파일
    커널 내부의 함수를 호출할 수 있는 정보만을 제공하는 파일
        디바이스 드라이버 타입 정보(문자형/블록형)
        주번호(Major Number)
        부번호(Minor Number)
    디바이스 드라이버 타입 정보와 주번호는 디바이스 드라이버가 등록된 함수를 호출하는 정보로 사용
    제어하려는 디바이스를 구분하기 위한 디바이스 ID

 

부번호(Minor Number)

커널에 포함된 각 디바이스 드라이버에 의해 용도 결정
디바이스 드라이버가 다루는 실제 디바이스의 구분
용도에 따른 디바이스의 구분
블록 디바이스의 파티션 구분
일반적으로 같은 종류의 디바이스가 여럿 있을 때 그 중 하나를 선택하기 위해 사용

 

include/linux/kdev_t.h” 파일에 선언

#define MINORBITS   20
#define MAJOR(dev)  ((unsigned int) ((dev) >> MINORBITS))
#define MINOR(dev)  ((unsigned int) ((dev) & MMINORBIT))
#define MKDEV(ma,mi)    (((ma) << MINORBITS) | (mi))
 


 

Posted by eoseontaek

1. 디바이스 드라이버의 이름과 주번호를 결정해야 한다.

2. 디바이스 드라이버가 제공하는 인터페이스를 위한 함수를 구현해야 한다.
   그리고 이 함수들의 시작 주소는 파일 연산(file_operations)이라는 자료구조에 초기화 되어야 한다.

3. 새로운 디바이스 드라이버를 커널에 등록해야 한다.
    register_XXXdev() 함수를 사용한다.

4. /dev 디렉토리 디바이스 드라이버를 접근할 수 있는 장치파일을 생성해 주어야 한다.

 

'[D-01] Linux' 카테고리의 다른 글

The Network File System  (0) 2009.11.18
주번호, 부번호, 디바이스 타입  (0) 2009.11.17
새로운 디바이스를 리눅스에 추가하는 과정  (0) 2009.11.17
등록된 major number의 확인  (0) 2009.11.17
GNU Make  (0) 2009.11.17
Posted by eoseontaek

1. 디바이스 드라이버 코어 함수를 구현한다.
    이 함수들은 하드웨어 메뉴얼을 기반으로 작성된다.

2. 작성한 코어 함수를 리눅스에 등록시키기 위한 래퍼(wrapper)를 작성한다.
    리눅스의 디바이스 드라이버는 파일오퍼레이션 구조체를 통해 파일로서 접근된다. 따라서 이러한 인터페이스를 위한 함수를 구현해 주어야 한다.

3. 디바이스 드라이버를 커널에 등록한다.
    이것은 register_XXXdev() 같은 커널 내부 함수를 이용해 수행된다.

4. 디바이스 드라이버를 위한 장치 파일을 생성한다.
    이것은 'mknod'라는 리눅스 명령어를 이용해 수행된다.



'[D-01] Linux' 카테고리의 다른 글

주번호, 부번호, 디바이스 타입  (0) 2009.11.17
새로운 디바이스 드라이버를 구현할 때 필요한 작업단계  (0) 2009.11.17
등록된 major number의 확인  (0) 2009.11.17
GNU Make  (0) 2009.11.17
커널 컴파일  (0) 2009.11.17
Posted by eoseontaek

리눅스 커널에서 현재 사용중인 major number의 확인은 다음과 같다.

#vi /linux/include/linux/major.h

또는

#cat /proc/devices


Posted by eoseontaek
2009. 11. 17. 15:07

Link : http://www.viper.pe.kr/docs/make-ko/make-ko_toc.html


재컴파일을 지휘하는 프로그램(A Program for Directing Recompilation)

GNU make Version 3.77.

May 1998

번역시작: March 2000

최종 갱신: May 9th, 2000

Richard M. Stallman 그리고 Roland McGrath
역자: 선정필

'[D-01] Linux' 카테고리의 다른 글

새로운 디바이스를 리눅스에 추가하는 과정  (0) 2009.11.17
등록된 major number의 확인  (0) 2009.11.17
커널 컴파일  (0) 2009.11.17
The Linux Documentation Project  (0) 2009.11.17
[.bashrc] path설정, allias 설정  (0) 2009.11.17
Posted by eoseontaek
2009. 11. 17. 12:15
커널 버전 확인 
#uname -a

커널 소스 다운로드 => http://www.kernel.org에 접속하여 최신 커널을 다운로드 한다.
#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2

다운로드한 커널을 압축 해제한다.
#tar -xvjf linux-2.6.30.tar.bz2

생성된 디렉토리를 링크파일로 링크
#ln -s linux-2.6.30 linux

커널 설정값 초기화
#make menuconfig

커널 이미지 생성
#make bzImage

커널 모듈 생성
#make modules

생성된 object 파일들을 /lib/modules/커널버전 디렉토리로 복사
#make modules_install

모듈들이 정상적으로 설치되었는지 확인
#ls -l /lib/modules/2.6.30/

#ls -l /lib/modules/2.6.30/kernel/

커널관련 파일 복사
#make install


/boot 디렉토리에 정상적으로 복사되었는지 확인
#ls -l /boot

/boot/grub/grub.conf 파일에 새로운 커널에 맞는 부팅 메뉴가 추가되었는지 확인
#vi /boot/grub/grub.conf

재부팅
#reboot

커널버전확인
#uname -r

'[D-01] Linux' 카테고리의 다른 글

등록된 major number의 확인  (0) 2009.11.17
GNU Make  (0) 2009.11.17
The Linux Documentation Project  (0) 2009.11.17
[.bashrc] path설정, allias 설정  (0) 2009.11.17
[.vimrc] Vim / Gvim 설정  (0) 2009.11.17
Posted by eoseontaek

'[D-01] Linux' 카테고리의 다른 글

GNU Make  (0) 2009.11.17
커널 컴파일  (0) 2009.11.17
[.bashrc] path설정, allias 설정  (0) 2009.11.17
[.vimrc] Vim / Gvim 설정  (0) 2009.11.17
리눅스 커널 모듈 프로그래밍 안내서  (0) 2009.11.17
Posted by eoseontaek
Link1 : http://www.appleforum.com/os/43792-%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%EC%9D%98-%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95.html

Link2 : http://tldp.org/LDP/Bash-Beginners-Guide/html/
.bashrc

Windows에서 명령창에서 명령어를 입력하면
입력된 명령어들이 command.com에 의해서 해석되면서 실행된다.

마찬가지로 Linux에서도 shell이 이러한 역할을 한다.
shell은 OS에서 대화형 user interface를 제공한다.
따라서, shell을 '명령어 해석기'라고도 부른다.

OS에서 가장 핵심이 되는 부분을 kernel이라고 하는데,
shell은 kernel을 감사고 있으며, 응용 프로그램과 kernel 사이에서
사용자 인터페이스를 제공하는 중간 역할을 수행한다.

shell의 종류는 한 가지가 아니며
다양한 대학과 연구소에서 여러 가지 종류의 shell이 개발되었다.
대표적으로 알려져 있는 6가지 shell은 다음과 같다.

1. Bourne Shell
2. C Shell
3. Korn Shell
4. BASH(GNU Bourne-Again Shell)
5. TC Shell
6. Z Shell

이중에서 우리가 살펴볼 것은 BASH이다.

일반 유저 아이디로는 /sbin 디렉토리가 path에 설정되어 있지 않기 때문에
ifconfig와 같은 명령어를 실행할 수 없다.
물론 ifconfig를 실행할 때마다 /sbin/ifconfig라는 식으로 해줘도 되지만
불편하기 때문에 ifconfig가 위치하고 있는 /sbin을 path에 설정해 보도록 하자.

BASH에서 환경설정을 담당하는 파일은 .bashrc이다.

.bashrc를 수정하기 위해서
cd ~ 하여 홈 디렉토리로 이동한다.

.bashrc 파일을 수정해야 하지만
ls 하면 이러한 파일을 발견할 수 없다.

사실 .bashrc 라는 파일이 있지만 .으로 시작하는 파일들은
hidden 파일이기 때문에 단순히 ls하면 보이지가 않는다.
ls -al 하면 .bashrc 뿐만 아니라
다른 .로 시작하는 이름의 파일들이 나타나는 것을 알 수 있다.


cd ~ 하여 홈디렉토리로 이동한 다음
 
vi .bashrc 하여 내용을 수정하자.
 

/sbin을 다음과 같이 추가 시키자.

 

PATH=$PATH:/sbin

export PATH

 

수정된 내용을 바로 반영하기 위해서는 다음과 같이 하면 된다.

source .bashrc

'[D-01] Linux' 카테고리의 다른 글

커널 컴파일  (0) 2009.11.17
The Linux Documentation Project  (0) 2009.11.17
[.vimrc] Vim / Gvim 설정  (0) 2009.11.17
리눅스 커널 모듈 프로그래밍 안내서  (0) 2009.11.17
GNU Make 강좌  (0) 2009.11.17
Posted by eoseontaek

/root directory로 이동한다.
#cd /root

.vimrc 파일을 수정한다.
#vi .vimrc


'[D-01] Linux' 카테고리의 다른 글

The Linux Documentation Project  (0) 2009.11.17
[.bashrc] path설정, allias 설정  (0) 2009.11.17
리눅스 커널 모듈 프로그래밍 안내서  (0) 2009.11.17
GNU Make 강좌  (0) 2009.11.17
TFTP 환경구축  (0) 2009.11.13
Posted by eoseontaek

KLDP에 게재되어 있는 리눅스 커널 모듈 프로그래밍 안내서

Link : http://wiki.kldp.org/Translations/Kernel_Module_Programming_Guide

'[D-01] Linux' 카테고리의 다른 글

[.bashrc] path설정, allias 설정  (0) 2009.11.17
[.vimrc] Vim / Gvim 설정  (0) 2009.11.17
GNU Make 강좌  (0) 2009.11.17
TFTP 환경구축  (0) 2009.11.13
zcat 명령  (0) 2009.11.12
Posted by eoseontaek
2009. 11. 17. 00:14

KLDP에 게재되어 있는 Make 강좌


Link : http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html


'[D-01] Linux' 카테고리의 다른 글

[.vimrc] Vim / Gvim 설정  (0) 2009.11.17
리눅스 커널 모듈 프로그래밍 안내서  (0) 2009.11.17
TFTP 환경구축  (0) 2009.11.13
zcat 명령  (0) 2009.11.12
patch 파일 만들기  (0) 2009.11.12
Posted by eoseontaek
2009. 11. 13. 14:39

Link : http://forum.falinux.com/zbxe/?mid=manual_tftp


Linux에 TFTP 환경을 구축하였다.

인터넷을 검색해보니 FALiNUX Forum에 관련 자료가 상세히 기술되어 있었다.

다음은 EZ 보드 메뉴얼에 기술되어 있는 "TFTP 환경구축 내용이다."


'[D-01] Linux' 카테고리의 다른 글

리눅스 커널 모듈 프로그래밍 안내서  (0) 2009.11.17
GNU Make 강좌  (0) 2009.11.17
zcat 명령  (0) 2009.11.12
patch 파일 만들기  (0) 2009.11.12
리눅스 커널버전 확인하기  (0) 2009.11.12
Posted by eoseontaek
2009. 11. 12. 20:14

Link : http://unix.co.kr/bbs/board.php?bo_table=03_4&wr_id=291 

zcat 명령

목적

압축 파일을 표준 출력으로 확장합니다.

구문

zcat-n ] [  -V ] [  File ... ]

설명

zcat 명령을 사용하여 사용자는 파일을 압축 해제하지 않은 상태로 압축된 파일을 펼치고 열람할 수 있습니다. zcat 명령은 확장된 파일의 이름을 바꾸지 않거나 .Z 확장자를 제거합니다. zcat 명령은 확장된 출력을 표준 출력에 기록합니다.

플래그

-n 압축된 파일에서 압축된 파일 헤더를 생략합니다.
-V 현재 버전을 기록하고 옵션을 표준 오류로 컴파일합니다.

매개변수

File ... 확장할 압축 파일을 지정합니다.

리턴값

zcat 명령이 1의 상태로 있는 경우 다음과 같은 이벤트가 발생할 수 있습니다.

  • 입력 파일이 compress 명령에 의해 생성되지 않았습니다.
  • 입력 파일을 읽을 수 없거나 출력 파일을 기록할 수 없습니다.

오류가 발생하지 않으면, 종료 상태는 0입니다.

종료 상태

0 성공적으로 완료했습니다.
>0 오류가 발생했습니다.

예제

압축 해제하지 않은 상태로 foo.Z 파일을 열람하려면 다음을 입력하십시오.

zcat foo.Z

압축되지 않은 foo.Z 파일 내용이 표준 출력에 기록되었습니다. 파일의 이름이 바뀌지 않습니다.


'[D-01] Linux' 카테고리의 다른 글

GNU Make 강좌  (0) 2009.11.17
TFTP 환경구축  (0) 2009.11.13
patch 파일 만들기  (0) 2009.11.12
리눅스 커널버전 확인하기  (0) 2009.11.12
vi 명령어  (0) 2009.11.07
Posted by eoseontaek
2009. 11. 12. 20:12

patch 파일 만들기

원본이 들어있는 디렉토리 /temp/program의 복사본을 하나 만들어서 작업한다.

  1. $ cd /temp
  2. $ cp -a program program_new

/temp/program_new 안의 파일들을 수정한 뒤 patch파일을 만들어두면 /temp/program에 patch를 적용하여 program_new로 바꿀 수 있게된다.

patch 파일은 diff를 이용해서 만든다.

  1. $ cd /temp
  2. $ diff -urN program/ program_new/ > program_new.patch

이렇게 하면 patch 파일이 만들어진다.

patch 파일 적용시키기

program만 가지고 있는 사용자가 program_new를 만들기 위해서는 위와 같이 만들어진 program_new.patch 파일만 있으면 된다. 적용시키는 방법은,

  1. $ cd /temp/program
    $ patch -p1 < program_new.patch

패치완료.


Link : http://secrice.com/writing/2005/02/20/patch+BBE7BFEBC7CFB4_1108892056.php

'[D-01] Linux' 카테고리의 다른 글

TFTP 환경구축  (0) 2009.11.13
zcat 명령  (0) 2009.11.12
리눅스 커널버전 확인하기  (0) 2009.11.12
vi 명령어  (0) 2009.11.07
audacious의 설치  (0) 2009.11.07
Posted by eoseontaek

>>uname -r


'[D-01] Linux' 카테고리의 다른 글

zcat 명령  (0) 2009.11.12
patch 파일 만들기  (0) 2009.11.12
vi 명령어  (0) 2009.11.07
audacious의 설치  (0) 2009.11.07
GTK+, GLIB 업데이트  (0) 2009.11.07
Posted by eoseontaek
2009. 11. 7. 15:52

vi 시작 명령어

화면 정리 명령어

파일 명령어

보관 및 종료 명령어

vi 커서 이동

문자, 행, 삽입 명령어

텍스트 변경 명령어

텍스트 삭제 명령어

복사 및 이동 명령어

행 번호 설정 명령어

행 찾기 명령어

탐색 및 대체 명령어



'[D-01] Linux' 카테고리의 다른 글

patch 파일 만들기  (0) 2009.11.12
리눅스 커널버전 확인하기  (0) 2009.11.12
audacious의 설치  (0) 2009.11.07
GTK+, GLIB 업데이트  (0) 2009.11.07
Linux에서 방화벽 설정  (0) 2009.10.31
Posted by eoseontaek
2009. 11. 7. 01:18

Link : http://audacious-media-player.org/


'[D-01] Linux' 카테고리의 다른 글

리눅스 커널버전 확인하기  (0) 2009.11.12
vi 명령어  (0) 2009.11.07
GTK+, GLIB 업데이트  (0) 2009.11.07
Linux에서 방화벽 설정  (0) 2009.10.31
vi 명령어 요약  (0) 2009.10.30
Posted by eoseontaek

The GTK+ Project 홈페이지
Link : http://www.gtk.org

Download 탭을 클릭하면 Stable release 버전을 다운받을 수 있다.

GNU/Linux and Unix 클릭

2009.11.7일 현재 Stable Release 버전은
    GTK+ 2.18
    GLib 2.22
버전이다.

GTK+2.18 클릭하여     gtk+-2.18.3.tar.gz 을 다운받고
Glib 2.22를 클릭하여  glib-2.22.2.tar.gz 을 다운받는다.

압축을 풀고
#tar -zxvf glib-2.22.2.tar.gz

디렉토리 안의 Readme 파일을 확인하여 Install 과정을 확인한다.
#vi README

    README 파일 안에는 다음과 같이 정리되어 있다.
   
    Installation
    =================================
    See the file "INSTALL"

INSTALL 파일을 확인한다.
INSTALL 파일 안에는 install 과정에 대하여 다음과 같이 정리되어 있다.
   
    %gzip -cd glib-2.22.2.tar.gz | tar zvf -
    %cd glib-2.22.2
    %./configure
    %make

    [Become root if necessary]
    %rm -rf /install-prefix/include/glib.h /install-prefix/include/gmodule.h
    %make install

glib-2.22.2 install을 완료하였다.


다음은  GTK+을 install 하도록 한다.
STK+도 glib와 동일한 과정으로 install 하도록 한다.

'[D-01] Linux' 카테고리의 다른 글

vi 명령어  (0) 2009.11.07
audacious의 설치  (0) 2009.11.07
Linux에서 방화벽 설정  (0) 2009.10.31
vi 명령어 요약  (0) 2009.10.30
리눅스 콘솔 해상도 조절  (0) 2009.10.29
Posted by eoseontaek


#lokkit

또는

#setup
-> 방화벽 설정
-> 보안수준 (   ) 활성화        (*)비활성화
SELinux : 강제
               허용
               비활성화

 

'[D-01] Linux' 카테고리의 다른 글

audacious의 설치  (0) 2009.11.07
GTK+, GLIB 업데이트  (0) 2009.11.07
vi 명령어 요약  (0) 2009.10.30
리눅스 콘솔 해상도 조절  (0) 2009.10.29
List of Linux/i386 system calls  (0) 2009.10.28
Posted by eoseontaek
2009. 10. 30. 01:36

'[D-01] Linux' 카테고리의 다른 글

audacious의 설치  (0) 2009.11.07
GTK+, GLIB 업데이트  (0) 2009.11.07
Linux에서 방화벽 설정  (0) 2009.10.31
리눅스 콘솔 해상도 조절  (0) 2009.10.29
List of Linux/i386 system calls  (0) 2009.10.28
Posted by eoseontaek
이전버튼 1 2 3 4 5 이전버튼