版本 2fdfc076ba04f8cb8e53b29af84ae3e3fe0f1625
vacantron (陳孟鴻)
簡介
- 國立成功大學 電機工程學系學士班 112 級 (2019 ~ 2024)
- NCKU STUDY 成大學業心得網 協作者
- 相關連結
2022 Linux 核心設計 春季班 自我評量
作業共筆
- HW1
- HW2
- HW3
- 期末專題
修課心得
在選課的時候看到了這門特別的課 ( 課程要求:懂得 C 語言、對於作業系統、計算機結構有足夠的認識 ) ,想了一下大一時修過計算機概論應該算懂 C 語言、大二時修過計算機組織及資料結構應該勉強符合資格吧,而編譯系統及作業系統也剛好是在這學期修。事實證明,我會的那些僅只是皮毛而已,而我對於 Linux kernel 的認知如同一張白紙
第一次的作業是實作 linked list ,一開始以為是像資料結構課教得那樣的簡單的作業,後續在參閱其他同學們的作業時才發現到除了實作 linked list 外還有許多可以再深入的議題,像是如何切割串列讓 merge sort 能更有效地利用 cache 進而獲得更好的效能等。這讓我明白一個道理:如果覺得一個東西簡單,要不是已經成為大師,不然就是因為自己無知。因為我從來沒有去想過那些問題,思考範圍只停留在議題的表面,自然覺得沒有問題存在
在這門課前我沒什麼寫共筆的經驗,因為以前做筆記都是寫給自己看的所以只要自己看得懂就好,直到現在才發現原來要把自己的想法、理解統整起來,然後用通順的中文表達出來讓其他人能看懂、理解也不是一件容易的事。而課堂中的小考的模式也是以前從未體驗過的,要在時間內要抓到程式的脈絡、重點,對沒有經驗的我來說難度也不低
透過這門課程真的學到了許多新東西,若我沒有來修這門課,可能有些東西這輩子都不會有機會接觸到。而課程中大量的資料在短時間內消化不完,還需要再花更多時間整理、完善
自我評量 (1 ~ 10 分)
我給自己 7 分。
第一堂課所說的一週投入 18 小時真的遠遠不夠,光是看、理解、整理就需要耗費大量時間了,更不用提在實作過程中還會遇到各式各樣的問題待解決,在宿舍中挑燈夜讀是家常便飯。儘管從中間開始就發現自己程度太差跟不上進度,但在看完預錄影片跟共筆後多少還是能得到一些概念,後續在找參考資料時也能有個大致的方向而不至於到處撞牆
2024 Linux 核心實作 春季班 自我評量
成果發表和貢獻
CTHPC 2024 : Accelerate RISC-V Instruction Set Simulation by Tiered JIT Compilation
COSCUP 2024 : 從零開始建構 C 語言最佳化編譯器
-
- pull/114 : 在目前的架構下,shecc 會馬上將內容被改變的全域變數 (global variable) 儲存回堆疊 (stack) 中而沒有參與 SSA (static single assignment) 的變數重新命名 (variable renaming) 步驟,因此若我們對全域變數進行共同表示式消除而沒有重新從堆疊中載入的話會得到過時的內容。
作業/隨堂測驗
期末專題
與授課教師的互動
06/28 :
引入 dstogov/ir 作為 LLVM IR 的替代選擇
改善 rv32emu 的 JIT 編譯器遇到 RISC-V 的
jalr
指令時的行為。將測試與性能評估程式遷移至 rv32emu-prebuilt 儲存庫中。
所見所聞所感
自我評量 (1 ~ 10)
方案 A : 8 + floor(0.3 * pow( * * * * , 0.2)) =