add CS162 & MIT6.S081

This commit is contained in:
zhongyinmin
2021-12-01 20:24:32 +08:00
parent aa62416881
commit f402a5eb3e
2 changed files with 58 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
# CS162: Operating System
## 课程简介
- 所属大学UC Berkeley
- 先修要求CS61A, CS61B, CS61C
- 编程语言:CX86汇编
- 课程难度:🌟🌟🌟🌟🌟🌟
- 预计学时200小时+,上不封顶
这门课让我记忆犹新的有两个部分:
首先是教材,这本书用的教材`Operating Systems: Principles and Practice (2nd Edition)`一共四卷,写得
非常深入浅出很好地弥补了MIT6.S081在理论知识上些许空白非常建议大家阅读。相关资源会分享在本书的经典书籍推荐模块。
其次是这门课的Project —— Pintos。Pintos是由Ben Pfaff等人基于X86编写的教学用操作系统Ben Pfaff甚至专门发了篇
[paper](https://benpfaff.org/papers/pintos.pdf)来阐述Pintos的设计思想。和MIT的xv6小而精的lab设计理念不同
Pintos更注重系统的Design and Implementation。Pintos本身仅一万行左右只提供了操作系统最基本的功能。而4个Project就是让你在这个极为精简的操作系统之上分别为其增加线程调度机制Project1系统调用Project2虚拟内存Project3以及文件系统Project4。所有的Project都给学生留有很大的设计空间总代码量在5000行以上。根据Stanford学生[自己的反馈](https://www.quora.com/What-is-it-like-to-take-CS-140-Operating-Systems-at-Stanford)在3-4人组队的情况下后两个Project的人均耗时也在40个小时以上。
虽然其难度很大但StanfordBerkeleyJHU等多所美国顶尖名校的操统课程均采用了Pintos。因为如果你真的对操作系统很感兴趣Pintos会极大地提高你编写和debug底层系统代码的能力。在本科阶段能自己设计、实现并debug一个大型系统是一段非常珍贵的经历。
北大2022年春季学期的操作系统实验班也将会首次引入Pintos作为课程project我作为这门课的TA顶着被口水淹没的风险依旧希望能用这样的尝试让更多人爱上系统领域为国内的系统研究添砖加瓦。
## 课程资源
- 课程网站https://cs162.org/
- 课程视频:参见课程网站
- 课程教材:[Operating Systems: Principles and Practice (2nd Edition)](http://ospp.cs.washington.edu/)
- 课程作业6个homework4个project具体要求参见课程网站
## 资源汇总
由于北大的操统实验班采用了该课程的project为了防止代码抄袭我的代码实现没有开源。如果你不是北大的学生并且仅有
自学需要,可以和我[邮件联系](zhongyinmin@pku.edu.cn)。

View File

@@ -0,0 +1,28 @@
# MIT 6.S081: Operating System Engineering
## 课程简介
- 所属大学:麻省理工学院
- 先修要求:体系结构 + 扎实的C语言功底 + RISC-V汇编语言
- 编程语言CRISC-V
- 课程难度:🌟🌟🌟🌟🌟
- 预计学时150小时
麻省理工学院大名鼎鼎的PDOS实验室开设的面向MIT本科生的操作系统课程。开设这门课的教授之一 —— Robert Morris教授曾是一位顶尖黑客世界上第一个蠕虫病毒Morris就是出自他之手。
这门课的前身是MIT著名的课程6.828MIT的几位教授为了这门课曾专门开发了一个基于X86的教学用操作系统JOS被众多名校作为自己的操统课程实验。但随着RISC-V的横空出世这几位教授又基于RISC-V开发了一个新的教学用操作系统xv6并开设了MIT6.S081这门课。由于RISC-V轻便易学的特点学生不需要像此前JOS一样纠结于众多X86“特有的”为了兼容而遗留下来的复杂机制
可以专注于操作系统层面的开发。
这几位教授还专门写了一本[教程](https://pdos.csail.mit.edu/6.828/2021/xv6/book-riscv-rev2.pdf)详细讲解了xv6的设计思想和实现细节。
这门课的讲授也很有意思老师会带着学生依照xv6的源代码去理解操作系统的众多机制和设计细节而不是停留于理论知识。每周都会有一个lab让你在xv6上增加一些新的机制和特性非常注重学生动手能力的培养。整个学期一共有11个lab让你全方位地深刻理解操作系统的每个部分非常有成就感。而且所有的lab都有着非常完善的测试框架有的测试代码甚至上千行让人不得不佩服MIT的几位教授为了教好这门课所付出的心血。
这门课的后半程会讲授操作系统领域的多篇经典论文,涉及文件系统、系统安全、网络、虚拟化等等多个主题,让你有机会接触到学界
最前沿的研究方向。
## 课程资源
- 课程网站https://pdos.csail.mit.edu/6.828/2020/schedule.html
- 课程视频:详见课程网站
- 课程教材https://pdos.csail.mit.edu/6.828/2021/xv6/book-riscv-rev2.pdf
- 课程作业11个lab具体要求详见课程网站
## 资源汇总
我在学习这门课中用到的所有资源和作业实现都汇总在[这个Github仓库](https://github.com/PKUFlyingPig/MIT6.S081-2020fall)中。