rCore-Tutorial-detail
介绍
本项目是对于清华大学 rCore-Tutorial 项目的知识点补充与引申
本文的目的是使用Rust语言去实现一个基于RISC-V架构的操作系统内核,利用Rust语言的关键特性使得操作系统内核具备线程安全的特性。该操作系统内核是一个具备了操作系统基础的核心机制的微内核,基于负责与硬件通信的SBI,包括引导程序、内核加载器bootloader、中断、内存、进程、线程、文件系统等模块。
本文首先对相关研究现状进行了分析,对于Rust语言、RISC-V架构及其汇编语言进行简要介绍;自上而下对阐述了整个内核架构的设计方案,在技术路线中给出了操作系统内和各个模块之间的关系与实现思路;然后对于操作系统内核进行了自下而上的实现,并给出了关键代码及其解释,最后经过细化的系统测试,验证功能的正确性。
本文基于Ubuntu操作系统和Rust工具链作为开发环境,使用Rust语言以及RISC-V架构的汇编语言的混合编程进行开发,利用QEMU虚拟机进行调试和测试所实现的操作系统内核功能。
目前本文对示例代码进行了修改,调整了复现逻辑,增加了相关知识的拓展,增加了难点的讲解。
力求做到从零开始实现操作系统内核,截至目前全部实验均可复现。
目录
- OS设计方案
- 环境部署
- 实验零
- 实验一
- 实验二
- 实验三
- 实验四
- 实验五
- 实验六
TO DO
- 添加网络部分的支持
- 添加更为详细的代码注释
- 添加知识点,丰富文档内容
- 添加移植到K210板的实验过程
鸣谢
感谢清华团队对整个 rCore 项目做出的开拓性贡献
安装教程
-
安装完整 git 环境
-
加入 rCore学习小组
-
使用
git clone https://gitee.com/rCore-Tutorial-detail/r-core-tutorial-detail.git
或
git clonegit@gitee.com:rCore-Tutorial-detail/r-core-tutorial-detail.git
克隆代码到本地
使用说明
- 本项目根据《rCore-Tutorial V3》 与《rCore-Tutorial-Book 第三版》综合而成,如无法复现,请参考原开发文档
- 图片等资源文件以相对路径存储在
./资源文件/${filename}.assets
参与贡献
- Fork 本仓库
- 新建分支
- 提交代码
- 新建 Pull Request
成员
指导教师:赵霞
学生:彭淳毅 路博雅