6 月 28 日,藉由 YouTube 直播進行
以下是「Linux 核心設計」課程的部分專題列表,詳見完整專題列表。
10:00 12:00Image Not Showing Possible ReasonsLearn More →
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
直播錄影
Linux 核心的 CPU 排程器已從 CFS 切換到 EEVDF,已不只是「挑選出下個任務」,背後涉及大量的理論,特別是涉及到排程的公平性、延遲需求,還有 CPU 頻寬控制的議題
Linux v2.6.23 納入 CFS 後,隨即在 v2.6.24 引入 cgroups,並改變 CPU 排程器的考量,尤其雲端服務供應商著重的 Multi-tenant,更是其中群組排程的關鍵機制和應用場景
繼 EEVDF 取代 CFS 後,sched_ext (scx) 出現於 Linux v6.12,允許開發者藉由 eBPF,在使用者空間動態載入或抽換 CPU 排程器,結合機器學習,依據推論動態調整排程行為
在 CPU 排程器得以運作前,核心有大量工作要進行,且隨著硬體的更迭,要理解的難度大幅提高,我們嘗試反璞歸真,在 32 位元 RISC-V 處理器上從無到有自幹小型作業系統核心,從而理解 Linux 核心底層的實作機制
13:30 18:00Image Not Showing Possible ReasonsLearn More →
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
直播錄影
藉由 Linux 核心提供的 namespaces, capabilities, seccomp 等機制,開發輕量級的 Linux 容器 (container)
容器直接運行於宿主核心,因此可呼叫完整宿主 Linux 系統呼叫集合,若容器被入侵,將會暴露出大量的宿主核心攻擊面 (Attack surface)。本專案藉由 User-mode linux (UML) 和系統呼叫攔截和二進位改寫機制,讓 UML 成為輕量級的隔離執行環境,在不依賴任何硬體虛擬化擴展和系統管理者權限的前提,得以高效運作
提出不依賴 kallsyms 與 kprobe 的 Linux 核心 rootkit 實作手法,達成對多種核心組態的潛伏與操控,無需仰賴符號表揭露,即可取得 ksymtab 與系統呼叫表的實體地址。本 rootkit 支援核心層級的行程隱藏、網路連線偽裝、權限提升、remote shell 建立,及核心模組的永續注入等功能,包含靜態 ELF 程式碼注入
課程之所以強調學員須具備堅實的數學基礎,是因在各種應用場景中,數學往往扮演關鍵角色。以位元運算(bitwise operations, 簡稱 bitops)為例,其原理與多項式運算、平方根計算、指數函數等核心數學概念息息相關。本專題探討 bitops 如何結合這些數學基礎,並在 Linux 核心中實際發揮作用
Linux Foundation 於 2024 年 3 月 28 日推出 Valkey 專案,基於尚未改動授權的 Redis 7.2.4 分支,並持續以 BSD 三條款發布,獲得雲端運算大廠的支持。本專案藉由 Userspace RCU 和一系列並行機制,提升 Valkey/Redis 的效能表現
擴充課程的第三份作業,實作可在 Linux 核心模組中切換多種人工智慧演算法,並同步修訂核心通訊介面以支援多使用者環境。此外,作業亦探討 lock-free 設計方法,藉此充分展現多核處理器下的任務分配與執行動態
本專題在物美價廉的 Milk-V Duo 硬體上面,利用其異質多核的 RISC-V,運作 Linux 核心和 ThreadX,並利用 OpenAMP 規範的 RPMsg,建立異質多核間的通訊
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 時間
藉由 Linux 核心提供的 FUSE,打造在使用者空間運作的檔案系統,並存取雲端儲存空間,允許使用者掛載 Linux 檔案系統並存取雲端服務