0%

2024春夏季开源操作系统训练营第一、二阶段总结-婁雲衢

前言

當年在學校學操作系統的回憶痛苦而蒼白,還記得剛上了兩堂課就知道這位老師的課上了也沒意義,估計他都不曉得自己在說什麼,整個學期下來,我連操作系統該有什麼樣的功能都很含糊,這個現象在同學之間普遍存在,一間高等學校好幾屆學生的系統知識就被一個毫無素養的老師給毀了,我每每回想起來感到很悲哀。

還很印象很深刻的是,他說操作系統太過複雜,要在課堂上寫一個是很不可能的。但過了幾年,我瞭解到了國外知名的 xv6 項目,明白自己完全被糊弄了。雖然離開校園已經好幾年,在 rust.cc 論壇上看到 rcore 訓練營的消息,我非常興奮地報了名。

第一階段總結

Rust 語言我還算是有些基礎,用它寫過一些簡單的程序。前面幾十道題過得還挺快,但當初學習沒能覆蓋到方方面面,在生命週期及 unsafe 操作裸指針上還是卡了一些關。這實在是 rust 真正獨創的地方,而操作記憶體在 OS 開發相必是重中之重,也期待在接下來的課程能進一步熟悉。

期許

下班後能利用的時間實在有限, rustlings 居然花了一個禮拜才搞定,接下來的第二階段必定挑戰更大,需要做好時間安排,潛心專研。

第二階段總結

第二階段的難度果然遠高於第一階段,我幾乎是壓線才能完成任務,但這堂課真的接近我理想中操作系統課程該有的樣子。rCore-Tutorial-Guide 2024 有些太簡略了,我第三章之後就改看 rCore-Tutorial-Book 第三版 了,內容十分翔實,可以自學,美中不足的是敘述好用長句,有些語言西化,若能再稍微雕琢文句就更好了。

還有三週實在是太短了,我沒辦法逐章逐節的閱讀完教材,只能先看 lab 問題來選讀章節,要寫 lab 其實不需要用到所有教材內容,例如 condvar 我就沒搞懂了。問答題是個很好的補充,迫使我多讀了一些源碼才能作答,對加深理解很有幫助。為了寫 lab 我讀懂了五成代碼,再寫問答題又多懂了一兩成吧,是希望三週能延長為五週六週,再增加 lab 及問答題的廣度。

期許

二階段已經如此艱辛,三階段更接近實戰任務,想必更具挑戰,我打算選擇 hypervisor ,當年學過的一點虛擬機知識要再撿起來了。