Asterinas:一个新的Linux兼容内核项目

Asterinas:一个新的Linux兼容内核项目

Hacker News 摘要

原标题:Asterinas: A new Linux-compatible kernel project

Asterinas是一个新的Linux兼容内核项目,使用Rust语言编写,基于所谓的“框架内核架构”。该项目与“Rust for Linux”项目的目标有一些重叠,但从不同的方向切入,试图兼顾单内核和微内核设计的优点。

框架内核的概念在2024年9月的论文《框架内核:通过Rust实现安全高效的内核架构》中进行了详细说明。传统上,单内核将所有内容集中在一个内核模式的地址空间中,而微内核则只在内核空间实现一个最小的受信计算基础(TCB),并依赖用户模式服务来提供大部分操作系统的功能。这种分离会涉及微内核与这些服务之间的进程间通信(IPC),这通常会影响性能,这也部分解释了微内核为何保持相对不受欢迎。

Asterinas的“框架内核”设计的核心是将所有需要Rust的不安全特性代码封装在一个库中,使得内核中的其他服务可以使用安全的抽象进行开发。这些服务仍位于内核的地址空间内,但仅能访问核心库提供给它们的资源。这种设计旨在提高系统的安全性,同时保留单内核简单高效的共享内存架构。

文章进一步比较了Asterinas与一些之前基于Rust的操作系统工作,特别指出了Asterinas与RedLeaf的不同。Asterinas使用硬件隔离来允许运行用任何编程语言编写的用户空间程序,目标是通用性,并提供Linux兼容的ABI,而RedLeaf则是一个不使用硬件隔离特性的微内核,专注的方向不同。

项目团队在2025年2月的更新中计划实现形式验证,旨在使操作系统的TCB尽可能小,以便进行正式验证。Asterinas与安全审计公司CertiK合作,使用Verus工具对内核进行形式验证,CertiK还提供了审计报告。

项目的其他成果包括OSTD,这是一个Rust操作系统框架,旨在促进用Rust编写的操作系统内核的开发和创新,以及OSDK,一个Cargo附加组件,用于协助基于OSTD的内核的开发、构建和测试。

截至目前,Asterinas已经支持两种架构x86和RISC-V,支持的Linux系统调用数量有所增加,现已达到206个。但当前状态仍在早期开发阶段,尚未能运行任何应用程序,且没有发布版本或变更日志。

Asterinas的近期目标是扩展对CPU架构和硬件的支持,并专注于提供一个用于虚拟机的主机操作系统,尤其关注中国云市场。尽管Asterinas和Rust for Linux有相似的目标(通过Rust提供更安全的内核),但它们的范围和方法却大相径庭。Asterinas专注于构建一个全新的内核,同时尽量减少允许不安全代码的核心,从而可以进行形式验证。


原文:https://lwn.net/SubscriberLink/1022920/ad60263cd13c8a13/

评论:https://news.ycombinator.com/item?id=44324084

Report Page