三个替代内核项目证明开发者并非只能依赖Linux

三个替代内核项目证明开发者并非只能依赖Linux

在Rust语言应用、新文件系统、开发者冲突、systemd功能整合等问题影响下 , 关于Linux可能分叉的传言再次出现 。 但其实还有更好的替代方案 。
《The Register》开源软件团队一直关注小众、实验性和替代操作系统项目 , 我们报道这类项目已超过十年 。 每当此类项目出现时 , 总有人询问它们比现有操作系统好在哪里 。 但这并非重点;一些最新项目以有趣的方式突出了这一点 , 这个话题似乎越来越具有现实意义 。
当前世界许多地区形势动荡 , Linux内核开发领域也不例外 。 开发者现在可以使用Rust语言 , 但这也引发了摩擦 。 内核Rust维护者Wedson Almeida Filho辞职了 , 而且不只是他一个人 。 一个在内核中使用Rust的知名项目是Asahi Linux , 这是适用于Apple Silicon Mac的版本 。 自Filho辞职后 , Asahi Linux项目负责人Hector Martin也离开了 , 随后是Apple Silicon GPU驱动开发者\"Asahi Lina\" , 接着该子系统的另一位开发者Alyssa Rosenzweig也离开了 。 (她现在在英特尔工作 , 所以我们可以期待不久后会有更好的新英特尔GPU开源驱动程序 。 )
现在 , 正如预期的那样 , 经过十年努力才合并代码的bcachefs已被降级为外部维护 。
我们最近研究了GNU Hurd的新版本及其意义 。 正如我们当时试图展示的 , 微内核领域的努力远未停滞或沉寂——只是我们在桌面环境中不太常见到它们 。 即便如此 , Minix 3创建者Andy Tanenbaum教授去年还因其工作获得了奖项 。
Linux内核长期以来贡献者流动率就很高 。 如果一整群不满的内核开发者被赶出项目 , 想要走自己的路怎么办?与其分叉Linux , 这里有一些引人入胜的替代方案 。
**Managarm**
从描述和目标来看 , Managarm项目听起来几乎不太现实 , 但它已经存在了大约六年时间 。 由于简单的描述听起来不太可信 , 请允许我们引用该项目2022年8月更新中的内容:
\"这是一个基于微内核的操作系统 , 在整个系统中支持异步处理 , 同时提供与大量Linux软件的兼容性 。 \"
Managarm是多平台的 。 它目前运行于x86-64、Arm64 , RISC-V的工作正在进行中 。 它支持SMP、ACPI、AHCI和NVMe驱动器、IPv4、英特尔虚拟化和QEMU , 同时支持Wayland和X11服务器 , 以及数百个从GNU coreutils开始的Linux二进制文件 。 是的 , 它可以运行《毁灭战士》游戏 。 它用C++实现 , 所有代码都在GitHub上 。
这是一个实验性研究操作系统 。 不 , 你不能直接将其安装在备用机器上 , 下载Firefox和LibreOffice就开始工作 , 但作为一个从头构建的微内核 , 拥有如此丰富的功能、可选择的工作GUI层以及运行现有Linux二进制文件的能力 , 这是极其令人印象深刻的 。 另一个不寻常的方面是Managarm已经有了大量文档 , 形式为《Managarm手册》 。
《The Register》开源软件团队之前研究过一些实验性C++操作系统 , 包括令人惊讶地完整的Serenity OS , 但Managarm有更现代的设计 , 其运行现有Linux软件的雄心是我们之前未见过的 。
**Asterinas**
当然 , 如今所有真正酷的开发者都不再使用C++了 。 他们现在是Rust开发者 , 使用更加内存安全的Rust语言进行构建 。 几年前我们研究了基于Rust的Redox OS , 该项目的工作仍在进展中 。 项目负责人Jeremy Soller很忙 , 他也是System76的首席工程师 , 致力于新的COSMIC桌面环境 , 正如我们最近报道的 , 该环境即将进入测试版 。
Asterinas是另一个同样支持Linux ABI的激进新内核 , 它是用Rust编写的 。 不过 , 它并不完全是传统的微内核 。 相反 , 它是一种新型内核 , 如学术论文《Framekernel: A Safe and Efficient Kernel Architecture via Rust-based Intra-kernel Privilege Separation》中所述 。 (PDF文件七页 , 如果你想要一些不太轻松的阅读材料 。 )
framekernel设计具有与传统微内核类似的隔离模型 , 但与使用CPU特权环分离组件(我们在2011年介绍过)、在用户空间运行大部分操作系统不同 , framekernel设计使用Rust的语言特性将服务与内核分离 。 只有内核的微小核心部分被允许使用不安全的Rust代码 , 或者如Rust文档所称的\"不安全超能力\" 。 操作系统服务的所有其他部分都必须完全使用安全Rust 。
framekernel论文将Asterinas设计与较早的RedLeaf OS进行了比较 , 后者在第14届USENIX操作系统设计与实现研讨会上展示过 。
这个设计并非完全新颖 。 已经有多个其他操作系统尝试使用语言特性进行特权分离 , 包括SPIN(1990年代用Modula-3编写的研究操作系统)和HOUSE(主要用Haskell编写) 。
不过 , Rust确实比Modula-3或Haskell有更多动力支持 。 我们认为用现代语言编写的现代操作系统能够运行现有二进制文件的提议比这些较早的例子更有吸引力 。 今年早些时候 , LWN进行了更详细的研究 。 我们也很高兴看到Asterinas有相当数量的文档 。
【三个替代内核项目证明开发者并非只能依赖Linux】**Xous**
我们想要介绍的第三个最新项目与前两个都有一些重叠 。 像Managarm一样 , 它是现代微内核设计 。 像Asterinas一样 , 它用Rust编写 。 它不追求任何Linux兼容性 , 但相反 , 它有不同的、以自己的方式甚至更令人印象深刻的目标 , 比如有用的应用程序 , 以及已经发货的自己的硬件 。
Andrew \"Bunnie\" Huang是一位令人敬畏的硬件黑客 。 这位作者上次写到Huang的一些研究是在2023年 , 当时他解剖了一个10美元的袖珍计算器 , 结果发现它运行的是完整版本的Android 9 。 那年晚些时候 , 他在为拜登总统提供技术建议 。 不过 , 《The Register》早在2002年就开始报道他的工作了 , 这些年来一直如此 。 Huang很懂行 。
Rust微内核进入故事的地方是他的操作系统项目Xous 。 《Xous手册》是一个起点——再次为文档喝彩——但GitHub上也有代码 。
不过 , Xous只是一个更大项目的一部分 , 称为Betrusted 。 这个项目的不寻常之处在于已经有发货的硬件:Precursor手持设备 。 Precursor有几个应用 , 其中旗舰应用是Vault:
\"'Vault'认证应用...可以管理U2F/FIDO2、TOTP和传统密码 , 全部来自单一用户体验 , 并且以合理可否认的方式 。 \"
在其他用途中 , Precursor是一个电池供电的、口袋大小的安全凭证存储设备——但你也可以像Yubikey一样将其插入PC , 让它使用通用第二因子(U2F)认证以电子方式验证你的身份 。 不同之处在于你可以在Precursor的LCD上看到你正在解锁什么 。
除了《Xous手册》 , 还有一个Betrusted wiki , 包含更多信息 。 Bunnie的博客上有更多信息 。 我们特别喜欢他对合理可否认数据库(PDDB)的解释引用了我们最喜欢的Xkcd漫画《安全》 。 我们认为信息安全领域的更多工作者需要这样思考 。
如果像我们在本文开头段落中提到的那些人永远不再返回Linux项目的任何部分工作 , 这对Linux世界来说将是巨大损失——但Managarm、Asterinas和Xous都证明了有大量与Linux无关的迷人工作正在进行 , 即使Linus退休 , 这些工作也可以帮助承接该平台卓越的软件阵列、专业知识和积累的知识 。
Q&A
Q1:Managarm操作系统有什么特殊功能?
A:Managarm是一个基于微内核的操作系统 , 支持整个系统的异步处理 , 同时提供与大量Linux软件的兼容性 。 它是多平台的 , 目前运行于x86-64、Arm64 , 支持SMP、ACPI、AHCI和NVMe驱动器、IPv4等 , 同时支持Wayland和X11服务器 , 以及数百个Linux二进制文件 。
Q2:Asterinas内核与传统微内核有什么不同?
A:Asterinas采用framekernel设计 , 与传统微内核使用CPU特权环分离组件不同 , 它使用Rust的语言特性将服务与内核分离 。 只有内核的微小核心部分被允许使用不安全的Rust代码 , 操作系统服务的所有其他部分都必须完全使用安全Rust , 这提供了更好的内存安全性 。
Q3:Xous操作系统的实际应用场景是什么?
A:Xous是Betrusted项目的一部分 , 已有实际发货的硬件Precursor手持设备 。 其旗舰应用是Vault认证应用 , 可以管理U2F/FIDO2、TOTP和传统密码 。 Precursor是一个电池供电的口袋大小安全凭证存储设备 , 也可以像Yubikey一样插入PC进行身份验证 。


    推荐阅读