0%

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

  白熊的专业是微电子科学与工程,并不是传统计算机大类中的专业,但是看到朋友转发的操作系统训练营宣传后,想借这个机会熟悉一些关于操作系统的内容,增强自己对硬件驱动、指令集等(尤其是RISC-V)的了解。由于之前没有系统地学过任何计算机方面的知识,而且还是个freshman,基础可以说是相当薄弱,在第一阶段学习Rust的过程中,我也生出了不少傻头傻脑的见解,甚至被贺兰神评价“少见多怪”。不过经过一段时间的学习,我最终完成了第一阶段rustlings的所有题目。本文就写我初见Rust的一些想法咯~

对Rust的认知变化(做rustlings有感)

  在学习Rust之前,飞飞神有跟我普及过Rust,说它很安全,但写起来很麻烦(举了Rust变量所有权的例子)。当时我没太理解,但不明觉厉,很长一段时间里我认为Rust安全且牛X,是某种高贵而神秘(雾)的语言。

  参加训练营刚接触Rust半小时时,因为看到了很多熟悉的语法,我心里对Rust的期望似乎有所降低,觉得Rust不过是语法与其他语言略微不同……直到我看到了所有权、借用的概念,才真正感觉到这语言非同一般。可是rustlings中所有权一章的题目都挺简单的,没有为难人,这给了我一种“我已经完全了解所有权”的错觉……事实证明并非如此,在后续的题目中,随着代码复杂度的上升,经常会出现把一通报错改成另一通报错的情况,不过正是这些拷打,让我对这些新概念的理解慢慢扎实起来。

  rustlings中间做得还蛮快的,不过感觉我自己有点囫囵吞枣,有一种知识从光滑的大脑溜过的感觉……直到多线程那一块,我彻底卡住了,大脑宕机……后来想了想原因有二:一是对前面知识点根本没有理解透彻;二是我完全没有接触过多线程方面的知识(以前写代码都是傻乎乎单个过程)。最让我崩溃的是支持多线程的可变借用的题,第一次做的时候调来调去搞不明白,挺打击自信的……后来把Rust学习扔在一边,两周后重新拾起来,居然很快解决了,看来学习真的需要“沉淀”的过程。

  接着便没什么困难,直接杀完了基础的100题。算法题我感觉不算很难,毕竟都是很简单的数据结构。不过我认为我的答案不太简洁,可能(一定)包含很多没必要的操作(传值),或有优化的多的写法。归根到底还是自己对Rust的变量体系不熟悉,希望在日后的学习中,慢慢强化这方面,有些问题还是得交给时间(笑)。

一些展望

  正如开头所说,我基础很薄弱,不指望能完成整个训练营,所以便怀着“主打学习”的心态。希望在第二阶段中我能建立对操作系统的认知框架,并尝试将其与我自己的专业知识结合——说不定暑假可以亲手用数字电路实现处理器,跑操作系统,想一想都觉得很酷(前提是我得会)。