课程简介
所属大学 | MIT |
---|---|
先修课程要求 | 良好英语水平 + 计算机系统 + 少量体系结构 |
编程语言要求 | C + 少量 RISC-V 汇编 |
课程网站 | MIT 6.S081 Course Website |
世界上大名鼎鼎的系统实验室 PDOS
开设的课程,教授这门课的教授包括:
两名教授在操作系统方向造诣深厚,Prof. Robert Morris 曾是一个黑客,造出了世界上第一个蠕虫病毒,Prof. Frans Kaashoek 提出了领先时代的(大概可以这么说)LibOS
,也就是我们现在常说的外核系统(类似嵌入式设备上的操作系统)。
其实还有一些水平很好的助教,但助教一般负责实验的基础讲解,我十分推荐助教课中对 gdb
等工具使用的讲解。
如果你是初学者的话,这部分应该是必看内容,但我更推荐MIT Missing Semester
难度
由于是本科生的 OS
入门课程,因此其难度并不高,对于国内学生而言,我认为难度主要集中在环境的配置,工具的使用,以及文档与课程视频的食用上(语言的难度占据了大部分),但好在这门课程并不小众,在网上可以搜集到众多实验解答(虽然课程的 Policy
并不让大家把代码开源……)。
优点
教授们为了教授这门课程,实现了一个教学版的类 Unix
的宏内核 OS
,名为 xv6
,其前身为 JOS
。在 2020 之后,实验采用了 xv6
的 RISC-V
版本,放弃了 x86
的复杂指令(毕竟需要懂一些汇编)。 xv6
的实现十分简洁优雅,阅读其代码实现相较于其他内核的实现更为简单,能够短时间内明白 kernel
是现实意义上工作的(毕竟从国内大部分教材上看见的只是一个抽象的过程描述罢了)。
实验上采用了阅读理解式做法,根据文档的 Hint
慢慢实现一些近现代的 OS
内核所具有的功能;并且实验框架给出了自动化测试脚本,用以验证正确性。每个实验可能是让你实现某一个小功能,改进某一个策略,但无一不是在给定的框架下实现的,让你可以专心的实现实验部分。甚至连调试的方式都会在上课给你演示,写好的配置文件也让你拥有一个良好的调试体验。
上课时,教授们会通过理论与实际结合的方式进行,讲完理论后,教授们会打开代码界面进行讲解,让你对项目结构有着更好的认知,同时教授们也可能会在课程时把实验答案也透露完了(笑)。
这门课的后半程会讲授操作系统领域的多篇经典论文,涉及文件系统、系统安全、网络、虚拟化等等多个主题,让你有机会接触到学界最前沿的研究方向,当然如果有兴趣想要知道最前沿的方向,请看 OSDI
等会议的文章吧。
缺陷
缺陷仅仅是个人看法,请客观看待
- 文档描述有些不够清晰,主要包括在文件结构没有太多的篇幅解释,对初学者不够友好
- F.Kasshoek 教授上课第一次听可能会让人感觉云里雾里,但多听几遍是可以解决这个问题的
Info
个人认为学完了这门课程,
OS
才算真正入门
课程资料
Danger
请不要使用
Manjaro
之类的 Linux 发行版进行克隆,可能会报错(本人就报错了),推荐使用Ubuntu
等通用的发行版来做实验,如果没有Linux
机器的话,可以使用户docker
进一步的,如果你想更加深入了解 xv6
的设计,那么可以在知乎上进行搜索。