本门课MIT 6.S081为MIT的本科生操作系统课程,由浅入深的讲解了页表、trap、系统调用、中断、锁、文件系统等操作系统概念及其在xv6中的实现,个人收获颇丰,也是第一次学习操作系统,每一部分的源码都详细的看了一遍,感觉非常棒!
从3月份到5月份,我断断续续(4月份开始实习了时间片比较零碎)看完了Lec1-Lec15,也就是xv6book相应章节的讲解,并做完了Lab1-Lab9,后面一些lecture和两个lab涉及论文的阅读和讲解,暂时不准备看了,等后面有时间再来填坑!
以下为我对每一个Lab的理解与实现,如有瑕疵,请指正!
Lab1: Xv6 and Unix utilities
Lab2: system calls
Lab3: page tables
Lab4: traps
Lab5: xv6 lazy page allocation
Lab6: Copy-on-Write Fork for xv6
Lab7: Multithreading
Lab8: Locks
Lab9: file system
同时,我也将代码同步至此github仓库中(每一个lab是一个branch),仅供参考!