课程简介

所属大学MIT
先修课程要求良好英语水平 + 计算机系统 + 少量体系结构
编程语言要求C + 少量 RISC-V 汇编
课程网站MIT 6.S081 Course Website

世界上大名鼎鼎的系统实验室 PDOS 开设的课程,教授这门课的教授包括:

  1. Robert Morris
  2. Frans Kaashoek

两名教授在操作系统方向造诣深厚,Prof. Robert Morris 曾是一个黑客,造出了世界上第一个蠕虫病毒,Prof. Frans Kaashoek 提出了领先时代的(大概可以这么说)LibOS ,也就是我们现在常说的外核系统(类似嵌入式设备上的操作系统)。

其实还有一些水平很好的助教,但助教一般负责实验的基础讲解,我十分推荐助教课中对 gdb 等工具使用的讲解。

如果你是初学者的话,这部分应该是必看内容,但我更推荐MIT Missing Semester

难度

由于是本科生的 OS 入门课程,因此其难度并不高,对于国内学生而言,我认为难度主要集中在环境的配置,工具的使用,以及文档与课程视频的食用上(语言的难度占据了大部分),但好在这门课程并不小众,在网上可以搜集到众多实验解答(虽然课程的 Policy 并不让大家把代码开源……)。

优点

教授们为了教授这门课程,实现了一个教学版的类 Unix 的宏内核 OS,名为 xv6 ,其前身为 JOS 。在 2020 之后,实验采用了 xv6RISC-V 版本,放弃了 x86 的复杂指令(毕竟需要懂一些汇编)。 xv6 的实现十分简洁优雅,阅读其代码实现相较于其他内核的实现更为简单,能够短时间内明白 kernel 是现实意义上工作的(毕竟从国内大部分教材上看见的只是一个抽象的过程描述罢了)。

实验上采用了阅读理解式做法,根据文档的 Hint 慢慢实现一些近现代的 OS 内核所具有的功能;并且实验框架给出了自动化测试脚本,用以验证正确性。每个实验可能是让你实现某一个小功能,改进某一个策略,但无一不是在给定的框架下实现的,让你可以专心的实现实验部分。甚至连调试的方式都会在上课给你演示,写好的配置文件也让你拥有一个良好的调试体验。

上课时,教授们会通过理论与实际结合的方式进行,讲完理论后,教授们会打开代码界面进行讲解,让你对项目结构有着更好的认知,同时教授们也可能会在课程时把实验答案也透露完了(笑)。

这门课的后半程会讲授操作系统领域的多篇经典论文,涉及文件系统、系统安全、网络、虚拟化等等多个主题,让你有机会接触到学界最前沿的研究方向,当然如果有兴趣想要知道最前沿的方向,请看 OSDI 等会议的文章吧。

缺陷

缺陷仅仅是个人看法,请客观看待

  1. 文档描述有些不够清晰,主要包括在文件结构没有太多的篇幅解释,对初学者不够友好
  2. F.Kasshoek 教授上课第一次听可能会让人感觉云里雾里,但多听几遍是可以解决这个问题的

Info

个人认为学完了这门课程,OS 才算真正入门

课程资料

Danger

请不要使用 Manjaro 之类的 Linux 发行版进行克隆,可能会报错(本人就报错了),推荐使用 Ubuntu 等通用的发行版来做实验,如果没有 Linux 机器的话,可以使用户 docker

进一步的,如果你想更加深入了解 xv6 的设计,那么可以在知乎上进行搜索。