--- title: 2024 年 Linux 核心設計/實作課程期末專題 description: 「Linux 核心設計/實作」課程期末專題清單 tags: linux2024 --- # 2024 年 [Linux 核心設計/實作](https://wiki.csie.ncku.edu.tw/linux/schedule)課程期末專題 :::info :information_source: 注意事項 1. 所有專案都該確保在 Linux v6.8+ 運作 (搭配 Ubuntu Linux 24.04) 2. 所謂的「彙整」,是指能撰寫出完整的技術報告,範例: ==[位元運算整理](https://hackmd.io/@0xff07/BTS)== 和 ==[基於 C 語言標準研究與系統程式安全議題](https://hackmd.io/@sysprog/c-std-security)== 3. 專題不僅是課程評分的依據,而且是自己專業的證明,日後可列於個人簡歷 4. 請及早向 **[授課教師](https://www.facebook.com/JservFans)** 預約一對一討論,得知專題進行的期待方式 5. ==不要==自行填入「執行人」,應在與 **[授課教師](https://www.facebook.com/JservFans)** 討論後,再行更新 6. 每組由 1 到 2 位學員進行,一個題目可能有多個執行人獨立進行 7. 每位學員都該提供解說錄影 (並公開發布),否則期末專題不予計分 $\to$ **[專題解說錄影的示範](https://hackmd.io/@sysprog/Hy5hmaKBh)**,留意標示方式 8. ==[期末專題發表](https://hackmd.io/@sysprog/linux2024-showcase)== 安排於 6 月 30 日上午和下午,以 YouTube 直播進行 (事後提供錄影),授課教師會依據學員進行的狀況,挑出其中 12 位學員進行口頭報告,每位約 30 分鐘。沒安排在專題發表的學員,需要在 7 月 4 日中午前,挑出至少 5 個由其他學員進行的題目,觀看其解說錄影、開發紀錄、程式碼和成果進行批評,紀錄於下方對應專案的開發紀錄中,針對個別題目,至少提出 1 個問題或建議。 * 比照[第三次作業](https://hackmd.io/@sysprog/linux2024-review)的風格,在自己以外的學員的開發紀錄上,留下 `Reviewed by 你的GitHub帳號名稱` 的意見 9. 針對其他學員 (含授課教師和社會人士) 在開發紀錄頁面提出的問題或建議,務必在 7 月 6 日中午前予以回應和改進。 ::: ## simplefs 為了探索 Linux VFS (virtual file system) 介面及檔案系統實作機制,我們從無到有撰寫一個運作於 Linux 核心模式中的精簡檔案系統,原始程式碼約一千餘行,支援基本的檔案和目錄處理,同時也考慮到權限和並行處理的議題。本任務預計整合 [jbd2](https://www.kernel.org/doc/html/latest/filesystems/ext4/journal.html),使得 simplefs 具備 [journaling](https://en.wikipedia.org/wiki/Journaling_file_system) 特徵。 * 相關資訊: * [開發紀錄-1](https://hackmd.io/@Nahemah1022/rJo1sAtid) * [開發紀錄-2](https://hackmd.io/@fwfly/simplefs) * [開發紀錄-3](https://hackmd.io/@freshLiver/linux-vfs-main/) * [開發紀錄-4](https://hackmd.io/@sysprog/BymZ7EeH3) * 執行人: HotMercury, jason50123 $\to$ [開發紀錄](https://hackmd.io/@sysprog/r1e08fg7A) ## 視窗系統實作和 Linux 整合 全向量的圖形 (vector graphics) 處理系統專題,希望可以理解相關 rect clipping 相關演算法以及精進 fixed point 的操作並且改進,最終利用 Linux framebuffer 和 input 子系統來展現整個視窗系統。 * 執行人: marvin0102 $\to$ [開發紀錄](https://hackmd.io/@sysprog/B13GqdgQ0) ## Linux 排程器研究 探討 Linux 排程器內部設計,改進《Demystifying the Linux CPU Scheduler》,並尋求貢獻程式碼到 Linux 核心的機會 * 相關資訊 * [Let's Publish a Collaborative e-Book for Linux Kernel](https://hackmd.io/LXD339QGRbaEBvESooItTg) * [git commits](https://lore.kernel.org/all/?q=%22Jui-Tse+Huang%22) * [BORE (Burst-Oriented Response Enhancer) CPU Scheduler](https://hackmd.io/@foxhoundsk/bore-sched),是 [CachyOS](https://cachyos.org/) 預設的 CPU 排程器 * [Reducing CPU scheduler latency in Linux](https://www.diva-portal.org/smash/get/diva2:1630380/FULLTEXT01.pdf) * [Reducing latency spikes by tuning the CPU scheduler](https://www.scylladb.com/2016/06/10/read-latency-and-scylla-jmx-process/) * [開發進度-1](https://hackmd.io/@steven1lung/scheduler_notes) * [開發紀錄-2](https://hackmd.io/@SmallHanley/linux2022-projects) * [開發紀錄-3](https://hackmd.io/@sysprog/BJh9FdlS2) * 執行人: vax-r $\to$ [開發紀錄](https://hackmd.io/@sysprog/BJdyxvxX0) * 執行人: Kuanch, devarajabc $\to$ [開發紀錄](https://hackmd.io/@sysprog/rkJd7TFX0) * 執行人: yenslife $\to$ [開發紀錄](https://hackmd.io/@sysprog/rysYj43ER) * 執行人: ShawnXuanc $\to$ [開發紀錄](https://hackmd.io/@sysprog/SyTH65LUC) * 執行人: otteryc $\to$ [開發紀錄](https://hackmd.io/@sysprog/H1u6D9LI0) * 執行人: YangYeh-PD $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyFog6kw0) ## 並行程式設計 改進〈[並行和多執行緒程式設計](https://hackmd.io/@sysprog/concurrency)〉系列講座和〈[Concurrency Primer](https://github.com/sysprog21/concurrency-primer)〉 * 執行人: weihsinyeh $\to$ [開發紀錄](https://hackmd.io/@sysprog/H1dCuDxQR) * 執行人: LULser0204 $\to$ [開發紀錄](https://hackmd.io/@sysprog/H1_iu8CSA) * 執行人: jeremy90307 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyDijL0HR) * 執行人: yutingshih $\to$ [開發紀錄](https://hackmd.io/@sysprog/BkNqX71L0) * 執行人: kkkkk1109 $\to$ [開發紀錄](https://hackmd.io/@sysprog/Skyd45U8A) * 執行人: ssheep773 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJoqB8Y80) * 執行人: stevendd543 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJXN0y9UR) * 執行人: yourui1017 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJeGxDcU0) * 執行人: wu81177 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rk4C6djLR) * 執行人: LindaTing0106 $\to$ [開發紀錄](https://hackmd.io/@sysprog/B1PfD838R) * 執行人: Shiang1212 $\to$ [開發紀錄](https://hackmd.io/@sysprog/S1bpKK3LC) * 執行人: chloe0919 $\to$ [開發紀錄](https://hackmd.io/@sysprog/r1ddDf-wR) * 執行人: MiohitoKiri5474 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HySMWU-DR) * 執行人: zack-404 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rJbuY8ZvC) * 執行人: youjiaw $\to$ [開發紀錄](https://hackmd.io/@sysprog/B1TOj7mwR) * 執行人: MathewSu-001 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJglnrmvR) RCU 研究 * 執行人: eleanorLYJ $\to$ [開發紀錄](https://hackmd.io/@sysprog/HkkWZ20B0) * 執行人: yuyuan0625 $\to$ [開發紀錄](https://hackmd.io/@sysprog/Byga7v9U0) 運用並行處理來強化既有的應用場景 * 執行人: yeh-sudo $\to$ [開發紀錄](https://hackmd.io/@sysprog/B1W2HKTER) 高性能網頁伺服器 * 執行人: fatcatorange $\to$ [開發紀錄](https://hackmd.io/@sysprog/HkyVuh0NR) * 執行人: han1018 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HkyNQeJrR) * 執行人: w96086123 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BkJI3u0SA) * 執行人: yqt2000 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BybmuLYLA) * 執行人: Hualing-Chiu $\to$ [開發紀錄](https://hackmd.io/@sysprog/ByRD8xcUR) * 執行人: Ackerman666 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJo8qe5LA) * 執行人: SimonLee0316 $\to$ [開發紀錄](https://hackmd.io/@sysprog/Byq9C2q80) * 執行人: yan112388 $\to$ [開發紀錄](https://hackmd.io/@sysprog/S1GmcggvC) * 執行人: williamlin0518 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BJ20tH7vA) ## 強化 Linux 核心的測試模組 * 執行人: 164253 $\to$ [開發紀錄](https://hackmd.io/@sysprog/ByvfKXXPC) ## 〈每位程式開發者都該有的記憶體知識〉修訂 〈[每位程式開發者都該有的記憶體知識](https://sysprog21.github.io/cpumemory-zhtw/)〉翻自 Ulrich Drepper 於 2007 年撰寫的論文〈[What Every Programmer Should Know About Memory](https://www.akkadia.org/drepper/cpumemory.pdf)〉(版次: 1.0),儘管目前已涵蓋第一到第八章,然而仍有大量的改進要進行 * 執行人: st10740 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HJRd-jUUA) * 執行人: chishuo9810 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BknknG-P0) ## 改進 Linux 核心的 `lib/list_sort.c` 解釋 Linux 核心的 `lib/{list_}sort.c` 現有的 bottom-up merge/heap sort 實作,並尋求效能改進,例如 hybrid sort 的引入 * 參考資訊 * [Bottom-up Heapsort](https://hackmd.io/@Uduru0522/bottomup-heapsort-analyze) * [Timsort 研究與對 Linux 核心貢獻嘗試](https://hackmd.io/@yanjiew/linux2023q1-timsort) * [開發紀錄](https://hackmd.io/@sysprog/Hy5hmaKBh) * 執行人: fennecJ $\to$ [開發紀錄](https://hackmd.io/@sysprog/BJPBcQ34C) * 執行人: randyuncle $\to$ [開發紀錄](https://hackmd.io/@sysprog/ryr7zfh4R) ## 在 RISC-V 處理器/模擬器運作 Linux 核心 * 相關資訊 * [從零開始的 RISC-V SoC 架構設計與 Linux 核心運行](https://hackmd.io/@w4K9apQGS8-NFtsnFXutfg/B1Re5uGa5) * [開發紀錄](https://hackmd.io/@sysprog/S1jNiYgr2) * 執行人: millaker $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyjiP43N0) * 執行人: ranvd $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyQ9UQ2E0) * 執行人: nelson0720j $\to$ [開發紀錄](https://hackmd.io/@sysprog/SkbSCLRBA) ## RISC-V 最佳化編譯器實作 shecc 最初是為了講解編譯器設計而開發的精簡 C 編譯器,可編譯自身 (self-hosting),直接輸出機械碼,不依賴其他開發工具,後來大幅提升對 C 語法的支援,並引入 SSA 和若干最佳化策略,是同等級最佳化編譯器之實作。 * 相關資訊 * [開發紀錄](https://hackmd.io/@sysprog/HkqE5DKqP) * 執行人: nosba0957, vacantron $\to$ [開發紀錄](https://hackmd.io/@sysprog/H11Da3FQA) ## 裝置驅動程式開發 * 執行人: jychen0611 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rJ-LF4nNC) * 執行人: hungyuhang $\to$ [開發紀錄](https://hackmd.io/@sysprog/HJBxRsRr0) * 執行人: pao0626 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rJQJo98LC) * 執行人: mesohandsome $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJS4uStUA) * 執行人: yinghuaxia $\to$ [開發紀錄](https://hackmd.io/@sysprog/S1l3ZlcLA) * 執行人: jimmylu890303 $\to$ [開發紀錄](https://hackmd.io/@sysprog/ryG0h25I0) * 執行人: padaray $\to$ [開發紀錄](https://hackmd.io/@sysprog/ByzkF6xDA) ## 軟硬體整合 * 執行人: HenryChaing $\to$ [開發紀錄](https://hackmd.io/@sysprog/ryvE2tK8C) * 執行人: hugo0406 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rJhbQU-wR) ## 記憶體管理 * 執行人: SHChang-Anderson $\to$ [開發紀錄](https://hackmd.io/@sysprog/rkOByUtI0) * 執行人: kevinzxc1217 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rkZQsLhLR) ## 亂數產生器 * 執行人: teresasa0731 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BkhlALt8A) ## eBPF 和電腦網路 * 執行人: SuNsHiNe-75 $\to$ [開發紀錄](https://hackmd.io/@sysprog/H1AORs8I0) * 執行人: gawei1206 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SyKqH2ILA) * 執行人: jujuegg $\to$ [開發紀錄](https://hackmd.io/@sysprog/ryJXC9iIR) * 執行人: aa860630, steven523 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BkxyL1bvC) ## Llama 效能分析 * 執行人: LIAO-JIAN-PENG $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJCtkQhVA) * 執行人: vestata $\to$ [開發紀錄](https://hackmd.io/@sysprog/ryIUgeJBC) * 執行人: Lisa304 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BJ1T7UK80) ## bitops * 執行人: yy214123, yenshipotato $\to$ [開發紀錄](https://hackmd.io/@sysprog/rkt-cdRrC) * 執行人: Terry7Wei7 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rkpgxY0HC) * 執行人: Lccgth $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyhMnoRrA) * 執行人: allenliao666 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HkxFLnvL0) * 執行人: 56han $\to$ [開發紀錄](https://hackmd.io/@sysprog/SkQeDkc80) * 執行人: dockyu $\to$ [開發紀錄](https://hackmd.io/@sysprog/Hy-CNF98A) * 執行人: dcciou $\to$ [開發紀錄](https://hackmd.io/@sysprog/BJDY-YoL0) * 執行人: david965154 $\to$ [開發紀錄](https://hackmd.io/@sysprog/Sko-j01v0) ## 重做第三次作業 * 執行人: cheezad $\to$ [開發紀錄](https://hackmd.io/@sysprog/r1faEmnVR) * 執行人: Daniel-0224 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rkF2M6FIA) ## 重作第四次作業 * 執行人: Petakuo $\to$ [開發紀錄](https://hackmd.io/@sysprog/r1WImnwIC) * 執行人: YiChiChao $\to$ [開發紀錄](https://hackmd.io/@sysprog/H1lZMIK8C) * 執行人: rain20010126 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyucBSK8C) * 執行人: marsh-fish $\to$ [開發紀錄](https://hackmd.io/@sysprog/HkZcqus8R) * 執行人: ICARUSHERALD96500 $\to$ [開發紀錄](https://hackmd.io/@sysprog/rkI1zU3IC) * 執行人: Wufangni $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJtunk-PR) * 執行人: Ken-LuWeiRu $\to$ [開發紀錄](https://hackmd.io/@sysprog/H1Jr7XmPC) ## 重做第六次作業 * 執行人: Willsonbo $\to$ [開發紀錄](https://hackmd.io/@sysprog/BkIOuG2VA) * 執行人: yu-hsiennn $\to$ [開發紀錄](https://hackmd.io/@sysprog/rJBcqBFUR) * 執行人: ChengChaoChun $\to$ [開發紀錄](https://hackmd.io/@sysprog/B1e8S6tU0) * 執行人: brian049 $\to$ [開發紀錄](https://hackmd.io/@sysprog/ry5zvDcUA) * 執行人: tintinjian12999 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BkqsnDc8R) * 執行人: lintin528 $\to$ [開發紀錄](https://hackmd.io/@sysprog/B1hG_v2I0) * 執行人: yc199911 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SkjrHaxP0) * 執行人: ollieni $\to$ [開發紀錄](https://hackmd.io/@sysprog/B1Q1e1bDR) ## 重做 lab0 並彙整學員成果 改進並彙整其他學員的成果 * 執行人: popo8712 $\to$ [開發紀錄](https://hackmd.io/@sysprog/Syc7ROemA) * 執行人: bclegend $\to$ [開發紀錄](https://hackmd.io/@sysprog/rJk76rtIR) * 執行人: ChenFuhuangKye $\to$ [開發紀錄](https://hackmd.io/@sysprog/BkltCg5IA) * 執行人: jerry7961 $\to$ [開發紀錄](https://hackmd.io/@sysprog/Sy85Ue-DC) * 執行人: Booker-Chen $\to$ [開發紀錄](https://hackmd.io/@sysprog/SyHrtSWDC) * 執行人: brucelee503jo3 $\to$ [開發紀錄](https://hackmd.io/@sysprog/Bkvp6VGDC) * 執行人: YeeeLiang $\to$ [開發紀錄](https://hackmd.io/@sysprog/SJYUsM7wC)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.