앞에 내용을 보고 왔으면 커널 코드를 수정해서 실습 코드를 빌드할 수 있는 준비를 끝낸 것이다. 리눅스 커널 코드의 디렉터리 구조를 볼 것이다.
arch
arch
하부 디렉터리에는 아키텍처별로 동작하는 커널 코드가 있다
include
include
에는 커널 코드 빌드에 필요한 헤더 파일이 있다.
kernel
커널의 핵심 코드가 있는 디렉터리이다.
위 디렉터리에는 아키텍처와 무관한 커널 콩통 코드가 있다. 아키텍처별로 동작하는 커널 코드는 arch/*/kernel/
에 있다. 라즈비안의 경우 ARMv7 아키텍처 관련 코드를 arch/arm/kernel/
에서 확인할 수 있다.
mm
Memory Management
의 약자로 가상 메모리 및 페이징 관련 코드가 있다.
아키텍처별로 동작하는 메모리 관리 코드는 arch/arm/mm
에서 확인할 수 있다.
drivers
모든 시스템의 디바이스 드라이버 코드가 있다. 하부 디렉터리에 드라이버 종류별 소스가 들어 있다.
fs
모든 파일 시스템 코드가 담긴 폴더이다. fs
폴더에 있는 파일에는 파일 시스템 공통 함수가 들어 있고 파일 시스템별로 하나씩 세분화된 폴더를 볼 수 있다
lib
lib
디렉터리에는 커널에서 제공하는 라이브러리 코드가 있다.
아키텍처에 종속적인 라이브러리 코드는 arch/*/lib
에 있다.