리눅스 커널 구조 확인
richong@ubuntu:/usr/src/linux-3.16.43/arch/x86/kernel$ pwd
/usr/src/linux-3.16.43/arch/x86/kernel
arch Directory
리눅스 커널 기능 중 하드웨어 종속적인 부분들이 구현되어 있고 architecture를 의미한다. 각 CPU에 해당하는 디렉토리에 기능들이 구현되어 있다.
richong@ubuntu:/usr/src/linux-3.16.43/arch$ ls
alpha arm64 c6x hexagon Kconfig metag mn10300 powerpc sh um xtensa
arc avr32 cris i386 m32r microblaze openrisc s390 sparc unicore32
arm blackfin frv ia64 m68k mips parisc score tile x86
mm Directory
메모리 관리자가 구현되어 있는 디렉토리임.
물리 메모리, 가상 메모리, 동적 메모리 관리 기능이 구현되어 있음.
richong@ubuntu:/usr/src/linux-3.16.43/mm$ pwd
/usr/src/linux-3.16.43/mm
driver Directory
리눅스에서 지원하는 디바이스 드라이버가 구현되어 있는 디렉토리임.
간단하게 디바이스 드라이버 종류를 살펴보면
파일 시스템을 통해 접근되는 블록 디바이스 드라이버
사용자 수준 응용 프로그램이 장치파일을 통해 직접 접근하는 문자 디바이스 드라이버
tcp/ip를 통해 접근되는 네트워크 디바이스 드라이버
include Directory
리눅스 커널이 사용하는 헤드 파일들이 구현된 디렉토리 임.
하드웨어에 독립적, 즉 하드웨어와 별 상관없는 부분들인 include/linux에 정의되어 있음.
반면에, 하드웨어에 종속적, 즉 하드웨어에 따라서 변경되어야 할 부분은 include/ams-$(ARCH)에 정의되어 있음.
richong@ubuntu:/usr/src/linux-3.16.43/include/linux$ pwd
/usr/src/linux-3.16.43/include/linux
richong@ubuntu:/usr/src/linux-3.16.43/include/asm-generic$ pwd
/usr/src/linux-3.16.43/include/asm-generic
asmlinkage __visible void __init start_kernel(void)
{
char * command_line, *after_dashes;
extern const struct kernel_param __start___param[], __stop___param[];
...
richong@ubuntu:/usr/src/linux-3.16.43/init$ pwd
/usr/src/linux-3.16.43/init
[출처] : 리눅스 커널 내부 구조
'학부_대학원 > 대학원_학과공부정리' 카테고리의 다른 글
VFS - Virtual File System[1] (0) | 2017.05.06 |
---|---|
[*nix] 자가 삭제(unlink), 프로세스 이름 변경(prctl) (0) | 2017.04.15 |
Linux Kernel Build (0) | 2017.03.23 |
Memo (0) | 2017.03.20 |
PGP[Pretty-Good Privacy] (0) | 2017.03.09 |