- 课程为 MIT6.S081-2020fall
- 本课程在OS理论的宽度和深度上没有延展太多,核心是xv6的实现以及实验内容。在实际的编码过程中,我们将会直观、细致、深入地理解操作系统内核实现,这是单纯的理论学习难以触及的。
- xv6 book和对应的实验将逐步引领我们阅读、理解xv6源码,并在xv6上做进一步开发和优化。
- 课程官网: MIT6.S081-2020fall
- 课程内容整理与翻译 (贡献者:肖宏辉)
- All-in-one课程仓库(xv6中文文档、lab翻译及解析)
- xv6中文文档(2)
- 名校公开课程评价网-MIT6.S081
- Lab环境搭建指南
- xv6 book阅读笔记
- OS学习过程中的记录与思考(待填坑)
- Lab1: Xv6 and Unix utilities
- Lab2: System calls
- Lab3: Page tables
- Lab4: Traps
- Lab5: Lazy allocation
- Lab6: Cow fork
- Lab7: Multithreading
- Lab8: Locks
- Lab9: File system
- Lab10 和 Lab11 暂时搁置
- 实验应独立完成,而是否参考、何时参考他人的实现方式可根据自身情况决定。
- 我认为该课程的前置知识包括:C(熟练)、汇编(入门)、操作系统基础理论。三者中应至少具备两者,否则,即使边学边补,需要补的内容太多也会影响主线xv6的学习。
- 如果对OS理论较为了解,且能完全读懂xv6 book,那么课程视频不看也无妨。在出现理解有困难的地方时,课程视频可能会有所帮助,毕竟课堂讲解会更通俗易懂。
- 学习曲线不算陡峭,只在hard lab处会感到难度有明显提高。
- 在实验过程中需要学习一些工具,gdb、vim、git等等。开始时也许有些不适,但很快就会发现这些工具都非常好用,花时间学习是值得的。(然而我现在gdb的门还没入,sad)
- 如果英语阅读能力过关,更建议阅读原版xv6 book;或在中文版表述不清时参考原版。
- 各个lab的完整源码在仓库的对应分支中。
- 如果想有一个共同学习的氛围,或者想要在遇到问题时交流探讨,可以看这里课程交流
- 借此课程查补欠缺的OS基础理论和相关实践
- 此后OS学习暂定围绕OS基本理论、Linux内核设计和Linux环境编程展开
- 感谢所有的MIT6.S081资源贡献者
- 感谢邹姝稚老师带领我完成OS基础理论的学习,我受益至今
- 讨论交流/指正错误,欢迎issue或与我联系[email protected]