写点什么

顶会 SOSP 2025 最佳论文,被一个国产自研操作系统拿下

  • 2025-10-31
    北京
  • 本文字数:5255 字

    阅读完需:约 17 分钟

大小:2.52M时长:14:41
顶会SOSP 2025最佳论文,被一个国产自研操作系统拿下

10 月,Windows 10 用一场华丽的谢幕,搅弄得全球用户集体叹息。正当人们为一款运行十年的经典操作系统退场感慨万千时,在地球的另一端,关于操作系统未来的变革,正以一场顶级学术会议 SOSP 2025 为舞台,悄然拉开序幕。


SOSP(The ACM Symposium on Operating Systems Principles,计算机协会操作系统原理研讨会)始于 1967 年,与 OSDI 并称为计算机系统领域最具影响力的两大学术会议,也被称为计算机系统领域的“奥运会”。此外,SOSP 还是出了名的严格——只求精品,录取率控制从未超过 20%。


今年,SOSP 在全球 368 篇投稿中,最终仅录用 66 篇,录取率仅为 17.9%。而最佳论文的席位,更是仅设三席。其中,就包括一篇来自国产自研开源操作系统星绽的学术论文《CortenMM: Efficient Memory Management with Strong Correctness Guarantees》。



评选结果的揭晓,仿佛在全球基础软件领域投下了一枚深水炸弹,但在业内人士看来,一切实则有迹可循——毕竟,星绽的这篇学术论文专注于高可扩展内存管理方面的研究,实现了操作系统的“性能与安全兼顾”,而这正是操作系统领域长期以来难以破解的技术难题。


论文地址:https://dl.acm.org/doi/pdf/10.1145/3731569.3764836

GitHub 地址:https://github.com/asterinas/asterinas

操作系统,苦安全久已


操作系统是所有软件的基础,其安全性至关重要。过去几十年间,尽管全球科技巨头们为此投入了无数资源,但操作系统安全形势依然严峻。


2024 年 7 月 19 日,全球千万台安装了 Windows 系统的电脑遭遇蓝屏,多地航班停飞、医疗设备瘫痪、金融系统中断。这一事件的根因是,CrowdStrike 公司开发的一个 Windows 驱动程序中,存在内存越界访问的问题。


业内人士称这场混乱是“史上最大规模 IT 故障”,甚至堪称“千年虫事件”的加强版。事故带来更深层次的启示在于,它暴露出了全球数字基础设施的脆弱性。操作系统作为数字世界的基石,任何细微裂痕,足以让整个社会运行的齿轮停转。


尽管过去十年 Linux 已经成为数据中心与云的事实标准,但其安全问题同样令人头疼。与 Windows 不同,Linux 面临的安全挑战更多源于历史因素与复杂生态。


Linux 是在 UNIX 的结构设计基础之上进行开发的,而 UNIX 的开发者起初却完全忽视了安全性。C 语言之父、UNIX 之父 Dennis Ritchie 在 1979 年发布的一篇《关于 UNIX 的安全》论文中直言:“首先要面对的是事实是,UNIX 的开发者并没有考虑安全问题。单单这一点就会引发大量的漏洞。”


2024 年全球安全厂商发布的《Linux 恶意软件报告》,更好地佐证了这种原生的设计缺陷,如何在半个世纪后,依然让现代计算生态承压。报告指出,2024 年全球新增针对 Linux 的恶意软件及病毒达‌ 150 万种‌,同比增长 47%,其中服务器端挖矿病毒、物联网僵尸网络和容器逃逸攻击占比超过 80%。


此外,今年年初突破 4000 万行、十年膨胀一倍的内核代码量,让 Linux 愈发臃肿。一时间,全球科技巨头狂奔于在沙箱隔离与漏洞挖掘两条路径间寻求平衡,以期让 Linux 更加安全。但前者需要付出额外的性能开销,后者并无法防患于未然,只能缓解而非解决问题。


此次获奖的 SOSP'25 论文源自星绽开源社区。星绽(Asterinas)是一款兼容 Linux 的开通用操作系统内核,代码完全开源,由中关村实验室、蚂蚁集团、北京大学、南方科技大学等多个单位联合发起,从 0 到 1 自主研发,采用内存安全的 Rust 语言开发,致力于彻底解决传统操作系统无法同时兼顾安全和性能的局限。相比传统操作系统,星绽具备显著的技术优越性,已有多篇论文被国际顶级学术会议上录用,比如 ATC'25, SOSP'25 和 ICSE'26。

在操作系统内存管理的“旧大陆”,找到“新答案”


“我们的 SOSP'25 论文能够获得青睐,因为它颠覆了传统认识,在常识之地出奇兵,于旧境之中开新天。”


蚂蚁技术研究院高级研究员、星绽 OS 发起者田洪亮博士在接受 InfoQ 采访时表示,当前,在操作系统学术会议中,有相当大比例的研究聚焦于 AI,大家普遍认为 AI 领域更容易找到创新的切入点。而在操作系统的整个体态中,内存管理是一个已经相当成熟、被认为很难再有突破性创新的经典领域。


但正是在这样一片“旧境”之中,星绽团队开辟了一片“新天”。


星绽团队在论文中指出,现代内存管理系统长期受困于两大难题:多核可扩展性与并发正确性。 当前操作系统的内存管理展现出受限的多核可扩展性,即 CPU 核心数量的增加并不能显著增加性能,并且对多核可扩展性改进的尝试往往带来更多的并发正确性的问题。深入研究发现,这两个问题的根源都指向传统内存管理系统的双层抽象设计——传统操作系统(如 Linux)中普遍采用的“软件 - 硬件”两级抽象设计——这种设计虽然保证了硬件可移植性,但也引入了复杂的同步开销和潜在的并发漏洞,严重制约了多核处理器的性能发挥。


实际上,随着 x86、ARM 和 RISC-V 等主流指令集架构在内存管理单元(MMU)设计上趋于统一,传统的软件抽象层已不再是必需品。更进一步而言,传统内存管理系统的双层抽象设计,其实已经不再适合⼤多数现代操作系统。


基于这些洞察,星绽团队提出了全新设计的 CortenMM 内存管理系统。CortenMM 最大的特点在于足够简约,它突破了传统设计范式,通过彻底消除软件级抽象层,来实现架构层面的极致简化。



架构层面,CortenMM 为每个页表页关联一个页描述符,这些描述符在操作系统启动时分配于连续内存区域,每个描述符通过对应页表页的物理页号进行索引,其结构包含:用于自我保护的锁、对应的页表页指针,以及按页表条目偏移量索引的元数据数组。该元数据数组按需分配,随对应页表页一同释放,用于存储实现高级语义所需的最小状态。此外,基于单层抽象的简洁特性,CortenMM 进一步设计了可扩展的直观并发控制机制,引入事务型接口,并将其作为操作内存管理单元的唯一途径。


星绽团队提出的 CortenMM 内存管理系统能够在国际顶会中脱颖而出的另一个重要原因在于,它并不只是停留于表面的技术构想,而是已经完成系统性的实现与验证,并且在实际测试中取得了不错的效果。


评估结果显示,在性能层面,通过消除软件层的额外同步开销,在真实应用场景下,CortenMM 的性能最高可达 Linux 的 26 倍。而在同步正确性方面,CortenMM 创新性地引入统一的事务化接口(Transactional Interface),利用 Rust 语言自身的安全特性,并结合先进的形式化验证工具(Verus)进行严格推演,成功证明了 CortenMM 核心并发代码的正确性,从根本上杜绝了复杂的并发漏洞。此外,CortenMM 还完整支持按需分页(on-demand paging)、写时复制(copy-on-write)等现代应用程序所依赖的关键内存管理功能,确保了与现有生态的无缝兼容。


沿着前人的足迹前行固然稳妥,但在一片相当成熟、看似没有研究价值的“旧大陆”上,还能找到有突破性创新的“新答案”,这种愿意从根本上进行重构的技术勇气,或许更加值得肯定,也更能激励国产基础软件走出一条依靠原始创新实现后发优势的道路。

用 Rust Native 的方式思考下一代操作系统

“Rust 语言之于操作系统,就像电气化之于汽车一样”


星绽对自己的定位是,对标 Linux 的下一代通用操作系统内核——希望做成源自中国的、更好的“Linux”,提供一个安全、高效、通用、安全的 OS 内核。


基于这一宏大目标,星绽项目在 2019 年创立之初,就保持着对技术路径的独立思考。在业界刚开始关注 Rust 在系统编程中的潜力时,星绽团队就已着手探索如何站在 Rust 时代,思考操作系统的未来。


要知道,在操作系统过去几十年的发展历程中,C 语言一直占据绝对的话语权。但随着系统复杂度爆炸式增长,C 语言与生俱来的弊端也日益凸显,首当其冲的便是内存安全的根本缺陷。


蚂蚁集团副总裁、蚂蚁密算董事长韦韬曾在一篇名为《SoK: Eternal War in Memory》的论文中提到,传统操作系统普遍采用内存不安全的 C 语言,导致系统性漏洞难以根除。过去几十年,学术界投入了大量的资源进行研究和补救,但在业界统计中还是有 60%-70% 的严重漏洞源于内存安全问题。这也印证了,在内存不安全的编程基础上,我们始终无法从根本上避免大型复杂软件的稳定性与安全风险。


突破口出现在 Rust 语言上。Rust 语言实现了编程语言的“不可能三角”:高性能、内存安全与开发效率兼得。因此,Rust 也被视为下一代系统编程语言。


“Rust 语言之于操作系统,就像电气化之于汽车一样”,田洪亮博士表示,正如电气化浪潮让传统燃油车的发动机技术积累优势减弱,中国电动汽车实现弯道超车,Rust 的兴起也在重构全球基础软件的竞争格局:


如果未来的操作系统都用 Rust 语言开发,那么此前在 Linux、Windows 中积累的数千万行代码资产、技术经验与架构模式,到了 Rust 时代或将不再适用,大家重新来到同一起跑点平等竞争。甚至说,后来者具备独特的后发优势,不拘泥于传统的技术路径,能够完全以 Rust 为核心,重新思考、定义、想象操作系统的未来形态。这也是星绽团队能够首创全新的框内核架构的根因。

在宏内核和微内核之外,首创框内核架构


操作系统的宏内核和微内核之争由来已久。


1992 年,Linux 创始人 Linus Torvalds 与 MINIX 的支持者 Andrew Tanenbaum 在新闻组“吵”了 12 天,虽然 Linux 是受 MINIX 启发而发明的,但在设计思想上,‌Linus Torvalds‌ 主张采用宏内核设计,认为其简单高效且适合开源社区;‌Andrew Tanenbaum‌ 则坚持微内核设计,强调模块化和安全性。


虽然两大架构各具优势,但其实,不论选择哪一种,都会陷入两难困境:宏内核虽然在性能上表现优越,但由于代码量庞大且用 C/C++ 等内存不安全的语言编写,导致系统频繁暴露于安全漏洞中,其中约有 70% 都是由内存安全问题引起的,安全性较差;微内核由于在最高权限级别只保留了最少的代码,安全性大幅提升,但低权限 OS 组件需要频繁的跨进程通信,从而导致性能下降。


如何在保证安全性的同时,提升性能?这个在过去困扰了业界几十年的问题,终于在 Rust 时代有了清晰的答案。


星绽团队首创了全新的框内核架构(framekernel),将整个操作系统内核划分为两部分:特权的“OS 框架”和去特权的“OS 服务”。OS 框架负责将低层次的、非内存内存安全的 Rust 代码封装为高层次的、内存安全的接口(API),而 OS 服务则完全使用 Rust 语言中的安全部分进行开发,提供操作系统的大多数功能。



通过这种设计,星绽 OS 能够极大限度地减少潜在的内存安全问题,同时保持与宏内核相当的高效性能。



“不管是宏内核还是微内核,操作系统的经典架构都是由西方定义的,但框内核架构是我们在 Rust 时代重新思考下一代操作系统,重新定义的,这一点无论对我们自身还是整个社区而言,都极具意义。”田洪亮博士说道。


在经历了长达五年的技术探索后,2024 年 10 月 22 日,中关村实验室、蚂蚁集团、北京大学、南方科技大学等产学研机构联合对外发布星绽,并向全球开发者开源。在 LMbench 基准测试上,星绽 OS 已经达到与 Linux 相当的性能水平,平均达到了 1.05(数值表示相对于 Linux 的性能,大于 1.0 表示星绽优,小于 1.0 表示星绽劣)。更重要的是,星绽 OS 并未因提升安全性而牺牲性能,这点尤为难得。



开源一年来,星绽团队多篇学术论文被顶会收录。2025 年 4 月,星绽两篇论文被顶级会议 USENIX ATC 2025 同时录用,分别阐述了星绽 OS 作为兼容 Linux ABI 的框架内核的整体设计,以及专为验证 Rust 内核并发正确性而开发的实用模型检测工具 Converos;2025 年 6 月,星绽系统概览文章《Asterinas: A Rust-Based Framekernel to Reimagine Linux in the 2020s》获业界权威杂志 USENIX ;login: 刊登。


对于一个刚开源仅一年,还处于迅速开发和迭代中的操作系统而言,技术论文能够被顶会收录,只是创新路上的成果,不是终极目的,星绽期望这些顶刊论文能为社区吸引到更多开发者、企业参与进来,一同实现中国自研操作系统的突破。

结语:星绽的故事,才刚刚开始


当全球科技界将目光聚焦于 AI 模型竞赛时,还有那么一群人,愿意坚守在底层基础软件上构筑数字根基。与其他技术领域相比,基础软件的研发就像是一场马拉松,没有风口上的喧嚣和资本的狂热,只有长期持续的投入和耐得住寂寞。


而操作系统内核的研发,更像是这场马拉松中最考验耐力的赛道。中国不缺优秀的操作系统,但缺完全国产化、自主可控的操作系统。这里没有捷径可走,只能一步一个脚印。


星绽讲的是一个“长期主义”的故事,这个故事来自蚂蚁集团的创新土壤和宽松氛围,没有给团队商业压力,为了一个技术理想坚守长达六年;又来自那些志同道合的伙伴,在蚂蚁内部立项之后不久就收获了中关村实验室、北京大学、南方科技大学等产学研机构的认可,并吸引了 60 多位代码贡献者。


目前,星绽支持 x86 和 RISC-V 等 CPU 体系架构,支持超过 220 个 Linux 系统调用,可以运行 Web 服务器(如 Nginx)和数据库(如 Redis)等常见服务器应用。但对于团队而言,这些还不够。星绽给自己制定了一份五年计划:第一阶段,在云端实现规模化应用,完成生产级别验证;第二阶段,拓展至边缘侧与终端设备,实现“无处不在”。届时,星绽 OS 或将建立一个全新的、完全自主可控的计算底座,以此定义下一代操作系统的未来。

2025-10-31 16:42526

评论

发布
暂无评论

深入分析React-Scheduler原理

xiaofeng

React

一文读懂加密资产板块的盈利潜力与投资机会

西柚子

决策树-交叉验证

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

vue的几个提效技巧

yyds2026

Vue

深入react源码看setState究竟做了什么?

flyzz177

React

经常被问到的react-router实现原理详解

夏天的味道123

React

深度讲解React Props

夏天的味道123

React

React循环DOM时为什么需要添加key

beifeng1996

React

React源码分析(三):useState,useReducer

goClient1992

React

Laravel-文件上传下载

格斗家不爱在外太空沉思

php laravel 11月月更

React源码分析(二)渲染机制

goClient1992

React

Vue的computed和watch的区别是什么?

bb_xiaxia1998

Vue

细说react源码中的合成事件

flyzz177

React

js函数柯里化-面试手写版

helloworld1024fd

JavaScript

深度探讨react-hooks实现原理

xiaofeng

React

vue实战中的一些小技巧

yyds2026

Vue

new Vue的时候到底做了什么

bb_xiaxia1998

Vue

华为云从入门到实战 | 云关系数据库备份、恢复及存储容灾服务

TiAmo

华为 华为云 11月月更

一文搞定Vue面试

bb_xiaxia1998

Vue

合格vue开发者应该知道的面试题

bb_xiaxia1998

Vue

Mac部署hadoop3(伪分布式)

程序员欣宸

大数据 hadoop 11月月更

前端面试指南之React篇(一)

beifeng1996

React

React源码分析1-jsx转换及React.createElement

goClient1992

React

百度前端二面常考手写面试题总结

helloworld1024fd

JavaScript

前端经常遇到的手写js题

helloworld1024fd

JavaScript

深度剖析React懒加载原理

xiaofeng

React

从源码角度看React-Hydrate原理

flyzz177

React

详细解读 React useCallback & useMemo

夏天的味道123

React

vue—render函数

格斗家不爱在外太空沉思

vue.js Vue 11月月更

前端面试指南之React篇(二)

beifeng1996

React

JS继承有哪些,你能否手写其中一两种呢?

helloworld1024fd

JavaScript

顶会SOSP 2025最佳论文,被一个国产自研操作系统拿下_操作系统_凌敏_InfoQ精选文章