누구를 위한 책인가?
이 책은 임베디드 시스템 프로그래머가 되고자 하는 컴퓨터 관련학과 3학년 이상의 학생들을 대상으로 한다. 리눅스 커널 소스에 대한 장황한 설명보다는 핵심적인 소스를 중심으로 커널 구조와 기본 개념을 설명하고, 실제 리눅스 커널을 수정해보는 실습을 통해 커널 만지기에 대한 두려움을 없앨 수 있도록 했다.
무엇을 다루는가?
이 책은 총 8장으로 구성되어 있으며, 다음과 같은 내용을 설명한다.
• 1장 : 리눅스의 특징과 장점, 리눅스 디렉토리 구조를 설명한다.
• 2장 : 커널 자체와 소스 구성에 대한 이해 및 커널 컴파일 과정에 대해 다룬다.
• 3장 : 리눅스 시스템의 부팅 과정과 inittab 파일에 대해 설명한다.
• 4장 : 시스템 콜을 작성하여 커널에 추가하는 방법과 모듈 프로그래밍에 대해 다룬다. 또한 인터럽트 처리 과정을 소개한다.
• 5장 : 프로세스와 프로세스 스크립터의 개념을 설명한다. 프로세스의 생성과 소멸에 이르는 상태 전이와 스케줄링 정책, 시그널 처리 방식을 소개한다.
• 6장 : 가상 메모리와 물리 메모리에 대해 소개하고, 주소 변환 방법과 스와핑에 대해 다룬다.
• 7장 : 파일시스템의 개념과 inode의 개념을 설명한다. 가상 파일시스템, ext2 파일시스템을 설명하고, 파일시스템의 동작 원리에 대해 다룬다.
• 8장 : 디바이스 드라이버의 개념과 종류를 설명하고, 커널 모듈 및 디바이스 드라이버, 문자 디바이스 드라이버의 제작 방법을 다룬다.