--- title: Kuanch (李冠澄) categories: User ... # 簡介 * 國立成功大學 統計學系 106 級 (2013 ~ 2017) * 國立成功大學 人工智慧機器人 113 級 (2022 ~ 2024) * GitHub: [`Kuanch`](https://github.com/Kuanch) * HackMD: [`Kuanch`](https://hackmd.io/@Kuanch) # 2024 Linux 核心實作 春季班 自我評量 ## 相關共筆 * [Linux Kernel Internals 2024 Spring](https://hackmd.io/@Kuanch/linux2024-collection) 本篇是課程中所有共筆的集合,包含作業、課程材料的理解以及課程材料延伸問題的探討。 ## 期末專題 * [CPU 排程器研究](https://hackmd.io/@sysprog/rkJd7TFX0) 我的專題最重要的三個主題是 1. kprobe 和 tracepoint : 撰寫 tracepoint 的相關程式碼並不困難,但需要結合對排程器理解,撰寫 Kernel Module 與核心互動 加上再以 kprobe 復現功能,雖然僅有小小篇幅,但我認為足以作為專題的主題之一 2. 使用 remote GDB 追蹤 CPU Scheduler 的行為 : 技術上並沒有什麼門檻,但一步步分析、理解排程器的作動,以及其延伸問題,對我學習 Linux 核心有巨大幫助。 3. 撰寫《Demystifying the Linux CPU Scheduler》: 感謝老師讓我參與該書 EEVDF 部分的貢獻,這部分最令我收穫良多的是從無止盡的 Patches 中找出當前 Linux 核心中重要的討論和主題 並加上自己的理解,將其轉換為其他人能夠快速吸收、理解的知識 可惜力有未逮,遺憾十分的多,程式碼的開發比例太少 譬如對於 sched_ext 和 eBPF 的開發,看起來非常有趣又可以與排程器結合 以及 schbench 的分析和進一步的開發,尤其是發現它與 hachbench 在開發排程器時被大量開發者應用 若是能夠在碩一時修課,應該還能夠有時間變得更強 ## 修課心得 我認為作業的設計是之所以本門課被稱為神課的因素之一,同樣的題目,允許不同人有不同的想法,並自主投入時間 特別有興趣的題目,也許可以花更多時間鑽研。雖然考驗同學的自主性,但一旦能夠上手,馬上就能快速進步 如我在作業四之後就大量投入排程器相關的議題,並將其整理在 hackmd 成冊 有些問題是靈光乍現、先前從未思考過,就可以將研究的過程和成果記錄下來 允許同學自主開發題目、分配時間,這樣的形勢十分有挑戰但也無疑收穫巨大 此外,老師準備了許多材料 當你有任何 Linux 核心相關的疑問,必然有先導教材 能夠快速讓你了解其前因後果,而歷屆學生可能也有共筆 如果你願意搭配 ChatGPT 等工具不斷追問、願意設計並投入實驗 你完全有可能將某一個問題研究的淋漓盡致,並使其成為有價值的成果 ## 分項自我評量 1. 參與 《Demystifying the Linux CPU Scheduler》 編撰 (9 分) 2. 作業 1 - 6 皆有如期完成,且有一定完成度 (9 分) 3. 期末專題可參考前述,具有一定完成度,所有的 TODO 皆有產出 (9 分) 4. 與老師討論兩次,分別為 5 / 1 及 6 / 8 (7 分) 5. 投入狀況以及心得 (7 分) 投入狀況我給自己 7 分。 原因是我在本門課前對於 C 以及 OS 知識十分缺乏導致常常耗費大量時間在基本問題上打轉,當然也不一定是壞事 只是難以消化大量有價值的課程教材,如 CS:APP 和 lkmpg 等,教材的閱讀進度較為低落 此外,我在本門課程中較少有以程式開發為主的題目,許多成果似乎只是對我自己有幫助 但對其他同學可能不具有技術難度,導致雖然筆記很多,但就內容看來似乎有些灌水,並不是特別有價值的產出 但我也紮紮實實的學到很多很多東西,如同在作業五閱讀〈因為自動飲料機而延畢的那一年〉所提及的 「完成比完美更重要」+「誠實面對自己」+「持之以恆」 我也會繼續堅持下去,感謝老師 6. 我僅有在 4 月發送郵件給指導老師 (3 分) ## 自我評量總分 採方案 B 計算分數為,1 + (9\*9\*9\*7\*7\*3)^(1/6) = 7.89