总结
rust编程语言
第一阶段由于原先有C/C++的编程基础,基础语法上手还是比较快的,但在rust语言在内存管理方面的特性还是需要适应一段时间。但学习rust的经历中,也是能学到很多,能看到很多其他编程语言的影子,但也有rust自身的特性,如内存管理方面。多方面多语言融会贯通,收获颇丰。
rcore
由于在操作系统方面是0基础,在进入第二阶段的学习之前,我先去学习了Mit的xv6课程,有了这方面的基础,后续的学习会简单很多。
在实验上第一次尝试用rust写内核,体验挺奇妙的,在内存管理上给人与C语言完全不同的体验。
- ch3 熟悉系统调用
- ch4 内存映射出问题,调试比较麻烦
- ch5 熟悉进程调度算法
- ch6 挺麻烦的要自己实现一些接口
- ch8 死锁检测,耗费时间比较多,走了一些弯路,好在最后调试发现问题所在
arceos
作业难度比上一阶段简单一些,但模块化的设计思路很巧妙,体验比较新奇。
在实验上
- [print_with_color] 仿照原有代码的color包装即可完成
- [alt_alloc_bump] 内存分配算法 这里的测试文件是不很全部
- [ramfs_rename] 动手实现一个处理函数
- [sys_map] 花费的时间比较多,后续调试才发现是访问权限的问题
- [simple_hv] 解析指令,修改上下文即可
综上
总的来说,训练营的学习收获还是挺多的,也尝试了用rust编写内核,这是我从未涉猎的领域,希望在后续的学习中能学的更多,后续希望能写出自己的内核,尝试在操作系统中加入自己的想法。