0%

2024秋冬季开源操作系统训练营第二阶段总结报告

第一阶段报告

在加入这个课程的时候已经学习 rust 小半年了,rustling 原项目也是完整的写过一次,所以第一阶段很快就通过了。第一阶段的 rustling 是魔改版,确实让我学到了很多我之前不太了解的东西。

第二阶段报告

这个阶段的学习直接戳中我的知识盲区,汇编、操作系统这些我是一点不会。

困难

应该说都是困难?

卡我最久的应该是内存分页和文件系统了,这种一层一层抽象上来的我看的是眼花缭乱,物理结构和程序结构的转换,在此基础上的再一层抽象在当时给了我很大的阅读困难。

收获

首先这几次学习解开了我之前的误区和疑惑,特别是系统调用这一方面,我之前都不知道原来特权级这个概念,不知道为什么汇编需要在操作系统支持下运行。现在我知道很多操作是需要系统提供接口,需要用户态和内核态的切换。

这是我第二次写这个体量的 rust 项目,编写过程中经常写出很多哭笑不得的代码,比如在持有锁的前提下再次请求锁导致死锁,在单次借用后不 drop 再次借用导致 panic。
通过这次的学习,我的 rust 编程能力无疑得到了提升,我可以明显感觉到我的代码可读性比之前好不少,对于写注释也更加得心应手。

在学习过程中与群友的讨论中,我也对其中的汇编代码理解更深,通过我在本机的多次测试,也加深了我对任务切换、特权级跳转的认识。

这五个 lab 的代码难度确实不是很高,主要难点都在于理解 os 的组织形式,没有搞清楚 os 的其他代码就难以下手,但是理清思路之后写起来就没有什么难度。