MIT 6.S081

操作系统工程

MIT 6.S081 通过 xv6 操作系统讲解内核、系统调用、页表、进程、锁、文件系统和并发,是深入系统软件的核心课程。

Learning Path

用 xv6 读懂操作系统。

建议边读代码边做实验,把系统调用、内存和并发串起来。

进程与系统调用

理解用户态、内核态、陷入和进程管理。

内存与并发

重点关注页表、锁、中断和多核环境下的同步。

文件系统

通过日志、缓存和磁盘布局理解持久化系统。

课程档案 / 06

通过阅读和修改 xv6,把操作系统概念落到真实内核代码。

MIT 6.S081 以实验为中心。学习者需要阅读内核源码,理解用户态与内核态的边界,并实现系统调用、页表、写时复制、并发和文件系统功能。

先修准备

需要 C、体系结构与调试基础

建议先完成 CS61C 或同等课程,理解指针、汇编、页表和并发程序的基本概念。

  • 熟练阅读 C 代码
  • 了解 RISC-V 调用约定
  • 能够使用 gdb 和版本控制
实验策略

从执行路径而不是文件名理解内核

先追踪一次系统调用或缺页异常的完整流程,再开始修改代码。每次只改变一个机制并保存可回退版本。

  • 画出用户态到内核态的调用链
  • 用日志验证锁和引用计数
  • 优先通过小测试再运行完整测试

内容地图

阶段 01系统调用与进程

陷入机制、调度、进程生命周期和进程间通信。

阶段 02虚拟内存与并发

页表、缺页处理、写时复制、锁、中断和多核同步。

阶段 03文件系统与设备

缓冲缓存、日志、索引节点、路径解析和设备驱动。

完成标准

能够沿着内核执行路径定位问题,并安全修改核心机制。

学习者应理解进程、内存、并发和持久化之间的相互作用,并能解释 xv6 中一次系统调用从进入到返回的全过程。