第一阶段
为什么来这个训练营
- 最初是在寻找 Rust 的练手项目过程中,偶然了解到本训练营。自己本就对系统级编程充满兴趣,因此毫不犹豫地报名参加。
官方通过要求:
- rustlings+10道算法题
主要参考资料:
学习过程
- 基于一定的编程基础,我通读了一本 Rust 入门教材,同时刷了约 100 道 LeetCode 算法题,作为语言练习。尤其链表类题目虽然困难,但反而非常适合加深对 Rust 所有权模型的理解。
感想
- 第一次参与开源社区形式的学习训练营,整体学习路线、资料与交流氛围都非常优质。opencamp 社区内容丰富、质量上乘,是一次令人愉快的学习体验。后续还会继续参与类似项目。
第二阶段
官方通过要求
- rCore-Camp-Guide-2025S 文档(通过要求)的课后练习
参考资料
- CSAPP
- 重点补充:第 7 章 链接过程
- 操作系统导论
- 快速回顾前 19 章内容
- RISV手册
- 重点理解:解特权级切换
- rCore-Tutorial-Book-v3 3.6.0-alpha.1 文档(核心)
- rCore-Camp-Guide-2025S 文档(通过要求)
- CSAPP
学习过程
- 这一阶段持续了约一个月,重点围绕 rCore-Tutorial 详读源码与注释。课后题本身难度不大,但深入理解 rCore 的执行过程与实现细节则颇具挑战。计划后续通过整理文档、写文章的方式进一步复习与巩固。
感想
- 从“移除应用执行环境支持”出发,到手动链接最简调度系统、构建时间片轮转机制、物理内存页帧管理与多级页表,再到文件系统、线程管理与用户态支持……整个过程让我系统性理解了操作系统的核心构件。以往只是停留在八股文式的“理解层面”,这次才真正从源码出发理解了“为什么这样设计”,并洞察背后的一致性原则与设计哲学。现代软件系统中常见的“新框架”“新技术”,本质上很多都是对底层原理的重新组合与包装。打牢这些底层基础,将对未来应对复杂系统设计提供极大帮助。第二阶段的 rCore 项目就是一个极佳的底层能力训练平台。
第三阶段
- 官方通过要求
- 6道练习题,一道挑战题
- 参考资料
- 学习过程
- 得益于第二阶段的深入积累,第三阶段在约三周内顺利完成任务。以文档为主导,同时配合源码阅读与实验。
- 感想
- 这一阶段让我初步建立了对“组件化操作系统设计”的理解。ArceOS 的设计将 Rust、OS 内核抽象与组件化思想结合在一起,是极具前沿性的操作系统实践。ArceOS 所体现的“组件化操作系统设计”核心在于:如何在保障各模块职责边界清晰的同时,实现高度解耦却协同有序的组合机制。看似简单,但背后依赖于扎实的底层系统知识与成熟的架构设计思想。ArceOS 不仅是对底层操作系统设计理念的前沿探索,更启发我思考如何在不同工程场景中抽象、迁移并落地组件化设计思想。
前三阶段总结
- 总之,确实学到了很多,希望能完成四阶段,最后衷心感谢所有无私奉献的导师和伙伴
第四阶段
背景
我是 Java 后端开发工程师,长期对系统级编程和基础设施方向怀有浓厚兴趣。训练营前,我的目标是借助项目实践机会积累 Rust 经验,并逐步转向系统软件方向。这是我第一次参与开源项目协作,过程中不仅大幅拓宽了技术视野,更激发了我对开源文化的认同与热情,同时促使我对系统级编程领域有了更深入的理解和思考。这些经历坚定了投身系统软件和开源生态建设的决心。主要工作
第一周
- 这一阶段让我初步建立了对“组件化操作系统设计”的理解。ArceOS 的设计将 Rust、OS 内核抽象与组件化思想结合在一起,是极具前沿性的操作系统实践。ArceOS 所体现的“组件化操作系统设计”核心在于:如何在保障各模块职责边界清晰的同时,实现高度解耦却协同有序的组合机制。看似简单,但背后依赖于扎实的底层系统知识与成熟的架构设计思想。ArceOS 不仅是对底层操作系统设计理念的前沿探索,更启发我思考如何在不同工程场景中抽象、迁移并落地组件化设计思想。
- 梳理了 Rust 中
async/await
异步模型的执行机制和运行时结构 - 观看向勇老师异步操作系统相关视频,了解异步的操作系统的方向的最近进展
- 周会上确定了初步目标:使用异步优化smoltcp和Arceos中的网络相关模块
第二周
- 完成对 lazyinit 项目的 PR 改进
- 虽然修改不复杂,但作为第一个开源贡献,对个人具有重要意义
- 通过深入研究
lazy_static
、OnceCell
等标准库机制,加深了对线程安全延迟初始化(全局单例)设计模式的理解 - 启发我开始构建长期维护项目:Rust 中设计模式最佳实践
- 完成用户态爬虫
- 使用
reqwest + tokio
构建异步爬虫,显著感受到异步模型对 I/O 密集型任务的性能提升 - 通过日志分析发现:爬取网页耗时远超解析网页,确认异步模型对于高并发爬虫的价值
- 对比 Java 传统线程池 + 回调模型,以及对Rust 异步运行时中future的可组合性,感受到了Rust异步的强大
- 使用
- 通过迭代 WebServer 逐步深入 Rust 异步编程
- 手动实现
poll
、Future
等底层机制,结合项目实践理解 async 底层原理
- 手动实现
- 修改目标:
- 完成 TCB 状态管理结构与部分状态机逻辑
- 实现服务器的三次握手(SYN)和四次挥手(FIN)流程,具备最基本的连接生命周期管理能力
- 分支
dev
上尝试更接近 std 的接口模型,目前仍在调试阶段 - 实现过程中大量阅读 TCP 协议细节、状态转换标准,提升对 TCP/IP 协议的系统理解
- 项目地址
总结
这段训练营经历极大拓宽了我的认知。群里众多优秀开发者让我真正体会到“卓越工程师”的含义:深入技术细节、追求极致设计、乐于分享交流。看着大家在短短一个月内完成高质量、复杂度极高的系统项目,我不仅深受启发、倍感鼓舞,更由衷地感到惊讶。大家对系统设计和实现的理解深度,以及在极短周期内高效推进项目的能力,都远超出了我的预期。这种冲击让我意识到,自己在技术深度以及工程实践上的积累还远远不够,也更加坚定了我沉下心来扎实学习、长期投入开源的决心。
通过本次训练营,我从 Java 后端开发者的视角,初步窥见了 Rust 在系统编程与异步操作系统方向的技术魅力。并亲手完成了一些系统方向的实践项目,切身感受到开源协作的高效与活力。训练营结束后,我也正式开始计划长期参与开源项目,为社区持续贡献力量。下一步目标
- 长期维护开源项目:
design-patterns-rust
: 系统收集和实现 Rust 中常见设计模式learn-rust
: 构建学习路径、记录 Rust 编程与系统知识
- 协议栈方向:
- 本次经历的笔记和记录均可在2025春夏季开源操作系统训练营中找到