基于 GNU Coreutils 包的 Rust 开发项目 uutils coreutils 0.10.0 (Rust Coreutils) 已正式发布。coreutils 包含超过 100 个实用工具,例如 sort、cat、chmod、chown、chroot、cp、date、dd、echo、hostname、id、ln 和 ls。该项目的目标是创建一个跨平台的 Coreutils 替代方案,使其能够在包括以下平台在内的多个平台上运行: Windows氧化还原和紫红色。
该版本默认启用 Rust Coreutils。 Ubuntu 25.10,部分在 Ubuntu 4月26日。Rust Coreutils 也被用于 AerynOS(Serpent OS)和 Apertis(由 Collabora 开发)发行版中。与 GNU Coreutils 不同,Rust 实现采用的是宽松的 MIT 许可证,而非版权自由的 GPL 许可证。此外,同一开发团队还在开发 util-linux、diffutils、findutils、procps 和 acl 工具套件以及 sed 和 login 程序的 Rust 版本。
在新版本的 Rust Coreutils 中:
- 与 GNU Coreutils 基准测试套件的兼容率为 93.48%(低于之前的 90.58%)。成功完成的测试共 645 项,比上一版本(625 项)多 20 项。失败的测试共 29 项(低于之前的 56 项),1 项测试出现错误,15 项测试被跳过(低于之前的 8 项)。
- 修复了 pr、nproc、date、numfmt、ls、du、install、od、truncate、fold、head/tail、sum 和 stat 工具在行为上与 GNU Coreutils 的一些差异。
- 为防止因竞争条件导致的漏洞,我们持续加强安全防护。竞争条件允许在信息验证完成后、操作执行前修改数据。例如,在验证完成和操作开始之间,文件可能被替换为符号链接。当在以 root 权限运行的系统脚本中使用 cp、chmod 和 mv 工具时,此类漏洞允许复制或覆盖任意文件。我们已加强了 touch、mkfifo、mkdir、mknod、mv、chroot、head、split 和 chcon 工具的安全性。
- 已开展工作,通过以下实用程序中的 panic 机制消除异常终止:shuf、printf、numfmt、fmt、pr、chroot、dircolors、install、ln、touch、stat、split、expand、more、kill、cp、du、rm、runcon、sort、chown/chgrp、dirname、expr、cksum、dd、truncate、hashsum。
- cksum、sum、split、expand/unexpand、base*、tee、cat、cp、mv、expr、uniq 和 du 工具的性能已得到优化。
- 增加了对 wasm32-wasip2 构建目标的支持。
- mv 工具实现了“--exchange”选项,用于交换两个文件或目录。
- 安装实用程序实现了“--reflink”选项,并提供了同时使用“-C”和“--preserve-timestamps”选项的功能。
- rm 工具新增了“--one-file-system”选项。
- 剪切实用程序能够在使用非 UTF-8 区域设置时处理多字节编码。
- OpenSSL 后端用于快速计算校验和。
来源: opennet.ru
