Skip to content

OSPP 2020

Runji Wang edited this page May 29, 2020 · 6 revisions

项目简介

今年,中科院软件所与华为 openEuler 项目共同举办了 “开源软件供应链点亮计划——暑期2020” 项目。该项目与 Google Summer of Code 形式类似:开源社区提供项目需求并提供导师(mentor),在校学生利用暑期时间进行开发,主办方为顺利完成的项目提供一定额度的奖金。无论 GSoC 还是这次的“点亮计划”,都是一种非常好的开源实践范式,能够有效地增进高校学生对开源的理解、增加与真实社区的接触,并积累宝贵的经验。

本次 rCore OS 开源社区有意作为社区加入这一计划,提供若干项目需求。欢迎有能力、有热情、有时间的小伙伴们参加,也欢迎小伙伴们提出更多需求。rCore OS 开源社区愿意和大家一起,为国内的开源生态添砖加瓦。

感谢上方来自 TUNA 的文案

rCore Tutorial 的 K210 开发板支持

  1. 项目标题:rCore Tutorial 的 K210 开发板支持
  2. 项目描述:rCore Tutorial 是参考 rCore 编写的 Rust 语言操作系统的教程,目标平台是 RISC-V 64。目前它仅能够在 QEMU 模拟器中运行,我们希望它能够支持真实物理硬件。Kendryte K210 是国产的 RISC-V 芯片,一块开发板售价仅为 100 RMB 左右,非常适合教学使用。本项目的目标是为 rCore Tutorial 适配 K210 开发板,并完善相关的教学实验文档。
  3. 项目难度:中
  4. 项目社区导师:王润基
  5. 导师联系方式:wangrunji0408 AT 163.com
  6. 合作导师联系方式(选填):刘丰源,liufy17 AT mails.tsinghua.edu.cn
  7. 项目产出要求:
    • 能够在 K210 开发板上完整运行 rCore Tutorial
    • 补充实验指导文档,增加适配 K210 的相关内容
    • (可选)完善 OS 的多核支持,并能够在 K210 双核 CPU 上运行
  8. 项目技术要求:
    • 具备一定的 Rust 语言基础
    • 熟悉 RISC-V 指令集,或者熟悉 MIPS 也可以
  9. 相关的开源软件仓库列表:

zCore 的文档与单元测试完善

  1. 项目标题:zCore 的文档与单元测试完善
  2. 项目描述:zCore 是用 Rust 重新实现的 Zircon 微内核。目前我们已经按照官方文档的描述,实现了诸多 Zircon 内核对象,支持运行 shell 等基础程序。然而,随着后期开发进程的加快,大量代码缺少文档描述,并且没有实现单元测试,只能在 QEMU 中运行用户程序以检验代码正确性。本项目的目标是完善 zCore 的文档及单元测试,使其成为一个高质量的 Rust 社区项目。
  3. 项目难度:中
  4. 项目社区导师:王润基
  5. 导师联系方式:wangrunji0408 AT 163.com
  6. 合作导师联系方式(选填):潘庆霖,panqinglin00 AT 163.com
  7. 项目产出要求:
    • 补充完善 zCore 各模块的代码文档。

      目标是通过 #![deny(missing_docs)] 编译,并且能够让开发者通过阅读文档,快速理解 zCore 的代码结构和各部分功能。

    • 参考 Fuchsia 官方文档及测试代码,为 zCore 中的内核对象补充单元测试。

      目标让 zircon-object 模块的测试覆盖率提高到 90% 以上。

    • (可选)在 CI 中支持运行集成测试。 目标是最大化整体的测试覆盖率。

  8. 项目技术要求:
    • 具备一定的 Rust 语言基础,能看懂并模仿现有代码即可
    • 熟悉操作系统原理与简易实现
    • 具有基础英文阅读和写作能力
  9. 相关的开源软件仓库列表:

zCore 的树莓派4支持

  1. 项目标题:zCore 的树莓派4支持
  2. 项目描述:zCore 是用 Rust 重新实现的 Zircon 微内核。官方的 Zircon 支持 x86_64 和 ARM64 两种指令集,并且曾经支持过树莓派平台(现在不行了)。目前我们的实现只支持 x86_64,因此希望将其移植到 ARM64 平台,并能够在树莓派4 上运行。好消息是,zCore 的前身 rCore 支持 ARM64 和树莓派3,因此有现成的代码可供参考和移植。
  3. 项目难度:高
  4. 项目社区导师:贾越凯
  5. 导师联系方式:equation618 AT gmail.com
  6. 合作导师联系方式(选填):王润基,wangrunji0408 AT 163.com
  7. 项目产出要求:
    • 能够在树莓派4 上运行 zCore

    • (可选)能够在 ARM64 Linux 系统上运行 zCore libos

      这个相对比较简单,因为基于 Linux host OS,不会涉及太多指令级别的改动。可以作为入门练手。

    • (可选)顺便把 rCore 也适配到树莓派4 吧

  8. 项目技术要求:
    • 熟悉 Rust 语言
    • 熟悉 ARM64 指令集,或做过其它平台的底层移植工作
    • 熟悉树莓派,或有其它 ARM 板子的开发经验
  9. 相关的开源软件仓库列表:

rCore 到 zCore 的功能迁移

  1. 项目标题:rCore 到 zCore 的功能迁移
  2. 项目描述:rCore 是用 Rust 语言实现的兼容 Linux 内核。它支持四种指令集,能够运行比较丰富的应用程序。但是随着时间的积累,rCore 的代码越堆越多,很多内部实现缺乏推敲,需要优化和重构。后来我们从头开始实现了 zCore 项目,采用了更加清晰的分层结构,同时复用 Zircon 微内核的内核对象实现了 Linux 内核的部分功能(如内存管理和进程管理)。目前 zCore 中的 linux 模块已经能够运行基础的 Busybox 等小程序,但仍有大量原本 rCore 支持的功能没有实现。本项目希望将 rCore 的功能迁移到 zCore 当中,并借此机会进行重构。其中一些代码可以直接搬过来,剩下的可能需要调整适配(例如涉及到 async),还有一些可以直接基于 Zircon 内核对象进行实现(例如 epoll)。
  3. 项目难度:高
  4. 项目社区导师:王润基
  5. 导师联系方式:wangrunji0408 AT 163.com
  6. 合作导师联系方式(选填):陈嘉杰,c AT jia.je
  7. 项目产出要求:
    • 能够在 zCore 上运行 rCore 支持的 Linux 程序:GCC,Nginx,Rustc 等
    • 对新迁移过来的代码,要求补充代码文档和必要的单元测试
  8. 项目技术要求:
    • 熟悉 Rust 语言
    • 熟悉 Linux 系统调用
  9. 相关的开源软件仓库列表:

改进 RVM 虚拟机

  1. 项目标题:改进 RVM 虚拟机
  2. 项目描述:RVM 是在 rCore 中实现的一个简易 Hypervisor。目前只支持 x86_64,利用 VT-x 硬件虚拟化技术,已经能够在 rCore 上运行 uCore(C 语言版本的 x86 教学操作系统)。我们希望继续完善 RVM,使其能够支持运行完整的 Linux 系统。此外,还希望将 RVM 从 rCore 中分离出来,作为独立项目。未来不但能够接入 rCore、zCore,还能作为 Linux 内核模块运行。
  3. 项目难度:高
  4. 项目社区导师:贾越凯
  5. 导师联系方式:equation618@gmail.com
  6. 合作导师联系方式(选填):戴臻旸,daizy19@mails.tsinghua.edu.cn
  7. 项目产出要求:
    • 将 RVM 从 rCore 中分离出来作为独立项目。

    • 能够在 rCore RVM 上运行完整的 Linux 系统。

    • (可选)能够把 RVM 作为一个 Linux module,在 Linux 启动后以 kernel module 的形式加载运行,然后把自己设定成 host 态,把 Linux 设定成 guest 态。

      这个有参考,即基于 C 语言实现的 Jailhouse 和 Blue Pill

    • (可选)支持 ARM64 的硬件虚拟化,能够在树莓派上运行虚拟机。

  8. 项目技术要求:
    • 熟悉 Rust 语言
    • 熟悉虚拟化技术
    • 熟悉 x86_64 指令集,理解 VMX 的原理和基于 VMX 的开发
  9. 相关的开源软件仓库列表: