第 9 章 · 08 经典学习路径与书目
本节摘要:这是全书最后一节,也是登顶章的收尾。操作系统和编译器是造轮子的天花板,完整造一遍是数月到数年的工程。本节给你一张「上山地图」——OS 线与编译器线各自的经典项目、教程、书目,让你知道第一步怎么迈、路上有哪些可靠向导。带着本书前八章给你的全部基础认知,选一条线,出发。
内容来源:基于社区公认的经典资源整理的导读。
学习目标
- 知道 OS 线的经典项目(xv6)、权威 wiki(OSDev)、进阶书(OSTEP 等)。
- 知道编译器线的经典教程(Crafting Interpreters 对新手最友好)、权威书(Dragon Book)。
- 为自己定一个进阶计划,从本书的「路线图」走向真正的登顶。
一、学习价值:这是从「本书」到「登顶」的桥
本书给你的是「路线图」——让你看到 OS 与编译器的全貌、理解各子系统。但真正造出完整的 OS 或编译器,需要更专门的资源。本节把这些社区公认的「金标准」资源指给你,作为本书的延伸——本书是桥,这些是岸。
二、操作系统线:经典路径
起点:xv6(MIT 教学内核)
xv6 是 MIT 为教学设计的简化 Unix 内核,约几千行 C,实现了进程、虚拟内存、文件系统、系统调用。源码清晰、配套讲义(《xv6 book》)逐段讲解。学 OS 的最佳起点——读它的源码,对照本书前几节理解每个部分。
权威 wiki:OSDev
OSDev wiki 是「从零写 OS」的社区知识库,覆盖从「写第一个引导扇区」到「多任务/分页/文件系统」的全流程。动手时遇卡点,常来这里查。
进阶书
- 《操作系统导论》(OSTEP):Wisconsin 大学的免费在线教材,讲解生动,概念清晰。配合 xv6 读最佳。
- 《操作系统概念》(恐龙书,Silberschatz):经典权威教材,全面但厚重。
- 《现代操作系统》(Tanenbaum):另一本经典,Tanenbaum 是 Minix(启发 Linux)的作者。
实战项目
- 写一个 boot loader(引导扇区打印 Hello)。
- 基于 xv6 加一个系统调用。
- 实现简单调度器/分页。
三、编译器线:经典路径
起点:Crafting Interpreters
Robert Nystrom 的《Crafting Interpreters》(免费在线)是对新手最友好的编译器教程。前半本带你用 Java 写一个树遍历解释器(LOX 语言),后半本带你用 C 把它升级成字节码 VM。语言轻松、代码完整、循序渐进。强烈推荐作为编译器的第一本书。
进阶:Dragon Book
《编译原理》(Compilers: Principles, Techniques, and Tools),Aho 等,封面有龙,称「龙书」。是编译原理的权威教材,深而全(词法/语法/语义/优化/代码生成全覆盖)。难度较高,适合有基础后读。
其他经典
- 《SICP》(计算机程序的构造和解释):MIT 神书,用 Scheme 带你实现解释器,培养「语言抽象」思维。
- 《Programming Language Pragmatics》:Scott,覆盖语言设计与实现的广角。
- Neil Mitchell 的「Write You a Haskell」:函数式语言实现,进阶。
实战项目
- 表达式计算器(本书第 06 节起步)。
- 一个小语言(变量/if/while/函数),用 Crafting Interpreters 带着写。
- 给你的语言加类型系统(进阶)。
四、给你的进阶计划
- 选一条线(OS 或编译器),不要同时——两条都是大工程。
- OS 线:读 xv6 + OSTEP;动手改 xv6;写自己的 boot loader。
- 编译器线:读 Crafting Interpreters;动手写 LOX;进阶读 Dragon Book。
- 卡住别怕:这两条线都难,卡住是常态。慢即是快,坚持比天赋重要。
- 本书是你的地基:前八章(Shell/fork/exec/socket/WAL/...)积累的概念,在这里全部用得上。
本节要点回顾
- OS 起点:xv6(教学内核)+ OSTEP(教材)+ OSDev wiki(实战);进阶恐龙书。
- 编译器起点:Crafting Interpreters(对新手最友好);进阶 Dragon Book、SICP。
- 选一条线,不要同时;OS 与编译器都是大工程。
- 本书是地基:前八章的概念在这里全部复用。
- 慢即是快,坚持比天赋重要——这是登顶之路的真实写照。
推荐上手顺序
- 选线:OS 或编译器。
- OS 线:下 xv6 源码 + OSTEP,对照本书前几节读。
- 编译器线:开 Crafting Interpreters,跟着写 LOX。
- 动手做小项目(boot loader / 表达式计算器)。
- 卡住查 wiki/社区,持续投入数月。
至此第 9 章「造操作系统与编译器」全部讲完,本书正文九章也随之结束。
你从第 1 章的「为什么造轮子」出发,经第 2 章造 Shell、第 3 章造 CLI、第 4 章造正则引擎、第 5 章造编辑器、第 6 章造 Git、第 7 章造 Web 服务器、第 8 章造数据库,登上第 9 章 OS 与编译器的山顶。带上本书给你的全部能力,附录 A 还有三十个域等你探索。出发吧。