-
Notifications
You must be signed in to change notification settings - Fork 377
Challenges
- 支持最新rust编译器
- FAT32文件系统
- 移植 Tokio
- 移植基于rustc/cargo的编译环境
- 移植python/go/java的编译环境
- ARM-64/RISC-V 32/64位支持
- rustify zircon
- 纯研究
用最新的rust编译器(2019.07.01以后)能编译并正确运行rCore操作系统
本项目的目的是让最新的rust语法和各种相关配置支持rCore。这样rCore可以更好地利用rust语言的各种最新特性。
该项目的预期结果是,最新的rust编译器(2019.07.01以后)能编译并正确运行rCore操作系统 on x86-64/arm-64/riscv-64。 扩展结果是没有warning编译信息。
有rust语言经验者优先,但不是必需的。学生需要了解当前的最新的rust语言和它的最新特征。
https://github.com/LearningOS/rcore_step_by_step/
陈嘉杰
容易
为rCore实现FAT32文件系统驱动程序
本项目的目的是在rCore上实现FAT32文件系统。这个项目将从使用MBR和GPT分区表进行分区检测开始。在可以检测到分区之后,将检查文件系统是否有已知的文件系统类型。将为任何检测到的FAT32文件系统启动FAT32驱动程序。该驱动程序将同时支持读和写功能,使用rCore已经实现的Simple FS(SFS作为示例实现进行比较。如果项目提前完成,则可以开始处理其他文件系统类型。
该项目的预期结果是,rCore将为所有检测到的FAT32文件系统自动启动FAT32文件系统内核模块,允许读取和修改这些文件系统。
有文件系统经验者优先,但不是必需的。学生需要了解当前的rCore SFS文件系统,并在项目期间研究FAT32。
https://github.com/LearningOS/rcore_step_by_step/
王润基
容易
移植tokio支持多个异步rust程序
这个项目的目的是将mio和tokio移植到rCore。这个项目将从修改mio和tokio开始,使它们在rCore上正确编译。编译完成后,这里将测试tokio用法的示例。测试失败将在大多数示例在rCore上工作之前得到解决。如果项目提前完成,就可以开始移植net2 crate,并处理剩余的测试失败。
这个项目的预期结果是支持许多rCore上的异步rust程序。
有异步I/O经验者优先,但不是必需的。学生需要了解rCore操作系统的event支持,并在项目期间研究mio和tokio。
https://github.com/LearningOS/rcore_step_by_step/
刘丰源
容易
移植基于rustc/cargo的编译环境,支持在rCore上编译rCore
这个项目的目的是实现rCore上编译自身的能力。
这个项目的预期结果是支持在rCore上编译rCore。
有rCore/rustc经验者优先,但不是必需的。学生需要了解rCore操作系统的编译器支持能力。 目前能支持gcc和rustcc的单个文件编译
https://github.com/LearningOS/rcore_step_by_step/
李晨昊
中等
移植基于python/go/java的编译环境,支持在rCore上编译各种语言的源程序
这个项目的目的是实现rCore上编译各种语言的能力。
这个项目的预期结果是支持在rCore上编译基于python/go/java的能力。
有rCore/rustc经验者优先,但不是必需的。学生需要了解rCore操作系统的编译器支持能力。 目前能支持gcc和rustcc的单个文件编译。
https://github.com/LearningOS/rcore_step_by_step/
陈渝
中等
将rCore移植到AArch64/RISC-V体系结构
这个项目的目的是将rCore移植到64位ARM设备,如Raspberry Pi-3。这个项目将从移植内核开始,实现内存检测、分页和安全环支持。在启动用户空间二进制文件之后,应该移植在串行端口上启动shell所需的菜谱。如果项目提前完成,则可以在framebuffer支持上开始工作,允许对rCore的图形堆栈进行移植。
目前rCore已经能在Raspberry Pi-3/RISC-V开发板上运行,有音频驱动支持,有emmc 块设备驱动支持。可考虑的项目有:
- 移植到基于全志CPU的香蕉派开发板上
- 移植到基于瑞星微 3288+ CPU的开发板上
- 支持基于ARM 64多核Raspberry PiFramebuffer/
- 支持基于RISC-V 64多核的开发板上
- 支持Raspberry Pi-3/RISC-V 64开发板上的其他外设(USB(已有初步支持了),NIC,GPU等)
有ARM设备经验者优先。学生需要学习有关RUST写操作系统内核,并在项目中研究他们选择的设备。
https://github.com/LearningOS/rcore_step_by_step/
贾越凯
较难
我们发现zircon的某些特征与rust语言本身的一些特征有相似之处,所以想在rcore已有trait的基础上,用rust重写zircon --zcore,看看能否把二者的独特性结合起来。
该项目的预期结果是zcore基于rust语言编写,且与zircon的向上功能(syscall等)兼容。
有C++/rust语言经验者优先。
正在进展中
- how to verify rustlang-based kernel
- how to analysis the WCET feature of rcore
- how to assembly kernel by trait
- how to add hot-fix support on rcore
- the equivalence between of rcore and ucore
- rcore for labeled-riscv
- rcore for xpc
- rcore for user-level interrupt
- normal app can run in kernel
- ......