2023秋冬季开源OS训练营第二阶段总结报告
首先感谢各位老师和助教,为我们呈现了这样一部优秀的Rust-OS教程。我本人是北航计算机学院大四学生,大二上过使用C语言编写的MOS操作系统课程。第二次系统性地学习操作系统,让我对OS的基本概念、本质原理、Rust编程能力等有了很大的进步和提升。下面对我在各个Lab中的收获进行总结。
Lab1
Lab1实际上引入了一个分时操作系统。该Lab较为简单,让我重新回顾了产生分时机制的原因以及具体实现。将任务分成多个时间片来执行,应用程序以为自己独占了整个CPU,是本章要理解的重点。
Lab2
这章引入了地址空间的抽象,应用程序以为自己独占了整个物理内存。我在本章学习中首先回顾了内存管理的知识,由于大二操作系统课程是基于MIPS汇编,且不区分内核地址空间和用户地址空间,因此又花了些功夫学习riscv页表机制、跳板页面机制。
Lab3
该章对进程的管理中规中矩,特色在于使用Rust语言编写,熟练了我对Rust的编程能力。
Lab4
本章主要介绍了一种文件系统的实现。我大二学习的OS属于微内核操作系统,将文件系统作为了一个用户态进程,其他进程请求文件系统服务时是通过进程间通信IPC机制实现的。而rCore的文件系统则融入到内核中,分层性感觉更强,也让我对inode有了清晰的理解,原来就是文件系统底层辨识文件的标识。
Lab5
还没时间做,想先进行第三阶段hypervisor的学习。
对Rust-OS的体会
用Rust语言编写OS,让我体会最深的不是安全性,而是方便。以前用C写OS,要专门编写释放内存的函数,而用Rust,只需要一条drop命令,甚至不需要drop,待Arc的引用计数清零,整个结构体及所包含的所有内容,全部都会被回收,真是太方便啦。