--- title: Chinchun Chen (陳金諄) categories: User ... ## 2024 Linux 核心實作 春季班 自我評量 * 簡介:國立成功大學電機所 114 級 * GitHub: [david965154](https://github.com/david965154) * HackMD: [david965154](https://hackmd.io/@david96514) ### 成果發表與貢獻 閱讀文件時做的錯字修訂: * [lab0](https://hackmd.io/@jimmylu0303/linux2024-homework1) * [虛擬攝影機裝置驅動程式](https://hackmd.io/@sysprog/rJEhcgoSn) ### 作業與隨堂測驗 * lab0: [GitHub](https://github.com/david965154/lab0-c) / [HackMD](https://hackmd.io/@david96514/linux2024-homework1) 這份作業中主要實作了佇列的基本操作,同時對一些特定功能進行分析,如洗牌亂度及排序時執行時間複雜度,在之後的作業三也加入了井字遊戲不同演算法及功能的實作,並閱讀 coroutine。 * quiz1 + 2: [HackMD](https://hackmd.io/@david96514/linux2024-homework2) 內容為分析測驗中 quick sort 、 timsort 、建立二元樹、 LRU Cache 實作及在一段特地記憶體中尋找第 N 個設定位元的函式。 * quiz3 + 4: [HackMD](https://hackmd.io/@david96514/linux2024-homework4) 內容為分析測驗中有效率的開根號、避免使用除法的模除運算、 $log_2$ 、 EWMA 及漢明距離計算。 * Assessment: [HackMD](https://hackmd.io/@david96514/linux2024-homework5) 作業內容我選擇改進了 1. 第 2 周測驗 3 : fns 函式改進 2. 第 3 周測驗 2 : 不依賴任何除法指令的 % 9 (modulo 9) 和 % 5 (modulo 5) 程式碼 3. 第 4 周測驗 1 : 避免重複計算、一次輸入多個字串需要同時計算 Total Hamming Distance 的版本 並紀錄閱讀〈因為自動飲料機而延畢的那一年〉的啟發,並研讀 CS:APP 3/e 第二章。 * Integration: [HackMD](https://hackmd.io/@david96514/linux2024-homework6) 作業中除了閱讀給定教材並分析其功能外,在自己的實體電腦運作 GNU/Linux 並實際將模組掛載至核心執行,並嘗試將 simrupt/simrupt.c 內的 simrupt_work_func 改寫為 lock-free 。 * 另外做的一些筆記: * [FNS 改進](https://hackmd.io/@david96514/HJoPc_YeR) 記錄了改進 fns 並嘗試發送 patch 的過程 * [Linux 核心實作 2024q1 第 18 週測驗題](https://hackmd.io/@david96514/linux2024-homework5) 因為當下沒有理解程式碼行為而無法回答老師問題,事後花了點時間重新理解。 ### 期末專題 bitops: [HackMD](https://hackmd.io/@david96514/HJnf3TOQC) 1. 嘗試重現前面執行人的改進並套用至 Linux v6.8+ 版本,並提出驗證方法證明其與現有版本相容。 2. 嘗試改進第 7 周測驗找出一段記憶體位置中特定字元的演算法並貢獻 3. 修訂快速開平方根運算 ### 與授課教師的互動 一對一討論:5月 14日 (星期二)⋅下午9:00 - 9:30 * [第四週測驗一](https://hackmd.io/ft3EYSusSS2aLyRicdqTzA?view#%E6%B8%AC%E9%A9%97%E4%B8%801): 討論將變數取反再取二補數的原因,以及 popcount 為何是以四個 bit 作為單位的原因。 ### 修課心得 ### 與指導教授的學習回顧 * 二月回顧: * 三月回顧: * 四月回顧: ### 自我評量 $(3 \times 8 \times 7 \times 6 \times 8 \times 8) ^ {1/6} = 6.33$ 使用方案 B 計分:$1 + floor(6.33) = 7$