找回密码
 立即注册
搜索
查看: 5593|回复: 25

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

[复制链接]
     
发表于 2025-3-17 13:16 | 显示全部楼层 |阅读模式

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 版之间切换。




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


回复

使用道具 举报

     
发表于 2025-3-17 13:24 | 显示全部楼层
rust 的 coreutils 早有了,不过我一直认为是个玩具。再提一个和 gnu coreutils 的替代品,busybox
回复

使用道具 举报

     
发表于 2025-3-17 13:32 | 显示全部楼层
到最后GNU那套工具都会因为被RUST重写而替换吗
回复

使用道具 举报

     
发表于 2025-3-17 13:32 来自手机 | 显示全部楼层
其实更大的新闻是下个版本内核可以用rust写的老黄内核态驱动了

—— 来自 鹅球 v3.3.96
回复

使用道具 举报

     
发表于 2025-3-17 14:05 | 显示全部楼层
Nanachi 发表于 2025-3-17 13:32
到最后GNU那套工具都会因为被RUST重写而替换吗

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

使用道具 举报

     
发表于 2025-3-17 14:36 来自手机 | 显示全部楼层
最近自媒体不是一直在渲染rust引发的linux宫斗剧吗
回复

使用道具 举报

     
发表于 2025-3-17 17:26 | 显示全部楼层
Rust 重写 coreutils 工具 5 年前就开始了,但现在也不能做到和原版 100% 行为一致
回复

使用道具 举报

     
发表于 2025-3-17 17:50 | 显示全部楼层
原版 100% 行为也不见得好啊
回复

使用道具 举报

     
发表于 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.

这算是他们自己立的目标
回复

使用道具 举报

     
发表于 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。
回复

使用道具 举报

     
发表于 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 快的
回复

使用道具 举报

发表于 2025-9-2 16:27 来自手机 | 显示全部楼层
rust一堆设计都是为了工程上蠢人能少挖坑的necessary evil,在大学里待太久的人觉得没意思很正常。crate都不喜欢大概老仙人真的是有点不食人间烟火了
回复

使用道具 举报

     
发表于 2025-9-2 17:33 | 显示全部楼层
人再笨还能学不会写内存安全的代码吗

—— 来自 S1Fun
回复

使用道具 举报

     
发表于 2025-9-2 23:42 来自手机 | 显示全部楼层
按理说zig才应该是C语言的正统传承,不知道为啥用的人这么少
回复

使用道具 举报

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

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

使用道具 举报

     
发表于 2025-9-3 07:12 来自手机 | 显示全部楼层
用安全的名义去换coreutils总觉得是在制造需求,这几年coreutils上有什么著名内存漏洞吗?

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

使用道具 举报

     
发表于 2025-9-3 10:39 | 显示全部楼层
我感觉 rust 写的命令最棒的是能在 Windows 上用,哈哈哈
回复

使用道具 举报

     
发表于 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/coreut ... s/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
回复

使用道具 举报

     
发表于 2025-9-3 20:18 来自手机 | 显示全部楼层
無始無終 发表于 2025-9-3 19:25
你可以查下sudo的依赖和漏洞,这是一个远比一般人想象的更“重”且不安全的组件

—— 来自 Xiaomi 23054 ...

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

使用道具 举报

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

使用道具 举报

     
发表于 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
回复

使用道具 举报

     
发表于 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脚本依赖着,不能做到一致那客户侧需要的改动可就大了
回复

使用道具 举报

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

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-10-19 23:09 , Processed in 0.111039 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表