项目整体介绍
RustOS起源于清华大学操作系统课(2018春)的大实验。立项初衷是使用Rust语言移植ucore_os_lab,并利用Rust语言特性进行SMP多核优化。
同时进行的还有另外两个Rust小组,目标分别是实现LKM(内核可加载模块)及面向ARM的移植(基于CS140e)。考虑到OS的高耦合性,三组开发独立进行,目前尚未合并。
我们发扬革命乐观主义精神制定了开发计划,之后发 现(近乎从零开始)重写OS的工作量远超预期。经过约两个月的爆肝,我们仅完成了大部分ucore_os_lab的移植工作,多核支持完全没有开始。
转眼到了操作系统专题训练课(2018秋),接下来的历史将由大家共同书写!
以下言论均为作者个人观点,欢迎读者共同探讨改进。
大量用户程序,直接拿来用。
目前内核中三大模块:内存管理、进程管理、文件系统,都已经作为独立的crate存在。致力于让使用者:实现底层支持,享用高层功能。
借助Rust强大的包管理系统,我们可以方便地复用别人的代码。目前OS的如下功能,均由外部库完成:x86_64和riscv底层支持,堆分配算法,ELF解析,自旋锁,日志……
- 模块化内存管理,进程管理
- 支持rv32
- !! 进程和文件系统的接合(目前ls等程序尚未实现)
- !! xv6 x86_64 用户程序测试
- ! 按OS lab顺序进行拆分
- ! 多核的启动:rv32,x86_64
- ! 多核支持和优化(参考sv6)
- rv64支持(依赖于Rust for RV64编译器)
- 无MMU支持(如RISCV M-Mode)
- 网 络驱动
- 跟踪分析工具
Last modified 4yr ago