Files
rust-based-os-comp2022/scheduling.md
2022-07-16 23:04:23 +08:00

15 KiB
Raw Blame History

2022年开源操作系统训练营第一阶段

欢迎在校学生在2022年暑假参加清华大学、CSDN、毛豆教育等共同举办的2022年开源操作系统训练营活动7月1日9月10日本次活动分为两个阶段线上自学OS基础基于Rust语言学习和实践操作系统内核7月1日7月31日和线上实践OS拓展基于Rust语言的操作系统内核拓展实践8月1日9月10日 ,主要是对用Rust语言进行OS研发开展学习、交流与探索

如有兴趣参加请在2022年7月5日前上传个人简历到清华云盘“简历收件箱CV-inbox”,并填写2022年开源操作系统训练营报名表获得邀请后将开始参与本次训练营活动。完成本次活动第一阶段7月1日7月31日的同学如果通过review将可在8月1日~9月10日开展第二阶段基于Rust语言的操作系统内核拓展实践。训练营结束后部分表现突出的同学将获得训练营优秀证书。鼓励同学继续以开源社区的方式参与rCore/zCore等相关的活动。

我们也在改进开源操作系统训练营即这个活动不仅仅局限在2022年7月1日~9月10日。我们希望建立的是一种长期持续发展的操作系统训练营模式即各种学习资源都开源并整理集中在一起导师/助教和学生/爱好者之间基于要做的实验或项目不定期/定期的进行交流。学生/爱好者完成了一定程度的学习和训练后,除了自身得到能力的提升外,还可获得相关证书和就业/学习等机会和相关推荐等,推动他在未来的进一步发展。

目标:

培养合作者,搭建合作平台。

探索把现代系统语言Rust和灵活开放的系统结构RISC-V带入到操作系统的架构与设计的创新中来思考未来的操作系统应该是什么样。

宗旨:

希望本活动的组织能为操作系统爱好者提供一个活跃的开源社区环境为对Rust、RISC-V和操作系统感兴趣的人士营造一个平等的学习与交流空间吸引更多对操作系统感兴趣的人士参与。

相关信息:

  • 参加2020/2021 OS训练营学生的blog鼓励参加2022 OS训练营的同学把自己在学习过程中的感悟/收获等写成blog生成pr并提交到 https://github.com/rcore-os/blog 上,让更多人看到你的进步!

  • 注意: 提交申请+个人简历的截止时间是7月5日。本次实习分二个阶段第一阶段7月1日7月31日以线上自学为主第二阶段8月1日9月10日以线上实践为主

  • 注意: 为及时了解和指导同学的学习和实践情况并推动学生相互帮助,本次活动要求学生把每周学习实践的过程记录(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感兴趣也欢迎申请参加只是无法去启元实验室本地实习主要通过远程方式github/电邮/微信)进行交流与合作。

第一阶段活动安排

总体学习要求和成绩考核方式

step 0 自学rust编程大约7~14天

前提条件: 要求有基本数据结构算法基础相对了解或熟悉C语言等编程.

  1. 自学:阅读书籍/课程/视频等资源汇总

  2. 自学编程

    • 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在线开发使用。整个开发环境仅仅需要一个网络浏览器。

        1. 在网络浏览器中用自己的 github id 登录 github.com

        2. 接收 Rust-lang Lab Test based on Rustlings 的github classroom在线邀请 根据提示一路选择OK即可。

        3. 完成第二步后你的rustings实验练习 的 github repository 会被自动建立好点击此github repository的链接就可看到你要完成的实验了。

        4. 在你的第一个实验练习的网页的中上部可以看到一个醒目的 code 绿色按钮,点击后,可以进一步看到 codespace 标签和醒目的 create codesapce on edu 绿色按钮。请点击这个绿色按钮就可以进入到在线的ubuntu +vscode环境中

        5. 再按照下面的环境安装提示在vscode的 console 中安装配置开发环境rustc等工具。注也可在vscode的 console 中执行 make codespaces_setenv 来自动安装配置开发环境(执行sudo需要root权限仅需要执行一次

        6. 在vscode的 console 中执行 make setupclassroom 该命令仅执行一次配置githubclassroom 自动评分功能。

        7. 然后就可以基于在线vscode进行测试 (执行命令 rustlings watch ),编辑代码的循环实验过程了。

        上述的345步不是必须的你也可以线下本地开发。

        如果是本地的ubuntu中建立开发环境可在shell中执行 make ubuntu_local_setenv 来自动安装配置开发环境(执行sudo需要root权限仅需要执行一次

    • Option32 Rust Quizes

      • 要求:小练习全部通过。(非必须完成
    • Optionexercisms.io 快速练习(88+道题目的中文详细描述)

step 1 自学risc-v系统结构大约2~7天

前提条件:要求有基本计算机组成原理,计算机系统结构基础。

1.阅读《计算机组成与设计RISC-V版》第一、二章可以在整体结构上对 RISC-V 体系建立基本认知。 再进行后面的学习比较有效果。(半天)

自学材料和练习要求:
  1. 阅读书籍和在线课程
  1. 其他参考学习信息

Option的含义是如果有足够的时间建议看看否则在后续要用到时或需要查询进一步信息时再查阅这些内容。

  1. 通过要求
  • 掌握RUST编程能修改下面的rCore tutorial的代码理解RISC-V与OS相关的硬件特性中断异常系统调用寄存器特权级MMU...)。

step 2 基于Rust语言进行操作系统内核实验--based on qemu 大约14~31天

前提条件要求有操作系统的基础基本理解RISC-V与OS相关的硬件特性

学习理解
具备步骤

根据rust-based-os-comp2022中的各个实验的具体实验要求在自己的仓库中完成5个实验通过基于GitHub Classroom的CI测试并在最后写出总结报告。

具体步骤

请注意各个实践或实验的具体初始化设置:

然后就可以根据 OS训练营实验指导 开始具体的实践和实验了。

在完成每个实验中的OS代码后通过执行 git push 命令来更新自己的实验专用 repos并触发GitHub Classroom的CI测试。等一小会后会看到自己的实验专用 repos 上面会有一个绿色的小勾表示最新的提交通过了CI测试。如果看到的是红色的小叉表面没有通过CI测试你可以点击小叉并进一步点击 GitHub Classroom Workflow/Autograding 的 details进入自动测试的详细log记录页面查看测试中具体在哪一步出现了问题并尝试自己修复bug/更新功能,争取下一次通过测试。

技术指导委员会

  • 陈向群
  • 吴庆波
  • 张汉东
  • 赵霞
  • 向勇
  • 陈渝
  • 李国良
  • 任炬

助教

  • 许善朴
  • 尤予阳
  • 杨德睿
  • 陈 乐
  • 吴一凡
  • 张译仁
  • 卢 军
  • 黄 旺

事务管理负责人

  • 姓名:许善朴 微信号id bitmeet520

训练营支持与合作单位

  • rcore-os 开源社区
  • 木兰开源社区
  • CCF开源发展委员会
  • CCF系统软件专业技术委员会
  • 清华大学
  • 北京工商大学
  • 国防科技大学
  • CSDN
  • 毛豆教育
  • 鹏城实验室
  • 启元实验室
  • 阿里云
  • 华为
  • 101计划操作系统课程虚拟教研室