From 138a70ae99b8887e1231965295f013eb7f79c470 Mon Sep 17 00:00:00 2001 From: Yu Chen Date: Sun, 7 Aug 2022 11:54:43 +0800 Subject: [PATCH] add some stage2 classrooms --- news.md | 2 +- stage2-sched.md | 75 ++++++++++++++++++++++++++----------------------- 2 files changed, 41 insertions(+), 36 deletions(-) diff --git a/news.md b/news.md index 748c2d9..00ecd66 100644 --- a/news.md +++ b/news.md @@ -1,6 +1,6 @@ # 2022年开源操作系统训练营的新闻与活动纪要 -- 2022.08.07:形成三个微信群:训练营异步澳洲系统、训练营操作系统探索、训练营rcore/zcore,进行有针对性的讨论,开展相关项目。 +- 2022.08.07:形成三个微信群:训练营异步澳洲系统、训练营操作系统探索、训练营rcore/zcore,建立部分classroom, 进行有针对性的讨论,开展相关项目。 - 2022.08.06:目前接触并创建rCore Tutorial OS Classroom突破400人。下午两点交流各位同学的第二阶段项目分组,大致确定要做的事情。 - 2022.08.05:从08.01~08.05,每晚8:30一个zCore技术报告,共完成5个zCore系列报告。 - 2022.08.01:训练营第二阶段开始,中午12点前公布进入[第二阶段人员名单](./lab3-os5-passed.md),晚上19:30召开“训练营第一阶段总结&第二阶段启动会”,晚上20:30开始技术报告。 diff --git a/stage2-sched.md b/stage2-sched.md index 955bed8..8b41f87 100644 --- a/stage2-sched.md +++ b/stage2-sched.md @@ -27,7 +27,8 @@ #### 模块化的 rCore-Tutorial-v3 1. 项目标题:模块化的 rCore-Tutorial-v3 -2. 项目描述:rCore-Tutorial-v3 是一套简洁,易于上手的教程,但是目前代码将不同章节用分支隔离的组织形式导致前一章实验的成果很难迁移到后一章,且若要修改某一章的实现,就需要手动同步到后续所有章节。我们希望能发挥 Rust 语言 workspace/crates/traits 的先进设计理念,重构并形成模块化rCore-Tutorial,将学习时对仓库的操作变为以下形式: +2. [模块化的 rCore-Tutorial-v3: GitHub Classroom](https://classroom.github.com/a/Oc792plB) +3. 项目描述:rCore-Tutorial-v3 是一套简洁,易于上手的教程,但是目前代码将不同章节用分支隔离的组织形式导致前一章实验的成果很难迁移到后一章,且若要修改某一章的实现,就需要手动同步到后续所有章节。我们希望能发挥 Rust 语言 workspace/crates/traits 的先进设计理念,重构并形成模块化rCore-Tutorial,将学习时对仓库的操作变为以下形式: | 操作 | 使用 git 分支 | 使用 crate | ------------ | ------------------- | --------------- @@ -36,37 +37,38 @@ 这样操作系统将以模块化/Traits的形式呈现给同学,同学按照模块化/Traits实现的方法来完成实验。实验的内容也可随之灵活调整。 -3. 项目难度:中(适合完成了lab1-5,熟悉 Rust workspace/crates/traits 的同学) -4. 项目社区导师:杨德睿 github id:YdrMaster weichat id: ydrdwx ; 许善朴 github id: xushanpu123 weichat id: bitmeet520 -5. 项目产出要求: +4. 项目难度:中(适合完成了lab1-5,熟悉 Rust workspace/crates/traits 的同学) +5. 项目社区导师:杨德睿 github id:YdrMaster weichat id: ydrdwx ; 许善朴 github id: xushanpu123 weichat id: bitmeet520 +6. 项目产出要求: 项目应该将现有的 rCore-Tutorial-v3 变得模块化。形式包括: - 章节模块化:所有章节不再被 git 分支隔离开,而是只有逻辑上的隔离关系,后一章节能够以依赖库的形式继承前一章节的成果 - 实现模块化:能在所有章节中复用的代码形成单独的 crate 甚至 package,crates之间在调用方面有层次依赖关系, crates的粒度尽量小。 - 系统调用接口模块化:系统调用的分发封装到一个 crate。使得添加系统调用的模式不是为某个 match 增加分支,而是实现一个分发库要求的 trait 并将实例传递给分发库 -6. 相关的开源软件仓库列表: +7. 相关的开源软件仓库列表: - https://github.com/theseus-os/Theseus (OS的目标不同,但在OS的设计上有部分内容与此相近) Theseus is a modern OS written from scratch in Rust that explores 𝐢𝐧𝐭𝐫𝐚𝐥𝐢𝐧𝐠𝐮𝐚𝐥 𝐝𝐞𝐬𝐢𝐠𝐧, novel OS structure, and state management. It strives to close the semantic gap between compiler and hardware to maximally leverage the power of language safety, and thus shift OS responsibilities like resource management into the compiler. ### rCore-Tutorial-v3 进一步进阶/扩展 1. 项目标题:rCore-Tutorial-v3 进一步扩展 -2. 项目描述:rCore-Tutorial-v3 的一个重要目标是以简洁的设计实现对应到操作系统的核心知识点上,所以还有很多可以扩展的地方。我们希望通过设计一个一个相对独立的实验,来展现操作系统的核心设计思想,在操作系统实现与操作系统原理之间建立桥梁。学生自己设计实现新OS功能后,其系统能力也随之提高。简言之:做多,错多,收获多 -3. 项目难度:低/中 (适合完成了lab1-5,且希望能够一小步一小步地继续提升自己OS编程能力/系统能力的同学) -4. 项目社区导师:陈渝 github id: chyyuu weichat id: chyyuu -5. 项目社区导师:吴一凡 github id: wyfcyx weichat id: yifanwu1998 -6. 项目社区导师:许善朴 github id: xushanpu123 weichat id: bitmeet520 -7. 项目社区导师:杨德睿 github id:YdrMaster weichat id: ydrdwx -8. 项目产出要求: +2. [rCore-Tutorial-v3 进一步扩展 rCore-Tutorial-v3: GitHub Classroom](https://classroom.github.com/a/bAc-5319) +3. 项目描述:rCore-Tutorial-v3 的一个重要目标是以简洁的设计实现对应到操作系统的核心知识点上,所以还有很多可以扩展的地方。我们希望通过设计一个一个相对独立的实验,来展现操作系统的核心设计思想,在操作系统实现与操作系统原理之间建立桥梁。学生自己设计实现新OS功能后,其系统能力也随之提高。简言之:做多,错多,收获多 +4. 项目难度:低/中 (适合完成了lab1-5,且希望能够一小步一小步地继续提升自己OS编程能力/系统能力的同学) +5. 项目社区导师:陈渝 github id: chyyuu weichat id: chyyuu +6. 项目社区导师:吴一凡 github id: wyfcyx weichat id: yifanwu1998 +7. 项目社区导师:许善朴 github id: xushanpu123 weichat id: bitmeet520 +8. 项目社区导师:杨德睿 github id:YdrMaster weichat id: ydrdwx +9. 项目产出要求: - 补充完善 rCore-Tutorial-v3 -9. 项目技术要求: +10. 项目技术要求: - 具备一定的 Rust 语言基础,能看懂并模仿现有代码即可 - 熟悉操作系统原理与简易实现 - 具有基础英文阅读和写作能力 -10. 相关的开源软件仓库列表: +11. 相关的开源软件仓库列表: - https://github.com/rcore-os/rCore-Tutorial-v3 - https://rcore-os.github.io/rCore-Tutorial-Book-v3/final-lab.html @@ -127,11 +129,12 @@ ### zCore 的文档与单元测试完善 1. 项目标题:zCore 的文档与单元测试完善 -2. 项目描述:zCore 是用 Rust 实现的支持协程/异步等新机制的操作系统,目前zCore的实现已经初步支持 x86_64/RISC-V 64/AArch64。然而,随着后期开发进程的加快,大量代码缺少文档描述,并且没有实现单元测试,只能在 QEMU 中运行用户程序以检验代码正确性。本项目的目标是完善 zCore 的文档及单元测试,使其成为一个高质量的 Rust 社区项目。 -3. 项目难度:低 (适合完成了lab1-5,并希望在OS领域找到一份测试/研发工作,或提升软件工程能力的同学) -4. 项目社区导师:石振兴 github id: shzhxh weichat id: szx-bj -5. 项目社区导师:董峰 github id: workerwork weichat id: Mr_dong-feng -6. 项目产出要求: +2. [zCore 的文档与单元测试完善](https://github.com/LearningOS/zCore)(注:由于有Github LFS,不能设置为classroom) +3. 项目描述:zCore 是用 Rust 实现的支持协程/异步等新机制的操作系统,目前zCore的实现已经初步支持 x86_64/RISC-V 64/AArch64。然而,随着后期开发进程的加快,大量代码缺少文档描述,并且没有实现单元测试,只能在 QEMU 中运行用户程序以检验代码正确性。本项目的目标是完善 zCore 的文档及单元测试,使其成为一个高质量的 Rust 社区项目。 +4. 项目难度:低 (适合完成了lab1-5,并希望在OS领域找到一份测试/研发工作,或提升软件工程能力的同学) +5. 项目社区导师:石振兴 github id: shzhxh weichat id: szx-bj +6. 项目社区导师:董峰 github id: workerwork weichat id: Mr_dong-feng +7. 项目产出要求: - 补充完善 zCore 各模块的代码文档。 目标是通过 `#![deny(missing_docs)]` 编译,并且能够让开发者通过阅读文档,快速理解 zCore 的代码结构和各部分功能。 @@ -143,11 +146,11 @@ - (可选)在zCore中添加zircon/linux的syscall。 目标:完善添加zCore内核功能,让zCore通过更多的zircon tests(基于zircon的coretest)或Linux tests(基于musl libc的libc test)或相关应用 -7. 项目技术要求: +8. 项目技术要求: - 具备一定的 Rust 语言基础,能看懂并模仿现有代码即可 - 熟悉操作系统原理与简易实现 - 具有基础英文阅读和写作能力 -8. 相关的开源软件仓库列表: +9. 相关的开源软件仓库列表: - https://github.com/rcore-os/zCore (zCore 仓库) - https://rcore-os.github.io/zCore/zircon_object (zCore 代码文档) - https://fuchsia.dev/fuchsia-src/reference (Zircon 官方文档) @@ -156,20 +159,21 @@ ### zCore 的星光/SiFive/树莓派等开发板和外设支持 1. 项目标题:zCore 的星光/SiFive开发板支持 -2. 项目描述:zCore 是用 Rust 实现的支持协程/异步等新机制的操作系统,目前zCore的实现已经初步支持 x86_64/RISC-V 64/AArch64。zCore需要继续完善相关驱动和系统调用。 -3. 项目难度:中(适合完成了lab1-5,并希望在系统类企业找到一份OS底层研发工作,或提升软件工程能力的同学) -4. 项目社区导师:肖络元 github id: shzhxh weichat id: xiaoxiaoluckyard -5. 项目社区导师:杨德睿 github id:YdrMaster weichat id: ydrdwx -6. 项目产出要求: +2. [zCore 的星光/SiFive开发板支持:项目模板](https://github.com/LearningOS/zCore)(注:由于有Github LFS,不能设置为classroom) +3. 项目描述:zCore 是用 Rust 实现的支持协程/异步等新机制的操作系统,目前zCore的实现已经初步支持 x86_64/RISC-V 64/AArch64。zCore需要继续完善相关驱动和系统调用。 +4. 项目难度:中(适合完成了lab1-5,并希望在系统类企业找到一份OS底层研发工作,或提升软件工程能力的同学) +5. 项目社区导师:肖络元 github id: shzhxh weichat id: xiaoxiaoluckyard +6. 项目社区导师:杨德睿 github id:YdrMaster weichat id: ydrdwx +7. 项目产出要求: - 能够在某开发板上比较稳定地运行 zCore - (可选)能够在 Linux 系统上运行 zCore libos 这个相对比较简单,因为基于 Linux host OS,不会涉及太多指令级别的改动。可以作为入门练手。 -7. 项目技术要求: +8. 项目技术要求: - 熟悉 Rust 语言 - 熟悉 RISC-V64 指令集,或做过其它平台的底层移植工作 - 熟悉K210的开发经验 -8. 相关的开源软件仓库列表: +9. 相关的开源软件仓库列表: - https://github.com/rcore-os/zCore (zCore 仓库) - https://github.com/rcore-os/rCore (rCore 仓库,支持RISC-V) - https://github.com/kendryte/kendryte-doc-datasheet @@ -179,17 +183,18 @@ ### rCore 到 zCore 的功能迁移 1. 项目标题:rCore 到 zCore 的功能迁移 -2. 项目描述:rCore 是用 Rust 语言实现的兼容 Linux 内核。它支持四种指令集,能够运行比较丰富的应用程序。但是随着时间的积累,rCore 的代码越堆越多,很多内部实现缺乏推敲,需要优化和重构。后来我们从头开始实现了 zCore 项目,采用了更加清晰的分层结构,同时复用 Zircon 微内核的内核对象实现了 Linux 内核的部分功能(如内存管理和进程管理)。目前 zCore 中的 linux 模块已经能够运行基础的 Busybox 等小程序,但仍有大量原本 rCore 支持的功能没有实现。本项目希望将 rCore 的功能迁移到 zCore 当中,并借此机会进行重构。其中一些代码可以直接搬过来,剩下的可能需要调整适配(例如涉及到 async),还有一些可以直接基于 Zircon 内核对象进行实现(例如 epoll)。 -3. 项目难度:中(适合完成了lab1-5,并希望在系统类企业找到一份OS底层研发工作,或提升软件工程能力的同学) -4. 项目社区导师:董峰 github id: workerwork weichat id: Mr_dong-feng -5. 项目社区导师:陈乐 github id: yuoo655 weichat id: Endagorion_ -6. 项目产出要求: +2. [rCore 到 zCore 的功能迁移:项目模板](https://github.com/LearningOS/zCore)(注:由于有Github LFS,不能设置为classroom) +3. 项目描述:rCore 是用 Rust 语言实现的兼容 Linux 内核。它支持四种指令集,能够运行比较丰富的应用程序。但是随着时间的积累,rCore 的代码越堆越多,很多内部实现缺乏推敲,需要优化和重构。后来我们从头开始实现了 zCore 项目,采用了更加清晰的分层结构,同时复用 Zircon 微内核的内核对象实现了 Linux 内核的部分功能(如内存管理和进程管理)。目前 zCore 中的 linux 模块已经能够运行基础的 Busybox 等小程序,但仍有大量原本 rCore 支持的功能没有实现。本项目希望将 rCore 的功能迁移到 zCore 当中,并借此机会进行重构。其中一些代码可以直接搬过来,剩下的可能需要调整适配(例如涉及到 async),还有一些可以直接基于 Zircon 内核对象进行实现(例如 epoll)。 +4. 项目难度:中(适合完成了lab1-5,并希望在系统类企业找到一份OS底层研发工作,或提升软件工程能力的同学) +5. 项目社区导师:董峰 github id: workerwork weichat id: Mr_dong-feng +6. 项目社区导师:陈乐 github id: yuoo655 weichat id: Endagorion_ +7. 项目产出要求: - 能够在 zCore 上运行 rCore 支持的 Linux 程序:GCC,Nginx,Rustc 等 - 对新迁移过来的代码,要求补充代码文档和必要的单元测试 -7. 项目技术要求: +8. 项目技术要求: - 熟悉 Rust 语言 - 熟悉 Linux 系统调用 -8. 相关的开源软件仓库列表: +9. 相关的开源软件仓库列表: - https://github.com/rcore-os/zCore (zCore 仓库) - https://github.com/rcore-os/rCore (rCore 仓库)