2025q1 Homework1 (ideas)
contributed by < HeatCrab
>
shecc
執行人: nosba0957, vacantron
開發紀錄
專題解說影片
-
過程中的認知
- 需要對編譯器的運作有一定的掌握,像是 Bootstrap 如何運作的 、 Makefile 如何撰寫、 ELF 是什麼等等。
- 前任作者的 PR 針對
shecc
增強功能與修復問題,包括:調整記憶體分配限制、支援除法與三元運算子等語法、實現 malloc
和 free
、支援迴圈中的 break
和 continue
、新增全域變數初始化、保留 main
函數返回值,以及優化邏輯非與位元運算等,使 shecc
更符合標準 C 編譯器要求,並通過測試驗證。
- 執行人使用 SSA 優化
shecc
。
- 執行人改進
shecc
,修正邏輯與運算錯誤,符合 C99 標準,實現左到右求值,調整解析流程並使用 phi 函式,解決記憶體與 do-while 迴圈問題,提升流程控制正確性。
-
遇到的疑惑
- 第一次看到 SSA 這個名詞,沒有任何的基礎概念,所以無法看懂,執行人的改善帶來的影響。
- 初步理解 SSA 後發現,這個改動對
SHECC
來說十分巨大,像是改善的 Issue #88 中, SSA 就帶來一定的幫助。
- 研究 phi 函數的作用,發現是個由很基礎的概念延伸出巨大作用的函數。依賴這個看似簡單的函數, SSA 可以處理許多複雜的數據,甚至優化。
- 很認真,看完前任作者的開發日誌的感想,為什麼有一些感覺很基本的語法在
SHECC
中一開始沒有涵蓋?像是 continue
、 malloc
、 free
這些很常見的函數。
-
如何改進
simplefs
執行人: HotMercury, jason50123
開發紀錄
專題解說影片
-
過程中的認知
- simplefs 是一個檔案系統,有四次的開發紀錄,到目前是第五任開發。
- 第一份開發紀錄主要聚焦在
inode
的問題上。
- 第二份開發紀錄主要在處理指令與檔案上限的問題。
- 承3.,紀錄中沒有看到真的處理了問題的部分,倒是重新用自己的口吻說明了第一任開發紀錄做了什麼,像是
superblock
、 inode
。
- 第三份開發紀錄做得很詳細,一樣科普一下 Linux 系統的 VFS 是什麼,有趣的是,我看到第二份開發紀錄中提到的指令問題在這邊被嘗試解決。
- 承5.,嘗試做了許多事情,但是指令的問題仍舊沒有被解決。
- 第四份報告的內容很豐富。首先,發現指令的問題被修復了,最後是被官方修復了,執行人嘗試重現,但沒有成功。或許是值得高興的事情?
- 承7.,第四份報告做了許多事情,沒有明確改進的事項,但是測試了許多前任遭遇到的問題,並給出自己的解答。
- Linux 每次的版本更新不一定有考慮到 simpleFS ,導致往往需要確認是否有哪些地方又出現
bug
,需要開發者們去調整。
- 指令與版本問題是 simpleFS 需要攻克的最大難關。
-
遇到的疑惑
- 除了第一份開發紀錄外,每一份開發紀錄都在嘗試處理指令的問題,據我的理解,可能跟 VFS 或是 Linux 本身比較有關係?儘管 simpleFS 嘗試去兼容,但有可能真正的問題不僅僅是出在 VFS 上,所以前幾任開發者都沒有辦法找到問題?
- JBD2 會不會日後形成全新的
bug
來源?
- 簡單理解與查詢相關資料後發現,JBD2其實算相對穩定的官方模組,且因為成熟,相對方便維護。
- 曾異想天開覺得為何不乾脆自己開發一個「日誌」功能。查了壹下後發現是我低估架構日誌功能的難度了,說不定還會更加不穩定,與花費維護成本。
-
如何改進
- 開發 simpleFS 自己的日誌功能,防止更多的
bug
要解決
- simpleFS 不應該只專注在 VFS 上,而是嘗試去尋找更新時與 VFS 相關的部分?或許問題來源就在核心的其他模組或功能裡?
Demystifying the Linux CPU Scheduler
執行人: 執行人: Kuanch, devarajabc
開發紀錄
專題解說影片-1
專題解說影片-2
-
過程中的認知
-
遇到的疑惑
-
如何改進
STM32F4 移植和系統初始化流程
執行人: hugo0406
開發紀錄
專題解說影片 - 開發紀錄未提供
-
過程中的認知
-
遇到的疑惑
-
如何改進
rhashtable 及核心記憶體管理研究
執行人: SHChang-Anderson
GitHub
開發紀錄
專題解說影片
-
過程中的認知
-
遇到的疑惑
-
如何改進
()
-
過程中的認知
-
遇到的疑惑
-
如何改進
()
-
過程中的認知
-
遇到的疑惑
-
如何改進