近日,被誉为全球计算机系统领域“奥运会”的顶级学术会议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)。
