← MMOS 소개로 돌아가기

RISC-V OS Foundations · Volume 01

제1권 상세 목차와 장별 분량

『직접 만들며 배우는 RISC-V 운영체제』의 현재 편집본은 신국판(152×225mm) 624쪽입니다. 아래에서 8부·54장·112절의 제목과 각 장에 배분된 쪽수를 볼 수 있습니다.

624쪽한 권 전체
598쪽본문 8부
54장본문의 장
112절본문의 절

쪽수와 비율을 읽는 방법

장별 쪽수는 해당 장의 시작 쪽부터 다음 장 또는 다음 부의 시작 전까지 셌습니다. 비율은 장 쪽수 ÷ 책 전체 624쪽 × 100이며 소수 첫째 자리로 반올림했습니다. 책에 인쇄된 쪽번호를 표시하므로 PDF 뷰어의 페이지 번호와는 8쪽 차이가 납니다.

전체 624쪽은 앞부분 8쪽, 본문 598쪽, 부록 18쪽으로 이루어집니다. 본문 598쪽에는 각 부의 첫 면 8쪽과 54개 장의 590쪽이 포함됩니다. 현재 편집 PDF 기준이라 최종 출판 과정에서 쪽수는 달라질 수 있습니다.

Part 01

제1부 실행 환경과 첫 커널

1–106쪽 · 106쪽 · 전체의 17.0% (부 첫 면 포함)

제1부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제1장 책의 목표와 재현 가능한 개발 환경
  1. 1.1서론2쪽
  2. 1.2개발 환경7쪽
2–36쪽 35쪽 5.6%
제2장 RISC-V 부팅 순서와 커널 이미지
  1. 2.1부팅 순서37쪽
37–42쪽 6쪽 1.0%
제3장 커널 브링업과 초기 실행 상태
  1. 3.1커널 브링업 기초43쪽
43–56쪽 14쪽 2.2%
제4장 UART 콘솔과 관찰 가능한 커널
  1. 4.1초기 콘솔 브링업 (UART)57쪽
57–72쪽 16쪽 2.6%
제5장 초기 메모리 관리와 디바이스 트리
  1. 5.1메모리 관리와 디바이스 트리73쪽
73–85쪽 13쪽 2.1%
제6장 U-Boot, 스토리지, 부트 이미지
  1. 6.1U-Boot, 스토리지, 부트 이미지86쪽
86–99쪽 14쪽 2.2%
제7장 테스트와 디버깅으로 동작 확인하기
  1. 7.1테스트와 디버깅100쪽
100–106쪽 7쪽 1.1%

Part 02

제2부 사용자 모드와 trap 기반

107–135쪽 · 29쪽 · 전체의 4.6% (부 첫 면 포함)

제2부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제8장 사용자 모드 전환을 위한 권한과 CSR
  1. 8.1모드 전환과 사용자 초기 프로세스108쪽
108–115쪽 8쪽 1.3%
제9장 Trap dispatch와 syscall ABI
  1. 9.1트랩 디스패치와 시스템콜116쪽
116–120쪽 5쪽 0.8%
제10장 Sv39 페이지 테이블과 사용자 init 문맥
  1. 10.1Sv39 커널 페이지 테이블121쪽
  2. 10.2사용자 Init 프로세스 브링업128쪽
121–132쪽 12쪽 1.9%
제11장 사용자 모드 기반 정리와 다음 단계
  1. 11.1Trap·paging·user context에서 파일 기반 실행 준비로133쪽
133–135쪽 3쪽 0.5%

Part 03

제3부 Storage, ELF와 첫 사용자 프로그램

136–240쪽 · 105쪽 · 전체의 16.8% (부 첫 면 포함)

제3부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제12장 블록 장치와 파일시스템 읽기
  1. 12.1커널 장치 모델과 블록 디바이스 기초137쪽
  2. 12.2커널 파일시스템 읽기 기반 만들기145쪽
137–155쪽 19쪽 3.0%
제13장 시스템콜 기반과 ELF 실행 준비
  1. 13.1시스템콜 프레임워크와 프로세스 진입 준비156쪽
  2. 13.2ELF 로더 구현과 Exec 준비158쪽
156–165쪽 10쪽 1.6%
제14장 /sbin/init 로드와 사용자 VM
  1. 14.1exec 준비: /sbin/init 로드와 사용자 진입 문맥 구성166쪽
  2. 14.2사용자 Page Fault에서 VM Mapping 복구하기169쪽
166–173쪽 8쪽 1.3%
제15장 스케줄링과 최소 프로세스 모델
  1. 15.1타이머 기반 컨텍스트 스위칭과 프로세스 스케줄링174쪽
  2. 15.2프로세스 모델 재정의: PCB/TCB 구조 정리179쪽
  3. 15.3fork/exec/wait 최소 프로세스 모델 확장184쪽
174–189쪽 16쪽 2.6%
제16장 User App ELF 빌드와 ABI 스택
  1. 16.1실제 User App ELF 빌드 파이프라인190쪽
  2. 16.2User ABI: argc/argv/envp 초기 스택 구성202쪽
190–207쪽 18쪽 2.9%
제17장 User Init 실행 준비
  1. 17.1User Init 실행 직전 상태 준비208쪽
  2. 17.2런타임 통합: /sbin/init 로딩과 launch handoff 연결211쪽
  3. 17.3첫 U-Mode 진입: sret로 user-init 실제 실행229쪽
208–234쪽 27쪽 4.3%
제18장 첫 사용자 실행의 구조적 의미
  1. 18.1아키텍처 비교235쪽
  2. 18.2User App을 적재하고 실행하기까지238쪽
235–240쪽 6쪽 1.0%

Part 04

제4부 Character device와 file descriptor

241–312쪽 · 72쪽 · 전체의 11.5% (부 첫 면 포함)

제4부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제19장 Character device와 serial 장치
  1. 19.1Character Device 추상화 기초242쪽
  2. 19.2Serial 장치를 Character Device로 연결246쪽
242–251쪽 10쪽 1.6%
제20장 File descriptor table과 device node
  1. 20.1File Descriptor Table: write(1, ...)의 의미252쪽
  2. 20.2VFS Namespace와 Device Node258쪽
252–262쪽 11쪽 1.8%
제21장 open()과 프로세스 fd context
  1. 21.1open() 경로와 fd 할당263쪽
  2. 21.2현재 프로세스의 fd table 유지하기266쪽
263–270쪽 8쪽 1.3%
제22장 User pointer copyin과 VM 검증
  1. 22.1User Pointer가 가리키는 문자열 복사하기271쪽
  2. 22.2VM 권한을 확인하는 Copyin276쪽
271–281쪽 11쪽 1.8%
제23장 write()와 process-owned I/O
  1. 23.1fd 기반 write() syscall282쪽
  2. 23.2현재 프로세스의 I/O Context285쪽
  3. 23.3Task의 Owner Process로 I/O Context 찾기288쪽
  4. 23.4Process 생성과 I/O Context 연결291쪽
282–294쪽 13쪽 2.1%
제24장 close(), read(), console byte 흐름
  1. 24.1close(fd)와 fd 생명주기295쪽
  2. 24.2read(fd)와 Copyout298쪽
  3. 24.3Console에서 실제 Byte 읽기302쪽
  4. 24.4Non-blocking Read와 -EAGAIN306쪽
295–308쪽 14쪽 2.2%
제25장 Device I/O 흐름 정리
  1. 25.1Device I/O 구현 정리309쪽
309–312쪽 4쪽 0.6%

Part 05

제5부 Blocking I/O와 task switching

313–356쪽 · 44쪽 · 전체의 7.1% (부 첫 면 포함)

제5부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제26장 Blocking read와 reader wakeup
  1. 26.1Blocking Read와 Wait Queue314쪽
  2. 26.2Serial RX Event로 Reader 깨우기317쪽
314–320쪽 7쪽 1.1%
제27장 Blocked syscall 뒤 실행 대상 선택
  1. 27.1Blocked Syscall 뒤 실행 대상 선택321쪽
  2. 27.2Blocked Task 다음 Runnable Task 선택323쪽
321–327쪽 7쪽 1.1%
제28장 Idle decision과 WFI
  1. 28.1Runnable Task가 없을 때 Idle Decision328쪽
  2. 28.2Idle Decision과 Wait For Interrupt331쪽
328–333쪽 6쪽 1.0%
제29장 TrapFrame 복원과 trap schedule dispatch
  1. 29.1Next Task의 TrapFrame 복원334쪽
  2. 29.2Trap Schedule Dispatch 연결336쪽
334–340쪽 7쪽 1.1%
제30장 Trap runtime과 global scheduler state
  1. 30.1Trap Runtime의 Scheduler State341쪽
  2. 30.2Global Trap Runtime State344쪽
  3. 30.3Trap Dispatch에서 Global Runtime 사용347쪽
  4. 30.4Launch Task를 Global Runtime에 등록349쪽
341–351쪽 11쪽 1.8%
제31장 Task switching 흐름 정리
  1. 31.1Task Switching 정리352쪽
352–356쪽 5쪽 0.8%

Part 06

제6부 Address space 전환과 root page table

357–473쪽 · 117쪽 · 전체의 18.8% (부 첫 면 포함)

제6부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제32장 User process 생성 절차와 두 번째 task
  1. 32.1User Process 공통 생성 절차358쪽
  2. 32.2두 번째 User Task로 전환하기361쪽
358–364쪽 7쪽 1.1%
제33장 Address-space token과 switch 준비
  1. 33.1Task Address Space Token 준비365쪽
  2. 33.2Address Space Switch 적용 준비368쪽
365–371쪽 7쪽 1.1%
제34장 satp 전환 준비와 주소공간 점검
  1. 34.1SATP Commit 준비372쪽
  2. 34.2Kernel/User Address Space 재배치374쪽
  3. 34.3satp Commit Preflight383쪽
372–386쪽 15쪽 2.4%
제35장 Trap stack switch와 entry assembly
  1. 35.1Kernel Trap Stack 전환 준비387쪽
  2. 35.2Trap Entry Scratch Swap390쪽
  3. 35.3Trap Entry Assembly Stack Switch394쪽
387–398쪽 12쪽 1.9%
제36장 User entry CSR와 hardware commit gate
  1. 36.1enter_user에서 sscratch 준비하기399쪽
  2. 36.2satp Hardware Commit Gate402쪽
  3. 36.3User Launch CSR Sequence406쪽
399–409쪽 11쪽 1.8%
제37장 Root page table storage와 rooted launch
  1. 37.1Root Page Table Storage410쪽
  2. 37.2Rooted User Launch SATP413쪽
  3. 37.3Process Root SATP Token416쪽
  4. 37.4Rooted SATP Commit Sequence418쪽
410–420쪽 11쪽 1.8%
제38장 Process address-space root와 satp 전환 검증
  1. 38.1Kernel SATP Runtime Guard421쪽
  2. 38.2Process Address Space Root425쪽
  3. 38.3PCB Address Space Handle428쪽
  4. 38.4SATP Hardware Commit Probe433쪽
421–438쪽 18쪽 2.9%
제39장 Frame-backed user image
  1. 39.1User Frame Backed Image439쪽
  2. 39.2User Frame Backed Page Mapping442쪽
  3. 39.3User Frame Materialize446쪽
439–451쪽 13쪽 2.1%
제40장 Persistent satp와 사용자 실행·syscall
  1. 40.1Persistent SATP Commit452쪽
  2. 40.2User Memory Access Gate458쪽
  3. 40.3First User SRET Syscall461쪽
452–465쪽 14쪽 2.2%
제41장 사용자 코드 실행 과정 정리
  1. 41.1User Execution Pipeline Wrap-up466쪽
466–473쪽 8쪽 1.3%

Part 07

제7부 Process 종료와 종료 결과 회수

474–532쪽 · 59쪽 · 전체의 9.5% (부 첫 면 포함)

제7부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제42장 Process exit runtime 시작과 연결
  1. 42.1Process Exit Runtime 시작하기475쪽
  2. 42.2Process Exit Runtime 연결 설계480쪽
475–487쪽 13쪽 2.1%
제43장 프로세스 전체 종료와 다음 task 선택
  1. 43.1Process-wide Exit Runtime 모델488쪽
  2. 43.2Exit 이후 다음 실행 대상 선택492쪽
488–497쪽 10쪽 1.6%
제44장 Trap dispatch에서 process exit 처리
  1. 44.1Trap Exit Process Dispatch498쪽
  2. 44.2Process-aware Trap Runtime Exit501쪽
498–505쪽 8쪽 1.3%
제45장 종료 결과 회수와 wait syscall
  1. 45.1Process Trap Runtime의 종료 결과 회수506쪽
  2. 45.2Process Wait와 자식 종료 결과 회수511쪽
  3. 45.3wait syscall 호출 연결516쪽
506–520쪽 15쪽 2.4%
제46장 Blocking wait와 no-child 판정
  1. 46.1Blocking Wait Wakeup521쪽
  2. 46.2wait 대상 자식이 없는 경우524쪽
521–527쪽 7쪽 1.1%
제47장 Process lifecycle 정리
  1. 47.1Process Lifecycle Wrap-up528쪽
528–532쪽 5쪽 0.8%

Part 08

제8부 프로그램 교체, runtime ABI와 Foundation 완성

533–598쪽 · 66쪽 · 전체의 10.6% (부 첫 면 포함)

제8부의 장·절 목차와 장별 분량
장과 절쪽 범위장 분량전체 대비
제48장 프로세스 생성 syscall과 execve 이미지 교체
  1. 48.1Process Creation Syscall Bridge534쪽
  2. 48.2Execve Image Replacement Pipeline538쪽
534–542쪽 9쪽 1.4%
제49장 Execve dispatch와 process syscall entry 통합
  1. 49.1Execve Runtime Dispatch Consolidation543쪽
  2. 49.2Process Syscall Entry Unification546쪽
543–550쪽 8쪽 1.3%
제50장 CRT, minimal libc, stdio
  1. 50.1CRT, Minimal libc, and Stdio551쪽
551–556쪽 6쪽 1.0%
제51장 Shared object loader와 argv/envp
  1. 51.1Shared Object Loader Runtime557쪽
  2. 51.2CRT Entry, Args, and Environment565쪽
557–568쪽 12쪽 1.9%
제52장 Console stdin과 minimal shell
  1. 52.1Console Stdin to User Read569쪽
  2. 52.2Minimal User Shell574쪽
569–581쪽 13쪽 2.1%
제53장 Foundation boot filesystem과 lifecycle 확인
  1. 53.1Foundation Boot Filesystem582쪽
  2. 53.2Init--Child--Shell--Wait584쪽
  3. 53.3Foundation OS Acceptance587쪽
582–591쪽 10쪽 1.6%
제54장 Foundation OS의 완성과 다음 단계
  1. 54.1Foundations Wrap-up592쪽
592–598쪽 7쪽 1.1%

앞부분과 부록

앞부분 8쪽에는 표지, 판권, 차례와 읽는 방식이 포함됩니다. 부록은 A 「WSL2에서 Podman 개발 환경 구성」(599쪽부터), B 「약어 사전」(604쪽부터)으로, 합계 18쪽입니다.

출판 검토용 샘플 PDF 보기