第一阶段
我之前就做过rustlings了,前100道题还是比较容易的,但是在专业阶段开始之前再refresh一下知识挺好的。最后10道题我其实很喜欢,之前做rustlings 都是在非常零散的填空,最后十道题实现算法让我真正开始有了我可以用rust 做些什么的感觉(虽然写的时候也挺痛苦就是了,尤其是linked list)。现在回看其实有些地方可以用更好的方式实现,等放假了再去练一练!
第二阶段
在rcore的实验课中,我学到了很多OS相关的知识。每一章的实验难度循序渐进,其中ch6, ch4, ch8 是我认为最难的,也是学到了最多东西的部分。
这3周走来我收获良多,也理解了很多以前就知道,但是懵懵懂懂的知识。从开始的获取TaskInfo
中和群友的激烈讨论,到理解计算机系统数据都是一串二进制数据。再到开始理解地址空间,学会实现跨页机制和申请/释放内存。再到实现进程的创建,公平的Stride
调度算法。再到文件系统,实现了系统文件的数据以及硬链接和删除文件。再到实现了线程级别的死锁检测。现在回看我都理解我这么短时间内怎么学到这么多知识的。
说实话我觉得最重要的还是跟群友一起讨论,加深自己对知识的理解。如果是我自己一个人学的话可能刚开始就放弃了。而且,在追求技术的路上见到这么多志同道合的人也是非常开心,在讨论中也学到了很多超越课程本身的东西。
当然,训练营时间还是挺紧凑的,做完了实验题目并不代表我真正把所有知识都掌握了,我还需要自己花时间巩固吸收指导书的内容。希望有一天我能总结出一本自己的指导书,把原来指导书中晦涩难懂的部分以更简洁明了的方式写出来帮助未来训练营的同学们。