这是我第二次参加这个训练营了。
因为有过参加一次这个训练营的经历,所以第一阶段和第二阶段对我难度不算太大。第一阶段在前两周抽空完成了。第二阶段重新看了 rCore-Tutorial 又有了些不一样的收获。整体来说前两阶段相较于之前更加完善了,比如有完善的评测机制,可以来判断自己是否实现正确。
学习记录:https://github.com/uran0sH/2023a-os-comp-note
因为对 rCore-Tutorial 还有些印象,所以 ch1 ch2 ch3 都很快的复习了一遍。ch3 的实验内容倒是于之前不同,不过难度也不算很大,很快就有了思路并且将它完成了。ch4 是我这次阶段主要学习的内容,因为之前学习的时候对这块内容有点一知半解的:尤其是开启分页后,内核是如何去管理物理页的(因为开启后内核是不能直接访问到物理地址的)。所以这次重点的学习了一下,并且做了笔记。mmap 和 munmap 实验和之前的基本相同,不过这次需要适配 sys_get_time 和 sys_task_info 系统调用。到了 ch5,还是实现一个 spawn,但是我上一次训练营实现的 spawn 感觉有点问题,这次重新实现了一遍。stride 调度算法对这次的代码进行了适配调整。ch6 实现链接和 fstat,因为对 Linux 这块实现原理比较了解,很快就知道如何去实现了。
对第三阶段的期望:之前第三阶段是做了一些文档的工作,这次想参与一些代码的开发。