Skip to content

Latest commit

 

History

History
134 lines (85 loc) · 14.2 KB

scheduling-1.md

File metadata and controls

134 lines (85 loc) · 14.2 KB

2023年春夏季开源操作系统训练营:第一阶段

欢迎在校学生/工程师在2023年春夏季参加清华大学、CSDN、阿图教育等共同举办的2023年春夏季开源操作系统训练营活动(2022.04.01~2023.08.01),本次活动分为两个阶段:

  • 第一阶段:(2023.04.01~2023.05.01)线上自学Rust编程和OS基础,并进行Rust语言编程自学Rust语言编程实验RISC-V处理器学习 注意:如第二阶段选择基于C语言的uCore Tutorial做OS Kernel实验,可跳过Rust语言编程自学和实验。
  • 第二阶段:(2023.05.01~2023.07.01)OS内核学习与实验
  • 可选:(完成第二阶段后~2023.08.20)OS竞赛级实战模拟训练:OS Kernel supporting Linux Apps实验 ,主要是用Rust语言设计实现支持Linux APP的OS Kernel,大约要支持<100个左右的Linux Syscalls,能通过上百个动静态链接的Linux App测试用例。
  • 可选:(完成第二阶段后~2023.08.20)组件化操作系统设计与实现,设计实现可灵活组合的内核模块,可灵活定制的内核框架,以及基于组合态OS的用户态应用程序。
  • 可选:(完成第二阶段后~2023.08.20)可定制的hypervisor,设计实现可在裸机或Linux中运行的Hypervisor,支持x86/ARM/RISC-V等多种硬件平台。
  • 可选:(完成第二阶段后~2023.08.20)如果有其它有趣的想法或愿意参加更有挑战的训练(比如实现支持Rust协程的OS,支持unikernel&微库形态的OS等),欢迎提出,联系LearningOS开源社区负责人李明老师(微信id:limingth)和助教。

如有兴趣参加,请在2023年04月01日前请在填写训练营报名登记表填写相关个人信息,并加入相关微信群。获得邀请后,将开始参与本次训练营活动。完成本次活动第一阶段(2023.04.01~2023.05.01)的同学如果通过review,将可在2023.05.01~2023.07.01,开展第二阶段OS Kernel supporting Linux Apps实验。训练营结束后,部分表现突出的同学将获得训练营优秀证书。鼓励同学继续以开源社区的方式参与到企业/科研院所的操作系统实习/实践/工作/学习等相关的活动。

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

目标:

培养具有开源思想的合作者,搭建开源合作平台。

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

宗旨:

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

相关信息:

第一阶段活动安排

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

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

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

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

  2. 自学编程

    • 2023春夏季OS训练营--rustling训练(采用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 权限,仅需要执行一次)。

        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等工具。

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

        7. 如果使用本地的环境进行rustlings的练习,请按照接下来的步骤进行:首先需要安装一个Linux的环境,对于windows的用户,推荐使用wsl2,也可以使用vmware等虚拟机进行安装。如果在这一步存在问题,请联系助教。

        8. 创建ssh key。在linux环境下,使用ssh-keygen -t rsa -b 4096 -C "你的邮箱"命令,创建ssh key,下面的选项全部直接敲回车即可。 随后使用 cat ~/.ssh/id_rsa.pub 命令查看生成的公钥,并完整的复制下来。 在github仓库界面点击自己的头像,选择settings。进入到设置页面后,点击左侧的SSH and GPG keys选项。点击New SSH key选项,并将复制下来的内容粘贴上去,添加该ssh key的描述。随后点击Add SSH key,并一路点击确认即可。

        9. 在本地安装rust。进入linux环境下,参考rcore 教程 http://rcore-os.cn/rCore-Tutorial-Book-v3/ 中, 第零章操作系统概述,实验环境配置的内容,找到Rust 开发环境配置的章节,相应配置即可,你可以同时将后续需要的环境也配置好。

        10. clone实验仓库到本地。在前面点击链接生成的仓库中,同样点击醒目的 code 绿色按钮,选择local下的ssh选项,复制下面的链接。随后回到本地linux环境下,使用git clone 复制的链接的方式,将目标仓库clone到本地。随后,使用ls命令查看自己clone下来的文件夹,再使用cd命令进入到该文件夹下,使用cargo install --force --path .安装rustlings。

        11. 练习rustlings。使用vscode等编辑器,进入clone下来的目录下的exercises文件夹,依次完成对应的练习。使用rustlings run 练习名称去运行对应练习,也可以使用rustlings hint 练习名称查看题解。

        12. 提交。当做完部分或所有练习之后,执行 git add; git commit -m "update"; git push 命令,把更新提交到GithubClassroom的CI进行自动评测。你可以在github仓库页面的actions页面,看到你的CI提交结果,或者 https://learningos.github.io/rust-rustlings-ranking/ 上面查看自己的评分。

        13. 上述步骤有任何问题都可以找助教。

    • (Option)32 Rust Quizes

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

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

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

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

自学材料和练习要求:

  1. 阅读书籍和在线课程

  2. 其他参考学习信息

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

  3. 通过要求

    • 掌握RUST编程,理解RISC-V与OS相关的硬件特性(中断,异常,系统调用,寄存器,特权级,MMU...)。

One More Thing:当你看到这,感觉第一阶段还没开始,还在想下一步要干啥时,我们的建议是:Just Do It NOW!