- 新闻与纪要
- 2022.11.01:2022 秋冬季训练营启动交流会,会议时间:2022/11/01 20:00-21:00 ,#腾讯会议号:838-197-763。请报名的同学参加。
- 常见问题解答
- Learning Resource (训练营学习资源)
- Online Ranking (训练营在线排行榜)
欢迎在校学生/工程师在2022年秋冬季参加清华大学、CSDN、毛豆教育等共同举办的2022年秋冬季开源操作系统训练营活动(2022.11.01~2023.02.01),本次活动分为两个阶段:
- 第一阶段:线上自学Rust编程和OS基础,并进行Rust语言编程自学、Rust语言编程实验、RISC-V处理器学习和Rust-based OS Kernel学习&实验(2022.11.01~2022.12.15)
- 第二阶段:线上自学并挑战OS Kernel supporting Linux Apps实验(2022.12.16~2023.02.01) ,主要是用Rust语言设计实现支持Linux APP的OS Kernel,大约要支持50个左右的Linux Syscalls,能通过上百个Linux App测试用例。如果有其它有趣的想法或愿意参加更有挑战的训练(比如实现支持Rust协程的OS,支持unikernel&微库形态的OS等),请与助教和老师联系。
如有兴趣参加,请在2022年10月30日前请在报名登记处填写相关个人信息,并加入相关微信群。获得邀请后,将开始参与本次训练营活动。完成本次活动第一阶段(2022.11.01~2022.12.15)的同学如果通过review,将可在2022.12.16~2023.02.01,开展第二阶段OS Kernel supporting Linux Apps实验。训练营结束后,部分表现突出的同学将获得训练营优秀证书。鼓励同学继续以开源社区的方式参与到企业/科研院所的操作系统实习/实践/工作/学习等相关的活动。
我们也在持续探索和改进开源操作系统训练营,即这个活动不仅仅局限在 2022.11.01~2023.02.01。我们希望建立的是一种长期持续发展的操作系统训练营模式,即各种学习资源都开源并整理集中在一起,导师/助教和学生/爱好者之间基于要做的实验或项目不定期/定期的进行交流。学生/爱好者完成了一定程度的学习和训练后,除了自身得到能力的提升外,还可获得相关证书和就业/学习等机会和相关推荐等,推动他在未来的进一步发展。
培养合作者,搭建合作平台。
探索把现代系统语言Rust和灵活开放的系统结构RISC-V带入到操作系统的架构与设计的创新中来,思考未来的操作系统应该是什么样。
希望本活动的组织,能为操作系统爱好者提供一个活跃的开源社区环境,为对Rust、RISC-V和操作系统感兴趣的人士营造一个平等的学习与交流空间,吸引更多对操作系统感兴趣的人士参与。
- 参加2020/2021 OS训练营学生的blog,鼓励参加2022 OS训练营的同学把自己在学习过程中的感悟/收获等写成blog,生成pr,并提交到 https://github.com/rcore-os/blog 上,让更多人看到你的进步!
- 注意 本次实习分二个阶段,第一阶段(2022.11.01~2022.12.15)以线上自学为主;第二阶段(2022.12.16~2023.02.01)以线上实践为主;
- 注意 为及时了解和指导同学的学习和实践情况并推动学生相互帮助,本次活动要求学生把每周学习实践的过程记录(Markdown格式)放在github上自己的公开repo中。可参见每日学习实践的具体例子和2020年OS训练营同学的每日学习情况汇总 。请参加实习的同学把记录每天的进展的git repo网址 更新到2022年OS训练营同学的每日学习情况汇总 中。要求每位同学在自己的git repo中记录自己的每周进展,其他同学也可以参考学习。
- 注意 第一阶段学习中的技术问题,建议基于github issues(比如都发到 https://github.com/LearningOS/rust-based-os-comp2022/issues 上,建立自己的 issue)发出并讨论。
如果已经掌握RUST编程,可以跳过step 0;如果已经掌握RISC-V,可以跳过step 1;如果没学过OS课,建议选择一门在线OS课程学习一下。但需要完成第一阶段实习要求的练习。
如果不是学生,但有Rust基础且对用Rust开发OS感兴趣,也欢迎申请参加。
-
在学习实践过程记录表上登记自己每日/周学习记录情况的repo网址,并在这个repo上记录每日/周学习记录情况 (成绩分数:20%)
-
在第一阶段学习issues上的提问和回答问题情况,在第一阶段OS学习项目 、 rCore Tutorial v3的详细实验指导内容 上的Pull Request提交情况(代码改进、文档改进、文档错误等) (成绩分数:15%)
-
step 0 要求的Rust-lang Lab Test based on Rustlings(采用Github Classroom模式的Rustling小练习) 的完成情况 (成绩分数:15%)
-
step 2 第一阶段OS学习的5个实验的完成情况和总结报告 (成绩分数:50%)
- 第一阶段总结报告的参考: 杨攀同学的2021年开源操作系统训练营第一阶段总结报告
前提条件: 要求有基本数据结构,算法基础,相对了解或熟悉C语言等编程.
-
- 推荐:Rust语言圣经(Rust教程 Rust Course和配套练习)
- 推荐:Rust速查表(cheatsheet) 该项目不仅提供了基础的语法速查,还有执行顺序详解和编写时需要关注的注意事项。项目还包含了示例代码(EX)、书籍(BK)、标准(STD)等相关资料的扩展。
- 推荐:清华计算机系大一学生2022暑期课程:Rust程序设计训练(有课程视频)
-
自学编程
-
Rust-lang Lab Test based on Rustlings(采用Github Classroom模式的Rustling小练习,点击上述链接,形成自己的练习用repo)
-
要求:必须完成 。每完成几个小练习,就执行
git add; git commit -m"update"; git push
命令,把更新提交到GithubClassroom的CI进行自动评测。要求小练习全部通过GithubClassroom的CI自动评测。 -
学习系列视频:Rust中文社群线上学习室--通过 Rustlings 学 Rust
提示:基于github classroom的开发方式
基于github classroom,可方便建立开发用的git repository,并可基于github的 codespace(在线版ubuntu +vscode)在线开发使用。整个开发环境仅仅需要一个网络浏览器。
codespace 不是必须的。如果是本地的ubuntu中建立开发环境,可在shell中执行
make ubuntu_local_setenv
来自动安装配置开发环境(执行需要sudo
root 权限,仅需要执行一次)。- 在网络浏览器中用自己的 github id 登录 github.com。
- 接收 Rust-lang Lab Test based on Rustlings 的github classroom在线邀请 ,根据提示一路选择OK即可。
- 完成第二步后,你的rustings实验练习 的 github repository 会被自动建立好,点击此github repository的链接,就可看到你要完成的实验了。
- 在你的第一个实验练习的网页的中上部可以看到一个醒目的
code
绿色按钮,点击后,可以进一步看到codespace
标签和醒目的create codesapce on edu
绿色按钮。请点击这个绿色按钮,就可以进入到在线的ubuntu +vscode环境中 - 再按照下面的环境安装提示在vscode的
console
中安装配置开发环境:rustc等工具。 - 然后就可以基于在线vscode进行测试 (执行命令
rustlings watch
),编辑代码的循环实验过程了。
-
-
(Option)32 Rust Quizes
- 要求:小练习全部通过。(非必须完成)
-
(Option)exercisms.io 快速练习(88+道题目的中文详细描述)
- 要求:大部分练习会做或能读懂。(非必须完成)
- exercism.io官方站点
-
前提条件:要求有基本计算机组成原理,计算机系统结构基础。
阅读《计算机组成与设计(RISC-V版)》第一、二章,可以在整体结构上对 RISC-V 体系建立基本认知。再进行后面的学习比较有效果。
-
阅读书籍和在线课程
- 自学PPT for RISC-V特权指令级架构
- 自学RISC-V手册:一本开源指令集的指南 重点是第10章
- (Option)自学RIS-V特权指令级规范 重点是与OS相关的特权硬件访问的规范内容(Privileged Spec)
- (Option)自学RISC-V汇编手册
- (Option)计算机组成与设计:RISC-V 教材 这是完整的课程教材,不要求全部看完,请根据自己的需求选择。
- (Option)计算机组成与设计:RISC-V 浙大在线课程 这是完整的一门课,不要求全部看完,请根据自己的需求选择。
-
其他参考学习信息
Option的含义是:如果有足够的时间建议看看,否则在后续要用到时或需要查询进一步信息时再查阅这些内容。
-
通过要求
- 掌握RUST编程,能修改下面的rCore tutorial的代码,理解RISC-V与OS相关的硬件特性(中断,异常,系统调用,寄存器,特权级,MMU...)。
前提条件:要求有操作系统的基础,基本理解RISC-V与OS相关的硬件特性
- OS课程slides
- rCore Tutorial v3的详细实验指导内容
- rCore Tutorial v3的实验代码
- 视频:2022年春季OS课程讲解和OS实验讲解
- 2022年春季OS课程实验中
cargo doc
生成的各章参考OS的API文档
根据rust-based-os-comp2022中的各个实验的具体实验要求在自己的仓库中完成5个实验,通过基于GitHub Classroom的CI测试,并在最后写出总结报告。
访问 训练营 kernel labs,点击下列链接,形成各个自己实验专用 repos:
请注意各个实践或实验的具体初始化设置:
然后就可以开始具体的实践和实验了。
在完成每个实验中的OS代码后,通过执行 git push
命令来更新自己的实验专用 repos,并触发GitHub Classroom的CI测试。等一小会后,会看到自己的实验专用 repos 上面会有一个绿色的小勾,表示最新的提交通过了CI测试。如果看到的是红色的小叉,表面没有通过CI测试,你可以点击小叉,并进一步点击 GitHub Classroom Workflow/Autograding 的 details,进入自动测试的详细log记录页面,查看测试中具体在哪一步出现了问题,并尝试自己修复bug/更新功能,争取下一次通过测试。
One More Thing:当你看到这,感觉第一阶段还没开始,还在想下一步要干啥时,我们的建议是:Just Do It NOW!