Skip to content

Latest commit

 

History

History
6 lines (4 loc) · 1.98 KB

ucore-history.md

File metadata and controls

6 lines (4 loc) · 1.98 KB

ucore历史


写一个教学OS的初衷是陈渝老师和向勇老师想参考MIT的xv6/JOS开发一个能够与OS课程教材相配套的OS实验环境。没有直接采用xv6/JOS的原因是xv6没有完整的保护模式页机制和虚存管理机制,JOS不是传统的UNIX 单体内核架构,而是Exokerne内核架构,与当前OS教学的知识点有点远,在互联网上找了一圈,没有合适的。有人说为何不用Linux?其实Linux确实挺好的,只是对于首次学习OS原理的本科生要在短短一学期内搞懂Linux的部分实现细节,可能付出的代价会比较大,需要冒着挂掉其他课的风险。为此陈渝老师鼓励他带的硕士研究生王乃峥试试能否仿照xv6和linux自己鼓捣一个教学用的小OS,并用Ken Thompson和Linus在短短23个月分别开发了UNIX和Linux的故事来从精神上激励他。王乃峥同学看了xv6的代码,本着试试看的想法,就开始coding,并查看各种相关文档和资料,发现也只花了短短1个不到的时间就完成了支持lab1实验的ucore OS;为此信心大增,以月为单位又接连完成了支持lab2lab8的ucore OS,前后大约花了8个月(这8个月还顺便完成了减轻体重和找女朋友的重要工作)。做完此事后,王乃峥同学离毕业只有3个时间了。有了之前OS开发的底子,他在3个月的时间内,完成了Linux kernel相关的硕士课题,顺利毕业,开始了他的创业生涯。

而陈渝老师鼓励和引导后续的学生继续着操作系统教学和科研的快乐之旅。目前发现ucore中有不少的bug(不过少于Linux的bug),陈渝老师准备带着学生再研究一些算法、方法和工具,能够在ucore运行前通过静态分析的方法发现其潜在的bug,而且希望能够在ucore漰溃后,找到引起bug的内核代码在哪里,并能分析出为何这个内核代码会导致ucore漰溃的因果链。希望这样能够减轻大家学习OS实验的负担。