--- 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up