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

版本 5d528b6abff17e204e391cdb5aa1641476ad2246

User/rrrchii

Changes from 5d528b6abff17e204e391cdb5aa1641476ad2246 to 43ae335bebb6f3dee515c986bd1cfc90c408a7b4

---
title: rrrchii(陳麒為)
categories: User
...

# 簡介
* 國立成功大學 電腦與通信工程研究所

* GitHub: [`rrrchii`](https://github.com/rrrchii)
* HackMD: [`rrrchii`](https://hackmd.io/rrrchii)

# 2025 Linux 核心設計/實作 春季班 自我評量
# 2026 Linux 核心設計/實作 春季班 自我評量
## 第一項、成果發表和貢獻
無。
評分: 
雖然沒有實際的成果發表或對教材做出貢獻,但我開始嘗試閱讀 Linux Kernel 中自己感興趣的原始碼,也主動向學長請教他們是如何發現問題、分析問題並找到改進方向。我希望透過這樣的學習方式,逐漸培養閱讀原始碼與發掘研究題目的能力,因此我給自己 **4** 分。

## 第二項、作業/隨堂測驗

* [2025q1 Homework1 (warmup)](https://hackmd.io/@rrrchii/linux2026-warmup) 
* [2025q1 Homework2 (stdc)](https://hackmd.io/@rrrchii/linux2026-stdc) 
* [2025q1 Homework3 (basic)](https://hackmd.io/@rrrchii/linux2026-basic)
* [2026q1 Homework1 (warmup)](https://hackmd.io/@rrrchii/linux2026-warmup) 
* [2026q1 Homework2 (stdc)](https://hackmd.io/@rrrchii/linux2026-stdc) 
* [2026q1 Homework3 (basic)](https://hackmd.io/@rrrchii/linux2026-basic)

評分:   
我為自己打 **8** 分,每份作業我都有去觀看作業上給的教材與撰寫程式碼,都有盡力去寫,儘管不是每份作業都有完成到每個要求,但我認為我在每個作業當中都有學到東西,也投入了相當程度的時間。

Homework1 : 這份作業讓我印象最深刻的,是重新思考大學期間一直都有接觸,卻從未深入探討的基礎概念。過去對於二補數、Overflow、Unsigned Integer 等內容,大多停留在知道他是什麼的層面,而這次透過教材,我第一次從 Group Theory 、模運算與有限域等數學觀點去理解本質,例如為何固定長度位元的加法等價於模的加法、為何允許 Overflow 能夠維持代數結構的封閉性,以及 Linux Kernel 為何將 unsigned overflow 視為 defined behavior。這些內容與大學課程中的計算機概論都有關聯,但教材將這些分散的知識串連起來,也讓我真正理解 Linux Kernel 中許多底層設計並非經驗法則,而是建立在嚴謹的數學基礎之上。

Homework2 : 這次作業我覺得我的出發點是就算做不完也要完整理解整個題目的所有細節,因為把我做過的題目完整理解,比我粗糙的把所有題目做完重要,所以我仍希望能夠真正理解每一個問題背後的原理,而不是因為時間不足就直接放棄。在完成第一題的過程中,我第一次深入接觸 Linked List,了解它在記憶體配置上的特性、適用場景,以及與陣列不同的設計思維,這也是我過去在大學課程中較少接觸的內容。
除了資料結構本身之外,最大的收穫是學會如何利用 perf 分析程式效能。我嘗試設計實驗,比較不同 Linked List 演算法的 cache 行為,並使用 perf stat 與 perf record 觀察 cache miss、cycles、instructions 等效能指標。在分析結果時,我發現量測數據與預期不符,因此重新檢視整個實驗流程,最後發現大量的 cache miss 並非來自演算法本身,而是在建立與打亂 Linked List 時就已經產生。為了排除這項干擾,我重新設計量測流程,改為在串列建立完成後才開始附加 perf 進行量測,使結果更能反映演算法本身的效能差異。
透過這份作業,我不僅學會使用 perf 進行效能分析,更重要的是理解到實驗設計的重要性。當量測結果與預期不同時,不應直接接受數據,而是要主動分析造成差異的原因,並修正實驗方法,這樣得到的結論才具有可信度。而 perf 的使用經驗,也直接延續到我的期末專題,成為分析 Linux Kernel 效能的重要工具。

Homework3 : 未完成

## 第三項、期末專題

Linux 核心專題: Bloom分析 [HackMD](https://hackmd.io/@sysprog/rk28fdH-ze)/[GitHub](https://github.com/rrrchii/linux_2026_bloom)

評分:我為自己打 7 分。
這個專題是從學長的專題延伸而來,在與老師討論後,我開始思考 Bloom Filter 還有哪些值得改進的方向。老師提出除了分析 Bloom Filter 本身之外,更重要的是探討在多核心環境下的同步存取問題,以及是否能根據不同的使用場景調整 Bloom Filter 的設計。
最後,我完成了 Shared Bitmap 與 Per-CPU Bitmap 的分析,也整理了相關理論與效能量測。然而,在「根據不同使用場景調整 Bloom Filter」這部分,我仍未想到合適的實驗設計方式。我認為主要原因是自己對 Bloom Filter 在實際系統中的應用情境理解仍不夠深入,因此無法建立具有代表性的工作負載(workload)來比較不同設計的優劣,也無法進一步驗證調整 Bloom Filter 是否能帶來效能改善。

## 第四項、與授課教師的互動

一對一紀錄 [HackMD](https://hackmd.io/LL0u7iNLSFWdpmmkJwuKYQ)

與授課教師「一對一討論」的時間為 20260526 21:30-22:00。

問答1 : [課堂問答](https://hackmd.io/mGN8I_tJQcW3A92ZIbYbHw?view#rrrchii)

問答2 : [課堂問答](https://hackmd.io/8MWyJTsDSSOFvpZWBSygvg#rrrchii)

評分: 我為自己打 **9** 分。這學期除了參與一對一討論之外,也完成了兩次課堂問答。每次討論前,我都會先閱讀教材,並將自己的理解、疑問與推導過程整理成 HackMD,希望能讓討論聚焦在真正不理解的地方,而不是停留在表面的問題。
相較於修課初期,我最大的改變是不再害怕向老師提問,也更願意主動表達自己的想法,即使知道自己的理解可能不完整,也會透過討論釐清觀念。我認為這些討論不僅幫助我修正許多觀念,也讓我逐漸建立分析問題與閱讀 Linux Kernel 原始碼的能力,因此我給自己 9 分。


## 第五項、 所見所聞所感

因為自動飲料機而延畢的那一年

我最大的感悟是,作者面對挫折時始終相信「再試一次,也許就會成功」,並持續修正方向、不輕易放棄。同時也讓我明白,許多自認為好的想法,在專業人士眼中仍可能有不少缺陷,事情並不如想像中簡單。
我認為,在十幾年前提出這樣的構想已相當創新,但真正願意投入實踐的人不多。最讓我印象深刻的是 Jserv 對作者說的:「你最大的問題在於太害怕失敗了。」甚至願意在資金不足時提供支持,讓作者更有勇氣堅持下去。
此外,作者處理製冰問題的過程,也讓我認同「努力比選擇更重要」以及「換個角度思考」的重要性。與其盲目嘗試,不如透過設備理解原理,再轉售降低成本,這樣更有效率。
這也讓我想到現在學生使用 LLM 的方式。我認為關鍵在於使用者的態度,而不是工具本身。我會把 LLM 當作探索方向的輔助,而不是直接給答案的工具,並盡量理解其產生的內容,避免過度依賴,才能真正提升能力。

名言佳句
第 12 章:「你最大的問題在於太害怕失敗了。」
這句話提醒我不要因為害怕失敗而停滯不前。與其過度擔心,不如先嘗試,從過程中學習並持續修正。

回顧自身的投入狀況
回顧這學期,我投入了相當多時間在閱讀教材、撰寫作業、整理筆記以及完成期末專題。老師在課堂上也特別強調,不要「假懂裝懂」,因為這是最可怕的學習狀態,因此我在修課過程中也時刻提醒自己不要只是表面理解。相較於急著將作業完成,我更希望自己能真正理解每一個問題背後的設計理念,因此遇到不懂的地方時,我通常會先反覆閱讀教材、查閱 Linux Kernel 原始碼或相關資料,再將自己的理解與疑問整理成 HackMD,並持續自行查找資料與反覆思考,而不是停留在「大概知道」的程度。

雖然最後仍有部分作業與專題內容未能完成,但我並沒有因為無法完成就直接放棄,而是盡可能理解每個階段的核心概念,並分析自己卡住的原因。我認為這門課真正困難的地方,不只是實作能力,更重要的是閱讀原始碼、設計實驗、分析效能以及培養獨立思考的能力,而這些也是我在修課過程中最大的收穫。

評分: 我為自己打 **9** 分。這學期我逐漸體會到,學習 Linux Kernel 並不是追求把所有作業都完成,而是培養閱讀原始碼、分析問題與獨立思考的能力。我認為自己最大的收穫,是開始養成不假懂裝懂的習慣,願意花時間追究每個觀念背後的原理,也學會將 LLM 視為協助探索方向的工具。雖然距離理想中的能力仍有差距,但相比修課初期,我已經建立起更成熟的學習態度,因此我給自己 9 分。
 

## 自我總評量得分

自我總評量得分為 8 分。

GEOMEAN : $\sqrt[5]{4 \times 8 \times 7 \times 9 \times 9}=7.10$
方案 B:$1+\lfloor7.10\rfloor=8$