Giter Site home page Giter Site logo

proj9-zcore's Introduction

proj9-zCore

zCore 是一个基于Rust语言的开源操作系统内核,最初目标是用Rust 语言重写的Google基于C++的 Zircon 微内核。目前zCore进一步发展为内核级支持Rust的异步机制,新的处理器RISC-V,支持Intel 新CPU的用户态中断机制,支持Linux应用等新型操作系统,并将用于各自AIoT系统中,如无人机,无人车等。zCore内核能充分发挥Rust语言的优势,具有小巧、安全、高性能、开发便捷等特征。

这个项目探索把现代系统语言 Rust、OS 级异步机制、Multi-Kernel 机制、灵活开放的指令集架构 RISC-V 等,带入到操作系统的设计与实现创新中来,是对未来操作系统的一种尝试。

我们希望这个项目能为对 Rust、RISC-V 和 OS 感兴趣的同学营造一个活跃的学习与交流空间,吸引更多同学参与开发。为此,我们已经在 2020年暑假与鹏城实验室合作,2021年暑假与启元实验室合作,举办了一个 os-tutorial 活动,给出了一个自学指导系列教程。这一活动吸引了全国多所学校的同学参与,他们也将学习过程记录下来,以便于后来的同学进行参考,少踩一些坑。

zCore 的源码仓库:

所属赛道

2022全国大学生操作系统比赛的“OS功能挑战”赛道

参赛要求

  • 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生(2022年春季学期或之后本科毕业的大一~大四的学生)
  • 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
  • 请遵循“2022全国大学生操作系统比赛”的章程和技术方案要求

项目导师

张译仁

陈渝

难度

中等

特征

  • 基于 Rust 语言,并充分利用了 Rust 提供的异步机制
  • 支持 Zircon 微内核的大部分 syscall,以及 Linux 内核的一部分 syscall
  • 可以 LibOS 的形式运行在用户态,或以传统 OS 的形式运行在裸机上
  • 可运行在 x86_64 和 RISC-V(开发中)上

文档

License

  • Apache 2.0 license

预期目标

注意:下面的内容是建议内容,不要求必须全部完成。选择本项目的同学也可与导师联系,提出自己的新想法,如导师认可,可加入预期目标

在现有 zCore 的基础上,进一步完成如下目标:

第一题:分阶段重新实现简化版 zCore

  • 与导师协商,形成一系列的小步骤,参考目前的代码,重新按小步骤实现一个简化版的 zCore
  • 在每个步骤完成后,能够有测试用例,并尽量与 OS 课程中涉及的内容相关
  • 撰写实验设计与分析文档,参考:zCore Tutorial

第二题:提供 Linux 内核的系统服务

  • 实现更多的 Linux syscall,支持更多的 Linux 应用,如GCC编译器,Rust编译器等。
  • 参考 rCore 中集成的 smoltcp 协议栈,把它移植到 zCore 中,以支持 Linux 网络应用
  • 支持 virtio 的各种驱动

第三题:提供 Zircon 内核的系统服务

  • 完善 Zircon syscall,支持更多的 Fuchsia 应用和服务
  • 尝试支持磁盘驱动、网卡驱动、显卡驱动以及 GUI 程序

第四题:完善多核支持及异步调度机制

  • 完善 x86_64 多核支持,能够在多核上正确运行多线程程序
  • 修改 OS 架构,支持和完善内核级异步调度机制

第五题:支持其它指令集和硬件

目前已经支持X86 计算机和基于RISC-V 64的哪吒D1开发板

  • 在ARM64 based 树莓派4开发板上运行
  • 在RISC-V 64 based SIFIVE u740/u540 计算机上运行
  • 在新一代x86-64 至强可扩展处理器(Sapphire Rapids) 计算机上运行,支持用户态中断。

proj9-zcore's People

Contributors

chyyuu avatar wangrunji0408 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.