IT加油站

Ubuntu 26.10完成Rust coreutils迁移 cp mv rm告别GNU版

25浏览 5天前 科技综合 MA123645

Ubuntu 26.10 确认完成向 Rust 版 coreutils 的迁移,cp、mv、rm 三组最常用的文件命令将在 10 月 15 日发布的稳定版中正式改用 Rust 实现。这意味着 Ubuntu 持续了两个版本的 coreutils 过渡期收尾,GNU 版基础命令集在主线上退场。

这次迁移不是一步到位的。Ubuntu 25.10 是第一个搭载 Rust 版基础工具集的版本,当时 sudo 等一批系统组件已经换成了 Rust 实现。到了 26.04,cp、mv、rm 这三条命令没有跟随大部队,而是继续保留 GNU 版本,原因是 Rust 版在当时存在 TOCTOU 安全问题。

TOCTOU 全称 time-of-check to time-of-use,指程序检查文件状态和实际使用文件之间的时间窗口。攻击者可以利用这个间隙替换文件对象,造成提权或数据破坏。文件复制和移动操作恰好高度依赖这类检查,所以重写 Rust 版时安全性验证比普通命令更严格。Ubuntu 26.10 把这最后三块拼图补齐,coreutils 的 Rust 化才算真正收工。

Canonical 对 Rust 工具的投入是持续的。官方每年向 Trifecta Tech Foundation 捐献 4 万欧元,资助该基金会的 Rust 软件维护工作,其中就包括 coreutils 重写项目。这种长期资金支持是 Ubuntu 敢于系统性替换系统基础组件的原因之一。

对普通用户来说,这次切换短期内几乎感知不到。cp、mv、rm 的参数和输出格式保持兼容,日常脚本不用改。真正的变化在底层:Rust 语言的内存安全特性从编译器层面规避了缓冲区溢出、释放后使用等经典内存错误,这类漏洞恰恰是多年 Linux 安全公告里出现频率最高的一类。

从 25.10 试水到 26.10 全量落地,Ubuntu 花了约一年时间把 coreutils 逐步换成 Rust 实现,节奏不算激进,每一步都留出了回退余地。这个版本成为 Ubuntu 系统组件语言转换的一个节点,接下来 Fedora 等同样在推进 Rust 化的发行版会怎么跟上,值得留意。

#Ubuntu #Rust #coreutils #Canonical