mirror of
https://github.com/LearningOS/rust-based-os-comp2022.git
synced 2026-02-09 05:14:46 +08:00
54
QA.md
54
QA.md
@@ -4,10 +4,10 @@
|
||||
|
||||
### A:
|
||||
|
||||
- [B 站的 GitHub Classroom 视频介绍](https://www.bilibili.com/video/BV12L41147r7?spm_id_from=333.337.search-card.all.click&vd_source=8e19ee6e49f598fda8c17e306d8b3726)
|
||||
- [B 站的 GitHub Classroom 视频介绍](https://www.bilibili.com/video/BV12L41147r7?spm_id_from=333.337.search-card.all.click&vd_source=8e19ee6e49f598fda8c17e306d8b3726)
|
||||
- [Youtube 的 GitHub Classroom 视频介绍](https://www.youtube.com/playlist?list=PLIRjfNq867bewk3ZGV6Z7a16YDNRCpK3u)
|
||||
- [GitHub 文档:使用 GitHub Classroom 教学](https://docs.github.com/cn/education/manage-coursework-with-github-classroom/get-started-with-github-classroom)
|
||||
|
||||
|
||||
## Q1:已经在 classroom 中建立了自己的仓库(例如“LearningOS/lab0-0-setup-env-run-os1-chyyuu2022”),但是源仓库“LearningOS/rust-based-os-comp2022”更新了,如何处理?
|
||||
|
||||
### A:
|
||||
@@ -16,12 +16,11 @@
|
||||
|
||||
重新点击加入课程的链接,在页面下方会有一行字“We've configured the repository associated with this assignment (update)”,“update”是一个链接,点击 update 就可以把自己的仓库更新到与最新状态的 repository template 一致。
|
||||
|
||||
|
||||
**方法二:**
|
||||
|
||||
在自己构建的仓库根目录下执行以下命令:
|
||||
|
||||
```makefile
|
||||
```bash
|
||||
git remote add upstream "https://github.com/LearningOS/rust-based-os-comp2022.git"
|
||||
git fetch upstream
|
||||
git checkout -b foo
|
||||
@@ -32,20 +31,20 @@ git push -f
|
||||
```
|
||||
|
||||
**方法三:**
|
||||
|
||||
|
||||
向管理员“助教许善朴”申请删除已生成仓库,再点击 链接重新创建仓库。
|
||||
|
||||
## Q2:在 classroom 中建立了自己的仓库中,进行提交 `git push` 后,触发 CI 后,出现 Annotations 错误“The job was not stared because recent account payments have failed or your spending limit needs to be increased. Please check the 'Billing & plans' section in your settings”,无法完成自动 CI 功能,比如 `Autograding` 等。
|
||||
## Q2:在 classroom 中建立了自己的仓库中,进行提交 `git push` 后,触发 CI 后,出现 Annotations 错误“The job was not stared because recent account payments have failed or your spending limit needs to be increased. Please check the 'Billing & plans' section in your settings”,无法完成自动 CI 功能,比如 `Autograding` 等。
|
||||
|
||||
### A:
|
||||
|
||||
**方法一:**
|
||||
|
||||
|
||||
这是由于对用户的私有仓库进行 CI 相关的 GitHub Action 是需要付费的。用户可通过给自己的 github 账户充值来解决。https://docs.github.com/cn/billing/managing-billing-for-github-actions/about-billing-for-github-actions 给出了具体信息。
|
||||
|
||||
**方法二:**
|
||||
|
||||
对用户的公开仓库进行 CI GitHub Action 是不需要付费的。在项目的 `Settings` -> `Change visibility` 将项目改成 Public, 重新触发 Action。
|
||||
对用户的公开仓库进行 CI GitHub Action 是不需要付费的。在项目的 `Settings` -> `Change visibility` 将项目改成 Public, 重新触发 Action。
|
||||
目前设置了让用户具有修改自己的项目从 private --> public 的能力。
|
||||
如果用户还是发现自己的权限不够,或看不到 `Settings` 这个选项,可以通过联系助教帮助来解决。
|
||||
|
||||
@@ -53,34 +52,34 @@ git push -f
|
||||
|
||||
### A:
|
||||
|
||||
- [Rust 大佬给初学者的学习建议](https://github.com/rustlang-cn/Rustt/blob/main/Articles/%5B2022-04-02%5D%20Rust%20%E5%A4%A7%E4%BD%AC%E7%BB%99%E5%88%9D%E5%AD%A6%E8%80%85%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%BB%BA%E8%AE%AE.md)
|
||||
- [张汉东:学习 Rust 你需要一个认知框架](https://zhuanlan.zhihu.com/p/494001676)
|
||||
- [Rust 语言圣经(Rust Course)](https://course.rs/)
|
||||
- [Rust 速查表(cheatsheet)](https://cheats.rs/) 该项目不仅提供了基础的语法速查,还有执行顺序详解和编写时需要关注的注意事项。项目还包含了示例代码(EX)、书籍(BK)、标准(STD)等相关资料的扩展。
|
||||
- [Rust 大佬给初学者的学习建议](https://github.com/rustlang-cn/Rustt/blob/main/Articles/%5B2022-04-02%5D%20Rust%20%E5%A4%A7%E4%BD%AC%E7%BB%99%E5%88%9D%E5%AD%A6%E8%80%85%E7%9A%84%E5%AD%A6%E4%B9%A0%E5%BB%BA%E8%AE%AE.md)
|
||||
- [张汉东:学习 Rust 你需要一个认知框架](https://zhuanlan.zhihu.com/p/494001676)
|
||||
- [Rust 语言圣经(Rust Course)](https://course.rs/)
|
||||
- [Rust 速查表(cheatsheet)](https://cheats.rs/) 该项目不仅提供了基础的语法速查,还有执行顺序详解和编写时需要关注的注意事项。项目还包含了示例代码(EX)、书籍(BK)、标准(STD)等相关资料的扩展。
|
||||
|
||||
## Q4:我不熟悉 GitHub 和 Git,有啥快速入门的资源吗?
|
||||
|
||||
### A:
|
||||
|
||||
- [包括:从 0 开始学习 GitHub 系列 1-7](https://jtxiao.com/main/categories/%E5%B7%A5%E5%85%B7/)
|
||||
- [超级简单的 Git 入门](https://backlog.com/git-tutorial/cn/)
|
||||
- [git - 简明指南](https://rogerdudler.github.io/git-guide/index.zh.html)
|
||||
- [中文 git-tips](https://github.com/521xueweihan/git-tips)
|
||||
- [GitHub 官方制作的 Git 速查表](https://education.github.com/git-cheat-sheet-education.pdf)
|
||||
- [包括:从 0 开始学习 GitHub 系列 1-7](https://jtxiao.com/main/categories/%E5%B7%A5%E5%85%B7/)
|
||||
- [超级简单的 Git 入门](https://backlog.com/git-tutorial/cn/)
|
||||
- [git - 简明指南](https://rogerdudler.github.io/git-guide/index.zh.html)
|
||||
- [中文 git-tips](https://github.com/521xueweihan/git-tips)
|
||||
- [GitHub 官方制作的 Git 速查表](https://education.github.com/git-cheat-sheet-education.pdf)
|
||||
|
||||
## Q5:我不熟悉 Linux 的各种命令,有啥快速入门的资源吗?
|
||||
|
||||
### A:
|
||||
|
||||
- [中文 Linux 命令(linux-command)搜索引擎](https://wangchujiang.com/linux-command/):随用随搜 Linux 命令,而且还支持中文搜索
|
||||
- [新版 Linux 命令百科全书》(英文)](https://github.com/tldr-pages/tldr)
|
||||
- [中文 Linux 命令(linux-command)搜索引擎](https://wangchujiang.com/linux-command/):随用随搜 Linux 命令,而且还支持中文搜索
|
||||
- [新版 Linux 命令百科全书》(英文)](https://github.com/tldr-pages/tldr)
|
||||
|
||||
## Q6:我碰到一些命令/应用(比如 vim, curl)、操作(比如 vscode)或语言用法(比如 Makefile)等不知到哪里能快速查找,怎么办?
|
||||
|
||||
|
||||
### A:
|
||||
|
||||
- [Rico's cheatsheets](https://devhints.io/) 开源、全面的速查表网站,涵盖了前端、后端、运维、IDE 多个方面,而且界面友好简洁支持在线查看
|
||||
- [所有与命令行相关的 cheatsheet](http://cheat.sh/):号称「你唯一需要的命令行相关速查表」
|
||||
- [Rico's cheatsheets](https://devhints.io/) 开源、全面的速查表网站,涵盖了前端、后端、运维、IDE 多个方面,而且界面友好简洁支持在线查看
|
||||
- [所有与命令行相关的 cheatsheet](http://cheat.sh/):号称「你唯一需要的命令行相关速查表」
|
||||
|
||||
## Q7:我可以正常 `make run`,但使用 `make test` 命令后,构件过程报了许多错(`asm!` not found in scope),Autograding 也无法通过,怎么办?
|
||||
|
||||
@@ -170,14 +169,13 @@ git push -f
|
||||
"user/Cargo.toml",
|
||||
]
|
||||
|
||||
如果还有新的projects想要rust-analyzer分析,参考上面的例子,把projects对应路径加入即可。
|
||||
|
||||
如果还有新的projects想要rust-analyzer分析,参考上面的例子,把projects对应路径加入即可。
|
||||
|
||||
**rust-analyzer插件无法正常解析rustlings repo中不同源码**
|
||||
|
||||
**解决方法**
|
||||
|
||||
访问 https://crates.io/crates/rustlings-fix 安装并允许rustlings-fix工具,它会生成一个配置文件 rust-project.json ,然后就可以看了
|
||||
访问 <https://crates.io/crates/rustlings-fix> 安装并允许rustlings-fix工具,它会生成一个配置文件 rust-project.json ,然后就可以看了
|
||||
|
||||
# Install rustlings-fix from cargo
|
||||
cargo install rustlings-fix
|
||||
@@ -188,7 +186,7 @@ git push -f
|
||||
# Run the binary
|
||||
rustlings-fix
|
||||
|
||||
## Q9:在用vscode中能否像一般应用一样,源码级调试rcore-tutorial-v3?如果可以,如何做?
|
||||
## Q9:在用vscode中能否像一般应用一样,源码级调试rcore-tutorial-v3?如果可以,如何做?
|
||||
|
||||
**方法一:(适合vscode 一般用户)**
|
||||
|
||||
@@ -197,7 +195,7 @@ git push -f
|
||||
|
||||
**方法二:(适合vscode熟手)**
|
||||
|
||||
目前 @chenzhiy2001 已经有了一个初步的实现方案,https://github.com/chenzhiy2001/code-debug 请访问 [coredebugger安装与使用](https://github.com/chenzhiy2001/code-debug#%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8) 了解具体操作过程。@chyyuu 试用后,觉得很不错!
|
||||
目前 @chenzhiy2001 已经有了一个初步的实现方案,<https://github.com/chenzhiy2001/code-debug> 请访问 [coredebugger安装与使用](https://github.com/chenzhiy2001/code-debug#%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8) 了解具体操作过程。@chyyuu 试用后,觉得很不错!
|
||||
|
||||
感谢 @chenzhiy2001 陈志扬的贡献!
|
||||
|
||||
@@ -208,4 +206,4 @@ git push -f
|
||||
|
||||
**方法三:(适合Linux 命令行熟手)**
|
||||
|
||||
请看 [GDB 调试支持](https://learningos.github.io/rust-based-os-comp2022/0setup-devel-env.html#gdb)
|
||||
请看 [GDB 调试支持](https://learningos.github.io/rust-based-os-comp2022/0setup-devel-env.html#gdb)
|
||||
|
||||
33
README.md
33
README.md
@@ -1,37 +1,43 @@
|
||||
# Open-Source OS Training Comp 2022
|
||||
|
||||
Welcome to Open-Source OS Training Comp 2022(2022年开源操作系统训练营).
|
||||
Welcome to Open-Source OS Training Comp 2022(2022 年开源操作系统训练营).
|
||||
|
||||
## Scheduling
|
||||
- NOTICE current [**Stage1 SCHEDULING**](./scheduling.md) & [**Stage2 SCHEDULING**](https://github.com/LearningOS/oscomp-kernel-training)(2022年开源操作系统训练营的第一/二阶段安排)!
|
||||
- [News](./news.md)(2022年开源操作系统训练营的新闻和纪要)
|
||||
|
||||
- NOTICE current [**Stage1 SCHEDULING**](./scheduling.md) & [**Stage2 SCHEDULING**](https://github.com/LearningOS/oscomp-kernel-training)(2022 年开源操作系统训练营的第一/二阶段安排)!
|
||||
- [News](./news.md)(2022 年开源操作系统训练营的新闻和纪要)
|
||||
- [QA](./QA.md)(常见问题解答)
|
||||
- Online Ranking(训练营在线排行榜)
|
||||
- [第一阶段排行:Rust Lang & rCore Kernel](https://learningos.github.io/classroom-grading/)
|
||||
- [第二阶段排行:OS Kernel Implementation in OSCOMP2022](https://os-autograding.github.io/classroom-grading-template/)
|
||||
- [Learning Resource](./relatedinfo.md) (训练营学习资源)
|
||||
- [Learning Resource](./relatedinfo.md)(训练营学习资源)
|
||||
|
||||
## History
|
||||
- [open-source os training comp 2021](https://github.com/rcore-os/rCore/wiki/os-tutorial-summer-of-code-2021)
|
||||
- [open-source os training comp 2020](https://github.com/rcore-os/rCore/wiki/os-tutorial-summer-of-code-2020)
|
||||
|
||||
- ## 助教&事务管理负责人
|
||||
- 姓名:许善朴
|
||||
- 微信号id: bitmeet520
|
||||
- [open-source os training comp 2021](https://github.com/rcore-os/rCore/wiki/os-tutorial-summer-of-code-2021)
|
||||
- [open-source os training comp 2020](https://github.com/rcore-os/rCore/wiki/os-tutorial-summer-of-code-2020)
|
||||
|
||||
- ## 助教 & 事务管理负责人
|
||||
|
||||
- 姓名:许善朴
|
||||
- 微信号id: bitmeet520
|
||||
|
||||
## 技术指导委员会
|
||||
- 陈向群
|
||||
|
||||
- 陈向群
|
||||
- 吴庆波
|
||||
- 潘爱民
|
||||
- 张汉东
|
||||
- 赵霞
|
||||
- 曹东刚
|
||||
- 李栋
|
||||
- 向勇
|
||||
- 向勇
|
||||
- 陈渝
|
||||
- 李国良
|
||||
- 任炬
|
||||
|
||||
## 支持与合作单位
|
||||
|
||||
- [rcore-os 开源社区](https://github.com/rcore-os)
|
||||
- [木兰开源社区](https://portal.mulanos.cn)
|
||||
- CCF开源发展委员会
|
||||
@@ -47,6 +53,5 @@ Welcome to Open-Source OS Training Comp 2022(2022年开源操作系统训练
|
||||
- 之江实验室
|
||||
- 阿里云
|
||||
- 华为
|
||||
- 智谱ai
|
||||
- 101计划操作系统课程虚拟教研室
|
||||
|
||||
- 智谱 ai
|
||||
- 101 计划操作系统课程虚拟教研室
|
||||
|
||||
Binary file not shown.
23
news.md
23
news.md
@@ -1,19 +1,20 @@
|
||||
# 2022年开源操作系统训练营的新闻与活动纪要
|
||||
- 2022.10.16:2022秋冬季训练营开始招生)(报名时间段 2022.10.16 ~ 2022.10.30),请在[报名登记处](https://github.com/LearningOS/rust-based-os-comp2022/issues/101) 填写相关个人信息,并加入[相关微信群](./wechat1016.png)。
|
||||
- 2022.10.01:2022秋冬季训练营筹备中。
|
||||
- 2022.09.28:[oscomp-kernel-training Github Class Room](https://github.com/LearningOS/oscomp-kernel-training)上线,基于全国大学生操作系统比赛内核挑战赛内容,提供编写支持Linux App的操作系统在线训练。到目前为止,参与训练营的学员创建了**1000多个public/private gitclassroom repos**。
|
||||
# 2022 年开源操作系统训练营的新闻与活动纪要
|
||||
|
||||
- 2022.10.16:2022 秋冬季训练营开始招生)(报名时间段 2022.10.16 ~ 2022.10.30),请在[报名登记处](https://github.com/LearningOS/rust-based-os-comp2022/issues/101) 填写相关个人信息,并加入[相关微信群](./wechat1016.png)。
|
||||
- 2022.10.01:2022 秋冬季训练营筹备中。
|
||||
- 2022.09.28:[oscomp-kernel-training Github Class Room](https://github.com/LearningOS/oscomp-kernel-training)上线,基于全国大学生操作系统比赛内核挑战赛内容,提供编写支持 Linux App 的操作系统在线训练。到目前为止,参与训练营的学员创建了**1000 多个 public/private gitclassroom repos**。
|
||||
- 2022.09.10:祝贺[完成暑期训练营的学员](./final-reporters-2022summer.md)完成最终技术报告,并将获得训练营证书。
|
||||
- 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开始技术报告。
|
||||
- 2022.07.30:[训练营第一阶段结束的调查问卷](https://www.wjx.cn/vm/w8a5pG0.aspx)发布;第二阶段技术交流报告日程安排发布
|
||||
- 2022.07.15: [训练营在线排行榜](https://os2edu.cn/grading/)发布
|
||||
- 2022.07.05:晚上20:30, 基于腾讯会议(会议号:201-785-984)召开"开源操作系统学习训练营开幕式"
|
||||
- 2022.07.04:大约150人在线报名,微信群目前120人左右,162人在 https://github.com/learningos 开始并建立了“lab0-0-setup-env-run-os1”作业的repos
|
||||
- 2022.06.28:在微信部分群中发布“欢迎加入2022年开源操作系统训练营”的信息,感谢[Rust语言中文社区](https://rustcc.cn/)、CSDN和张汉东老师等的进一步宣传
|
||||
- 2022.07.15: [训练营在线排行榜](https://os2edu.cn/grading/)发布
|
||||
- 2022.07.05:晚上 20:30, 基于腾讯会议召开"开源操作系统学习训练营开幕式"
|
||||
- 2022.07.04:大约 150 人在线报名,微信群目前 120 人左右,162 人在 <https://github.com/learningos> 开始并建立了“lab0-0-setup-env-run-os1”作业的 repos
|
||||
- 2022.06.28:在微信部分群中发布“欢迎加入 2022 年开源操作系统训练营”的信息,感谢[Rust 语言中文社区](https://rustcc.cn/)、CSDN 和张汉东老师等的进一步宣传
|
||||
- 2022.06.27:完成夏令营日程内容、建立报名通道,初步建立训练营开发环境
|
||||
- 2022.06.26:完成基于github classroom等资源的训练营开发环境原型系统验证
|
||||
- 2022.06.22:开始尝试基于github classroom等资源
|
||||
- 2022.06.18:确定本次训练营的大致活动内容,确定支持与合作单位、指导委员会、助教等
|
||||
- 2022.06.26:完成基于 github classroom 等资源的训练营开发环境原型系统验证
|
||||
- 2022.06.22:开始尝试基于 github classroom 等资源
|
||||
- 2022.06.18:确定本次训练营的大致活动内容,确定支持与合作单位、指导委员会、助教等
|
||||
- 2022.06.01:训练营准备开始启动
|
||||
|
||||
@@ -1,16 +1,21 @@
|
||||
|
||||
# 2022夏季Rust程序设计训练课资源(easy)
|
||||
|
||||
## 2022夏季Rust程序设计训练课资源(easy)
|
||||
- [清华计算机系大一学生2022暑期课程:Rust程序设计训练](https://lab.cs.tsinghua.edu.cn/rust/)
|
||||
|
||||
## 2022春季OS课资源(normal)
|
||||
|
||||
### 课程Slides
|
||||
|
||||
- [清华计算机系大三学生2022春季OS课程Slides](https://learningos.github.io/os-lectures/)
|
||||
|
||||
### 课程参考书
|
||||
|
||||
- [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/)
|
||||
- [rCore Tutorial Book v3](https://rcore-os.github.io/rCore-Tutorial-Book-v3/)
|
||||
|
||||
### 课程视频
|
||||
|
||||
- [20220221第一次课视频](https://meeting.tencent.com/v2/cloud-record/share?id=5fcc9ef3-cb43-48f6-9d33-f75f640e8c38&from=3)
|
||||
- [20220228第二次课视频](https://meeting.tencent.com/v2/cloud-record/share?id=0c2a73ec-238a-453b-8f0f-aaadaeb55eca&from=3)
|
||||
- [20220307第三次课视频](https://meeting.tencent.com/v2/cloud-record/share?id=c21406cf-96f9-4df6-8cab-af4dbd798769&from=3)
|
||||
@@ -24,9 +29,10 @@
|
||||
- [20220523第12次课视频](https://meeting.tencent.com/v2/cloud-record/share?id=5c2c8e4b-f9a0-4228-bb4d-b83c648057a0&from=3)
|
||||
- [20220530第13次课视频](https://meeting.tencent.com/v2/cloud-record/share?id=34309e7e-3835-4d3f-a056-eceec5598f66&from=3)
|
||||
|
||||
注:缺第七次课,各次课的密码是8位数字中的后4位数字
|
||||
> 缺第七次课,各次课的密码是8位数字中的后4位数字
|
||||
|
||||
## 2022春季Advanced OS课相关资源(hard)
|
||||
|
||||
- [清华计算机系研究生2021春季Advanced OS课程视频/slides](https://www.xuetangx.com/course/thu080917777/3234209)
|
||||
- [论文阅读列表](https://github.com/chyyuu/aos_course_info/blob/master/readinglist.md)
|
||||
- [OS比赛相关的一些硬件/OS实例/教程](https://github.com/oscomp/os-competition-info/blob/main/ref-info.md)
|
||||
@@ -40,17 +46,19 @@
|
||||
- [20220004 rcore-tutorial-v3 lab4](https://cloud.tsinghua.edu.cn/f/a44d31de255047ceb1fc/)
|
||||
- [20220005 rcore-tutorial-v3 lab5](https://cloud.tsinghua.edu.cn/f/7935a70766514c2ca08c/)
|
||||
|
||||
注:密码是 `xushanpu123`
|
||||
> 密码是 `xushanpu123`
|
||||
|
||||
## 2022春季OS课实验框架OS API DOC
|
||||
|
||||
注:下面各章 ``[345678]`` 的源码与 本repo中的 ``os[345678]-ref/src`` 目录下的源码是相同的。
|
||||
> 下面各章 ``[345678]`` 的源码与 本repo中的 ``os[345678]-ref/src`` 目录下的源码是相同的。
|
||||
|
||||
### OS API docs of rCore Tutorial Code 2022S
|
||||
- [OS API docs of ch3 ](https://learningos.github.io/rCore-Tutorial-Code-2022S/ch3/os/index.html)
|
||||
|
||||
- [OS API docs of ch3](https://learningos.github.io/rCore-Tutorial-Code-2022S/ch3/os/index.html)
|
||||
- [OS API docs of ch4](https://learningos.github.io/rCore-Tutorial-Code-2022S/ch4/os/index.html)
|
||||
- [OS API docs of ch5](https://learningos.github.io/rCore-Tutorial-Code-2022S/ch5/os/index.html)
|
||||
- [OS API docs of ch6](https://learningos.github.io/rCore-Tutorial-Code-2022S/ch6/os/index.html)
|
||||
- [easyFS API doc in ch6]( https://learningos.github.io/rCore-Tutorial-Code-2022S/ch6/easy_fs/index.html)
|
||||
- [easyFS API doc in ch6]( https://learningos.github.io/rCore-Tutorial-Code-2022S/ch6/easy_fs/index.html)
|
||||
- [OS API docs of ch7](https://learningos.github.io/rCore-Tutorial-Code-2022S/ch8/os/index.html)
|
||||
- [OS API docs of ch8](https://learningos.github.io/rCore-Tutorial-Code-2022S/ch8/os/index.html)
|
||||
|
||||
@@ -65,9 +73,10 @@
|
||||
- [chapter6(lab4)文件系统的代码解析和练习讲解视频](https://cloud.tsinghua.edu.cn/f/a5d5ece6e5b849a3ae8a/)
|
||||
- [chapter8(lab5)同步互斥的代码解析和练习讲解视频](https://cloud.tsinghua.edu.cn/f/b6b94ccebe084b31aa6b/)
|
||||
- [chapter9(第二阶段训练)内核中断/外设管理的代码解析讲解视频](https://cloud.tsinghua.edu.cn/f/1c9706422ad54cad997c/)
|
||||
|
||||
## 20220705"开源操作系统学习训练营开幕式" 相关slides
|
||||
|
||||
- [2022年开源操作系统学习训练营安排:向勇](https://github.com/LearningOS/resrouce-on-rust-based-os-comp2022/blob/main/20220705-%E5%90%91%E5%8B%87-%E5%BC%80%E5%B9%95%E5%BC%8F%E4%B8%8A%E7%9A%84%E4%BB%8B%E7%BB%8D-v4.pdf)
|
||||
- [Rust学习与领域应用:张汉东](https://github.com/LearningOS/resrouce-on-rust-based-os-comp2022/blob/main/20220705-%E5%BC%A0%E6%B1%89%E4%B8%9C-Rust%E5%AD%A6%E4%B9%A0%E4%B8%8E%E9%A2%86%E5%9F%9F%E5%BA%94%E7%94%A8.pptx)
|
||||
|
||||
**注:如访问上述网址碰到问题,请联系助教了解访问方式**
|
||||
> 如访问上述网址碰到问题,请联系助教了解访问方式。
|
||||
|
||||
134
scheduling.md
134
scheduling.md
@@ -1,5 +1,5 @@
|
||||
|
||||
## 2022年开源操作系统训练营:第一阶段
|
||||
# 2022年开源操作系统训练营:第一阶段
|
||||
|
||||
- [新闻与纪要](./news.md)
|
||||
- [常见问题解答](./QA.md)
|
||||
@@ -12,42 +12,41 @@
|
||||
|
||||
如有兴趣参加,请在2022年10月30日前请在[报名登记处](https://github.com/LearningOS/rust-based-os-comp2022/issues/101)填写相关个人信息,并加入[相关微信群](./wechat1016.png)。获得邀请后,将开始参与本次训练营活动。完成本次活动第一阶段(2022.11.01~2022.12.15)的同学如果通过review,将可在2022.12.16~2023.02.01,开展第二阶段[基于Rust语言的操作系统内核拓展实践](https://github.com/LearningOS/oscomp-kernel-training)。训练营结束后,部分表现突出的同学将获得训练营优秀证书。鼓励同学继续以开源社区的方式参与到企业/科研院所的操作系统实习/实践/工作/学习等相关的活动。
|
||||
|
||||
**注:我们也在改进开源操作系统训练营,即这个活动不仅仅局限在2022.11.01~2023.02.01。我们希望建立的是一种长期持续发展的操作系统训练营模式,即各种学习资源都开源并整理集中在一起,导师/助教和学生/爱好者之间基于要做的实验或项目不定期/定期的进行交流。学生/爱好者完成了一定程度的学习和训练后,除了自身得到能力的提升外,还可获得相关证书和就业/学习等机会和相关推荐等,推动他在未来的进一步发展。**
|
||||
> 我们也在改进开源操作系统训练营,即这个活动不仅仅局限在 2022.11.01~2023.02.01。我们希望建立的是一种长期持续发展的操作系统训练营模式,即各种学习资源都开源并整理集中在一起,导师/助教和学生/爱好者之间基于要做的实验或项目不定期/定期的进行交流。学生/爱好者完成了一定程度的学习和训练后,除了自身得到能力的提升外,还可获得相关证书和就业/学习等机会和相关推荐等,推动他在未来的进一步发展。
|
||||
|
||||
### 目标:
|
||||
## 目标:
|
||||
|
||||
**培养合作者,搭建合作平台。**
|
||||
**培养合作者,搭建合作平台。**
|
||||
|
||||
**探索把现代系统语言Rust和灵活开放的系统结构RISC-V带入到操作系统的架构与设计的创新中来,思考未来的操作系统应该是什么样。**
|
||||
**探索把现代系统语言Rust和灵活开放的系统结构RISC-V带入到操作系统的架构与设计的创新中来,思考未来的操作系统应该是什么样。**
|
||||
|
||||
### 宗旨:
|
||||
**希望本活动的组织,能为操作系统爱好者提供一个活跃的开源社区环境,为对Rust、RISC-V和操作系统感兴趣的人士营造一个平等的学习与交流空间,吸引更多对操作系统感兴趣的人士参与。**
|
||||
## 宗旨:
|
||||
|
||||
### 相关信息:
|
||||
- [参加2020/2021 OS训练营学生的blog](https://rcore-os.github.io/blog/),鼓励参加2022 OS训练营的同学把自己在学习过程中的感悟/收获等写成blog,生成pr,并提交到 https://github.com/rcore-os/blog 上,让更多人看到你的进步!
|
||||
**希望本活动的组织,能为操作系统爱好者提供一个活跃的开源社区环境,为对Rust、RISC-V和操作系统感兴趣的人士营造一个平等的学习与交流空间,吸引更多对操作系统感兴趣的人士参与。**
|
||||
|
||||
- **注意:** 本次实习分二个阶段,第一阶段(2022.11.01~2022.12.15)以线上自学为主;第二阶段(2022.12.16~2023.02.01)以线上实践为主;
|
||||
## 相关信息:
|
||||
|
||||
- **注意:** 为及时了解和指导同学的学习和实践情况并推动学生相互帮助,本次活动要求学生把每周学习实践的过程记录(Markdown格式)放在github上自己的公开repo中。可参见[每日学习实践的具体例子](https://github.com/GCYYfun/DailySchedule)和[2020年OS训练营同学的每日学习情况汇总](https://github.com/rcore-os/rCore-Tutorial/issues/18 ) 。请参加实习的同学把记录每天的进展的git repo网址 更新到[2022年OS训练营同学的每日学习情况汇总](https://github.com/LearningOS/rust-based-os-comp2022/issues/1) 中。要求每位同学在自己的git repo中记录自己的每周进展,其他同学也可以参考学习。
|
||||
- [参加2020/2021 OS训练营学生的blog](https://rcore-os.github.io/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中。可参见[每日学习实践的具体例子](https://github.com/GCYYfun/DailySchedule)和[2020年OS训练营同学的每日学习情况汇总](https://github.com/rcore-os/rCore-Tutorial/issues/18 ) 。请参加实习的同学把记录每天的进展的git repo网址 更新到[2022年OS训练营同学的每日学习情况汇总](https://github.com/LearningOS/rust-based-os-comp2022/issues/1) 中。要求每位同学在自己的git repo中记录自己的每周进展,其他同学也可以参考学习。
|
||||
- **注意** 第一阶段学习中的技术问题,建议基于github issues(比如都发到 <https://github.com/LearningOS/rust-based-os-comp2022/issues> 上,建立自己的 issue)发出并讨论。
|
||||
|
||||
- **注意:** 第一阶段学习中的技术问题,建议基于github issues (比如都发到 https://github.com/LearningOS/rust-based-os-comp2022/issues 上,建立自己的issue )发出并讨论。
|
||||
> 如果已经掌握RUST编程,可以跳过step 0;如果已经掌握RISC-V,可以跳过step 1;如果没学过OS课,建议选择一门在线OS课程学习一下。但需要完成第一阶段实习要求的练习。
|
||||
>
|
||||
> 如果不是学生,但有Rust基础且对用Rust开发OS感兴趣,也欢迎申请参加。
|
||||
|
||||
- 如果已经掌握RUST编程,可以跳过step 0;如果已经掌握RISC-V,可以跳过step 1;如果没学过OS课,建议选择一门在线OS课程学习一下。但需要完成第一阶段实习要求的练习。
|
||||
## 第一阶段活动安排
|
||||
|
||||
- 如果不是学生,但有Rust基础且对用Rust开发OS感兴趣,也欢迎申请参加。
|
||||
|
||||
### 第一阶段活动安排
|
||||
|
||||
#### 总体学习要求和成绩考核方式
|
||||
### 总体学习要求和成绩考核方式
|
||||
|
||||
- 在[学习实践过程记录表](https://github.com/LearningOS/rust-based-os-comp2022/issues/1)上登记自己每日/周学习记录情况的repo网址,并在这个repo上记录每日/周学习记录情况 (成绩分数:20%)
|
||||
- [学习记录的标杆1](https://github.com/LearningOS/record),浙江大学本科生徐文浩的2020开源操作系统训练营的过程记录,是大家学习的榜样,供大家学习参考。
|
||||
- [学习记录的标杆2](https://kiprey.github.io/tags/uCore/):湖南大学本科生肖政杭的自学ucore for x86的过程记录,是大家学习的榜样,供大家学习参考。
|
||||
- [学习记录的标杆1](https://github.com/LearningOS/record),浙江大学本科生徐文浩的2020开源操作系统训练营的过程记录,是大家学习的榜样,供大家学习参考。
|
||||
- [学习记录的标杆2](https://kiprey.github.io/tags/uCore/):湖南大学本科生肖政杭的自学ucore for x86的过程记录,是大家学习的榜样,供大家学习参考。
|
||||
|
||||
- 在[第一阶段学习issues](https://github.com/LearningOS/rust-based-os-comp2022/issues/)上的提问和回答问题情况,在[第一阶段OS学习项目](https://github.com/LearningOS/rust-based-os-comp2022/) 、 [rCore Tutorial v3的详细实验指导内容](https://rcore-os.github.io/rCore-Tutorial-Book-v3/) 上的Pull Request提交情况(代码改进、文档改进、文档错误等) (成绩分数:15%)
|
||||
- step 0 要求的[Rust-lang Lab Test based on Rustlings(采用Github Classroom模式的Rustling小练习)](https://classroom.github.com/a/YTNg1dEH) 的完成情况 (成绩分数:15%)
|
||||
- step 2 [第一阶段OS学习的5个实验](https://github.com/LearningOS/rust-based-os-comp2022#kernel-labs)的完成情况和总结报告 (成绩分数:50%)
|
||||
- [第一阶段总结报告的参考](https://rcore-os.github.io/blog/2021/07/29/rcore-summary-yangpan/): 杨攀同学的2021年开源操作系统训练营第一阶段总结报告
|
||||
- [第一阶段总结报告的参考](https://rcore-os.github.io/blog/2021/07/29/rcore-summary-yangpan/): 杨攀同学的2021年开源操作系统训练营第一阶段总结报告
|
||||
|
||||
#### step 0 自学rust编程(大约7~14天)
|
||||
|
||||
@@ -60,31 +59,23 @@
|
||||
|
||||
2. 自学编程
|
||||
|
||||
- [Rust-lang Lab Test based on Rustlings](https://classroom.github.com/a/YTNg1dEH)(采用Github Classroom模式的Rustling小练习,点击上述链接,形成自己的练习用repo)
|
||||
- [Rust-lang Lab Test based on Rustlings](https://classroom.github.com/a/YTNg1dEH)(采用Github Classroom模式的Rustling小练习,点击上述链接,形成自己的练习用repo)
|
||||
- 要求:**必须完成** 。每完成几个小练习,就执行 ``git add; git commit -m"update"; git push`` 命令,把更新提交到GithubClassroom的CI进行自动评测。要求小练习全部通过GithubClassroom的CI自动评测。
|
||||
- [学习系列视频:Rust中文社群线上学习室--通过 Rustlings 学 Rust](https://space.bilibili.com/24917186/video)
|
||||
|
||||
**提示:基于github classroom的开发方式**
|
||||
|
||||
基于github classroom,可方便建立开发用的git repository,并可基于github的 codespace (在线版ubuntu +vscode)在线开发使用。整个开发环境仅仅需要一个网络浏览器。
|
||||
- [学习系列视频:Rust中文社群线上学习室--通过 Rustlings 学 Rust](https://space.bilibili.com/24917186/video)
|
||||
|
||||
1.) 在网络浏览器中用自己的 github id 登录 github.com
|
||||
**提示:基于github classroom的开发方式**
|
||||
|
||||
2.) 接收 [Rust-lang Lab Test based on Rustlings 的github classroom在线邀请](https://classroom.github.com/a/YTNg1dEH) ,根据提示一路选择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` ),编辑代码的循环实验过程了。
|
||||
基于github classroom,可方便建立开发用的git repository,并可基于github的 codespace(在线版ubuntu +vscode)在线开发使用。整个开发环境仅仅需要一个网络浏览器。
|
||||
|
||||
上述的3,4,5步不是必须的,你也可以线下本地开发。
|
||||
> codespace 不是必须的。如果是本地的ubuntu中建立开发环境,可在shell中执行 `make ubuntu_local_setenv` 来自动安装配置开发环境(执行需要 `sudo` root 权限,仅需要执行一次)。
|
||||
|
||||
注:如果是本地的ubuntu中建立开发环境,可在shell中执行 ``make ubuntu_local_setenv`` 来自动安装配置开发环境(执行``sudo``需要root权限,仅需要执行一次)。
|
||||
1. 在网络浏览器中用自己的 github id 登录 github.com。
|
||||
2. 接收 [Rust-lang Lab Test based on Rustlings 的github classroom在线邀请](https://classroom.github.com/a/YTNg1dEH) ,根据提示一路选择OK即可。
|
||||
3. 完成第二步后,你的rustings实验练习 的 github repository 会被自动建立好,点击此github repository的链接,就可看到你要完成的实验了。
|
||||
4. 在你的第一个实验练习的网页的中上部可以看到一个醒目的 `code` 绿色按钮,点击后,可以进一步看到 `codespace` 标签和醒目的 `create codesapce on edu` 绿色按钮。请点击这个绿色按钮,就可以进入到在线的ubuntu +vscode环境中
|
||||
5. 再按照下面的环境安装提示在vscode的 `console` 中安装配置开发环境:rustc等工具。
|
||||
6. 在vscode的 `console` 中执行 `make setupclassroom` (该命令仅执行一次)配置githubclassroom 自动评分功能。
|
||||
7. 然后就可以基于在线vscode进行测试 (执行命令 `rustlings watch` ),编辑代码的循环实验过程了。
|
||||
|
||||
- (Option)[32 Rust Quizes](https://dtolnay.github.io/rust-quiz/1)
|
||||
- 要求:小练习全部通过。(**非必须完成**)
|
||||
@@ -92,37 +83,39 @@
|
||||
- 要求:大部分练习会做或能读懂。(**非必须完成**)
|
||||
- [exercism.io官方站点](https://exercism.io/)
|
||||
|
||||
|
||||
#### step 1 自学risc-v系统结构(大约2~7天)
|
||||
|
||||
前提条件:要求有基本计算机组成原理,计算机系统结构基础。
|
||||
|
||||
1.阅读《计算机组成与设计(RISC-V版)》第一、二章,可以在整体结构上对 RISC-V 体系建立基本认知。 再进行后面的学习比较有效果。
|
||||
阅读《计算机组成与设计(RISC-V版)》第一、二章,可以在整体结构上对 RISC-V 体系建立基本认知。再进行后面的学习比较有效果。
|
||||
|
||||
#### 自学材料和练习要求:
|
||||
|
||||
###### 自学材料和练习要求:
|
||||
1. 阅读书籍和在线课程
|
||||
- 自学[PPT for RISC-V特权指令级架构](https://content.riscv.org/wp-content/uploads/2018/05/riscv-privileged-BCN.v7-2.pdf)
|
||||
- 自学[RISC-V手册:一本开源指令集的指南](http://riscvbook.com/chinese/RISC-V-Reader-Chinese-v2p1.pdf) 重点是第10章
|
||||
- (Option)自学[RIS-V特权指令级规范](https://riscv.org/technical/specifications/) 重点是与OS相关的特权硬件访问的规范内容(Privileged Spec)
|
||||
- (Option)自学[RISC-V汇编手册](https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md)
|
||||
- (Option)[计算机组成与设计:RISC-V 教材](https://item.jd.com/12887758.html) 这是完整的课程教材,不要求全部看完,请根据自己的需求选择。
|
||||
- (Option)[计算机组成与设计:RISC-V 浙大在线课程](http://www.icourse163.org/course/ZJU-1452997167) 这是完整的一门课,不要求全部看完,请根据自己的需求选择。
|
||||
|
||||
- 自学[PPT for RISC-V特权指令级架构](https://content.riscv.org/wp-content/uploads/2018/05/riscv-privileged-BCN.v7-2.pdf)
|
||||
- 自学[RISC-V手册:一本开源指令集的指南](http://riscvbook.com/chinese/RISC-V-Reader-Chinese-v2p1.pdf) 重点是第10章
|
||||
- (Option)自学[RIS-V特权指令级规范](https://riscv.org/technical/specifications/) 重点是与OS相关的特权硬件访问的规范内容(Privileged Spec)
|
||||
- (Option)自学[RISC-V汇编手册](https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md)
|
||||
- (Option)[计算机组成与设计:RISC-V 教材](https://item.jd.com/12887758.html) 这是完整的课程教材,不要求全部看完,请根据自己的需求选择。
|
||||
- (Option)[计算机组成与设计:RISC-V 浙大在线课程](http://www.icourse163.org/course/ZJU-1452997167) 这是完整的一门课,不要求全部看完,请根据自己的需求选择。
|
||||
|
||||
2. 其他参考学习信息
|
||||
- (Option)[Berkeley CS61C: Great Ideas in Computer Architecture (Machine Structures)](http://www-inst.eecs.berkeley.edu/~cs61c/sp18/)
|
||||
|
||||
- (Option)[Berkeley CS61C: Great Ideas in Computer Architecture (Machine Structures)](http://www-inst.eecs.berkeley.edu/~cs61c/sp18/)
|
||||
|
||||
注:Option的含义是:如果有足够的时间建议看看,否则在后续要用到时或需要查询进一步信息时再查阅这些内容。
|
||||
> Option的含义是:如果有足够的时间建议看看,否则在后续要用到时或需要查询进一步信息时再查阅这些内容。
|
||||
|
||||
3. 通过要求
|
||||
|
||||
- 掌握RUST编程,能修改下面的rCore tutorial的代码,理解RISC-V与OS相关的硬件特性(中断,异常,系统调用,寄存器,特权级,MMU...)。
|
||||
- 掌握RUST编程,能修改下面的rCore tutorial的代码,理解RISC-V与OS相关的硬件特性(中断,异常,系统调用,寄存器,特权级,MMU...)。
|
||||
|
||||
#### step 2 基于Rust语言进行操作系统内核实验--based on qemu (大约14~31天)
|
||||
|
||||
前提条件:要求有操作系统的基础,基本理解RISC-V与OS相关的硬件特性
|
||||
|
||||
##### 学习理解
|
||||
|
||||
- [OS课程slides](https://learningos.github.io/os-lectures/)
|
||||
- [rCore Tutorial v3的详细实验指导内容](https://rcore-os.github.io/rCore-Tutorial-Book-v3/)
|
||||
- [rCore Tutorial v3的实验代码](https://github.com/rcore-os/rCore-Tutorial-v3)
|
||||
@@ -133,29 +126,26 @@
|
||||
|
||||
根据[rust-based-os-comp2022](https://github.com/LearningOS/rust-based-os-comp2022)中的各个实验的具体实验要求在自己的仓库中完成5个实验,通过基于GitHub Classroom的CI测试,并在最后写出总结报告。
|
||||
|
||||
访问 [训练营 kernel labs](https://github.com/LearningOS/rust-based-os-comp2022#kernel-labs),点击下列链接,形成各个自己实验专用 repos:
|
||||
|
||||
具体步骤
|
||||
- 登录github.com
|
||||
- 访问 [训练营 kernel labs](https://github.com/LearningOS/rust-based-os-comp2022#kernel-labs) ,点击如下链接,形成各个自己实验专用 repos:
|
||||
|
||||
- [lab0-0实践](https://classroom.github.com/a/hnoWuKGF)
|
||||
- [lab0-1实践](https://classroom.github.com/a/UEOvz4qO)
|
||||
- [lab1实验](https://classroom.github.com/a/s1v7GyJM)
|
||||
- [lab2 实验](https://classroom.github.com/a/ghbB1wYX)
|
||||
- [lab3 实验](https://classroom.github.com/a/RxB6h4-x)
|
||||
- [lab4 实验](https://classroom.github.com/a/94eMW8zi)
|
||||
- [lab5 实验](https://classroom.github.com/a/zqGJEPK-)
|
||||
- [lab0-0 实践](https://classroom.github.com/a/hnoWuKGF)
|
||||
- [lab0-1 实践](https://classroom.github.com/a/UEOvz4qO)
|
||||
- [lab1 实验](https://classroom.github.com/a/s1v7GyJM)
|
||||
- [lab2 实验](https://classroom.github.com/a/ghbB1wYX)
|
||||
- [lab3 实验](https://classroom.github.com/a/RxB6h4-x)
|
||||
- [lab4 实验](https://classroom.github.com/a/94eMW8zi)
|
||||
- [lab5 实验](https://classroom.github.com/a/zqGJEPK-)
|
||||
|
||||
请注意各个实践或实验的具体初始化设置:
|
||||
- [lab0-0实践初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter1/0intro.html#id4)
|
||||
- [lab0-1实践初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter2/0intro.html#id3)
|
||||
- [lab1实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter3/0intro.html#id3)
|
||||
- [lab2 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter4/0intro.html#id3)
|
||||
- [lab3 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter5/0intro.html#id3)
|
||||
- [lab4 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter6/0intro.html#id3)
|
||||
- [lab5 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter8/0intro.html#id5)
|
||||
|
||||
- [lab0-0 实践初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter1/0intro.html#id4)
|
||||
- [lab0-1 实践初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter2/0intro.html#id3)
|
||||
- [lab1 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter3/0intro.html#id3)
|
||||
- [lab2 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter4/0intro.html#id3)
|
||||
- [lab3 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter5/0intro.html#id3)
|
||||
- [lab4 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter6/0intro.html#id3)
|
||||
- [lab5 实验初始化设置](https://learningos.github.io/rust-based-os-comp2022/chapter8/0intro.html#id5)
|
||||
|
||||
然后就可以开始具体的实践和实验了。
|
||||
|
||||
|
||||
在完成每个实验中的OS代码后,通过执行 `git push` 命令来更新自己的实验专用 repos,并触发GitHub Classroom的CI测试。等一小会后,会看到自己的实验专用 repos 上面会有一个绿色的小勾,表示最新的提交通过了CI测试。如果看到的是红色的小叉,表面没有通过CI测试,你可以点击小叉,并进一步点击 GitHub Classroom Workflow/Autograding 的 details,进入自动测试的详细log记录页面,查看测试中具体在哪一步出现了问题,并尝试自己修复bug/更新功能,争取下一次通过测试。
|
||||
|
||||
127
stage3-sched.md
127
stage3-sched.md
@@ -1,6 +1,7 @@
|
||||
## 2022年开源操作系统训练营:第二阶段
|
||||
# 2022年开源操作系统训练营:第二阶段
|
||||
|
||||
## 相关信息
|
||||
|
||||
- **注意:** 为及时了解和指导同学的学习和实践情况并推动学生相互帮助,本次活动要求学生把每日学习实践的过程记录在自己在github的公开repo上。可参考:
|
||||
- [徐文浩的2020开源操作系统训练营的过程记录](https://github.com/LearningOS/record)
|
||||
- [2021开源操作系统训练营第二阶段总结列表](https://rcore-os.github.io/blog/categories/report/)
|
||||
@@ -10,8 +11,8 @@
|
||||
- [2020开源操作系统训练营第二阶段总结:rCore 到 zCore 功能迁移组报告 -- 郑昱笙、李宇](https://rcore-os.github.io/blog/2020/08/30/report-of-rCore-to-zCore/)
|
||||
- [陈兴的每日学习实践的过程记录](https://github.com/GCYYfun/DailySchedule)
|
||||
|
||||
|
||||
## 日程:第一周:OS相关技术讲解与学习(7天)
|
||||
|
||||
- 题目:CoreDebugger:支持Rust语言的源代码级内核调试工具,报告人:陈志扬,时间 2022.07.31 9:00(周日上午)
|
||||
- 题目:zCore结构和核心组件,报告人:张译仁,时间:2022.08.01 20:30(周一晚上)
|
||||
- 题目:操作系统多核启动,报告人:杨德睿,时间:2022.08.02 20:30(周二晚上)
|
||||
@@ -20,9 +21,10 @@
|
||||
- 题目:zCore单元测试框架,报告人:石振兴,时间:2022.08.05 20:30(周五晚上)
|
||||
|
||||
## 日程:第二~第四周:操作系统研究与探索项目 (34天)
|
||||
|
||||
目前设置了多个项目,学生可选择参加下面的项目,指导老师制定以周为单位的项目研究计划。
|
||||
|
||||
**注意:参加操作系统研究与探索项目的前提先完成第一阶段的实验要求(写了总结报告,完成了lab0~lab5的实验),为此,晚了一些时间是可以的**
|
||||
**注意:参加操作系统研究与探索项目的前提先完成第一阶段的实验要求(写了总结报告,完成了lab0~lab5的实验),为此,晚了一些时间是可以的**
|
||||
|
||||
#### 模块化的 rCore-Tutorial-v3
|
||||
|
||||
@@ -47,36 +49,40 @@
|
||||
- 系统调用接口模块化:系统调用的分发封装到一个 crate。使得添加系统调用的模式不是为某个 match 增加分支,而是实现一个分发库要求的 trait 并将实例传递给分发库
|
||||
|
||||
7. 相关的开源软件仓库列表:
|
||||
- https://github.com/theseus-os/Theseus (OS的目标不同,但在OS的设计上有部分内容与此相近)
|
||||
- <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 进一步扩展 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
|
||||
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
|
||||
8. 项目社区导师:杨德睿 github id:YdrMaster weichat id: ydrdwx
|
||||
9. 项目社区导师:陈乐 github id: yuoo655 weichat id: Endagorion_
|
||||
10. 项目产出要求:
|
||||
- 补充完善 rCore-Tutorial-v3
|
||||
|
||||
- 补充完善 rCore-Tutorial-v3
|
||||
|
||||
11. 项目技术要求:
|
||||
- 具备一定的 Rust 语言基础,能看懂并模仿现有代码即可
|
||||
- 熟悉操作系统原理与简易实现
|
||||
- 具有基础英文阅读和写作能力
|
||||
|
||||
11. 相关的开源软件仓库列表:
|
||||
- https://github.com/rcore-os/rCore-Tutorial-v3
|
||||
- https://rcore-os.github.io/rCore-Tutorial-Book-v3/final-lab.html
|
||||
- 具备一定的 Rust 语言基础,能看懂并模仿现有代码即可
|
||||
- 熟悉操作系统原理与简易实现
|
||||
- 具有基础英文阅读和写作能力
|
||||
|
||||
10. 一个月可行的进阶步骤(当然也是一种挑战)
|
||||
- 选择1:内核支持中断响应 --> 内核支持 读取设备树,支持virtio外设,支持串口外设 (rcore tutorial v3的ch9已经完成) --> 内核支持多核结构 --> 内核支持Linux syscall(即支持Linux应用)
|
||||
- 选择2:内核支持中断响应 --> 内核支持 读取设备树,支持virtio外设,支持串口外设 --> 图形界面支持 (rcore tutorial v3的ch9已经完成) --> 改进图形界面支持
|
||||
- 选择3:内核支持中断响应 --> 内核支持 读取设备树,支持virtio外设,支持串口外设 (rcore tutorial v3的ch9已经完成) --> 实现对TUI界面的支持(即可以在字符界面实现窗口界面和各种基于TUI界面的游戏)
|
||||
12. 相关的开源软件仓库列表:
|
||||
|
||||
- <https://github.com/rcore-os/rCore-Tutorial-v3>
|
||||
- <https://rcore-os.github.io/rCore-Tutorial-Book-v3/final-lab.html>
|
||||
|
||||
13. 一个月可行的进阶步骤(当然也是一种挑战)
|
||||
- 选择1:内核支持中断响应 --> 内核支持 读取设备树,支持virtio外设,支持串口外设 (rcore tutorial v3的ch9已经完成) --> 内核支持多核结构 --> 内核支持Linux syscall(即支持Linux应用)
|
||||
- 选择2:内核支持中断响应 --> 内核支持 读取设备树,支持virtio外设,支持串口外设 --> 图形界面支持 (rcore tutorial v3的ch9已经完成) --> 改进图形界面支持
|
||||
- 选择3:内核支持中断响应 --> 内核支持 读取设备树,支持virtio外设,支持串口外设 (rcore tutorial v3的ch9已经完成) --> 实现对TUI界面的支持(即可以在字符界面实现窗口界面和各种基于TUI界面的游戏)
|
||||
|
||||
选择2/3的OS参考
|
||||
|
||||
@@ -84,10 +90,11 @@
|
||||
- [有snake/2048图形界面游戏的SnakeOS](https://github.com/trusch/snakeos)
|
||||
|
||||
### 操作系统课程的有趣大实验
|
||||
|
||||
1. 项目标题:操作系统课程的有趣大实验
|
||||
2. 项目描述:操作系统课程的大实验的重要目标基于学生兴趣来开展各种操作系统技术的探索,拓展学生的视野,培养未来操作系统人才。
|
||||
3. 项目难度:中/高 (适合完成了lab1-5,并希望能够较快进入更实际一些的OS能力训练或做OS方向研究的同学)
|
||||
4. 项目社区导师:向勇 github id: xyongcn weichat id: xyongcn
|
||||
4. 项目社区导师:向勇 github id: xyongcn weichat id: xyongcn
|
||||
5. 项目产出要求:
|
||||
- 各种大实验的设计与实现
|
||||
|
||||
@@ -97,19 +104,22 @@
|
||||
- 具有基础英文阅读和写作能力
|
||||
|
||||
7. 2022春季OS课相关大实验的开源软件仓库列表(鼓励进一步改进和扩展):
|
||||
- [类似ebpf的rcore trace](https://github.com/latte-c/rvjit)
|
||||
- [硬件级用户态中断模拟与系统软件支持](https://github.com/OS-F-4/usr-intr)
|
||||
- [支持异步协程的zCore](https://github.com/orgs/OSLab-zCore/)
|
||||
- [用rust重新实现FreeRTOS](https://github.com/LDYang694/RFREERTOS)
|
||||
- [用rust重新实现Linux的KVM](https://github.com/KaitoD/linux)
|
||||
- [基于x86_64的rCore-Tutorial-v3](https://github.com/rcore-os/rCore-Tutorial-v3-x86_64)
|
||||
- [基于AARCH64的rCore-Tutorial-v3](https://github.com/rcore-os/rCore-Tutorial-v3-arm64)
|
||||
- rCore-Tutorial-v3/zCore直接支持Rust std标准库:已完成的本科毕设,有初步结果
|
||||
|
||||
- [类似ebpf的rcore trace](https://github.com/latte-c/rvjit)
|
||||
- [硬件级用户态中断模拟与系统软件支持](https://github.com/OS-F-4/usr-intr)
|
||||
- [支持异步协程的zCore](https://github.com/orgs/OSLab-zCore/)
|
||||
- [用rust重新实现FreeRTOS](https://github.com/LDYang694/RFREERTOS)
|
||||
- [用rust重新实现Linux的KVM](https://github.com/KaitoD/linux)
|
||||
- [基于x86_64的rCore-Tutorial-v3](https://github.com/rcore-os/rCore-Tutorial-v3-x86_64)
|
||||
- [基于AARCH64的rCore-Tutorial-v3](https://github.com/rcore-os/rCore-Tutorial-v3-arm64)
|
||||
- rCore-Tutorial-v3/zCore直接支持Rust std标准库:已完成的本科毕设,有初步结果
|
||||
|
||||
### 异步操作系统
|
||||
|
||||
1. 项目标题:异步操作系统设计和完善
|
||||
2. 项目描述:在RISC-V平台上设计并实现一个基于Rust语言的异步操作系统。最终目标是,利用Rust语言和开源工具链的特征,在操作系统内核中实现细粒度的并发安全、模块化和可定制特征;利用Rust语言的异步机制,优化操作系统内核的并发性能;向应用程序提供的异步系统调用接口,优化操作系统的系统调用访问性能;结合LLVM中Rust语言编译器的异步支持技术,完善操作系统的进程、线程和协程概念,统一进程、线程和协程的调度机制;利用RISC-V平台的用户态中断技术,优化操作系统的信号和进程通信性能;开发原型系统,设计用户态测试用例库和操作系统动态分析跟踪工具,对异步操作系统的特征进行定量性的评估。
|
||||
3. 项目难度:中/高 (适合完成了lab1-5,并希望能够较快进入更实际一些的OS能力训练或做OS方向研究的同学)
|
||||
4. 项目社区导师:向勇 github id: xyongcn weichat id: xyongcn
|
||||
4. 项目社区导师:向勇 github id: xyongcn weichat id: xyongcn
|
||||
5. 项目产出要求:
|
||||
- 参与正在进行的异步操作系统开发项目,提供力所能及改进和完善;
|
||||
- 针对异步操作系统中还没有开工的模块,提供初始的参考实现;
|
||||
@@ -119,19 +129,21 @@
|
||||
- 具有基础英文阅读和写作能力
|
||||
|
||||
7. 已有相关工作:
|
||||
- [异步操作系统设计](https://github.com/async-kernel/documents/blob/main/design/design.md)
|
||||
- 用户态中断扩展
|
||||
- 尤予阳,[软硬协同的用户态中断](https://gallium70.github.io/rv-n-ext-impl/intro.html):RISC-V的用户态中断规范建议;
|
||||
- [软硬协同的用户态中断机制研究](https://github.com/Gallium70/final-project/blob/master/论文.pdf):本科毕设论文;
|
||||
- 王之栋、项晨东、孙迅,[基于Intel x86用户态中断的高效进程间通信](https://github.com/OS-F-4/usr-intr/blob/main/ppt/2022-6-11.pptx):Intel用户态中断的QEMU支持、基于用户态中断的异步系统调用实现
|
||||
- 内核模块的异步通信框架:
|
||||
- 吴一凡,[Async-modules extension of zCore](https://github.com/wyfcyx/zCore/tree/async-modules):异步模块间的通信框架实现;
|
||||
- 用户态的异步支持库:
|
||||
- 车春池,[基于Rust的io-uring实现](https://github.com/SKTT1Ryze/Graduation2022/releases/download/v0.1.0/thesis.pdf):Rust和C++的异步支持库,本科毕设论文;
|
||||
- 异步操作系统调度
|
||||
- 车春池、蒋周奇:共享调度器 https://github.com/HUST-OS/tornado-os#如何运行
|
||||
- 刘松铭、于子淳:[zCore多核异步调度器](https://github.com/OSLab-zCore/OSLab-Docs)
|
||||
- 王文智:[线程与协程的统一调度](https://github.com/AmoyCherry/UnifieldScheduler/blob/02f3d17cafd6b3ca4091df6a47798f67a44e7788/%E5%BC%82%E6%AD%A5OS%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3.md)
|
||||
|
||||
- [异步操作系统设计](https://github.com/async-kernel/documents/blob/main/design/design.md)
|
||||
- 用户态中断扩展
|
||||
- 尤予阳,[软硬协同的用户态中断](https://gallium70.github.io/rv-n-ext-impl/intro.html):RISC-V的用户态中断规范建议;
|
||||
- [软硬协同的用户态中断机制研究](https://github.com/Gallium70/final-project/blob/master/论文.pdf):本科毕设论文;
|
||||
- 王之栋、项晨东、孙迅,[基于Intel x86用户态中断的高效进程间通信](https://github.com/OS-F-4/usr-intr/blob/main/ppt/2022-6-11.pptx):Intel用户态中断的QEMU支持、基于用户态中断的异步系统调用实现
|
||||
- 内核模块的异步通信框架:
|
||||
- 吴一凡,[Async-modules extension of zCore](https://github.com/wyfcyx/zCore/tree/async-modules):异步模块间的通信框架实现;
|
||||
- 用户态的异步支持库:
|
||||
- 车春池,[基于Rust的io-uring实现](https://github.com/SKTT1Ryze/Graduation2022/releases/download/v0.1.0/thesis.pdf):Rust和C++的异步支持库,本科毕设论文;
|
||||
- 异步操作系统调度
|
||||
- 车春池、蒋周奇:共享调度器 <https://github.com/HUST-OS/tornado-os>#如何运行
|
||||
- 刘松铭、于子淳:[zCore多核异步调度器](https://github.com/OSLab-zCore/OSLab-Docs)
|
||||
- 王文智:[线程与协程的统一调度](https://github.com/AmoyCherry/UnifieldScheduler/blob/02f3d17cafd6b3ca4091df6a47798f67a44e7788/%E5%BC%82%E6%AD%A5OS%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3.md)
|
||||
|
||||
### zCore 的文档与单元测试完善
|
||||
|
||||
1. 项目标题:zCore 的文档与单元测试完善
|
||||
@@ -157,10 +169,9 @@
|
||||
- 熟悉操作系统原理与简易实现
|
||||
- 具有基础英文阅读和写作能力
|
||||
9. 相关的开源软件仓库列表:
|
||||
- https://github.com/rcore-os/zCore (zCore 仓库)
|
||||
- https://rcore-os.github.io/zCore/zircon_object (zCore 代码文档)
|
||||
- https://fuchsia.dev/fuchsia-src/reference (Zircon 官方文档)
|
||||
|
||||
- <https://github.com/rcore-os/zCore> (zCore 仓库)
|
||||
- <https://rcore-os.github.io/zCore/zircon_object> (zCore 代码文档)
|
||||
- <https://fuchsia.dev/fuchsia-src/reference> (Zircon 官方文档)
|
||||
|
||||
### zCore 的星光/SiFive/树莓派等开发板和外设支持
|
||||
|
||||
@@ -180,11 +191,10 @@
|
||||
- 熟悉 RISC-V64 指令集,或做过其它平台的底层移植工作
|
||||
- 熟悉K210的开发经验
|
||||
9. 相关的开源软件仓库列表:
|
||||
- https://github.com/rcore-os/zCore (zCore 仓库)
|
||||
- https://github.com/rcore-os/rCore (rCore 仓库,支持RISC-V)
|
||||
- https://github.com/kendryte/kendryte-doc-datasheet
|
||||
- https://github.com/sipeed/MaixPy
|
||||
|
||||
- <https://github.com/rcore-os/zCore> (zCore 仓库)
|
||||
- <https://github.com/rcore-os/rCore> (rCore 仓库,支持RISC-V)
|
||||
- <https://github.com/kendryte/kendryte-doc-datasheet>
|
||||
- <https://github.com/sipeed/MaixPy>
|
||||
|
||||
### rCore 到 zCore 的功能迁移
|
||||
|
||||
@@ -201,9 +211,9 @@
|
||||
- 熟悉 Rust 语言
|
||||
- 熟悉 Linux 系统调用
|
||||
9. 相关的开源软件仓库列表:
|
||||
- https://github.com/rcore-os/zCore (zCore 仓库)
|
||||
- https://github.com/rcore-os/rCore (rCore 仓库)
|
||||
|
||||
- <https://github.com/rcore-os/zCore> (zCore 仓库)
|
||||
- <https://github.com/rcore-os/rCore> (rCore 仓库)
|
||||
|
||||
### 改进 RVM 虚拟机
|
||||
|
||||
1. 项目标题:改进 RVM 虚拟机
|
||||
@@ -223,11 +233,10 @@
|
||||
- 熟悉虚拟化技术
|
||||
- 熟悉 x86_64 指令集,理解 VMX 的原理和基于 VMX 的开发
|
||||
8. 相关的开源软件仓库列表:
|
||||
- https://github.com/rcore-os/rCore (rCore 仓库)
|
||||
- https://github.com/equation314/rCore/tree/rvm (正在开发中的包含 RVM 的 rCore 仓库)
|
||||
- https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials (树莓派上的 Rust OS 教程)
|
||||
- https://github.com/siemens/jailhouse (基于 Linux module 的 Hypervisor)
|
||||
|
||||
- <https://github.com/rcore-os/rCore> (rCore 仓库)
|
||||
- <https://github.com/equation314/rCore/tree/rvm> (正在开发中的包含 RVM 的 rCore 仓库)
|
||||
- <https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials> (树莓派上的 Rust OS 教程)
|
||||
- <https://github.com/siemens/jailhouse> (基于 Linux module 的 Hypervisor)
|
||||
|
||||
### 面向 Rust-based OS的vscode 动态调试工具
|
||||
|
||||
@@ -248,6 +257,6 @@
|
||||
- 了解QEMU 中的 gdbserver 与 gdb之间的通信协议
|
||||
- 熟悉 typescript开发
|
||||
7. 相关的开源软件仓库列表:
|
||||
- https://github.com/chenzhiy2001/code-debug
|
||||
- <https://github.com/chenzhiy2001/code-debug>
|
||||
|
||||
注:欢迎进入第二阶段的同学提出自己感兴趣的题目,并尽快联系助教或老师进行立项。
|
||||
> 欢迎进入第二阶段的同学提出自己感兴趣的题目,并尽快联系助教或老师进行立项。
|
||||
|
||||
Reference in New Issue
Block a user