- x86 운영 체제를 직접 개발하는 방법에 대한 실용적인 가이드
- 기술적 세부 사항을 제공하면서도 코드 예제나 샘플을 통해 너무 많은 정보를 공개하지 않도록 작성
- 운영 체제의 이론이나 특정 운영 체제의 작동 방식에 대해 설명하지 않음
- 초반 챕터는 상세하고 구체적으로 설명해 코드 작성에 빠르게 익숙해질 수 있도록 함
- 후반 챕터는 개념과 요구사항을 개략적으로 설명하고, 구현과 설계는 독자가 수행하도록 유도함
- 운영 체제 이론에 대한 학습이 필요하다면 Andrew Tanenbaum의 Modern Operating Systems 추천
주요 챕터 내용
- 초반 챕터
- 2~3장: 개발 환경 설정 및 가상 머신에서 OS 커널 부팅 → C 언어로 코드 작성 시작
- 4장: 화면 출력 및 시리얼 포트 출력
- 5장: 세그멘테이션
- 6장: 인터럽트 및 입력 처리
- 기능적인 커널 개발 이후 과정
- 7장: 사용자 모드 애플리케이션 지원 준비
- 8~9장: 페이징을 통한 가상 메모리 설정
- 10장: 메모리 할당
- 11장: 사용자 애플리케이션 실행
- 고급 주제
- 12장: 파일 시스템
- 13장: 시스템 콜
- 14장: 멀티태스킹
책의 배경 및 개발 과정
- 이 책과 OS 커널은 스웨덴 Royal Institute of Technology의 고급 개별 과정을 통해 개발됨
- 저자들은 이전에 OS 이론 과목을 수강했지만, 실제 커널 개발 경험이 부족했음
- 이론을 실제로 구현하고 더 깊이 이해하기 위해 새로운 과정을 개설하고 이 책을 집필함
- x86 아키텍처는 오랜 기간 가장 널리 사용된 하드웨어 아키텍처이며, 방대한 참고 자료와 에뮬레이터가 존재함
- 하드웨어 세부사항에 대한 문서화는 복잡하고 이해하기 어려운 경우가 많았음
개발 방식
- 약 6주 동안 풀타임으로 작업
- 작은 단계로 구현하고 매 단계마다 수동 테스트 수행 → 버그 원인 파악 용이
- 페어 프로그래밍(pair programming) 을 통해 대부분의 코드 작성 → 버그 감소 효과 기대
대상 독자
- 다음과 같은 배경 지식이 있는 독자에게 적합함:
- UNIX/Linux 및 시스템 프로그래밍에 익숙함
- C 언어에 익숙함
- 컴퓨터 시스템 및 16진수 표기법 등에 대한 이해가 있음
- 초보자도 학습 도구로 사용할 수 있지만 난이도가 높음