글
■ 리눅스 커널 소스는 압축된 것이 약 20MB 이상이다. 그러므로 수 많은 디렉토리와 수 많은 파일을 포함하고 있다. 여기서는 리눅스 커널 소스의 압축을 풀면 생기는 디렉토리에 대해 알아보자.(아래의 내용은 버전 2.4.16 ~ 2.4.18의 것을 참조한 것이다.)
- 모든 코드는 /usr/src/linux에서 시작한다고 가정한다.
(1) 커널 소스 디렉토리 구조
○ Documents
: 커널에 관계된 문서들이 들어 있다. 커널을 분석하거나 할 때 필요한 정보는 여기를 먼저 보고나서 다른 곳을 찾는 것이 빠른 정보를 얻는 길이다.
- ○ kernel
- : 커널의 핵심 코드,스스템콜,스케쥴러,시그널 핸들링
- ○ ipc
- : 전통적 프로세스간의 통신,세마포어,공유메모리,메세지큐
- ○ lib
- : 커널 라이브러리 함수(printk와 같은 것 들)
- ○ mm
- : 버추얼 메모리 관리,페이징, 커널 메모리 관리
- ○ scripts
- : 코드 사이의 의존성을 만들어주는 등의 스크립트나 실행 파일이 모여있다.
- ○ arch
- : 아키텍쳐에 관계된 코드가 들어있다.
- - alpha
- - arm
- - m68k
- - mips
- - ppc
- - sparc
- - i386
- boot - 부트스프랩코드,메모리/디바이스 설정
- kernel - 커널 시작점,컨텍스트 스위칭
- lib
- math - emu
- mm - 각 아키텍쳐에 관계된 메모리 코드
- ○ fs
: 버추얼 파일 시스템 인터페이스,여러 파일시스템 지원 - - coda
- - ext2
- - hpfs
- - msdos
- - nfs
- - ntfs
- - ufs
○ init
: 커널이 실행되기 위한 모든 코드,프로세스 0,프로세스 생성- ○ include
: 커널에 관계된 헤더 파일,asm-*은 아키텍쳐 관련,linux는 리눅스 커널 관련 - - asm-alpha
- - ...
- - asm-i386
- - linux
- - net
- - scsi
- - video
- - ...
- ○ net
- : 많은 종류의 네트웍 프로토콜 지원,소켓 지원
- - 802
- - appletalk
- - decnet
- - ethernet
- - ipv6
- - unix
- - sunrpc
- - x25
- ...
- ○ driver
- : 하드웨어에 대한 드라이버
- - block : 하드디스크 같은 블럭 디바이스
- - cdrom
- - char : 시리얼 포트,모뎀,tty 같은 문자 디바이스
- - net : 네트웍 카드
- - pci : PCI 버스 컨드롤
- - pnp
- - sbus
- - scsi : SCSI 카드
- - sound : 사운드 카드
- - viceo
- - ...
※ 참고자료.
2012/06/19 - [B ook summary/Kernel Internal] - Chapter 2 :: 리눅스 커널 구조
'L inux > Kernel' 카테고리의 다른 글
커널 이미지 파일의 구조 (0) | 2011.10.05 |
---|---|
Grub - 부팅환경설정 파일 (0) | 2011.10.05 |
Kernel 부팅 메시지 확인하기 - dmesg (0) | 2011.09.28 |
파일시스템 - proc 파일시스템 (0) | 2011.09.28 |
파일시스템 - NFS 파일시스템 (0) | 2011.09.28 |
RECENT COMMENT