--- title: 2025 年 Linux 核心設計課程期末展示 description: 「Linux 核心設計」課程期末展示 tags: linux2025 --- # 2025 年 Linux 核心設計課程期末展示 > 6 月 28 日,藉由 YouTube 直播進行 以下是「[Linux 核心設計](https://wiki.csie.ncku.edu.tw/linux/schedule)」課程的部分專題列表,詳見[完整專題列表](https://hackmd.io/@sysprog/linux2025-projects)。 - [ ] :rocket: 上午場: 探究 Linux 核心的本質 > :clock10: 10:00 $\to$ 12:00 > [直播錄影](https://youtu.be/Ae0jVIDCycU) * CPU 排程器之理論基礎 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyFtDjMfxg) > Linux 核心的 CPU 排程器已從 CFS 切換到 EEVDF,已不只是「挑選出下個任務」,背後涉及大量的理論,特別是涉及到排程的公平性、延遲需求,還有 CPU 頻寬控制的議題 * 群組排程的考量因素和落實 $\to$ [開發紀錄](https://hackmd.io/@sysprog/B14go-K-xx) > Linux v2.6.23 納入 CFS 後,隨即在 v2.6.24 引入 cgroups,並改變 CPU 排程器的考量,尤其雲端服務供應商著重的 Multi-tenant,更是其中群組排程的關鍵機制和應用場景 * sched_ext 及機器學習 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BygEQ4dWxx) > 繼 EEVDF 取代 CFS 後,sched_ext (scx) 出現於 Linux v6.12,允許開發者藉由 eBPF,在使用者空間動態載入或抽換 CPU 排程器,結合機器學習,依據推論動態調整排程行為 * 作業系統底層機制 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyIQvDYWll) > 在 CPU 排程器得以運作前,核心有大量工作要進行,且隨著硬體的更迭,要理解的難度大幅提高,我們嘗試反璞歸真,在 32 位元 RISC-V 處理器上從無到有自幹小型作業系統核心,從而理解 Linux 核心底層的實作機制 - [ ] :rocket: 下午場: 藉由 Linux 核心解決真實世界的問題 > :clock130: 13:30 $\to$ 18:00 > [直播錄影](https://youtu.be/AI8shjBfUoE) * 輕量級容器實作 $\to$ [開發紀錄](https://hackmd.io/@sysprog/H18ne9Y-gl) > 藉由 Linux 核心提供的 namespaces, capabilities, seccomp 等機制,開發輕量級的 Linux 容器 (container) * 輕量級隔離運行環境 $\to$ [開發紀錄](https://hackmd.io/@sysprog/H1mxn47-gx) > 容器直接運行於宿主核心,因此可呼叫完整宿主 Linux 系統呼叫集合,若容器被入侵,將會暴露出大量的宿主核心攻擊面 (Attack surface)。本專案藉由 [User-mode linux](https://hackmd.io/@sysprog/user-mode-linux-env) (UML) 和系統呼叫攔截和二進位改寫機制,讓 UML 成為輕量級的隔離執行環境,在不依賴任何硬體虛擬化擴展和系統管理者權限的前提,得以高效運作 * rootkit 評估及應用 $\to$ [開發紀錄](https://hackmd.io/@sysprog/r1l3i4_Zge) > 提出不依賴 kallsyms 與 kprobe 的 Linux 核心 rootkit 實作手法,達成對多種核心組態的潛伏與操控,無需仰賴符號表揭露,即可取得 ksymtab 與系統呼叫表的實體地址。本 rootkit 支援核心層級的行程隱藏、網路連線偽裝、權限提升、remote shell 建立,及核心模組的永續注入等功能,包含靜態 ELF 程式碼注入 * 位元運算與數值系統的應用 $\to$ [開發紀錄](https://hackmd.io/@sysprog/B13UVSQWel) > 課程之所以強調學員須具備堅實的數學基礎,是因在各種應用場景中,數學往往扮演關鍵角色。以位元運算(bitwise operations, 簡稱 bitops)為例,其原理與多項式運算、平方根計算、指數函數等核心數學概念息息相關。本專題探討 bitops 如何結合這些數學基礎,並在 Linux 核心中實際發揮作用 * 高度並行的 Valkey 實作 $\to$ [開發紀錄](https://hackmd.io/@sysprog/HyqlsB7Zxe) > Linux Foundation 於 2024 年 3 月 28 日推出 [Valkey 專案](https://valkey.io/),基於尚未改動授權的 Redis 7.2.4 分支,並持續以 BSD 三條款發布,獲得雲端運算大廠的支持。本專案藉由 [Userspace RCU](https://liburcu.org/) 和一系列並行機制,提升 Valkey/Redis 的效能表現 * 運用核心的並行處理機制來下棋 $\to$ [開發紀錄](https://hackmd.io/@sysprog/SkRDH8tZxg) > 擴充課程的[第三份作業](https://hackmd.io/@sysprog/linux2025-kxo),實作可在 Linux 核心模組中切換多種人工智慧演算法,並同步修訂核心通訊介面以支援多使用者環境。此外,作業亦探討 lock-free 設計方法,藉此充分展現多核處理器下的任務分配與執行動態 * 異質多核通訊機制 $\to$ [開發紀錄](https://hackmd.io/@sysprog/ryvE2tK8C) > 本專題在物美價廉的 [Milk-V Duo](https://milkv.io/zh/duo) 硬體上面,利用其異質多核的 RISC-V,運作 Linux 核心和 [ThreadX](https://github.com/eclipse-threadx/threadx),並利用 [OpenAMP](https://github.com/OpenAMP/open-amp) 規範的 [RPMsg](https://github.com/nxp-mcuxpresso/rpmsg-lite),建立異質多核間的通訊 * 電源管理休眠/回復流程 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BJaNz05Zle) > Linux 在行動裝置上的電源管理以系統 suspend (休眠) / Resume 為主要操作機制,核心依序執行 `suspend_enter`(同步檔案系統並暫停行程)、`prepare`(初始化省電模式), `suspend`, `suspend_late`(最後硬體關閉)與 `suspend_noirq`(關閉所有中斷);隨後藉由 `resume_noirq`, `resume_early`, `resume`, `complete` 與 `exit`(脫離行程)逆向還原。這些階段涵蓋 DRAM 與 Flash 的電源域切換、CPU C-state、動態電壓與頻率調整(DVFS)以及裝置 D-state(如 D0–D3)的管理。這些過程涉及大量操作,且常因 I/O 排隊而延宕,本專題嘗試分析這些瓶頸,運用 Perfetto 等追蹤工具擷取系統行為的追蹤紀錄,再搭配 pm-graph 繪製電源域與行程凍結時序,觀察 I/O 活動、CPU C-state 切換與中斷響應,藉由更細緻的鎖分段或階段重疊機制,縮短整體 Suspend/Resume 時間 * 雲端檔案系統 $\to$ [開發紀錄](https://hackmd.io/@sysprog/BJH6UVXZle) > 藉由 Linux 核心提供的 [FUSE](https://www.kernel.org/doc/html/latest/filesystems/fuse.html),打造在使用者空間運作的檔案系統,並存取雲端儲存空間,允許使用者掛載 Linux 檔案系統並存取雲端服務
×
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
.