Try   HackMD

2025q1 Homework5 (assessment)

contributed by < EricccTaiwan >

WIP

從前 6 週的測驗題選出 3 題改進 (含延伸問題,要有對應的 Linux 核心原始程式碼案例探討),觀摩其他學員並參照授課教師進行的作業檢討和回顧,若有不能理解的部分,請標註出來。

紀錄閱讀〈因為自動飲料機而延畢的那一年〉的啟發,特別在學習本課程 5 週之後的感想,應具體描述你在課堂、課後創作,和觀摩其他學員的成果時,理解到系統軟體的開發態度、對細節的重視,以及理論和實務的融會貫通。

截至今日 2025/5/4 ,我才終於把這系列文章全部認真的看完,這篇文章自己也很有感觸,大學部就讀成大系統系,但對於造船領域完全沒有概念,研究所就讀電通所,但卻連

tanh 函數都要谷歌搜尋其定義,更不用說通訊複雜的數學,或許是教育的問題,但我更願意相信是我對於學習的囫圇吞棗,進而導致。

進到成大電通所後,碩一上總想著好好學習這些通訊的課,一定能找到「通訊演算法」的工作,修了很多數學、理論課,當時我的室友去修計算機結構,我依舊抱持著那天真的想法。碩一下開始找實習後,我的室友又去修了「Linux核心設計」,而我此時才被現實打臉,發現是太天真了,通訊演算的缺跟我是兩條平行線,不可能有交集。但也運氣很好在碩一升碩二的暑假,進到了瑞昱半導體擔任韌體實習生,暑假前總會跟朋友開玩笑,都拿到實習了預聘有什麼難的,暑假後帶著悲傷的心情離開新竹,回到成大認真寫我的碩論。因為要找工作,所以修了 jserv 老師的「資訊科技產業專案設計」,在修課的過程中,發現了自己在底層開發經驗的不足、表達能力有待加強、leetcode easy 都會卡住等等的問題,滿受挫的其實,認為自己做了很多錯誤的選擇,即使過程中再努力,這些努力在「資訊科技產業」中都是沒用的,於是下定決心,碩二上我要把論文搞定,碩二下誠實面對自己,選修「Linux核心設計」。

其實這門課聽聞多次,但就讀成大六年來,到了最後一個學期才真正的誠實面對自己,這堂課的前五周,基本上都在寫 lab0-c 的作業,從最基本的 git 開始學習,說來也慚愧,想做韌體/嵌入式工程師,卻連 git 都不會使用,但就缺什麼補什麼,也在寫作業的過程中,發現了能著手修改的地方,也成為了我參與開源程式碼開發的起點,雖然到現在都還只是修正一些小 bug 、 issue 就是了。

研讀第 1 到第 6 週「課程教材」和 CS:APP 3/e (至少到第二章),紀錄心得和提問。針對自訂題目,例如貢獻程式碼到 Linux 核心,也將自己的構想和規劃記錄下來,隨後與授課教師一對一討論時可運用。

  1. 等期末專題發表後,我想把先前討論的浮點數,繼續實做,我認為快速且在誤差接受範圍內的
    tanh
    函數計算,一定能夠參遇到開源程式碼的貢獻,包含但不限於 Linux 核心。
  2. 我希望能透過參與 SCX 的開發,有朝一日和 Maintainer 們見一次面!

比照 2024 年期末專題,簡述你想投入的專案 (亦可建立新專案),至少選出 (或訂出) 二個,過程中可參照其他學員的想法,即 ideas。

開發紀錄

針對教材提問

《Demystifying the Linux CPU Scheduler》 如何新增對於 sched_ext 的介紹?

老師有提到,此書是針對目前 Linux 的 LTS 版本去撰寫 (特別是 6.1.y),但 sched_ext 是在 v6.12 後才引入的新功能,查閱最新 v6.1.140 的程式碼中也不見 sched_ext 的蹤跡。因此產生了對於如何對 sched_ext 進行擴充的疑惑。

CS: APP

心得

可見期末自評