0%

RustOS 训练营第一阶段总结

关于

首先非常感谢清华大学提供的平台,让我能够有机会参与到这么了不起的课程中。作为一个非科班的程序员,其实一直很想好好学习一下操作系统和编程原理这些底层的知识,好让自己的基础更加牢固。但由于各种原因,尝试多次都未能坚持下来,都是找几本书走马观花地看看,浅尝辄止。那天无意中在某个微信群看到有个朋友发的这个课程的推广链接,点进去了解了一下后毫不犹豫地报了名,因为既可以学习Rust,又可以学习操作系统。

其实在很早之前就对Rust和Go这两名现代化语言有所了解,也都初步学习过。但是由于Rust的语法较为复杂,上手困难,并没有在实际工作中使用。因此简单学习后就因为没有实践的机会而忘了个七七八八。

Rust

借着这次机会,又好好复习了一下Rust的基础知识。花了点时间仔细阅读了The Book和The Rustonomicon。这两本书确实是值得仔细阅读的,以后还得多读几遍。

关于Rust备受推崇的原因有个就是他的所有权机制和编译前解决大部分内存安全问题吧。其实C++的智能指针支持这种操作,因为日常会使用到C++,因此理解这部分概念的时候并没有遇到太大的困难。有一段时间一度怀疑过Rust是不是有点过于被吹捧了,因为相比于同样现代化、简单且高效的Go,Rust对初学者实在是太不友好了。

知道最近时间看到一些报道说Google使用了Rust替换C++之后,效率提高了两倍不止;而且Cloudflare也开源了他们的Pingorg,作为Nginx的代替。看来确实得好好学习一下这门语言了。

很喜欢Rust的一点是使用Trait实现面向对象的功能吧,相比于C++的Class,这样更简洁,也好理解。

不过接受不了的一点是学了之后才发现用Rust实现一个双向链表都如此费劲。因为日常使用C开发,最常用到的数据结构就是这个了。本来想这两天好好研究一下有没有好的双向链表的实现,看来Rust std里的实现,居然也使用了unsafe,觉得有点不够优雅。好吧,由于今天是提交总结的最后一天了,我还没想好好的实现,只好先草草地提交一个总结了。

最后

感觉其他同学真的很热情,第一阶段刚开始一天就把100题做完了,作为一个毕业五六年的人,不得不佩服。
立个Flag,希望自己下次不要提交的这么晚了。