Skip to content

Files

Latest commit

2693040 · Mar 20, 2025

History

History
286 lines (169 loc) · 16.3 KB

QA.md

File metadata and controls

286 lines (169 loc) · 16.3 KB

2025 年春夏季训练营常见问题收集

配置环境、入门相关

  1. 我不会用 Linux 命令行 / Git?

  2. 安装 Rustlings 时报错 error: linker cc not found

    安装build-essential和libclang-dev。具体命令与你的 Linux 发行版有关,例如 Ubuntu 是

    sudo apt-get install build-essential libclang-dev
  3. 推荐使用什么系统参加实验?

    虽然 Rustlings 可在各平台运行,但后续阶段的实验只能在 Linux 运行。特别地,推荐 Windows 用户直接使用 WSL2 功能,这是大部分同学和老师的环境,遇到问题更方便解答。

  4. WSL2 安装失败怎么办?

    要打开 hyper-v,适用于linux的windows子系统等几个功能,见

授课常见问题

  1. “进入教室”的按钮为灰色无法点击?

    先点左侧的“课程签到”再点击“进入教室”

  2. 上课了,但是教室里是白屏且没有老师,怎么办?

    不同阶段/项目有不同的教室,请确认当前阶段和地址栏链接是否正确。另外如果自查没问题,请在群里及时反馈,可能是平台出现了问题。

  3. 进入教室提示“进入教室失败,聊天功能受限,请刷新页面重试”怎么办?

    没有影响,直接刷新页面即可,不影响上课

  4. 我满分了,但组队界面没显示晋级,有影响吗?

    组队界面的“晋级”提示是所有人都晋级才会出现。晋级以个人为单位,就算队伍没晋级,也不受影响。组队功能只是鼓励同学们相互帮助,不作强制要求。

  5. 上课结束后,没看到录播怎么办?

    录播需要一定时间转码。可以在群里联系助教上传录播。

导学阶段常见问题

  1. 这个组队是干啥的?

    为了更好地发挥小组学习的互相促进作用,我们鼓励大家根据高校/城市来组队学习。学员可以自愿组队,不强制要求每个人必须参加组队。作为组队的队长,有责任协助所在学习小分队的成员完成学习任务。

    我们鼓励推崇组内合作共同进步,因此只要队长所在小组的全体成员都能成功晋级,作为队长将会给予特别奖励,具体奖励办法会在队长小群里讨论公布,希望接下来还有更多学习小分队组建成立。

    高校报名的学生鼓励提前组队磨合,训练营的组队人数每个队3-6人为宜。

  2. 导学阶段的要求是啥?需要做实验吗?

    导学阶段没有实验要求。公告的 Rustlings 实验是第一阶段内容,非导学阶段内容。第一阶段在9月29日开始,10月20日结束。关于实验的更多信息可以参考下面的 第一阶段常见问题 章节。

    我们也鼓励学有余力的同学预习实验、观看导学阶段课程:https://opencamp.cn/os2edu/camp/2024fall/stage/0?tab=video

  3. 前两个阶段不用组队吧?

    组队不是强求的。组队的目的是促进小组内的互助学习,只要有人做founder,现在(从第一阶段开始之前)就可以开始填表来发起组队。

    第三个阶段为项目实习,要听实习导师安排,不需要组队。

  4. 如何才能参加项目实习?

    要晋级到第三阶段才能参加项目。第三阶段是跟着项目选题走,不需要组队,由选题方向的负责人来统一安排实习内容和分组成员。第三阶段有点类似本科毕业了提前进入导师课题组。

  5. 可以邀请我的同学或同事入群组队吗?

    欢迎邀请同学或同事组队,本次训练营可以在网站上直接复制邀请链接进行邀请。邀请数量足够多的同学还可以获得一定的奖励哦。

  6. 第三阶段可以当实习经历吗,还是说可以直接当毕设?

    可以看看有目前的进展和选题,难度应该足够做为本科毕设。第三阶段有条件来北京或其他合作单位(国汽智联创新中心、济南泉城实验室等)的同学,可以作为校外实习,需要单独沟通实习协议。

    关于是否可以当做毕设,向勇老师回复:在2022年和2023年主持开源毕设,这里有当时同学结果分享,需要做毕设的可以参考:https://shimo.im/docs/J9kWJRjYVyqhvJyD。后续向勇老师还会发布今年的开源毕设相关信息。有兴趣的同学可以关注群里消息。

  7. 请问本训练营前置知识或者基础水平是怎么样的?

    Rust 可以是零基础,但编程最好有一门系统语言(C/C++语言)的基础。硬件方面预学习资料是 RISC-V 体系架构,可以提前做预习。参考陈渝老师给的链接: https://github.com/LearningOS -> Self Learning

    我相信,如果您有一定的其他架构基础,如x86,aarch64,mips或者loongarch等架构的了解,这部分的知识对您而言应当不是非常困难。如果您对此没有相关基础,相比于其他硬件架构,riscv架构也足够简单,可以作为基本的入门学习使用。

  8. 推荐学员的学习笔记

    RISC-V: 跟着清华训练营从零打造OS第一课:https://mp.weixin.qq.com/s/hLsKow_Zj_NEuNXZhCe5Vg

  9. 导学阶段课程内容介绍

  10. 证书发放问题

本次训练营总共分为四个阶段(不包括正式开营前的导学阶段)。当通过了所有阶段,会为同学们发放最终证书。希望各位好好努力哦

第一阶段常见问题

  1. rustling第一阶段什么难度?

    晋级的往届学员,平均投入10小时就可完成110分,最快的学员3-4小时,慢一些的大约需要投入15-20个小时。另外,仓库的路径字典序不代表题目难度顺序。建议同学参考仓库的 exercises 目录下README.md文档中的顺序做题(从 structs 一节开始)。

  2. rustling怎么检验呢 ?

    可以提前本地试一试,提交成功会进入下一题,正式开营后需要从classroom认领作业再提交,这样的成绩评分才会出现在本期训练营排行榜上。

  3. 全程自己一个人可以到第三阶段吗?

    可以

  4. 今年秋冬季训练营第一阶段晋级要求是什么?

    第一阶段晋级要求是完成 110题达到满分才能晋级到第二阶段。

  5. 这个没有晋级的话就只能等下一轮的训练营吗?还是整个训练营期间满分了就可以晋级?

    后者,想学不嫌晚。训练营期间满分后都可以晋级(晋级也可以继续旁听,即进入下一阶段的微信群)。

  6. 以往的晋级率是怎样的?

    最近六届第一阶段升第二阶段的晋级率如下:

    • 2022春夏季:188人 -> 47人,晋级率 25%
    • 2022秋冬季:274 人 -> 102 人,晋级率 37%
    • 2023春夏季:283人 -> 128人,晋级率45%
    • 2023秋冬季:1529人 -> 583人,晋级率38%
    • 2024春夏季:2533人 -> 387人,晋级率15%
    • 2024 秋冬季:4116 人 -> 677 人,晋级率 16.4%

    最近四届加入了第三阶段,从第二阶段到第三阶段的晋级率如下:

    • 2023春夏季:128人 -> 26人,晋级率20%
    • 2024秋冬季:583人 -> 84人,晋级率14%
    • 2024春夏季:387人 -> 59人,晋级率15%
    • 2024 秋冬季: 677 人 -> 125 人,晋级率 18.5%
  7. 一阶段Rustling写完了,剩余时间干什么?

    看RISC-V的文档提前熟悉不同特权级的概念和指令集。正常进度就是前三周之后第一阶段结束,如果跟不上到时可以先听第二阶段课程,但只有完成两个阶段晋级任务后才可以进入第三阶段项目课题组进行项目实习。

  8. 开源操作系统训练营的管理要求

    在第一阶段,下面的内容不做强制要求,但是从第二阶段开始便会对 Blog 提出要求。

  9. 关于如何写总结报告

    在训练营第二、三、四阶段结束后,都需要将自己在这一阶段的收获形成一份总结报告提交到https://github.com/rcore-os/blog 这个仓库,总结报告是进入下一阶段的必要条件。

    (注1:这个rcore-os/blog仓库,同学们没有提交权限,需要按照README.md文档中的说明,fork仓库到本地并修改之后,向该仓库提交pr,并找助教审核,如果长时间没有审核,请联系助教,如果提交存在问题,也可以联系助教)

    另外我们鼓励同学们自行撰写学习记录,并在 学习进展提交链接 提交相关链接。

    注2:日常学习记录和总结报告不能混为一谈,前者是每日/周学习记录,后者是一个阶段的最终总结)

    我们会在总结报告blog中,挑选出部分优秀的报告,放在训练营主页上进行推荐。

  10. Rustlings怎么开始练习?

    参考公告 2025 春夏季训练营公告进行第一阶段的学习,该链接也可以从群公告获取。

  11. 优胜队伍相关

    已经组队的各位同学可以在https://opencamp.cn/os2edu/camp/2025spring/stage/1?tab=team上面看到组队晋级标志,对于全队成员均晋级的队伍,队长可以联系一下 @阿图教育 加入优胜队长群,帮助全部队员完成晋级的队长可以获得一份奖品。(注,只有人数大于1的组队才算是有效组队)

  12. 为什么晋级榜单上没有自己的名字

    请按照如下顺序进行检查:

    1. 请确保 github 上仓库的 CICD 是否正常运行,并且返回一个绿色的✅。如果没有的话请根据 CI log 检查是否报错。
    2. 请确保您在训练营平台上填写了您的 github 用户名。请进入 https://opencamp.cn/my/edit 后,在 GithubName 一栏填写自己在 GitHub 的用户名。提交后,还需要在您的 Rustlings 重新产生一个新的提交,才能覆盖掉之前的成绩。
  13. 排行榜上的名字是一串字母,不是账号填写的姓名?

    请进入 https://opencamp.cn/my/edit 后,在 GithubName 一栏填写自己在 GitHub 的用户名。提交后,还需要重新 git commit + git push 产生一个新的提交,才能覆盖掉之前的成绩。

  14. 排行榜上我的成绩重复了,有影响吗?

    没有影响。这是目前网站的一个小问题,可能时注册了多个账号或者先提交成绩再(按问题2)绑定账号造成的。助教老师会之后手动去重。

  15. 排名会对成绩有影响吗?

    没有影响。只要达到晋级要求即可,不会区分同学完成任务的时间早晚。

  16. 更新了代码,为什么成绩没有更新?

    排行榜成绩只取最高值,同分时取最早的提交时间点显示。如产生新的提交后得分不变,则不会更新。

  17. 为什么本地做完了题目,提交时没有通过?

    Rustlings 要求每次做完一个测试时删掉代码中的 // I AM NOT DONE 注释。请检查自己的代码。

  18. 本地测试没问题,但提交时却少了几分?

    1. 请检查自己的 GitHub 远端代码仓库,找到 Actions 页面,然后点击最新的 workflow run 进入(在绿色的√那里)

    2. 然后点击唯一的一个 Jobs(Autograding)进入,打开 Run yfblock/os-autograding@master 一栏,其中标注了每一栏的成绩和出错的题。

  19. 在线测试也满分了,但排行榜上还是不对,怎么办?

    有可能是训练营网站bug导致,可将截图和链接发到群里寻求帮助。

  20. clippy2 测例为什么做对了但提交不通过?

    clippy 系列偶发问题,可以对 CICD Re-run all jobs 重新评测即可。或者也可以提交一个新的 commit (如任意文件加一个空格),再次触发评测

  21. tests7 测例为什么做完了没法通过?

    看代码注释,需要改同文件夹下 build.rs 文件,并且需要和 tests8 测例的要求一起完成。

  22. 为什么我的总题目数量和别人的不一样?

    请参照群公告加入 GitHub Classroom 生成自己的仓库,不要使用原版的 Rustlings。

第二阶段常见问题

  1. 晋级要求是啥,五个实验+报告吗?

    第二阶段排行榜满500分,加第二阶段学习blog,截图发给阿图教育

  2. rCore-Tutorial 代码,如何提交结果并评测 ?

    请在根目录下提交你的代码到 github 仓库,即会在 CICD 进行评测。

  3. 完成代码后,如何进行本地测试?

    参考实验指导书 https://github.com/LearningOS/os-rcore-classroom-2025s-rcore-rCore-Camp-Code-2025S?tab=readme-ov-file#grading 一节。

    cd ci-user && make test CHAPTER=$ID 
    # ID 为目前待测章节,如 3,4,5

    这个命令会 clone 评测脚本仓库到项目目录的 ci-user 文件夹,以及用户程序测例程序到项目目录的 ci-user/user 文件夹,切换到被测分支,即可进行本地测试(本地测试的过程与同学向 GitHub 远程仓库提交之后触发的 action 评测流程基本是一致的,通过本地测试即可排查错误,建议在提交评测之前先进行本地自测。我们默认晋级第二阶段的同学有一定的 git 知识,没有在指导书里再额外说明这些修改

  4. 尝试本地运行的时候 QEMU 卡住不输出怎么办?

    优先考虑 QEMU 版本问题,见指导书 https://learningos.cn/rCore-Camp-Guide-2025S/0setup-devel-env.html#qemu 一节的说明 ,我们推荐使用 QEMU 7.0.0 版本进行实验。

  5. 本地运行 ci-user 中的脚本进行测试时,输出结果都对,但OK后的数字串不对导致不通过怎么办?

    可能是由于 hash 值不一致导致的误判。请优先检查自己的代码输出,确认输出无误后,可以尝试删除 ci-user 目录,重新 git clone 拉取后重新进行评测

  6. 第二阶段开始需要提交blog,blog是什么?

    每个阶段结束后需要写总结报告,第二阶段需要完成第一、二阶段的blog。

    总结报告和每个实验的实验报告是两回事,都需要完成。

  7. ch3完成后排行榜没有显示分数怎么办?

    如果 Actions 中 basic-test 阶段失败:检查是否有实验报告文件 reports/lab1.md,或者本地使用 README.md 提供的 Grading 方法测试。

    否则检查自己的 Actions 的具体报错是什么,如果自己无法解决可以截图发到群里。

  8. 如何配置 Docker 开发环境

    1. 拉取 Docker 镜像
    docker pull wangben18/rcore-tutorial-v3:v0.1.0

    如果拉取镜像速度慢,可以考虑使用代理,请参考文档 Docker pull 代理官方文档

    1. 运行 Docker 容器:以 ch3 为例,请执行如下指令:
    # 拉取仓库
    git clone $YOUR_REPO_URL -b ch3
    
    # 进入仓库
    cd $YOUR_REPO_NAME
    
    DOCKER_NAME=wangben18/rcore-tutorial-v3:v0.1.0 make docker
    
    # 在 Docker 容器内
    
    # 设置 git 信任目录
    git config --global --add safe.directory /mnt
    
    # 运行 rCore-Tutorial-OS
    cd os && make run