分享到plurk 分享到twitter 分享到facebook

版本 424669dfc85a182a6ca31fbc0b52ddb02f5416c9

Kuanch (李冠澄)

簡介

  • 國立成功大學 統計學系 106 級 (2013 ~ 2017)

  • 國立成功大學 人工智慧機器人 113 級 (2022 ~ 2024)

  • GitHub: Kuanch

  • HackMD: Kuanch

2024 Linux 核心實作 春季班 自我評量

相關共筆

本篇是課程中所有共筆的集合,包含作業、課程材料的理解以及課程材料延伸問題的探討。

期末專題

我的專題最重要的三個主題是

  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 ~ 10)

  1. 參與 《Demystifying the Linux CPU Scheduler》 編撰 (9 分)
  2. 作業 1 - 6 皆有如期完成,且有一定完成度 (9 分)
  3. 期末專題可參考前述,具有一定完成度 (9 分)
  4. 與老師討論兩次,分別為 5 / 1 及 6 / 8 (7 分)
  5. 投入狀況以及心得 (7 分)

投入狀況我給自己 7 分。 原因是我在本門課前對於 C 以及 OS 知識十分缺乏導致常常耗費大量時間在基本問題上打轉,當然也不一定是壞事 只是難以消化大量有價值的課程教材,如 CS:APP 等

此外,我在本門課程中較少有以程式開發為主的題目,許多成果似乎只是對我自己有幫助
但對其他同學可能不具有技術難度,導致雖然筆記很多,但就內容看來似乎有些灌水,並不是特別有價值的產出

但我也紮紮實實的學到很多很多東西,如同在作業五閱讀〈因為自動飲料機而延畢的那一年〉所提及的
「完成比完美更重要」+「誠實面對自己」+「持之以恆」
我也會繼續堅持下去,感謝老師

  1. 我僅有在 4 月發送郵件給指導老師 (3 分)

採方案 B 計算分數為,1 + (99977*3)^(1/6) = 7.89