-
Notifications
You must be signed in to change notification settings - Fork 378
OSPP 2020
今年,中科院软件所与华为 openEuler 项目共同举办了 “开源软件供应链点亮计划——暑期2020” 项目。该项目与 Google Summer of Code 形式类似:开源社区提供项目需求并提供导师(mentor),在校学生利用暑期时间进行开发,主办方为顺利完成的项目提供一定额度的奖金。无论 GSoC 还是这次的“点亮计划”,都是一种非常好的开源实践范式,能够有效地增进高校学生对开源的理解、增加与真实社区的接触,并积累宝贵的经验。
本次 rCore OS 开源社区有意作为社区加入这一计划,提供若干项目需求。欢迎有能力、有热情、有时间的小伙伴们参加,也欢迎小伙伴们提出更多需求。rCore OS 开源社区愿意和大家一起,为国内的开源生态添砖加瓦。
感谢上方来自 TUNA 的文案
- 开源协议:所有项目均采用 MIT License
- 自学RUST编程的在线指导
- 自学用RUST开发OS的在线教程
- 项目标题:rCore Tutorial 的 K210 开发板支持
- 项目描述:rCore Tutorial 是参考 rCore 编写的 Rust 语言操作系统的教程,目标平台是 RISC-V 64。目前它仅能够在 QEMU 模拟器中运行,我们希望它能够支持真实物理硬件。Kendryte K210 是国产的 RISC-V 芯片,一块开发板售价仅为 100 RMB 左右,非常适合教学使用。本项目的目标是为 rCore Tutorial 适配 K210 开发板,并完善相关的教学实验文档。
- 项目难度:低
- 项目社区导师:王润基
- 导师联系方式:wangrunji0408 AT 163.com
- 合作导师联系方式(选填):刘丰源,liufy17 AT mails.tsinghua.edu.cn
- 项目产出要求:
- 能够在 K210 开发板上完整运行 rCore Tutorial
- 补充实验指导文档,增加适配 K210 的相关内容
- (可选)完善 OS 的多核支持,并能够在 K210 双核 CPU 上运行
- 项目技术要求:
- 具备一定的 Rust 语言基础
- 熟悉 RISC-V 指令集,或者熟悉 MIPS 也可以
- 相关的开源软件仓库列表:
- 项目标题:zCore 的文档与单元测试完善
- 项目描述:zCore 是用 Rust 重新实现的 Zircon 微内核。目前我们已经按照官方文档的描述,实现了诸多 Zircon 内核对象,支持运行 shell 等基础程序。然而,随着后期开发进程的加快,大量代码缺少文档描述,并且没有实现单元测试,只能在 QEMU 中运行用户程序以检验代码正确性。本项目的目标是完善 zCore 的文档及单元测试,使其成为一个高质量的 Rust 社区项目。
- 项目难度:中
- 项目社区导师:王润基
- 导师联系方式:wangrunji0408 AT 163.com
- 合作导师联系方式(选填):潘庆霖,panqinglin00 AT 163.com
- 项目产出要求:
-
补充完善 zCore 各模块的代码文档。
目标是通过
#![deny(missing_docs)]
编译,并且能够让开发者通过阅读文档,快速理解 zCore 的代码结构和各部分功能。 -
参考 Fuchsia 官方文档及测试代码,为 zCore 中的内核对象补充单元测试。
目标让
zircon-object
模块的测试覆盖率提高到 90% 以上。 -
(可选)在 CI 中支持运行集成测试。 目标是最大化整体的测试覆盖率。
-
- 项目技术要求:
- 具备一定的 Rust 语言基础,能看懂并模仿现有代码即可
- 熟悉操作系统原理与简易实现
- 具有基础英文阅读和写作能力
- 相关的开源软件仓库列表:
- https://github.com/rcore-os/zCore (zCore 仓库)
- https://rcore-os.github.io/zCore/zircon_object (zCore 代码文档)
- https://fuchsia.dev/fuchsia-src/reference (Zircon 官方文档)
- 项目标题:zCore 的树莓派4支持
- 项目描述:zCore 是用 Rust 重新实现的 Zircon 微内核。官方的 Zircon 支持 x86_64 和 ARM64 两种指令集,并且曾经支持过树莓派平台(现在不行了)。目前我们的实现只支持 x86_64,因此希望将其移植到 ARM64 平台,并能够在树莓派4 上运行。好消息是,zCore 的前身 rCore 支持 ARM64 和树莓派3,因此有现成的代码可供参考和移植。
- 项目难度:高
- 项目社区导师:贾越凯
- 导师联系方式:equation618 AT gmail.com
- 合作导师联系方式(选填):王润基,wangrunji0408 AT 163.com
- 项目产出要求:
-
能够在树莓派4 上运行 zCore
-
(可选)能够在 ARM64 Linux 系统上运行 zCore libos
这个相对比较简单,因为基于 Linux host OS,不会涉及太多指令级别的改动。可以作为入门练手。
-
(可选)顺便把 rCore 也适配到树莓派4 吧
-
- 项目技术要求:
- 熟悉 Rust 语言
- 熟悉 ARM64 指令集,或做过其它平台的底层移植工作
- 熟悉树莓派,或有其它 ARM 板子的开发经验
- 相关的开源软件仓库列表:
- https://github.com/rcore-os/zCore (zCore 仓库)
- https://github.com/rcore-os/rCore (rCore 仓库,支持树莓派3B)
- https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials (树莓派上的 Rust OS 教程)
- 项目标题:rCore 到 zCore 的功能迁移
- 项目描述:rCore 是用 Rust 语言实现的兼容 Linux 内核。它支持四种指令集,能够运行比较丰富的应用程序。但是随着时间的积累,rCore 的代码越堆越多,很多内部实现缺乏推敲,需要优化和重构。后来我们从头开始实现了 zCore 项目,采用了更加清晰的分层结构,同时复用 Zircon 微内核的内核对象实现了 Linux 内核的部分功能(如内存管理和进程管理)。目前 zCore 中的 linux 模块已经能够运行基础的 Busybox 等小程序,但仍有大量原本 rCore 支持的功能没有实现。本项目希望将 rCore 的功能迁移到 zCore 当中,并借此机会进行重构。其中一些代码可以直接搬过来,剩下的可能需要调整适配(例如涉及到 async),还有一些可以直接基于 Zircon 内核对象进行实现(例如 epoll)。
- 项目难度:高
- 项目社区导师:王润基
- 导师联系方式:wangrunji0408 AT 163.com
- 合作导师联系方式(选填):陈嘉杰,c AT jia.je
- 项目产出要求:
- 能够在 zCore 上运行 rCore 支持的 Linux 程序:GCC,Nginx,Rustc 等
- 对新迁移过来的代码,要求补充代码文档和必要的单元测试
- 项目技术要求:
- 熟悉 Rust 语言
- 熟悉 Linux 系统调用
- 相关的开源软件仓库列表:
- https://github.com/rcore-os/zCore (zCore 仓库)
- https://github.com/rcore-os/rCore (rCore 仓库)
- 项目标题:改进 RVM 虚拟机
- 项目描述:RVM 是在 rCore 中实现的一个简易 Hypervisor。目前只支持 x86_64,利用 VT-x 硬件虚拟化技术,已经能够在 rCore 上运行 uCore(C 语言版本的 x86 教学操作系统)。我们希望继续完善 RVM,使其能够支持运行完整的 Linux 系统。此外,还希望将 RVM 从 rCore 中分离出来,作为独立项目。未来不但能够接入 rCore、zCore,还能作为 Linux 内核模块运行。
- 项目难度:高
- 项目社区导师:贾越凯
- 导师联系方式:equation618@gmail.com
- 合作导师联系方式(选填):戴臻旸,daizy19@mails.tsinghua.edu.cn
- 项目产出要求:
-
将 RVM 从 rCore 中分离出来作为独立项目。
-
能够在 rCore RVM 上运行完整的 Linux 系统。
-
(可选)能够把 RVM 作为一个 Linux module,在 Linux 启动后以 kernel module 的形式加载运行,然后把自己设定成 host 态,把 Linux 设定成 guest 态。
这个有参考,即基于 C 语言实现的 Jailhouse 和 Blue Pill
-
(可选)支持 ARM64 的硬件虚拟化,能够在树莓派上运行虚拟机。
-
- 项目技术要求:
- 熟悉 Rust 语言
- 熟悉虚拟化技术
- 熟悉 x86_64 指令集,理解 VMX 的原理和基于 VMX 的开发
- 相关的开源软件仓库列表:
- https://github.com/rcore-os/rCore (rCore 仓库)
- https://github.com/equation314/rCore/tree/rvm (正在开发中的包含 RVM 的 rCore 仓库)
- https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials (树莓派上的 Rust OS 教程)
- https://github.com/siemens/jailhouse (基于 Linux module 的 Hypervisor)