0%

2024 春夏季开源操作系统训练营第一阶段总结 - Nelson

我其实在去年的时候就对训练营略有耳闻,但是由于在准备算法竞赛,并且对未来研究生的方向还没有一个明确的规划,所以没有参加。而现在,我基本上已经确定了未来要往体系结构和操作系统方向发展,所以第一时间便报名参加了训练营。

第一阶段学的内容是 Rust。Rust 也是我很喜欢的一门语言,因为他性能高、内存安全、又有良好的包管理器支持,相比于 C、C++,它的语言表达能力更加强大,也有很多好用的语法糖;而相比于 Java、Python 等,它又更为严谨、更贴近硬件。

经过这一段时间的学习,我越学越觉得 Rust 的很多特性其实是为了给他严格的所有权机制打补丁。最明显的就是生命周期了,还有诸如 unsafe 等。刚好最近同时也在一家公司实习做操作系统内核开发,正在使用 C 语言,因此对这两门语言的风格深有所感:

  • C 的原则就是「完全相信使用者」,因此你可以用 C 实现几乎所有操作,非常自由。但是为了安全,必须人为设计一些规范来进行约束。
  • Rust 的原则则是「完全不相信使用者」,所以你会发现 Rust 的很多语法都是为了约束程序员,强迫程序员写出安全的代码。但是,有些时候编译器还是不够聪明,或者说是无法进行判断,因此必须开点绿灯——unsafe

在 Rust 身上可以找到很多为了弥补所有权机制而设计的语法,因此在学习的时候才会觉得 Rust 的语法很复杂。不过这种「语言规定好的规范」对于多人之间的项目合作,特别是开源来说,就是一种优势了。相比于 C 语言项目之间可能存在代码风格相差巨大的情况,Rust 写出来的代码基本上不会有太大的风格差异,这样在参考别人的代码,以及贡献代码的时候就会更为轻松。