课程简介
所属大学 | NJU |
---|---|
先修课程要求 | 良好英语水平 + NJU ICS |
编程语言要求 | C |
课程网站 | 蒋炎岩老师的主页 |
NJU 十分知名的课程,不过在 21 年之前似乎还没有如今的名气。这门课程在 23 年开始了混班教学(听说是这样),蒋炎岩老师把自己这几年(主要是 23 年)的教学方式和思考写了一篇 paper,发在了USENIX ATC 2023(CCF A) 上,可以读读这篇论文看看能不能提起你对这种教学方法和抽象的兴趣
课程分为 5 个编程实验和 3 个系统实验,其中编程实验大概 200~300 行代码就可以解决,系统实验则难度较大。
课程的知名点在于老师讲课的 Geek 风格,知识的拓展,以及其难度巨大的 Lab
课程教材
课程使用的教材为 《OSTEP》(《Operating Systems: Three Easy Pieces》)
蒋炎岩老师上课时提过:课程只是起到引导概括的作用,想要深入理解还是需要自己去阅读教材,完成实验。
OSTEP 确实是一本足够好的 OS 教材,分为三部分:
- 虚拟化
- 并行
- 持久化 在阅读教材时,不必拘泥于顺序如何,但请记得需要带着问题去阅读,从教材中寻找答案。
Info
当然教材也很多,你可以不局限于这一本,也可以看看银杏书和 AST 的几本书。
难度
以一张图来说明其难度:
我认为难度主要集中在 Lab 上,其指引与 ICS 相比淡了许多,想必这是因为学生们都已经被 ICS 养成了 RTFM ,STFW 和 RTFSC 的习惯了吧。
但回顾 ICS 中 NJU 老师们的语录:
请坚持下来,如果你选择了完成这门课程。
优点
- 上课足够现代化,足够友好,老师甚至会在 b 站开直播,并且开着 OBS 录屏,等课程结束后上传到 b 站;并且老师每堂课之前都会有 change log,每节课都在听取意见(印象最深刻的就是蒋炎岩因为看直播的说看不清 ppt,下一节课就直接在 OBS 中把 PPT 变成图片的形式贴上去了)
- 老师上课真的在用 Linux to go 上课,真的在现场手写代码,用的 fish, vscode + vim 命令行敲的飞起,彻底摆脱照本宣科或者念 PPT 的老师。他的知识点中几乎每个都有自己写的例子,他会现场编译运行给你看,也会给你看源代码
- PPT 做的也十分有趣,据我观察应该用的是
reveal.js
和markdown
,甚至还会经常引用论文,游戏,还有一些知名梗,还会经常使用 GPT - 讲述的内容简单易懂,深入浅出,但不失准确,并且你也能在课上感受到与时俱进的工业 OS 知识,对开拓视野来说是很难得的机会,最重要的是,蒋炎岩老师似乎没有知识的诅咒(?
还有很多优点,这里不再说明,但大家对这门课的评价确实很高,有说比肩四大的(对我个人来说,我觉得并没有过誉,毕竟这是一门中文课,对大多数学生来说,其理解难度就排除了语言的那部分难度),更多的评价可以看这里 知乎评价-蒋炎岩的操作系统
在蒋炎岩老师的课程中你确实能感受到他对课程投入的心血,也能感受到他对技术的热情和追求,甚至还能看见他现场给你表演如何 RTFSC,RTFM 和如何 gdb
缺点
如果难度大算缺点的话……
Important
好消息!jyy 老师开启了蹭课通道了,先到先得
对校外的同学来说,最大的缺点可能就是没办法知道自己的实现是否正确了(因为 OJ 只开放给 NJU 的学生使用)
课程资源
课程实验: | 蒋炎岩老师的主页 |
---|---|
课程 Slides: | 蒋炎岩老师的主页 |
课程教材: | OSTEP |
课程视频: | https://space.bilibili.com/202224425?spm_id_from=333.337.0.0 |