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

InfoQ

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


1操作系统,苦安全久已


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


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。


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


“我们的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)等现代应用程序所依赖的关键内存管理功能,确保了与现有生态的无缝兼容。


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


3用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:刊登。


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


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


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


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


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


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

本内容来源于网络 原文链接,观点仅代表作者本人,不代表虎嗅立场。如涉及版权问题请联系 hezuo@huxiu.com,我们将及时核实并处理。