0%

Lab4主要分为三个部分。第一部分扩展JOS支持多CPU,实现轮转调度,添加了几个基本的进程管理的系统调用。第二部分实现了一个Unix-like的fork()。第三部分是抢占式多任务处理和进程间通信。

阅读全文 »

之前在做6.828Lab的时候,就看过elf文件。维基百科上面写了除了有elf的File header,还有Program header和Section header。对于后面这两者我当时分不清,在kern/env.c/load_icode()里面,加载一个可执行文件到进程中的那部分也不太清楚,抄的。最近在看《程序员的自我修养——链接、装载与库》这本书,解决了一些疑惑,所以记录一下。

阅读全文 »

Lab3主要分为两个部分,第一部分是创建environment,也即是process进程。创建后会加载一个程序到第一个进程中,然后运行。第二部分是处理系统调用/中断/异常。

阅读全文 »

在Lab2的笔记中,比较详细地描述了内存管理中的分页机制,但是并没有讲分段机制。这篇文章试着讲讲。

阅读全文 »

答辩结束后,终于开始入坑MIT6.828,正儿八经地学一下操作系统。使用的是2018年秋季的课程,现在好像改了,不叫这个名字了,这些都无所谓了。这里是官网。写这个东西也只是想让自己每次做完后记录一下,不然以后时间长了又忘了。

由于网上已经有很多人做了这个课程,也写了笔记,所以在我自己的笔记里,只会按着Lab,写一些我自己遇到的坑,或者自己感觉重要的东西,不会每个问题都记录。这篇文章会记录实验环境的准备和Lab1里的一些内容。在我做的过程中,大量参考此大神的笔记,在此表达感谢!

阅读全文 »

寒假的时候,应该是初八初九那几天,我姨姨他们回来了。我就去了一次杨河坝,在那住了一夜。人比较多,我就睡在客厅。

阅读全文 »