跳转至

xv6 学习历程:路线图与总索引

目标:把这本小书读穿。每一章都值得一次源码级的理解,而不是"看过"。

这篇是 xv6 学习历程的总索引:教材是什么、按什么路线读、每篇笔记长什么样,都收在这里。正文随阅读进度逐篇发布,读一章写一篇,篇与篇首尾相接;本篇的历程清单持续更新进度和链接。

教材与代码

项目 内容
xv6: a simple, Unix-like teaching operating system(RISC-V 版 · rev3,书架收藏
作者 Russ Cox, Frans Kaashoek, Robert Morris(MIT PDOS)
代码 mit-pdos/xv6-riscv
配套课程 MIT 6.1810(原 6.S081)Operating System Engineering
运行环境 QEMU + RISC-V,纯 C + 少量汇编

为什么是 xv6

直接啃 Linux 内核,光目录结构就够劝退。xv6 的价值在于 完整而不臃肿:进程、页表、trap、锁、调度、文件系统一个不少,代码量却小到可以逐行读完。

一句话概括:它把"操作系统是什么"压缩成了一本能踏实读完的书。

学习路线

graph LR
    A[00 出发与环境] --> B[01 OS 接口]
    B --> C[02 组织结构]
    C --> D[03 页表]
    D --> E[04 Trap 与系统调用]
    E --> F[05 中断与驱动]
    F --> G[06 锁]
    G --> H[07 调度]
    H --> I[08 文件系统]
    I --> J[09 并发再谈]

历程清单

# 对应章节 主题 状态
00 出发:为什么读 xv6、环境搭建 已发布
01 Ch.1 Operating system interfaces shell、进程、fork/exec/pipe 的用户视角 已发布
02 Ch.2 Operating system organization 内核组织、系统调用的实现路径 已发布
03 Ch.3 Page tables 页表、Sv39、内核地址空间 未开始
04 Ch.4 Traps and system calls trap 机制、syscall 全链路 未开始
05 Ch.5 Interrupts and device drivers 中断、UART、磁盘驱动 未开始
06 Ch.6 Locking 锁、死锁、lock ordering 未开始
07 Ch.7 Scheduling 调度、上下文切换、sleep/wakeup 未开始
08 Ch.8 File system inode、日志层、crash safety 未开始
09 Ch.9 Concurrency revisited 并发陷阱与模式总结 未开始

系列约定

每篇笔记固定五个板块,保证前后连贯:

  1. 本章脉络 —— 承接上一篇,说清这一章在操作系统全景里的位置
  2. 核心概念 —— 书里的关键机制,用自己的话复述
  3. 源码走读 —— 对照 xv6 源码,看机制怎么落地
  4. 动手实验 —— 跑代码、改代码、用 gdb 观察
  5. 疑问清单 —— 没想明白的问题,留给后面的章节或实验回收

更新节奏

跟阅读进度走,读一章写一篇,最新进度以上面的历程清单为准。


最后更新:2026-09-18

评论