리눅스 커널 소스코드 구성도
<최신 커널 소스 디렉터리의 구조가 일부 변경됨>
arch/
-CPU종속적인 부분, 각 처리기 마다 하위 디렉터리로 구성됨 (arch/i386, arch/alpha, arch/arm...)
-arch/arm/kernel/
하드웨어 종속적인 커널 관리 루틴
트랩. 인터럽트 처리 루틴
문맥 교환 루틴
장치 구성, 초기화 루틴
-arch/arm/mm
하드웨어 종속적인 메모리 관리 루틴
init/
-하드웨어 독립적인 커널 초기화 루틴 (start_kernel)
-태스크 0 (init_task or task[0])생성
-태스크 1, 2, 3 등 데몬 프로세스 생성
kernel/
-리눅스 커널의 가장 중심적인 디렉터리 (central section of the kernel)
-하드웨어 독립적인 커널관리 루틴(하드웨어 종속적인 커널관리 루틴은 arch/arm/kernel 디렉터리에 존재)
-fork. exit등 태스크 관련 시스템 호출 처리 루틴.
-스케줄러(acheduler)루틴
-시그널 처리(signal handling)루틴
-시간 관리(time management)루틴
mm/
-하드웨어 독립적인 메모리 관리 루틴(하드웨어 종속적인 메모리 관리 루틴은 arch/arm/mm 디렉터리에 존재)
-가상 메모리 관리 루틴
-페이징(paging), 스와핑(swapping)
fs/
-가상 파일 시스템 (virtual file system)관리 루틴
-open, read등 태스크 관련 시스템 호출 처리 루틴
-특정 파일 시스템 관리 루틴은 하위 디렉터리에 존재(ext2, proc, nfs, msdos, coda,..)
drivers/
-장치 드라이버 루틴
-drivers/block/ : 블록 장치 드라이버. 예를 들어 IDE디스크(hd)
-drivers/char/ : 문자 장치 드라이버. 예를 들어 serial ports, tty, modem,..)
-drivers/net : 네트웍 장치 드라이버. 예를 들어 3C509,...
-drivers/pci : PCI bus제어
-drivers/cdrom : CD-ROM드라이버
-drivers/scsi : SCSI 인터페이스 관리
sound/
ipc/
-프로세스간 통신 루틴
-세마포어(semaphores), 공유 메모리(shared memory), 메세지 큐(message queues)
net/
-TCP/IP, ARP등 네트웍 통신 프로토콜(네트웍 장치 드라이버는 drivers/net에 존재)
-소켓 인터페이스
include/
-커널 헤더
-하드웨어 독립적인 헤더 : include/linux
-하드웨어 종속적인 헤더 : include/asm-*** (예를 들어 Intel CPU 종속적인 헤더를 include/asm-i386/디렉터리에 존재)
lib/
-커널 라이브러리 루틴
documentation/
-커널 문서 디렉터리
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
25 | libblkid - USB Storage의 정보 가져오기 | makersweb | 2018.10.18 | 1333 |
24 | tslib 크로스 컴파일과 터치스크린 보정 | makersweb | 2018.08.02 | 2967 |
23 | Ubuntu Linux에서 dbus-c++바인딩 D-Bus 테스트 | makersweb | 2018.03.07 | 7988 |
22 | NFS를 통해 파일시스템 공유 | makersweb | 2018.03.05 | 1812 |
21 | Wayland에 대한 간단한 소개 | makersweb | 2017.12.29 | 4268 |
20 | Ubuntu16.04에서 weston구동 | makersweb | 2017.12.28 | 1732 |
19 | UVC 장치를 사용할때 v4l2: select timeout 에러 발생 | makersweb | 2017.12.27 | 3094 |
18 | [IPC]D-Bus 소개 | makersweb | 2015.02.28 | 30514 |
17 | 리눅스 데스크탑 환경 종류 | pjk | 2015.02.11 | 5283 |
16 | 디바이스 드라이버에 대해서 | makersweb | 2014.04.19 | 4820 |
» | 리눅스 커널 소스코드 구성도 | makersweb | 2014.03.04 | 6165 |
14 | read() 함수, write() 함수 | makersweb | 2014.03.04 | 12061 |
13 | 리눅스 디렉터리 구조 | makersweb | 2014.02.28 | 3874 |
12 | 1. make | pjk | 2014.02.05 | 2760 |
11 | 2. 간단한 Makefile | pjk | 2014.02.05 | 3167 |
10 | 3. 매크로(Macro) 와 확장자(Suffix) 규칙 | pjk | 2014.02.05 | 3223 |
9 | 4. Makefile를 작성할 때 알면 좋은 것들 | pjk | 2014.02.05 | 3726 |
8 | 5. make 중요 옵션 정리 | pjk | 2014.02.05 | 3108 |
7 | 6. Makefile 작성의 가이드라인 | pjk | 2014.02.05 | 2984 |
6 | mmap() 함수, munmap() 함수 | pjk | 2014.02.05 | 16787 |