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