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

版本 a50e61f2bf148a2f6cfb901bd4b6f4cadf1c31ed

User/Kuanch

Changes from a50e61f2bf148a2f6cfb901bd4b6f4cadf1c31ed to 4e8057c293c3d912f7271a16732946cb760a7413

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

我給自己 7 分。

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

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

但我也紮紮實實的學到很多很多東西,也會繼續下去,感謝老師