xv6 是麻省理工学院(MIT)开发的一个教学用类 Unix 操作系统,它用 ANSI C 重新实现了 Sixth Edition Unix(V6)的核心设计1)。xv6 诞生于 2006 年,用于 MIT 的本科操作系统课程 6.828(现为 6.1810),旨在替代原始的 V6 源码——因为 PDP-11 机器已难以获取,且原始代码使用过时的预 ANSI C 编写。xv6 足够简单到可以在一个学期内讲完,同时包含了现代操作系统的重要概念和组织结构2)。
MIT 的操作系统课程原本使用 Unix V6 的原始源代码和 John Lions 的注释作为教材。但随着 PDP-11 硬件逐渐退出历史舞台,以及 C 语言标准的演进,MIT 的教授们决定开发一个现代版本的教学操作系统。
2006 年,MIT 发布了 xv6 的初始版本,针对 x86 多处理器架构。2019 年,随着 RISC-V 架构的兴起,MIT 推出了 xv6 的 RISC-V 移植版(xv6-riscv),目前已成为主流教学版本3)。2025 年,xv6 又新增了 x86-64 版本支持4)。
xv6 虽然小巧,但五脏俱全,涵盖了现代操作系统的核心功能:
整个 xv6 的内核代码量约 10,000 行,是所有主流教学操作系统中最为精简的之一5)。
Wikipedia 上有详细的对比数据6)。:
| 系统 | 代码行数 | 内核类型 | 硬件平台 |
| xv6 | ~10k | 宏内核 | x86 / x86-64 / RISC-V |
| Minix 3 | ~100k+ | 微内核 | x86-32 |
| Nachos | ~15k | 用户态模拟 | MIPS 模拟器 |
| Pintos | ~25k | 宏内核 | x86 (QEMU/Bochs) |
| Xinu | ~10k | 宏内核 | x86 / ARM |
xv6 的独特优势在于:
知乎和小红书上有很多关于 xv6 的学习经验分享8) 9)。
环境搭建:10)。
# Ubuntu/Debian 安装工具链 sudo apt install git gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu qemu-system-misc # 克隆源码 git clone https://github.com/mit-pdos/xv6-riscv.git cd xv6-riscv # 编译运行 make qemu
推荐学习顺序:
资源推荐:
xv6 在 Hacker News 上有多个讨论帖,包括将 xv6 移植到 HiFive Unmatched 开发板的实践16) 17)。知乎上关于「如何学习操作系统」的高赞回答中,多次推荐 MIT 6.828 和 xv6 作为最佳实践路径18) 19)。
许多高校(包括 Georgia Tech、IIT Bombay、Columbia University、Ben-Gurion University 等)在操作系统课程中采用 xv6 作为教学平台20)。
xv6 是学习操作系统的最佳入门代码库之一。它用约 1 万行代码完整实现了一个类 Unix 操作系统,配合 MIT 6.1810 课程和官方注释书,为学习者提供了一条清晰的从理论到实践的路径。对于任何想深入理解操作系统原理的开发者来说,通读 xv6 源码并完成其实验,都是一项极具价值的训练21) 22)。