前言
之前听说并且尝试过rust,但是,因为其陡峭的学习曲线,第一次学习失败!在这第一次的时候连蒙带混地走了一遍rustlings,但是依旧对很多语法细节不理解。
对于risc-v,因为他的开源性质,对他很感兴趣,赞同他是指令集中的Linux。并且其简单优雅的设计,让我不必忍受x86的各种复杂和历史包袱也能入门学习OS。
对于OS,之前只是看过理论教材,但是对于具体的实现并不清楚,想通过一门实践课程来丰富自己的实践经验,让理解落地。我认为,学习理解了操作系统之后,计算机便祛魅了很多(除了硬件层面),思考问题可以一眼想到底能够让设计更加灵活,思维更加创新。
过程
这次再次学习rust,重点去理解了生命周期的概念,主要是通过官方的the rust programming language以及查阅std docs来学习。
rust有很多现代语言的特性,并且融合了很多函数式语言的特点,之前热衷于lisp语言,因此对于rust这种做法有好感。
但是,尽管做完了rustlings,因为缺乏更多的工程实践,我认为自己的rust灵活运用能力仍然欠妥,对于rust的所有权机制仍然会有所不适应,仍然以c的眼光来思考编程。
此外,我觉得rust有些过于繁琐,这种保证内存安全的方式真的是最好的吗?对于我来说,这种限制极大影响了我目前的编程思路(可能来自c的编程思路本身就是不内存安全的),
以及其语法,我觉得有些丑陋, 每每看到生命周期就会头昏眼花, 在这里希望zig语言早日能发布1.0(跑
第一阶段做完之后的几周,因为课业问题,迟迟没有开始第二阶段的实践,希望自己能够在此后的过程中调整好自己的时间安排,不慌不乱,有条不紊,最终完成整个训练营。
最后
这次参加本次训练营,有很大的偶然成分,偶然间从某个微信公众号看到消息,但惧于高校的威名,一开始我是害怕报名的(对未知事物本能的惧怕),但是看到开源的字号,想着开源的含义,open to everyone,
以前一直在屏幕后作为观察着的我,一个热爱自由软件,开放共享精神的学生,应该踏出实践的一步,从这样一个课程开始,参与到知识共享的实践中去了(从受益者到贡献者)。
而且,我也很期待自己能够写出自己的一个OS,他可能不够完善,唯一的优点就是能跑,但当我有了这个技术资本,就可以参与到其他的项目(如:Linux)中去了。
也希望能够在这样一个项目中结识到志同道合的朋友,找到属于自己的圈子,提高自己的社交能力。