--- title: Hlunlun (黃佳倫) categories: User ... # 簡介 * 國立成功大學 資訊工程所 115 級 (2024 ~ 2026) * GitHub: [`Hlunlun`](https://github.com/Hlunlun) * HackMD: [`clh`](https://hackmd.io/@clh) # 2025 Linux 核心設計/實作 春季班 自我評量 ## 成果發表和貢獻 在寫專題參考文件 [Linux 核心設計: Scheduler(4): PELT](https://hackmd.io/@sysprog/Hka7Kzeap/%2FBk4y_5o-9) 時,發現 `decay_load` 的數學部分解釋有誤,並進行修改 4 分 ## 作業/隨堂測驗 * lab0-c: [Github ](https://github.com/Hlunlun/lab0-c)/ [HackMD](https://hackmd.io/@clh/linux2025-homework1) * quiz(1+2): [HackMD](https://hackmd.io/@clh/linux2025-homework2) * kxo: [HackMD](https://hackmd.io/@clh/linux2025-homework3) * assessment: [HackMD](https://hackmd.io/@clh/linux2025-homework5) 7 分 ## 期末專題 * [位元運算與數值系統的應用](https://hackmd.io/@sysprog/B13UVSQWel) 探討 Linux 核心中的浮點數運算、指數運算如何透過位元操作來完成計算,將數學邏輯與程式碼結合說明,以及位元猜做實際應用的 CRC 案例說明,除了數學層面,又能在實務層面真正體會到位元運算對 Linux 核心運算效率與數學推導 10 分 ## 與授課教師的互動 * 5/9 下午 5:00、5/15 上午 10:30 一對一討論 : [HackMD](https://hackmd.io/@clh/linux2025-homework5) * 6/10 課堂問答: [deadlock、dependency graph](https://hackmd.io/4UVPLWFgQ92AlG3N76dFKA#Hlunlun) 老師問了在 [linux 核心中不使用 FPU 計算浮點數](https://hackmd.io/KjzKiTVJSl-J6CBDZFI9iQ?view#Linux-%E6%A0%B8%E5%BF%83%E4%B8%AD%E7%9A%84%E6%B5%AE%E9%BB%9E%E6%95%B8%E9%81%8B%E7%AE%97) 的問題:在 linux 核心中不用FPU實作 [`ldexpf`](https://hackmd.io/KjzKiTVJSl-J6CBDZFI9iQ?view#2-%E7%9A%84%E5%86%AA%E4%B9%98%E6%B3%95)、[幾何平均](https://hackmd.io/KjzKiTVJSl-J6CBDZFI9iQ?view#%E5%B9%BE%E4%BD%95%E5%B9%B3%E5%9D%87%E6%95%B8),然後我完全不會,所以就從 [浮點數二進位編碼](https://hackmd.io/KjzKiTVJSl-J6CBDZFI9iQ?view#%E6%B5%AE%E9%BB%9E%E6%95%B8%E7%9A%84%E4%BA%8C%E9%80%B2%E4%BD%8D%E5%88%B6%E9%81%8B%E7%AE%97) 、[定點數](https://hackmd.io/KjzKiTVJSl-J6CBDZFI9iQ?view#%E5%AE%9A%E9%BB%9E%E6%95%B8)開始補起,結果我發現看完教材了解這些原理後,老師問的問題其實都不難,一開始花了很多時間在google搜尋,但根本沒必要,因為在 CSAPP 中的講義第一二堂課差不多就在講浮點數二進位編碼,看完其實就知道怎麼實作這些問題,所以,我們真正需要花時間的是可以專注在有意義的文字上,而非一直進行 BFS 發散搜尋。 10 分 ## 所見所聞所感 在專題過程中,了解到許多 Linux 核心中位元運算的數學意義,也深刻體會數學在其中的重要性,如再看 PELT 原始碼時,如果直接即使可以理解他的數學運算過程,卻無法知道這樣計算的原因,但如果先了解用於其中計算衰減方式的 EWMA,就能知道原來他是分成 ewma_sum(u) 與 ewma_sum(1) 來計算,也就是說找到一個關鍵的數學意義對於切入其實做的程式碼是非常重要的。 在期末專題中也透過其他人的開發紀錄了解目前最新技術與開發過程遇到的問題,雖然我尚未有足夠的閱讀量來一窺整個 Linux 核心,但是在所有的公開教材、開發紀錄等多個學員的文字貢獻中,發現有自己可以修改的地方,並且手動修改 10 分 ## 自我評量 (1 ~ 10): $GEOMEAN = (4 \times 7 \times 10 \times 10 \times 10)^{1/5} = 7.1$ 方案 B :$1 + floor(GEOMEAN) = 1 + = 8$