Skip to content

EarthCloud/mit-xv6

Repository files navigation

MIT 6.S081 2020 Fall xv6操作系统实验仓库

我决定通过MIT6.S081学习操作系统,这是我完成lab所使用的仓库

希望能够坚持下去

该课程采用不同的分支来管理每个lab,master分支将记录我的一些心路历程

感谢所有为知识开放共享做出努力的人

主要参考和使用的页面与链接:

课程官网:

6.S081 Fall 2020

原文教材:

xv6: a simple, Unix-like teaching operating system

本地化资料:

All in One Gitbook

S081 公开课视频中文翻译Gitbook

中英字幕课程

2026.01.18 完成lab1

期末考完终于有了些空闲的时间,把lab1写完了,之前的大部分时间都在单纯的看课程和教材,没有真正上手的机会,现在真正动手写才发现真的有很多眼高手低的地方,所有事都得自己亲手做啊,后面的几个lab还会更难,尤其是页表那个,管他呢,干就完了。

在主分支以ch开头的文件夹中存着每章我自己的笔记(大部分抄的课本,小部分粘的和Gemini的问答,Gemini太超模了不得不说),希望能对自己和其他人有所帮助,链接在此处

现在CS和SE的课程现状真的很曹丹,总结下来就是“教务处的排课严重影响我的学习”,不过国内的确也在进行改革,像清华的OS已经在用MIT的教材了,而且他们自己也在搞rCore,还有南大的编译原理等等,希望未来能有更多高校加入到课程改革的行列中去。

从成都回到家,感觉一切东西都卸下来了,我想做什么就做什么。许昌今天也要下雪了,又是一年深冬,又到了看《都柏林人》的时间了。希望下学期能别这么浑浑噩噩。还有就是,无论如何,多给文学、音乐和自己一些时间吧。

我们生于一个被效率所暴政的时代,所以迷路的时光弥足珍贵,在各种意义上。

来自宇宙尽头的餐馆。

2026.01.19 添加ch2笔记

添加了ch2的笔记,主要是对操作系统架构和进程抽象的理解。我深入到了教材所提示的每一行代码,借着万能的G指导大致把它们啃下来了,通过这章,我知道了操作系统如何“点火”。希望能对更多人有所帮助。第七节花了我挺多时间的,可以瞅一瞅。

现在进入lab环节,准备开始动手写代码了。

今天许昌雪下得好大,呆在房间里有一种莫名的幸福感。

听着For Tracy Hyde来读教材是一种享受,都去听FTH好不好,近期最喜欢的JRock乐队。eukura声音有点像千早爱音有没有懂的(ky致歉)

他们的第一任主唱甚至是今泉爱夏,这下更喜欢了。夏bot嘿嘿,夏bot。

事已至此,睡觉睡觉。

2026.01.21 完成lab2

lab2真正进入到了内核当中,编写内核代码要抛弃掉原来的库函数思维,直接操作内存和寄存器,感觉很新鲜。

同时,我又想对国内的C语言课程开炮了。如果要教这门语言,我觉得重点在内存,要让学生理解显式能看到的东西在底层(内存)中到底是什么样子,理解变量的生命周期,理解它们在内存中的排布,这是C语言的最大特征。如果只是扯点库函数和算法,其它语言搞这些显然优雅得多(当然局限在CS和SE的C语言课,其他工科如果和计算机硬件关系不大完全可以不用C)。

这个实验会涉及一些中断和虚拟内存的东西,必须提前看看第四章,把系统调用的生命周期完全搞清楚(欧耶,ee的call)。

U23牛鼻,好久没有在国字号球队身上看到这样的表现了,再接再厉干死日本😋

雪停了天晴了,在家真好。

2026.01.29 添加ch3笔记

这次中间隔了挺多天,一方面是自己在写CSAPP的Bomb Lab,详细读了读CSAPP的第三章,还是有挺多收获的。第三章很难,但配合AI还是啃下来了,现在就要开始挑战lab了。

感觉有必要学学Rust了。

及时行乐,生活愉快!

2026.02.09 完成lab3

这中间过去了十来天,一是确实享受生活去了,及时行乐对身心健康帮助极大;二是这个实验确实难得批爆,来来回回调试花了很多时间,属实被自己蠢哭了。最后还算是弄完了,我已经燃尽了。

有很多东西其实就是需求驱动的,我从这个实验开始才真正认真写Git提交,努力控制合理的粒度、提供详细的提交信息,确实让项目管理舒适了很多,这些工程方面的内容永远是课本上学不到的。包括由于Linux环境所以没有用Clion,受不了VSCode内置的代码洞察而换了LLVM的clangd,这些都是实践中慢慢摸索出来的。LLVM这个项目还挺有意思的,后续可以多研究研究,算是未来的一个趋势吧。

近期在重听披头士,每每听到Here, There and Everywhere就挺有感触的。

生活不易,至少有音乐相伴。

2026.02.22 添加ch4笔记

第四章主要是关于中断的,Lec 6只需要读课本前五节就行了。但第6节十分重要,它是完成cow和lazy allocation两个实验的关键,相关内容会在Lec 8中详细涉及。

建议提前看看RISC-V的ABI,尤其是调用约定和寄存器的使用,这章的内容会用到。

我把格式化文件和clang配置放master分支了,需要自取。

过完年想起来继续推课了,感觉缓存清得差不多了...不过状态确实好了点。新年新气象,年三十二九给自己耳机掰断了,顺水推舟买了个新的。SHP9600真神吧我说,调教比9500好多了,终于听得清Bassline了,现在感觉9500那高频挺炸耳朵的。

玛德怎么要开学了。

3月4日二人称就要发行了喵,百万拿批泪牛满面。

2026.03.31 完成lab4,lab 5,lab 6,ch5

一个多月过去了,开学以来各种糟心事多到爆,很难找到大块的时间来做自己喜欢的事情了。不过好在我还是挤出来了点时间,焦虑和迷茫还不至于完全淹没我,还是那句话,之后多留些时间给自己吧。

锦江旁边的泡桐花挺好看的。

2026.04.08 添加ch5, ch6笔记

程算课百无聊赖把笔记搞了搞,感觉很有获得感。

最近买了个小的电路板,想着有朝一日能跑上自己写的内核,这个还支持视频输出,我想着把DOOM移植过来。It runs DOOM!

最后两章是个大头,好好搞吧,快要期中考试了,期中前希望能整得差不多吧。

2026.04.29 添加ch7, ch8, ch9笔记

过了差不多二十天,终于把课本啃完了,后面还有几个实验要攻克一下,总之课程也算是学了大半。期中考结束了,有机会闲下来做一些自己喜欢的事了,无论如何,享受生活是第一要务。

About

My learning footprint of MIT6.S081

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages