逆境中的学习与成长:我的开源操作系统训练营之旅
自我介绍
今年的经济形势确实不容乐观。没错,我就是那位大龄失业的程序员。在寻找工作的同时,我尝试将自己的经验和心得整理成文章,发布在名为《猿禹宙》的微信公众号上,希望能为广大读者提供一些帮助。如果这些文章对您有所启发,请您不吝啬地关注、转发、点个赞、赏 1 元以示支持。广告部分到此结束,接下来我要分享一次偶然的相遇。
+ + + +偶遇 rCore 经历
在一次无意间的机会,Rust 中文社区创始人 MT 在群里推荐了《2023 秋冬季开源操作系统训练营》活动。操作系统一直是我想深入学习的领域,因此,我毫不犹豫地报名并坚定地参与了整个过程。根据操作系统官网对该活动的介绍,这无疑是一次难得的学习机会。
+在这个训练营中,我结识了许多志同道合的朋友,共同探讨开源操作系统的未来发展。我们深入交流了许多技术话题,分享了各自的心得体会。这次经历让我受益匪浅,也让我对这个领域有了更为深入的了解。
+尽管目前的经济形势不容乐观,但我相信只要我们不断学习、充实自己,总会迎来属于自己的春天。希望我的经历和分享能给大家带来一些启示。再次感谢各位的支持,我会继续努力,为大家带来更多有价值的内容。
+让我们共同期待,在未来的某一天,当我们迈向成功的道路上时,会遇到更多美好的机遇。愿我们都能在不断学习和成长中,找到属于自己的价值和幸福。
+课程总结
第一阶段总结
在第一阶段的 Rust 编程培训中,虽然我觉得过程相对顺利,但在工作中用得却不多。不过,我在查阅过去的代码仓库时,发现了一个有趣的事实:原来早在两年前,我就已经开始接触 Rust,并已做过 Rustlings 题目,当时的版本还是 1.53。令人难以置信的是,Rust 已经发展到了 1.73 版本,并且开源项目也如雨后春笋般涌现。这让我对 Rust 的未来充满期待,也坚定了我在这条路上继续前行的决心。
+第二阶段总结
那段回忆
由于这些年我的工作主要集中在上层应用开发,对操作系统的了解仅限于学生时代的点滴记忆。因此,在第二阶段的学习中,许多不懂的知识点会让我卡住很长时间。然而,得益于失业这段时间,我能够投入更多的时间来深入学习课程。从早上 7 点多起床,一直到晚上 11 点,我才会愿意结束学习,洗漱后入睡。这样的努力让我在操作系统领域取得了显著的进步。
+粉丝认可
在失业半年里,养成了写文章的习惯。于是,我将这门课程的学习过程及时记录在了 #RISC-V 系列笔记中。在总结的过程中,我不仅巩固了自己的所学,还能为他人在成长过程中提供帮助。一些粉丝在后台留言表示,清华的这份笔记非常精彩。看到这些肯定与鼓励,我倍感欣慰,这也激发了我继续在求学道路上前行的信心和动力。同时,我也深感荣幸能为他们的学习提供帮助。我会继续努力,为大家分享更多有价值的内容。
+硬啃术语
面对众多术语,如 rCore、bare metal、qemu、elf、abi、sbi、RISC-V 等,感到各种困惑和不解。尤其是那些汇编代码,以及为何指令对齐要设置为 align 3 这样的问题,更是让人摸不着头脑。
+后来查阅资料逐渐了解这些术语和概念。
+-
+
- rCore 是一个用 Rust 编写的操作系统,兼容 Linux,支持 x86_64、RISCV32/64、AArch64 与 MIPS32 平台 +
- bare metal 是指没有操作系统的硬件 +
- qemu 是一个开源的硬件仿真器 +
- ELF 是 Executable and Linkable Format(可执行和可链接格式)的缩写,是一种计算机可执行文件格式; +
- SBI 是 RISC-V Supervisor Binary Interface 规范的缩写,OpenSBI 是RISC-V官方用C语言开发的SBI参考实现;RustSBI 是用Rust语言实现的SBI。 +
- RISC-V 是一种开源的指令集架构,除 ARM 和 x86以外,第三大指令集。 +
- 指令对齐设置为 align 3,是因为在计算机系统中,内存地址需要按照一定的规律进行组织。align 3 表示指令要按照 8 位(2^3)进行地址对齐,这样可以保证指令的执行效率和内存利用率。在实际应用中,不同的指令集架构可能会有不同的对齐要求。 +
渐入佳境
从裸机 Hello World 程序出发,到批处理系统设计,进而探讨多道程序与分时系统,再到地址空间、进程和文件系统等方面的知识,老师在课堂上为我们详细解析了整个操作系统的发展过程。通过课下的勤奋学习,对 OS 有了更为深入的理解。
+在课程中,逐步掌握了操作系统的基本概念、原理和实现技术。从最初的裸机程序出发,学会了如何在操作系统中编写简单的程序。
+在此基础上,探讨批处理系统的设计,了解如何通过批量处理任务来提高系统效率。随后,课程深入到了多道程序和分时系统,使我明白如何在多任务环境下进行任务调度和资源分配。
+在地址空间、进程和文件系统等方面,学习如何实现内存管理、进程创建和管理、以及文件存储和访问控制等功能。这些知识构建一个完整的操作系统奠定了基础。
+通过学习操作系统,不仅掌握了操作系统的基本原理,还了解操作系统在现实中的应用和发展趋势。这将为我们在未来的工作和学习中更好地应用操作系统知识,解决实际问题提供有力支持。
+感谢致辞
总之,在老师的悉心指导下,从裸机 Hello World 起步,深入系统地学习了操作系统的基本概念、原理及实现技术。这使我对 OS 有了更加全面和深入的理解。
+最后,衷心感谢清华大学的老师们为我们提供了这次难得的学习机会。
+在这段宝贵的时光里,我们在老师的引领下,逐渐掌握了操作系统核心知识,丰富了我们的视野。
+感谢老师们辛勤付出,为我们奠定扎实的专业基础。这次学习经历对我们来说,无疑是人生中难能可贵的财富。
+再次向清华的老师们表达诚挚的感谢,愿我们在未来的学习和工作中,秉持清华精神,为社会和国家的发展贡献自己的力量。
+ + + +