다양한 커널 프로그램 실습을 통해 커널의 구조를 이해한다!
이 책은 커널을 과감히 뜯어고쳐가면서 다양한 실습을 하는 데 집중하고 있다. 눈으로 보고, 머릿 속으로 생각하는 것이 아니라 손가락을 바삐 움직이면서 커널을 이해하는 것을 목표로 하고 있다. 이 책의 실습들을 통해 커널을 하나의 장난감처럼 자유롭게 다룰 수 있기를 기대한다.
【주요내용】
• VMWare 환경 구성, 리눅스 설치, 개발 환경 설정, 부트 로더
• 커널 빌드, VI 사용법, 커널 분석 도구, VMWare Tools 설정, 커널 변경 사항
• 사용자 공간과 커널 공간, 인터럽트 처리과정 이해, 시스템 호출 처리과정, 시스템 호출 추가, 시스템 호출 관련 커널 분석
• 모듈 프로그래밍 절차 및 실습, 모듈의 상호 참조, 모듈 매개변수 처리, 시스템 호출 래핑, 모듈을 이용한 커널 해킹
• 디바이스 이해, 문자 디바이스 작성, 커널의 메모리 할당 API, IOCTL 프로그래밍, cdev를 이용한 문자 디바이스 프로그래밍, 문자 디바이스 관련 커널 분석
• proc 파일시스템 소개, proc 작성, 타이머와 jiffies, 정교한 시간 타이머 작성, procfs 관련 커널 분석
• 하드디스크의 구조, 블록 디바이스 구조, I/O 스케줄러 및 커널 분석, 가상 램 디스크 작성
• CPU의 메모리 모델, 리눅스 커널의 메모리 모델, 메모리 관리 및 커널 분석, 버디 시스템, 슬랩 할당자, 메모리 매핑 및 실습, 커널의 연결 리스트 자료구조, 프로세스 메모리 뷰어 실습, LRU 정책
• 프로세스 관련 커널 분석, 프로세스 생성 과정 분석 및 실습, 프로세스 스케줄링 분석, SJF 스케줄러 구현 실습, O(1) 스케줄러 구현 실습
• 가상 파일 시스템(VFS) 분석, SFS 파일 시스템 구현 실습
• OSI 모델과 TCP/IP 스택, 네트워크 프로그래밍 실습, 리눅스의 네트워크 모델 분석, MSN 메신저 차단기 구현 실습, 넷필터 분석, 넷필터로 MSN 메신저 차단, 패킷 뷰어 실습, 프로토콜 후킹
• WDM 개발환경 준비, WDM의 구조, echo 디바이스 작성 실습