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

版本 ac9f12751d795c10f7cfdaa276db6f6ccd3497d2

User/Kuanch

Changes from ac9f12751d795c10f7cfdaa276db6f6ccd3497d2 to current

---
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 ~ 10)
## 分項自我評量

1. 參與 《Demystifying the Linux CPU Scheduler》 編撰 (9 分)
2. 作業 1 - 6 皆有如期完成,且有一定完成度 (9 分)
3. 期末專題可參考前述,具有一定完成度 (9 分)
4. 與老師討論兩次,分別為 5 / 1 及 6 / 8 (7 分)
1. 參與 《Demystifying the Linux CPU Scheduler》 編撰 (9 分)  
    修改第二章文法及錯別字,以及 2.4 EEVDF 章節,增修 2.4.2 之後章節。  
由於 EEVDF 仍在開發中,並且持續改進原始論文或原先設計,需要持續追蹤 Patch Series 了解未來可能進行的變更及其理由  
故亦將過程整理為 [Patch Review](https://hackmd.io/@Kuanch/eevdf) 心得。  
  
2. 作業 1 - 6 皆有如期完成,且有一定完成度 (9 分)  
    所有的作業都有對應的產出,並有不同於其他同學的延伸問題探討;如[HW4 W3-Q2](https://hackmd.io/@Kuanch/linux2024-collection/https%3A%2F%2Fhackmd.io%2F%40Kuanch%2Flinux2024-homework4#%E8%A9%95%E4%BC%B0-CPU-%E9%80%B1%E6%9C%9F%E6%95%B8%E9%87%8F) 等。  
此外,我認為我記載於 [Linux Kernel Internals 2024 Spring](https://hackmd.io/@Kuanch/linux2024-collection) 的其他筆記,如 "[從 start_kernel 到第一個任務](https://hackmd.io/@Kuanch/linux-kernel-scheduler-notes4)" 等延伸討論,也可作為此項計分。  
  
3. 期末專題可參考前述,具有一定完成度,所有的 TODO 皆有產出 (9 分)  
    對於每一項 TODO 皆有相對應內容,並且參與期末專題展出;此外,專題內容遠多於專題展示內容,並且在 TODO 之外的相關延伸,   
譬如 kprobe 以及 qemu 等使用都有詳盡介紹,故我在此項也給予高分。  
  
4. 與老師討論兩次,分別為 5 / 1 及 6 / 8 (7 分)  
    事實上除了本兩次討論外,也有多次未成功的預約,我認為雖然僅有兩次討論,但展現的積極度可以加分。  
  
5. 投入狀況以及心得 (7 分)

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

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

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

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

## 自我評量總分
採方案 B 計算分數為,1 + (9\*9\*9\*7\*7\*3)^(1/6) = 7.89