Ubuntu也开始锈化了?Ubuntu 计划在 25.10 版本开始引入 Rust Coreutils

上个月,jnsgruk发表了《未来20年的Ubuntu工程》(Engineering Ubuntu For the Next 20 Years)一文,其中概述了打算在未来几年中如何发展Ubuntu的四个关键主题。在这篇文章中,重点讨论 了"现代化"。在很多方面对Ubuntu进行现代化改造,例如专注于图形化shell体验、虚拟化堆栈、核心系统实用程序、默认shell实用程序等。

多年来,像 GNU Coreutils 这样的项目对于 Ubuntu 和其他 Linux 发行版给数百万用户带来的类似 Unix 的体验起到了至关重要的作用。GNU Coreutils是 GNU 操作系统的基本文件、shell 和文本操作实用工具。这些是每个操作系统都应具备的核心实用程序。对许多人来说,这个软件包提供的实用程序已成为 Linux 的代名词,如 ls、cp 和 mv。近年来,人们一直在努力用 Rust 重新实现这套工具,目标是实现与现有工具的 100% 兼容。类似的项目,如 sudo-rs ,旨在用更现代、内存更安全的工具替代关键的安全实用程序。

从 Ubuntu 25.10 开始,我们的目标是将其中一些现代实现作为默认设置。近期目标是将 uutils 的 coreutils 实现作为 Ubuntu 25.10 的默认设置,如果条件允许,还将在下一个长期支持(LTS)版本 Ubuntu 26.04 LTS 中采用。

But... why?

Rust 语言、其类型系统和借用检查器(以及其社区!)通力合作,鼓励开发人员编写安全、可靠、有弹性的软件。随着安全性的提高,安全保证也会随之提高,而随着安全性的提高,系统的整体弹性也会随之提高--还有什么比从构建发行版的基础工具开始更合适的呢?

最近,一篇关于 2025 年使用 Rust 开发基础软件的文章 。除其他外,这篇文章还声称 "基础软件需要性能、可靠性和生产力"。如果基础软件失效,那么构建在其上的所有其他层也会失效。如果基础软件包存在性能瓶颈,那么它们就会成为上面各层所能达到的性能的底线。

Ubuntu 为全球数百万台设备提供支持,从数据中心的服务器到自主系统中的安全关键系统,因此我们有责任确保我们所提供的软件是最有弹性、最值得信赖的。

要做到这一点,方法有很多:我们可以为 Kubernetes 等项目提供长期支持 ,我们可以努力做到符合以安全为中心的标准 ,但另一种方法是以安全、稳健、正确和弹性为核心价值来发布软件。

当然,这并不是要对现有的实现方法指手画脚。这些工具中的许多已经稳定运行多年,默默地提高性能、修复漏洞。在较新实现上工作的一个可爱的副作用是,它有时也会促进原始上游项目的改进!

uutils 重写除了更宽松的许可证以外,还有如下几个优点:

提供对 Windows、macOS、BSD、甚至安卓(通过 busybox)的支持

提供单文件版本

提供一些改善生活质量的小功能

为什么要用 Rust 来重写这些工具?

Sylvestre 在接受采访的时候说,这些核心组件的代码有些可能已经有三十多年四十年,他们时至今日依然可以正常运作------但有些已经失去了维护。

为什么会选择 Rust,Sylvestre 提到了年轻人对 C 语言的兴致没有以前那么高了,他们更喜欢更"酷"的语言,让下一代人维护这些核心设施更加轻松是他的主要驱动力。我们没办法保证未来三十年,甚至是十年后还能有足量的、能力足够的 C 语言用户来维护这些古老的从上世纪传流下来的代码。

除此之外,使用 Rust 的主要理由并非是很多人津津乐道的安全性,而主要是因为这门语言结合了很多工程经验使其更加易用:比如 cargo,比如并发,比如些许函数式特性。

由于 Sylvestre 先前参与了 Clang 和 LLVM 的开发,而 Clang 有个很经典的观点:"如果我们没有实现一个 GCC 标志(功能?),那就是个 bug",他带着这个信念参加了 uutils 的开发并且成为了现在 uutils 的主要维护者,我认为没有这个观点 uutils 的 coreutils 不会在今天能够成为 Ubuntu 25.10 的选择:带着这个观点,实现相同的数据处理模型,再加上吸收了更多工程经验的系统级语言作为工具,全新的代码基更能面对未来维护上的挑战。

从 Rust 使用者/爱好者的角度来说是个巨大的利好,因为 Ubuntu 下场有望促进 uutils 项目和相关依赖的迅速迭代。不过就目前 uutils 项目的完成度来看,25.10 是否能引入还是需要打一个大问号的。目前来看,虽然进展整体不错,但还是有不少测例是skip和fail状态的。

参考:

https://discourse.ubuntu.com/t/carefully-but-purposefully-oxidising-ubuntu/56995

相关推荐
hkNaruto2 小时前
【AI】Ubuntu 22.04 evalscope 模型评测 Qwen3-4B-FP8
人工智能·ubuntu·qwen3
郭涤生2 小时前
在ubuntu的docker上常用的docker命令
ubuntu·docker
帅得不敢出门2 小时前
Ubuntu打开中文文本乱码
linux·运维·ubuntu·vim
pp-周子晗(努力赶上课程进度版)2 小时前
【计算机网络-传输层】传输层协议-UDP
linux·计算机网络·udp
only火车头3 小时前
mdadm 报错: buffer overflow detected
linux·mdadm·blktest
Flaming_1233 小时前
将develop分支的修改同步到main分支
linux·git·merge
Rocket MAN3 小时前
在 Ubuntu 中配置 Samba 实现「特定用户可写,其他用户只读」的共享目录
网络·windows·ubuntu
weixin_428498493 小时前
使用 pgrep 杀掉所有指定进程
linux
gxh19924 小时前
springboot微服务连接nacos超时
linux·后端·微服务·nacos