목차
서문 ... 7
   1. Operating System이란? ... 7
   2. 대상 독자 ... 7
   3. 다루고 있는 내용 ... 8
   4. 시스템 요구사항 ... 10
   5. 부록 CD의 내용 ... 10
   6. 웹 사이트 ... 11
제1장 Chobits OS ... 13
   1. 필요한 소프트웨어 ... 15
   2. 소프트웨어 설치 ... 15
      2.1 NASM(Netwide Assembler) ... 15
      2.2 VMWare Player ... 18
   3. Compile 환경 설정 ... 19
4. 다음 장에서는 ... 21
제2장 부트 로더(Boot Loader) ... 23
   1. Hello Chobits OS ... 25
      1.1 Boot Code ... 25
      1.2 Hello Chobits 컴파일 및 실행 ... 41
      1.3 커널 이미지 읽어들이기 ... 45
      1.4 실행 ... 62
제3장 커널의 시작 ... 65
   1. 커널의 작성 ... 67
      1.1 Real Mode & Protected Mode ... 67
   2. 구현 ... 68
      2.1 GDT(Global Descriptor Table)의 로드 ... 68
      2.2 GDT(Global Descriptor Table) ... 69
      2.3 실습(Protected Mode로의 전환) - 프로젝트 설정 ... 80
      2.4 실습(Protected Mode로의 전환) - 디스크 이미지 만들기 및 실행 ... 86
제4장 콘솔 시스템(Console System) ... 91
   1. 콘솔 시스템의 초기화 ... 93
      1.1 콘솔 시스템의 초기화 루틴 ... 93
      1.2 문자열 출력 ... 94
      1.3 실행 ... 114
   2. 콘솔 디바이스 드라이버 ... 117
      2.1 콘솔 디바이스 드라이버의 초기화 ... 117
      2.2 실행 ... 119
제5장 커널의 초기화 ... 121
   1. 커널의 초기화 ... 123
      1.1 HAL(Hardware Abstraction Layer) ... 124
      1.2 A20 Line ... 125
      1.3 PIC(Programmable Interrupt Controller) ... 132
      1.4 Timer ... 140
      1.5 인터럽트(Interrupt) ... 144
제6장 메모리 관리자와 프로세스 관리자 ... 169
   1. 메모리 관리자 ... 171
      1.1 Chobits OS의 메모리 구성 ... 171
      1.2 메모리 풀(Memory Pool) ... 172
      1.3 메모리 관리자의 초기화 ... 174
      1.4 실행 ... 183
   2. 프로세스 관리자 ... 183
      2.1 프로세스 관리자의 초기화 ... 184
      2.2 Chobits OS의 시스템 프로세스 및 쓰레드 ... 187
      2.3 Task Switch ... 188
      2.4 시스템 프로세스 및 쓰레드의 생성 ... 196
      2.5 실행 ... 235
제7장 시스템 콜(System Call) ... 237
   1. 시스템 콜의 원리 ... 239
      1.1 콜 게이트(Call Gate) ... 239
      1.2 시스템 콜의 구현 ... 240
   2. 실행 ... 243
제8장 키보드(Keyboard) ... 245
   1. 키보드 디바이스 드라이버 ... 247
      1.1 키보드 입력 문자의 종류 ... 247
      1.2 구현 ... 252
   2. 실행 ... 262
제9장 플로피 디스크(Floppy Disk) ... 265
   1. 플로피 디스크 디바이스 드라이버 ... 267
      1.1 플로피 디스크 디바이스 드라이버의 구현 ... 267
      1.2 플로피 디스크 드라이브의 작동 방식 ... 278
      1.3 플로피 디스크로부터의 읽기 명령 ... 279
      1.4 DMA(Direct Memory Access) ... 283
   2. 실행 ... 288
제10장 쉘(Shell) ... 289
   1. 쉘의 구현 ... 292
      1.1 쉘의 처리를 담당할 프로세스 및 쓰레드의 생성 ... 292
   2. 실행 ... 303
제11장 파일 시스템(File System) ... 305
   1. 파일 시스템(File System) ... 307
      1.1 FAT(File Allocation Table) ... 307
      1.2 파일 시스템의 구조 ... 308
      1.3 구현 ... 315
   2. 파일 시스템을 이용한 쉘의 기능 추가 ... 318
   3. 실행 ... 337
제12장 응용 프로그램 ... 339
   1. 프로젝트 설정 ... 341
   2. "Hello World" 응용 프로그램 ... 346
      2.1 응용 프로그램의 진입점 ... 347
      2.2 시스템 콜의 호출 ... 349
   3. 실행 ... 352
제13장 그래픽 시스템(Graphic System) ... 355
   1. 그래픽 디바이스 드라이버의 초기화 ... 357
      1.1 팔레트(Palette) ... 358
   2. DirectY ... 360
   3. 비트맵 파일(Bitmap File) ... 361
   4. VIEW 명령 ... 363
      4.1 Bitmap 파일 로딩 ... 364
      4.2 그래픽 모드 전환 ... 368
      4.3 비트맵 이미지 출력 ... 379
   5. 실행 ... 381
   6. 마치며 ... 383
찾아보기 ... 384
닫기