近日,被譽為全球計算機系統領域“奧運會”的頂級學術會議SOSP 2025公布了獎項評選結果,來自我國的“星綻”(Asterinas)開源操作系統在高可擴展內存管理方面的研究論文斬獲了今年的最佳論文獎(Best Paper Award)。
始于1967年的SOSP,與OSDI并列操作系統和系統軟件領域兩大頂會。在一個所有人都認為“經典操作系統問題已趨于飽和”的時代,為什么一篇關于“內存管理”的論文能摘得僅設三席的桂冠?
答案是,這篇名為《CortenMM: Efficient Memory Management with Strong Correctness Guarantees》的論文,不僅解決了一個技術點,更是對其背后所依賴的全新操作系統架構——“框內核”(Framekernel)——的一次重磅驗證。
這場勝利標志著,星綻OS在破解操作系統領域長達幾十年的“性能與安全兼顧”這一核心難題上,探索出了一條獲得國際學術界認可的全新路徑。本文將從技術架構視角,深入解析星綻OS如何破解這一經典困境。

傳統OS架構的“兩難困境”
幾十年來,操作系統的設計者們始終在一個“蹺蹺板”的兩端掙扎:安全與性能。
性能的一端是宏內核(Monolithic Kernel),以Linux和Windows為代表。它們將所有OS服務(如進程管理、文件系統、驅動程序)都放在內核態運行。這樣做性能極高,但“安全差”是其與生俱來的頑疾。由于內核代碼量龐大(動輒上千萬行)且主要由C/C++等內存不安全的語言編寫,導致系統頻繁暴露于安全漏洞中。據統計,約70%的高危安全漏洞由內存安全問題引起。2024年7月,CrowdStrike驅動的一個內存越界訪問問題,就導致了全球數百萬臺Windows電腦藍屏。
安全的一端是微內核(Microkernel),如seL4和Zircon。它們追求極致安全,在最高權限級別(內核態)只保留最少的代碼(如IPC、線程調度),而將驅動、文件系統等服務移至用戶態。這大幅降低了內核出錯的可能,但“性能差”成了新的代價。用戶態服務間的頻繁跨進程通信(IPC)帶來了難以忽視的性能開銷。
為了修補宏內核的短板,業界嘗試了沙箱(如gVisor,但有額外性能開銷)和漏洞挖掘(如KASAN,但只能緩解無法根治)等路線。但這個“安全與性能難以兼顧”的核心挑戰,始終是橫亙在系統開發者面前的一道鴻溝。

星綻OS的解法:“框內核”新架構
Rust語言的崛起,讓星綻OS設計團隊敏銳察覺到了突破上述技術困境的契機。他們并沒有選擇修補,而是大膽地另辟蹊徑,首創了全新的“框內核”(Framekernel)架構。其核心目標非常明確:實現“宏內核的性能 + 微內核的安全”。

“框內核”架構的精髓在于,它巧妙地利用了Rust語言的安全特性,在內核內部進行了“安全隔離”。它將整個操作系統內核(注意:所有代碼仍運行在內核態,這是性能的保證)劃分為兩個緊密協作的部分:
1. 特權的“OS框架”
-
職責:這是整個內核中唯一允許包含非內存安全代碼(如`unsafe` Rust或C代碼)的地方。
-
作用:它的工作不是實現復雜功能,而是充當一個“安全封裝層”,負責將底層的、與硬件交互的、潛在不安全的操作(如操作寄存器、MMU),抽象并封裝為高層次的、內存安全的API。
-
關鍵:這部分代碼被設計得盡可能小。
2. 去特權的“OS服務”
-
職責:實現操作系統絕大多數的復雜功能,如文件系統、網絡協議棧、進程管理等。
-
作用:這部分代碼只能調用“OS框架”提供的內存安全API來進行開發,而不能直接觸碰`unsafe`代碼。
-
關鍵:這部分代碼量非常大,但它在Rust編譯器的強制約束下,實現了原生安全(Safe Rust)。
