chapter 1 들어가며
chapter 2 개발 환경 설정
2.1 기반 OS 선택
2.2 리눅스 배포판 선택
2.3 VirtualBox 설치
2.4 배포판 설치
2.5 리눅스 커널 개발 환경 만들기
2.6 이메일 계정 만들기
chapter 3 리눅스 커널 빌드하기
3.1 리눅스 커널 타깃 설정
3.2 리눅스 커널 옵션 설정
3.3 빌드하기
3.4 다른 아키텍처로 빌드하기
chapter 4 리눅스 커널 패치의 라이프 사이클
4.1 패치의 라이프 사이클
4.2 개발자별 커밋 통계 확인
chapter 5 리눅스 커널의 코딩 스타일 고치기
5.1 개발용 리눅스 커널 브랜치 준비
5.2 리눅스 커널의 코딩 스타일
5.3 코딩 스타일 고치기
5.4 Gmail로 답장쓰기
chapter 6 좋은 패치 만들기
6.1 작업 단위의 로컬 브랜치 만들기
6.2 CC 추가와 불필요한 헤더 지우기
6.3 알맞은 브랜치에서 개발하기
6.4 패치 작게 만들기
6.5 하나의 패치를 두 개로 분리하기
6.6 둘 이상의 패치를 하나로 합치기
6.7 패치에 코멘트 남기기
6.8 패치 Versioning
6.9 패치 Rebase
6.10 커버 패치 만들기
6.11 패치 시리즈 중 일부 패치만 수정하기
6.12 다른 개발자의 패치 다운로드와 적용
chapter 7 리눅스 커널 메일링 리스트 구독하기
7.1 메일링 리스트 선택하기
7.2 메일링 리스트 구독하기
7.3 라벨 만들기
7.4 필터 설정하기
chapter 8 정적 코드 분석 도구 사용하기
8.1 Sparse
8.2 Smatch
8.3 Coccinelle
chapter 9 정적 코드 분석 도구로 패치 만들기
9.1 Sparse로 로그 분석하기
9.2 Smatch로 로그 분석하기
9.3 Coccinelle로 로그 분석하기
chapter 10 QEMU로 리눅스 커널 디버깅하기
10.1 QEMU 설치
10.2 QEMU로 리눅스 커널 부팅하기
10.3 GDB를 연결해 리눅스 커널 디버깅하기
10.4 루트 파일 시스템 만들기
10.5 루트 파일 시스템에 실행 바이너리 추가하기
10.6 Linux Test Project
chapter 11 참고용 사이트
11.1 LWN.net
11.2 kernelnewbies.org
11.3 Git 연습과 이해
11.4 기타
chapter 12 맺음말