全部课程/MIT 6.1810

MIT 6.1810:操作系统工程

以 xv6 为主线,在系统调用、页表、陷阱、并发、网络和文件系统的真实代码中理解操作系统的结构、抽象与工程权衡。

当硬件、进程和故障同时变化时,操作系统如何用边界与不变量提供可靠抽象?

麻省理工学院Robert Morris、Nickolai Zeldovich2026 年秋季23 讲官方课程 ↗

从这里开始

导论与概述

已完成 0 / 23 讲 · 记录保存在当前浏览器
开始学习

学习进度

0 / 23讲义已完成

已完成 0 / 9 份实践
由你确认,不自动标记

课程地图

  1. 1内核入口第 1–4 讲

    一次系统调用如何进入内核?

  2. 2地址空间第 5–10 讲

    虚拟地址怎样隔离与共享?

  3. 3并发与设备第 11–16 讲

    并发事件怎样安全地交织?

  4. 4持久化第 17–19 讲

    崩溃之后还剩下什么?

  5. 5隔离与扩展第 20–23 讲

    如何跨核扩展并守住边界?

三种学习方式

学习

读讲义,理解原理与机制。
区分用户态、内核态、硬件事件与共享状态。

查看讲义

思考

做推演与自测,检验理解。
从入口到返回逐步跟踪寄存器、页表、锁与调度状态。

进入推演

实践

用工作簿与实验验证方法。
把代码条件连接到并发、隔离或崩溃恢复的不变量。

查看实践

课程讲义

内核入口

一次系统调用如何进入内核?

  1. 01导论与概述讲义
  2. 02C 语言与 xv6讲义
  3. 03操作系统设计讲义
  4. 04OS 组织与系统调用讲义

地址空间

虚拟地址怎样隔离与共享?

  1. 05页表与虚拟内存讲义
  2. 06系统调用入口/出口讲义
  3. 07系统调用拦截讲义
  4. 08页错误处理讲义
  5. 09透明大页讲义
  6. 10应用虚拟内存讲义

并发与设备

并发事件怎样安全地交织?

  1. 11设备驱动与中断讲义
  2. 12锁与并发讲义
  3. 13线程切换讲义
  4. 14线程同步与协调讲义
  5. 15网络编程讲义
  6. 16高性能网络讲义

持久化

崩溃之后还剩下什么?

  1. 17文件系统讲义
  2. 18崩溃恢复讲义
  3. 19日志与文件系统性能讲义

隔离与扩展

如何跨核扩展并守住边界?

  1. 20多核扩展性与 RCU讲义
  2. 21容器与虚拟机讲义
  3. 22内核可扩展性讲义
  4. 23Meltdown 攻击讲义

思考 · 推演与自测

推演与概念检查已编排在各讲中。

从第一讲的练习开始 →

实践 · 工作簿与实验

把理解落到可检查的推导、测试与实现证据。

  1. 01Unix 工具工作簿
  2. 02系统调用工作簿
  3. 03页表工作簿
  4. 04陷阱工作簿
  5. 05写时复制工作簿
  6. 06网络驱动工作簿
  7. 07锁工作簿
  8. 08文件系统工作簿
  9. 09内存映射工作簿