关于6.1810

终于,从寒假到现在磕磕绊绊算是把6.1810攻克了

这个课分为几个部分,讲义,课本,xv6本身以及课程。讲义是给你稍微溜一眼这节课要干啥用的,课本的参考价值极高,几乎做实验过一会儿就要翻一下。xv6就不说了,公认的艺术品,功能齐全而且每个调用的路径都极其清晰,哪怕你不按课本瞎改一些部分看报错也是挺享受的。课,emm…实在话,这个课是真干啊,真hacking啊,估计你讲义和书没看懂的话课程也看不懂。如果你没时间,只看Q&A就行了,代码示例可以跟着讲义自己弄。

jyy曾说过操作系统是一门增加内功的课,哪怕你的编程能力并不足以支撑你完成这门课程,你以后还会不断地在学习生活中无数次被相同的概念callback。你更习惯于gdb了,你能够解释concurrency和parallelism的区别了,你看汇编代码更快了,你看GFS和MapReduce的时候看到大篇幅的logging想到了ext2+journaling=ext3,你看那些卖虚拟化容器的技术也会感觉“这真没啥”了。

后来在课程实验快结束的时候你看到了OS-in-1000-lines,一个最初由日文写成的教程,补全了xv6没有告诉你的关于操作系统怎么从零开始的部分。它的代码不如xv6那么优雅,但是能让你真正体验一下什么叫“脏活累活”(点名批评virtio部分)

实验?lazy-allocation在2023版中被砍掉了,最喜欢的应该是copy-on-write和syscall,一个是让你突然意识到错误处理原来不止是层层包裹的try-catch和Option,还可以用来实现各种花样繁多的新功能。syscall是让你游走在各个文件之间的一个实验,做完之后感觉用gdb比用IDE里头那些被阉割过的玩意儿顺手多了,也让你在RTFSC的时候更习惯于trace了

总之,挺值得试试的,我对它的评价会远高于SICP和Algorithms。也许以后如果我大四的时候真的实在是闲的没事可能会尝试一下“上不封顶”的CS142?眼前的话,估计只能使用碎片时间增加一下os1000的其他功能了。

Licensed under CC BY-NC-SA 4.0
Maybe making a better tomorrow...
Built with Hugo
Theme Stack designed by Jimmy