Xerxes_2 发表于 2025-3-17 13:16

Ubuntu 25.10 将采用 Rust 重写的 Coreutils,提升安全与性能


Ubuntu 计划在即将推出的 25.10 版本中引入基于 Rust 语言的核心工具集“uutils”,逐步替换传统的 GNU Coreutils


GNU Coreutils 包括常用的 ls/cp/mv/cat/echo 等命令。

Ubuntu 25.10 会整合 uutils 项目的 Rust Coreutils,并在 26.04 LTS 版中继续推进,前提是测试顺利。
Canonical 还提供了个“oxidizer”工具,让用户能在传统版和 Rust 版之间切换。



来源:https://www.phoronix.com/news/Ubuntu-25.10-Rust-Coreutils
感觉 Linux 工具链这些老东西也开始要大幅变化了,本来以为 Rust 就是写个内核驱动的。虽然我电脑里 fish/eza/fd/ripgrep/bat 什么的早就用上了。

ryanz 发表于 2025-3-17 13:24

rust 的 coreutils 早有了,不过我一直认为是个玩具。再提一个和 gnu coreutils 的替代品,busybox

Nanachi 发表于 2025-3-17 13:32

到最后GNU那套工具都会因为被RUST重写而替换吗

d2loader 发表于 2025-3-17 13:32

其实更大的新闻是下个版本内核可以用rust写的老黄内核态驱动了

—— 来自 鹅球 v3.3.96

ryanz 发表于 2025-3-17 14:05

Nanachi 发表于 2025-3-17 13:32
到最后GNU那套工具都会因为被RUST重写而替换吗

我个人觉得机会渺茫。一是 rust 依托 llvm,对一些奇奇怪怪架构支持并不那么好,底层基础工具肯定要取最大公约数。一是 rust 系大多 mit 许可,这对 gpl 许可的 gnu 系还有一众发行版是不可忍受的。借用我之前工作目睹的现状,在软件工程上,重写就是夺权

alann 发表于 2025-3-17 14:36

最近自媒体不是一直在渲染rust引发的linux宫斗剧吗

Midnight.Coup 发表于 2025-3-17 17:26

Rust 重写 coreutils 工具 5 年前就开始了,但现在也不能做到和原版 100% 行为一致

r_ex 发表于 2025-3-17 17:50

原版 100% 行为也不见得好啊

Midnight.Coup 发表于 2025-3-17 19:04

r_ex 发表于 2025-3-17 17:50
原版 100% 行为也不见得好啊
Goals
uutils aims to be a drop-in replacement for the GNU utils. Differences with GNU are treated as bugs.

这算是他们自己立的目标

linux40 发表于 2025-3-17 19:12

本帖最后由 linux40 于 2025-3-17 20:50 编辑

d2loader 发表于 2025-3-17 13:32
其实更大的新闻是下个版本内核可以用rust写的老黄内核态驱动了

—— 来自 鹅球 v3.3.96 ...

这个事情有点幽默,以前在红帽写nouveau的人去nv继续写nouveau,同时红帽宣布nova。

b0207191 发表于 2025-9-2 15:14

83 岁的 Unix 联合创始人 Brian Kernighan,因在贝尔实验室对 Unix 的贡献,以及 1978 年合著的《C 程序设计语言》而被视为传奇极客。他上月在 “Vintage Computer East” 节上演讲时,被问到一个经典问题:“您觉得 Rust 有可能取代 C 吗?还是说这只是一场迟早要退潮的炒作泡沫?”

Kernighan 仰头大笑后回应:“哦——Rust 啊。”全场随即也大笑起来。他坦言自己只写过一个 Rust 程序,“所以意见仅供参考”,但那次经历令他印象深刻:“写 Rust 的过程让我觉得很痛苦……我实在没法理解那些为了内存安全设计的机制,而我的程序里根本没有内存问题!”

图片
不过,他对 Rust 最大的抱怨还是性能问题——这在一位职业生涯始于 16 位 PDP 11/20 的程序员口中,显得格外尖锐。“它的支持体系——所谓的 crate、barrel 之类的东西——庞大得难以理解,而且运行缓慢。”

“编译器很慢,生成的代码也很慢……”

最终,他总结道:“写一个在其他语言里只需要五分钟的程序,却花了我好几天……”Kernighan 也承认这可能是他“过于苛刻”,但仍强调:“至少我不认为 Rust 会马上取代 C。”

讽刺的是, Brian Kernighan 在台上对 Rust 的最大批评,恰恰集中在 编译器慢、代码生成慢。而在现实中,正在公开找工作的 Nicholas Nethercote 与 Michael Goulet,正是 Rust 社区里最顶尖的编译器工程师。

精钢魔像 发表于 2025-9-2 16:18

要额外生成代码的语言,编译时肯定不会比c 快的

posthoc 发表于 2025-9-2 16:27

rust一堆设计都是为了工程上蠢人能少挖坑的necessary evil,在大学里待太久的人觉得没意思很正常。crate都不喜欢大概老仙人真的是有点不食人间烟火了

bomsw 发表于 2025-9-2 17:33

人再笨还能学不会写内存安全的代码吗

—— 来自 S1Fun

归蝶 发表于 2025-9-2 23:42

按理说zig才应该是C语言的正统传承,不知道为啥用的人这么少

aoaoaodedede 发表于 2025-9-2 23:59

归蝶 发表于 2025-9-2 23:42
按理说zig才应该是C语言的正统传承,不知道为啥用的人这么少

也不至于啥正统传承的,至少语法上就差异不小,Zig都还没1.0,最近发的一个版本breaking change就不少来着,很难有太多人拿到非玩具项目里用

calmer 发表于 2025-9-3 07:12

用安全的名义去换coreutils总觉得是在制造需求,这几年coreutils上有什么著名内存漏洞吗?

—— 来自 HONOR PTP-AN10, Android 15, 鹅球 v3.5.99

AlphardAlSheya 发表于 2025-9-3 10:39

我感觉 rust 写的命令最棒的是能在 Windows 上用,哈哈哈

5long 发表于 2025-9-3 14:59

calmer 发表于 2025-9-3 07:12
用安全的名义去换coreutils总觉得是在制造需求,这几年coreutils上有什么著名内存漏洞吗?

—— 来自 HONO ...

安全漏洞什么的可以在 CVE 上面搜
倒不是很多:https://www.cve.org/CVERecord/SearchResults?query=coreutils

Rust 重写还有个好处是可以提升一下用户友好度
比如说给 cp / mv 加个进度条
GNU coreutils 已经明示说绝对不做 https://www.gnu.org/software/coreutils/rejected_requests.html
uutils 就支持了:https://github.com/uutils/coreutils/blob/main/docs/src/extensions.md

昨天在 Arch 上试着用 sudo-rs 取代了 sudo
目前最直观的感觉是省了几个 MB 的硬盘空间(

無始無終 发表于 2025-9-3 19:25

calmer 发表于 2025-9-3 07:12
用安全的名义去换coreutils总觉得是在制造需求,这几年coreutils上有什么著名内存漏洞吗?

—— 来自 HONO ...

你可以查下sudo的依赖和漏洞,这是一个远比一般人想象的更“重”且不安全的组件

—— 来自 Xiaomi 23054RA19C, Android 15, 鹅球 v3.5.99

indtability 发表于 2025-9-3 20:18

無始無終 发表于 2025-9-3 19:25
你可以查下sudo的依赖和漏洞,这是一个远比一般人想象的更“重”且不安全的组件

—— 来自 Xiaomi 23054 ...

sudo 又不在 coreutils 里,sudo 本身作为提权工具,天然就是不安全的,它不安全的本质在于 setuid,试图替代它的也不止 sudo-rs,还有 pkexec,run0 之类,跟 rust 也没什么关系。

indtability 发表于 2025-9-3 20:30

我也感觉重写 coreutils 没啥意思,coreutils 本来就久经使用,文档和资料详实,是目前脚本和命令行的基石,重写它既没法做到100%兼容,也没法添加 breaking change,前者意味我没法完全放心的把脚本运行在这上面,后者也让它给不了吸引人的点,又是一个无聊的 riir,这个项目因为是用 rust 重写而获得的关注和维护可能是比这个项目里的 rust 更有价值的东西。有空重写这种东西不如搞一套新的基础工具,这老一套用起来经常挺折磨人的,搞一套新的用户友好的基础工具甚至脚本语言在我看来有意义得多,无非没法直接获得这么高关注罢了。

calmer 发表于 2025-9-4 14:07

5long 发表于 2025-9-3 14:59
安全漏洞什么的可以在 CVE 上面搜
倒不是很多:https://www.cve.org/CVERecord/SearchResults?query=core ...

rust试图消灭的是内存漏洞,然而不是所有cve都是内存漏洞引起

—— 来自 HONOR PTP-AN10, Android 15, 鹅球 v3.5.99

linux40 发表于 2025-9-6 20:23

5long 发表于 2025-9-3 14:59
安全漏洞什么的可以在 CVE 上面搜
倒不是很多:https://www.cve.org/CVERecord/SearchResults?query=core ...

支持不添加进度条的决定。这些工具最大的用途是自动化脚本里用,有进度条徒增烦恼。

迷路的石头 发表于 2025-9-6 20:33

r_ex 发表于 2025-3-17 17:50
原版 100% 行为也不见得好啊

这种基础命令一大堆shell脚本依赖着,不能做到一致那客户侧需要的改动可就大了

5long 发表于 2025-9-7 09:57

linux40 发表于 2025-9-6 20:23
支持不添加进度条的决定。这些工具最大的用途是自动化脚本里用,有进度条徒增烦恼。 ...

旧的行为(包括 stdout 输出)是要兼容的,这是 uutils 的项目目标
实际的实现是用一个额外的 -g, --progress 参数来启用进度条显示
只要 coreutils 这边没引入使用 -g 参数的新功能就没问题(

indtability 发表于 2025-10-25 19:41

indtability 发表于 2025-9-3 20:30
我也感觉重写 coreutils 没啥意思,coreutils 本来就久经使用,文档和资料详实,是目前脚本和命令行的基石 ...

刷到新闻看到这个 uutils 已经开始造成问题,还不止一次了

https://www.phoronix.com/news/Ubuntu-25.10-Broken-Upgrade

讲真,用 rust 重写 coreutils 到底有什么意义,我既没法理解尝试用 rust 重写的人,也没法理解敢把它用在现有环境中的人,这种 shell 脚本的基石,做不到100%一样的行为我不敢用,100%一样的话又没意义,以前打着内存安全的幌子堵嘴,这个也没听说有什么内存漏洞,这个项目感觉就是为了重写而重写,为了 rust 而 rust,Ubuntu 的决策也像是为了赚噱头

dangoron 发表于 2025-10-25 21:56

rust可以在编译阶段解决大部分的问题,除了死锁死循环这种,但是已经比其他语言安全得多了,带来的一个好处就是社区比较活跃,适合多人协作开发。不过更直接的原因应该是cargo,一个cargo add就能添加新的模块,C++/C可能要配置半天还担心出错
页: [1]
查看完整版本: Ubuntu 25.10 将采用 Rust 重写的 Coreutils,提升安全与性能