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

Lin-2002(林志祐)

簡介

  • 國立成功大學 電機工程所 116 級

  • GitHub: Lin-2002

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

成果發表和貢獻

閱讀教材時發現錯誤所作修訂:

閱讀授課教師提供的教材後,未發現內容有明顯錯誤。不過,在專題研究過程中,我延伸閱讀 LWN 的相關文章,並與較新的官方文件及資料進行交叉查證,發現其中部分與硬體效能相關的數據因文章撰寫時間較早,已無法反映最新一代硬體的實際情況。我已將查證結果與相關資料整理後回饋,供課程內容或後續閱讀時參考。

自我評分:8

作業與隨堂測驗

  • linux2026-warmup:HackMD
  • 2026q1 Homework2 (stdc):HackMD
  • 2026q1 Homework3 (basics):HackMD

在三份作業中,對我幫助最大的是 warm-up 作業。過去我雖然會使用指標,但對於多層指標的語意、資料流向以及 indirection 的理解並不完整。透過 warm-up 的閱讀與思考,我開始重新理解指標在 C 語言中的抽象模型,而不是停留在「能寫出程式」的層次。

這些觀念在當時花了不少時間才逐漸理解,但後來無論是在準備實習面試,或是閱讀 Linux Kernel 原始碼時,都讓我受益良多。Kernel 大量使用指標、函式指標以及複雜的資料結構,如果沒有建立正確的 C 語言觀念,很容易只看懂程式碼的表面,而無法理解資料如何在系統中傳遞。因此,我認為 warm-up 作業為我後續閱讀 Linux Kernel 奠定了重要的基礎,也讓我對 C 語言有了更深入且更正確的理解。

自我評分:9

期末專題

  • Linux 核心設計專題: XDP 為基礎的 TCP/IP 堆疊:HackMD

期末專題以 Linux 高效能網路為主題,我閱讀 kernel.org 官方文件、LWN 及 DPDK 官方文件,整理 AF_XDP、XDP 與 DPDK 的設計差異,並建置實驗環境,驗證 native XDP、copy mode 與 zero-copy 等不同封包處理模式的行為,透過官方文件、原始碼與實驗結果相互比對,確認實作與理論的一致性。

相較於學期初,我更能閱讀 Linux Kernel 相關的官方文件,也開始習慣以原始碼、文件與實驗結果交叉驗證自己的理解,而不是只依賴單一資料來源。雖然目前對 Linux Kernel 的理解仍然有限,但至少已經知道面對一個陌生的子系統時,應該如何閱讀資料、查證資訊以及逐步建立自己的理解。我認為這些能力,比單純學會某項技術更接近未來從事 Linux 系統軟體或韌體開發時所需要的基本能力。

自我評分:9

與授課教師的互動

  • 第 8 週 — 向邱冠維學長提問對於kernel應該從哪方面著手對於就業較有幫助,得到學長回復只要深入理解其中一個子系統就很容易得到面試官得青睞使我更有動力進行這堂課程。
  • 一對一討論:在 6 月 23 日參加課堂模擬面試,仔細閱讀其中所有題目並配合AI做模擬面試問答以及面試時可能會有得延伸討論,並對比信件中音檔

自我評分:9

所見所聞所感

閱讀〈因為自動飲料機而延畢的那一年〉後,我最大的感受是,真正困難的並不是完成某一項功能,而是在不斷深入的過程中,發現問題會一直延伸,原本以為理解了一部分,最後才知道後面還有更多需要學習的內容。這讓我想到這學期閱讀 Linux Kernel 的經驗。

這學期我除了作業以及課程的教材外我主要研究閱讀 Linux 網路子系統相關的內容,希望透過 kernel.org 的官方文件以及 LWN 的文章,理解 Linux 網路堆疊的運作方式。隨著閱讀逐漸深入,又接觸到 AF_XDP、DPDK 等高效能網路相關技術。每往下一層,都會碰到更多以前沒有接觸過的觀念,也因此需要再回頭查找更多資料。

老實說,在這個過程中,我有一段時間其實有些迷失方向。閱讀的資料越來越多,但問題也越來越多。我逐漸理解 Linux 網路子系統的大致設計脈絡,但也越來越清楚知道,自己目前的理解還停留在很初步的階段。很多內容並不是看過一次就能真正理解,而是需要更多背景知識才能串聯起來。

如果要回頭評價這學期的自己,我會給自己 10 分。不是因為我已經理解了 Linux Kernel,而是因為我願意投入時間去摸索並理解kernel中的一些設計哲學,相較於學期初在心態與眼界上有很大的提升。也在這個過程中更誠實地認識自己的不足。雖然還有很多地方看不懂,但至少我知道接下來該往哪些方向繼續閱讀、哪些基礎還需要補強。對現在的我而言,這樣的認識,比急著給自己一個「已經懂了」的答案更重要。

自我評分:10

自我評量 (1 ~ 10)

  • GEOMEAN:$=8.977667218
  • \(1+\lfloor 8.977667218 \rfloor=9\)