清华大学
基于组件化设计的思路,用Rust语言的丰富语言特征,设计实现不同功能的独立操作系统内核模块和操作系统框架,可形成不同特征/形态/架构的操作系统内核,独立操作系统内核模块可支持不同的操作系统内核。让领域操作系统易于定制/开发/复用。
2024全国大学生操作系统比赛的“OS功能挑战”赛道
- 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生或研究生(2024年春季学期或之后毕业的大一~大四的本科生或研究生)
- 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
- 请遵循“2024全国大学生操作系统比赛”的章程和技术方案要求
- 陈渝 github id: chyyuu email:yuchenATtsinghua.edu.cn
- 贾越凯 github id:equation314 email: jyk19ATmails.tsinghua.edu.cn
- 石磊 github id: shilei-massclouds email: shi_leiATmassclouds.com
- 杨金博 github id: yfblock email: [email protected]
初等--中等--高等
- 熟悉操作系统/计算机组成原理等基本概念
- 熟悉Rust语言
- 能通过开源操作系统训练营的训练
这是可供参考的OS&Hypervisor,要求参赛者设计的kernel components 能够支持部分(不一定全部)的如下OS&Hypervisor
- unikernel形态的组件化内核ArceOS
- 基于ArceOS的宏内核形态的组件化内核Starry kernel(支持RISC-V/x64/ARM/LoongArch)
- 宏内核形态的组件化内核Byeos kernel(支持RISC-V/x64) 2023OS比赛一等奖
- 宏内核形态的组件化内核Alien(支持RISC-V星光二代开发板) 2023OS比赛一等奖
- 宏内核形态的组件化内核UMI (支持RISC-V华山派开发板) 2023OS比赛特等奖
- 基于ArceOS的微内核形态的组件化内核os kernel
- 基于ArceOS的Hypervisor形态的组件化hypervisor
这是部分与OS无关的kernel components,有一些不一定特别完善,供参考,也可进一步改进作为比赛提交成果
- 基于C的ext4 crate
- 基于Rust的ext4 crate
- Rust-based tcpip stack: smoltcp
- C-based tcpip stack:lwip
- virtio drivers
- e1000 NIC driver
- Cadence Macb ethernet driver on Sifive fu740 board
- RISC-V星光二代开发板的网卡驱动
- RISC-V星光二代开发板的SD卡驱动
- nvme driver
- isomorphic_drivers
- os scheduler
- os memory malloc subsystem
其他一些与还未归类的OS无关的kernel components所在网址
- GPL-3.0
- Apache-2.0
如果是与OS无关的kernel component,要求能建立为github上的一个独立仓库(比赛官网也要有同样的仓库),能独立形成crate(能提交到crates.io),能独立测试和与OS合并测试。
评价项目完成情况的一个重要指标是被其他仓库的引用数量(代表有proj用了这个crate)和fork数量、Star数量,以及使用和设计实现文档等。virtio-drivers crate的引用数量和fork数量、Star数量是一个好评价的参考。
- 改进已有的与OS无关或相关的kernel component
- 增加新的与OS无关或相关的kernel component
- 改进或增加OS内核框架,形成新的OS
- 一些kernel components具体内容
- 算法:调度、内存分配、...
- 驱动:物理网卡、SD 卡、virtio GPU、各种外设驱动...
- 文件系统:各种嵌入式文件系统
- 硬件相关层:支持x64/ARM/RISC-V/LoogArch(龙芯)架构的HAL
鼓励在各种项目中重用与OS无关的内核组件和框架。