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