0%

2023开源操作系统训练营第二阶段总结报告-eastwoodeer

学习总结

一直以来我对Rust表现出浓厚的兴趣,并且曾经写过一些小工具。在平时的学习中,我也尝试在操作系统方面进行一些探索,但一直没有找到Rust与操作系统如何结合的方法。

从编程语言的角度来看,C语言更像是对汇编语言的一层语法糖,它天然适合操作硬件功能的开发,各种硬件概念可以很好地使用C语言进行抽象。然而,如何使用Rust来完成相同的任务一直让我感到困惑。通过这次的培训,我对使用Rust语言编写操作系统有了初步了解,感觉非常不错。以下是我得出的一些简单结论:

  1. 内存安全:在编程活动中,内存安全问题往往难以调试且容易出现。当使用C语言时,不经意间引入内存安全问题的可能性很高,但在Rust中,由于有编译器的帮助,可以在编译阶段轻松地发现问题。

  2. 所有权系统和生命周期:它们帮助开发人员更好地控制变量的生命周期,尤其是全局变量。它迫使开发者思考如何使用和编写更安全的代码。

  3. 强类型系统:至少在安全代码的部分,可以很好地控制C语言中常见的运行时错误问题。

  4. 语言模块化设计:Rust的模块化设计使得能够更好地对系统进行抽象,将操作系统分解成各个组件,最后将它们组合在一起,使整体结构更加清晰。

  5. 文档系统和构建工具:工具如rustup和Cargo为文档查阅和工程构建提供了出色的基础设施服务。

当然,在学习过程中还遇到了一些问题,主要是因为对Rust语言本身的不够熟悉,有些用法与C语言仍存在较大区别,需要更多的练习和实践。Rust语言引入的高级功能实际上在使用上可能会带来一些成本,就像之前所提到的,C语言就像汇编的语法糖,可以直接操作硬件,而使用Rust则需要重新学习一些新的方法和技巧,学习曲线可能会较陡。

Lab总结

上周,我完成了前三个问题的编码工作,主要是体验了如何使用Rust编写操作系统,并发现了与C语言编写操作系统不同的地方。总的来说,这些都是操作系统的基础概念,在Rust语言的基础上进行了抽象和实现,我感受到了与C语言不同的体验。