第一阶段是对rust的系统性学习,主要结合习题了解相关语法语义以及特性。
第二阶段结合实验指导书,对操作系统基础知识展开系统性学习。ch1跟随指导构建裸机环境,了解一个helloworld程序如何脱离标准库在开发和运行。ch2了解特权级切换相关的一些寄存器的功能,以及特权级切换的执行过程。ch3实现了一个简单的sys_trace功能,用于记录和返回系统调用信息。ch4了解sv39多级页表的字段意义和功能,学习rcore中内存管理机制,实现内存映射功能。ch5学习rcore的进程管理机制,实现进程创建并执行的功能,学习实现stride算法。ch6学习easy-fs文件管理机制,实现文件硬链接计数和返回文件节点属性的功能。ch8学习了三个同步互斥机制,实现了基于mutex和信号量的死锁检测机制。
第三阶段结合课程视频和PPT内容,对arceos进行简单的学习。基于已经实现的功能,完成一些比较简单的功能的实现。print_with_color修改println宏,加入了颜色显示功能。support_hashmap基于Vec和BTreeSet手动实现一个hashmap。alt_alloc结合PageAllocator和ByteAllocator实现了一个双端分配器。sys_mmap实现了一个内存映射的系统调用,加载文件内容,虚拟内存映射到物理内存。simple_hv简单的对加载过程中的a0和a1进行设置。
经过前三个阶段的学习,初步积累了对操作系统的一些非常粗浅的认知,还缺乏一个比较全面的系统的了解,管中窥豹。希望在第四阶段的学习中,自己能够戒骄戒躁,加深学习,提升自己。