选课类别:专业任务 | 教学语言:双语 |
课程类别:专业核心课 | 开课单位:计算机科学与工程系 |
课程层次:本科 | 获得学分:3.0 |
张老师讲课讲的非常好,真正意义上做到了深入浅出地讲明白操作系统。平时上课会有小quiz,基本上来源于课件,所以需要认真听讲,不过也有一些可以顺着常识去推理。作业比较简单,基本是要理解并阐述一个操作系统知识,比如进程切换怎么做的,段页内存管理是怎么翻译地址的。老师给我们有PPT课件,OSTEP 《三个简单片》对应的章节。三个简单片讲的非常非常好,把操作系统的XX需求的起源、solution、challenge讲的很完善,story telling如同奶奶讲的睡前故事,后边的参考文章也非常推荐读。张老师还会推荐一些OS的Paper,看完会让大家上课讲,我也非常喜欢这样,就像故事会(不是),所以上去讲了两次。
lab 老师和助教都非常非常好,很耐心地来回答我那些非常胡闹的问题,比如:操作系统为什么可以重启电脑,进程切换时TLB里的内容会怎么样,为什么perf可以看到程序的性能情况,如果我用gdb观察gdb会发生什么。我记得有一次作业是做进程切换,我们知道在进程切换里我们需要把寄存器的值存进Process Table中,但是我发现OSTEP里,进程切换还会将寄存器存储在Kernel stack中。我当时对此很不解。后来助教学长帮我找了x86的资料,在微信上给了我很长很长的解答,我当时特别特别感动,于是帮他也查了几百页的ARM手册,最后我们在lab上跟老师简单的分享我们的结果。
Project是做驱动开发,这个工作很好玩,需要我们去查手册并实现。我们做的是GPU驱动,位于Asterinas OS与Qemu两层之间。但是Qemu之前对接的都是Linux DRM框架,这个框架为了应对多样化的显示屏,规模非常大并且很复杂,因此我们做了一个更直接并且较简易的实现。很不幸的是,我们在测试阶段只在WSL成功了,在Linux Docker上都没有成功(具体原因可能是Docker对xhost的支持不是很好,网上也没有文档描述该现象)
最后可能是关于上这门课中碰到的一些资料:
中大的实验,他们也是用Rust教OS 中山大学 YatSenOS v2 操作系统实验教程 - YatSenOS v2 Tutorial
南大蒋岩炎老师的操作系统。讲得很好,适合有一定系统基础的朋友听。【[南京大学2024操作系统]】 https://www.bilibili.com/video/BV1Xm411f7CM/?share_source=copy_web&vd_source=72eac555730ba7e7a64f9fa1d7f2b2d4
Operating Systems: Three Easy Pieces 三片的中文版,如果你想速通这本书的话 Index of /~remzi/OSTEP/Chinese
我的进程切换作业答案:OS Assignment: Process - Haibin's blog
作为一门必修课程,我能给的建议就是这些了。如果还有什么,那就请我以《三个简单片》作结:
占个坑,写评教的时候今年OS总评还没出,因此稍微客观陈述一下除了成绩之外的部分。
今年的课程形式应该算是彻底的大改了,因为今年的课程是在计算机组成原理之后上的,所以首先我们也没有提及很多跟计算机组成原理重复的地方。其次,今年增加了一个Pre的环节,就是每个星期老师会选一篇Paper(都是很经典的操作系统的论文),然后班上同学报名来下周讲这篇Paper提及的主要内容,通过这种方式大概过了10几篇经典论文(但是遗憾的事情是其实本人完全没有来得及读完,然后每次别的同学Pre的时候中间一不注意就跟不上了所以其实到最后也没有听进很多也真的很私密马赛,但是如果自己选了一篇来讲的话,收获确实会不小)最重量级的事情在于,今年的实验课完全转换为了Rust来教(张老师有言:"If you cannot learn Rust in two weeks, you are doomed…",但是好处是现在本人Rust有点写上头了,这个学期另外一门课的Project也用Rust来写了、、、),实验课主要内容就变成了介绍Asterinas里面各种函数和方法的内容和特性(他们都是做什么的),以及使用了一个Asterinas简化版的操作系统来进行一些实验(不过今年不检查),同时我们的Project也是基于Asterinas来实现VirtIO的接口(提供了四个设备选择:Sound、GPU、Crypto、Filesystem,但是由于助教们没有完全测试过,所以这四个设备的难度和实现可能也都完全不同,坑啊T T)
张老师讲课真的很好(声音真的很好听T T),有些同学的Presentation真的做得很用心,让我也学到不少东西,也顺便借这门课入了Rust的门,感觉这是一门很有趣的语言,之后还想再多研究研究。之后这门课应该也会在我们的基础上有不少改进,在这里期待一下未来这门课的走向!
(看在我评分这么好的份上张老师求求您给我高点分吧QAQ)