User/chuang
2026 年 Linux 核心設計課程自我評量
姓名: 莊品謙
GitHub 帳號: chuang0720
本自我評量依據課程要求,分別整理成果發表與貢獻、作業與隨堂測驗、期末專題、與授課教師互動,以及本課程所見所聞所感。所有評分皆為 1 到 10 之間的整數,並以公開紀錄、commit log、pull request、討論串、issue、課程頁面或期末專題頁面作為佐證。
成果發表與貢獻
自評分數:10 / 10
1分
作業 / 隨堂測驗
自評分數:6 / 10
2026q1 Homework1 (warmup) <https://hackmd.io/@a8ACLKURQ-WDsHNlcN9_4Q/linux2026-warmup>_2026q1 Homework2 (stdc) <https://hackmd.io/@a8ACLKURQ-WDsHNlcN9_4Q/linux2026-stdc>_2026q1 Homework2 (basics) <https://hackmd.io/@a8ACLKURQ-WDsHNlcN9_4Q/linux2026-basics>_
課程前期每週花費超過20小時閱讀教材
資訊科技詞彙翻譯 <https://hackmd.io/@sysprog/it-vocabulary>_在當中我了解到正確用詞的重要性,像是常被譯為渲染的 render 並不符合原本的意思,因此現在在用詞上會去注意原文的意思和翻譯的差別
GNU/Linux 開發工具 <https://hackmd.io/@sysprog/gnu-linux-dev/>_在經過一學期的使用後,對 Linux系統 以及 HackMD 的操作上有更深入的了解,目前使用HackMD作為主要的紀錄工具
在閱讀多份你所不知道的 C 語言教材之後,了解到當使用 C 語言作為程式設計工具時須注意許多地方,尤其是對於指標的操作必須非常熟悉並小心使用
期末專題
自評分數:8 / 10
在 SMARC1200 平台上完成核心建置,並比較不同 preemption model 對 latency 的影響
Linux 核心設計專題: 核心搶佔模型與 PREEMPT_RT 對即時延遲的影響 <https://https://hackmd.io/E0pBdgJhTFeUOWOkabCC9A?view>_
在建置核心的過程中了解並非只要具備 mainline Linux
的程式碼就能在任何裝置上開機使用,且廠商對於各裝置的支援也並非即時更新,使用不同工具對延遲進行量測,一開始是
cyclictest,到後來的
ftrace,有助於加深我對核心的理解,在結果的部分,因最後對核心的修改並非絕對的改善,因此我認為在期末專題的分數上不足以拿滿分
與授課教師的互動
自評分數:7 / 10
5/12 在課堂中被老師問到當每個 CPU 有自己的 runqueue 時,該如何決定誰要執行? 在閱讀<>之後對 runqueue、load balance 以及 PELT 有更深的了解
6/2 被老師問到什麼是 CAS? 什麼時候會有 MPSC?什麼是 mmap?三個問題,當時我一個都回答不出來,花時間回去閱讀<>及 Linux manual page 後,不僅複習了 CAS 還學到了關於 ABA 問題的相關知識。
一對一討論
- 4/30 在第一次一對一討論時,知道了自己對於即時系統以及 Linux Preempt 機制並不了解,因此於討論後詳細閱讀了老師所提到的教材
- 5/15 閱讀完教材之後和老師進行了第二次討論,確定了期末專題的方向並持續進行
所見所聞所感
自評分數:10 / 10
讀完《因為自動飲料機而延畢的那一年》後,我最佩服的是作者願意長時間投入一個沒有現成答案的實際問題,讓我重新思考自己在這門課中的學習方式。在課堂中,老師常常說如果做出來的東西不能給上千萬人使用就是nothing,在現在人人都能寫程式的世界中,軟體工程師或想成為不可取代的工程師的人需要思考該如何佔有一席之地或不被取代,我經過這一學期所得到的結論是:注重細節、品質以及具備解決真實世界問題能力的人將會是未來 AI 當道也不可或缺的人才。 ## 分數計算
| 項次 | 名稱 | 分數 |
|---|---|---|
| Text | Text | Text |
| 1 | 成果發表與貢獻 | 1 |
| 2 | 作業與隨堂測驗 | 6 |
| 3 | 期末專題 | 8 |
| 4 | 與授課教師的互動 | 7 |
| 5 | 所見所聞所感 | 10 |
自我評量總分: 6 / 10
自我評量 (1 ~ 10):
\(GEOMEAN = ( 1 \times 6 \times 8 \times 7 \times 10 )^{1/5} = 5.073\)
方案 B :\(1 + floor(GEOMEAN) = 1 + 5 = 6\)
