0%

2025春夏开源操作系统训练营三阶段总结报告--vipectuSSS

Prologue

这样的总结应该从何开始?我是从Bilibili刷视频偶然了解到与训练营相关的信息的。使用Rust语言编写操作系统的实践,我太喜欢这个方向了。因为我正学过一点Rust,也经学校老师的推荐看过CSAPP并完成了大多数的实验。其中我最喜欢的便是shlabattacklab────写一个shell!实在是有趣不过,如果再写一个操作系统呢?好吧,我应该没有与之匹配的实力,不过开源操作系统训练营就这样给了我一个类似的机会。报名人数破千!全程免费!还有什么好说的呢,杀😡。

Stage 1

110道Rustling编程题,并没有耗费我太多功夫,更多的是重新熟悉一下语法。我觉得,学习Rust不仅是学会如何使用一门编程语言,更是了解更多的编程范式。例如trait背后的组合大于继承;函数式编程对现代编程语言深刻的影响:默认不可变、闭包、HOFs、链式操作等;所有权与生命周期机制,这种RAII思想是C++首创的(但是opt-out)。Rust编译器就是你最好的老师,更别说还有满地走的各式AI(本总结经AI辅助完成),2025年的今天,学习Rust不应该再是一件难事🥳。

Stage 2

到了OS设计实现,主要是完成5道rCore操作系统大实验编程题。我是提前进入该阶段,所以全程并没有看过相关学习视频,而是跟随rCore-Tutorial-Guide文档完成的🤓。

这阶段最耗时的是lab2───地址空间和lab5───并发,这两个不管哪个太痛苦了😭。lab2是因为分页机制本身就相对复杂,层层抽象,读内核新增的代码就花了我很久时间(光论这一点文件系统其实不遑多让,不过到这里我的读代码能力已经得到显著锻炼了,所以带给我的痛苦远不及地址空间🥱)。而lab5,单纯是我因为技术路线的左右互博而无限拖缓了进度,我一直在对死锁检测资源的获取上究竟是现场构建还是跟随进程保存之间反复横跳。倒不如说,是因为我在实现这两个的时候遭遇多方掣肘,导致我不停怀疑我自己,不停的重构。使用Rust编程不就是戴着脚镣在跳舞吗?我现在水平还不够,只能写出不够优美的实现,但是我不会放弃的😡。

Stage 3

组件化操作系统,这大概是最各显神通的阶段了。我对这阶段的印象其实是一点草台味🤯,遇到各方面奇怪的问题,测试脚本死活不通过,各种不同的资料,到底要实现在哪里,我要怎么修改一个crate依赖的代码?我是个不撞南墙不愿意问别人的人,所以我全部都闭门造车自己解决了所有问题(真的吗?至少测例说我通过了)。但实际上,在讨论群里大家都很乐意回答别人的提问,每个人都有自己的“奇技淫巧”,应该让大家全都热烈讨论遇到的问题,才能让训练营变得更好😈。

Conclusion

写到这里我已经有点精疲力竭。我在参与前三个阶段的过程中收获颇多,不只是对整个组件化操作系统的认识。还有各种在学习过程中对工具的使用,helixZellij,这些工具,我很早就下载了,只是因为它是Rust重写的老工具。现在呢?我需要helix丰富的快捷键,我需要Zellij的分屏。我开始熟悉,正是我开始迈出一步,参加了这次,2025 春夏季开源操作系统训练营

完成了三阶段的任务,我也疲惫了,进入了一种拖延的状态。五月二十二号,新建文件夹,想要完成这篇总结报告。一直到今天,我终于又想重新出发了。希望到了第四阶段,我可以找到新的方向。

编程的乐趣:⭐️⭐️⭐️⭐️
挑战的难度:⭐️⭐️⭐️
开源训练营:⭐️⭐️⭐️⭐️⭐️