Udgivet er version 0.4.0 af uutils coreutils (Rust Coreutils), der udvikler et alternativ til GNU Coreutils, skrevet i Rust. Coreutils omfatter mere end hundrede værktøjer, herunder sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln og ls. Projektets mål er at skabe en tværplatforms alternativ implementering af Coreutils, blandt andet i stand til at køre på Windows, Redox og Fuchsia.
Rust Coreutils er som standard aktiveret i udgivelsen Ubuntu 25.10 og anvendes i distributioner såsom AerynOS (Serpent OS) og Apertis (udviklet af Collabora). I modsætning til GNU Coreutils distribueres Rust-versionen under den tilladende MIT-licens, i stedet for GPL-copyleft-licensen. Desuden udvikler det samme team af udviklere også Rust-baserede alternativer til værktøjspakkerne util-linux, diffutils, findutils og procps samt programmerne sed og login.
I den nye version af Rust Coreutils:
- Kompatibiliteten med reference testpakken GNU Coreutils er forbedret, hvor 544 tests er bestået, hvilket er 12 mere end i den tidligere version (532). 56 (68) tests fejlede, mens 33 (33) tests blev sprunget over. Den oplyste kompatibilitetsgrad er 85,80 % (var 83,91 %).
- I værktøjet data er kompatibiliteten i GNU date forbedret ved behandling af tidszoner (mulighed for at angive forkortede navne på tidszoner er tilføjet i indstillingen --set).
- I værktøjet factor er pakken num_prime anvendt for at accelerere faktoriseringen af typerne u64/u128.
- I værktøjet tsort er DFS algoritmen omdannet fra en rekursiv til en iterativ metode for at forhindre stack overflow.
- I værktøjet cksum er der implementeret understøttelse af sha2 og sha3 hashes. Tests er tilføjet for at overvåge ændringer i ydeevnen af cksum. Funktionaliteten fra hashsum er overført til cksum.
- I værktøjet mkdir er et stack overflow, der førte til nedbrud ved oprettelse af et stort antal (200+) underkataloger, blevet udbedret.
- I værktøjerne stdbuf og uptime er understøttelse af OpenBSD-platformen blevet implementeret.
- Bygning og testning på FreeBSD-platformen er forbedret.
- Generelle forbedringer er blevet foretaget for at øge bærbarheden.
- Funktionerne er udvidet, problemer er blevet løst, og manglende indstillinger er tilføjet til værktøjerne base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.
Derudover kan der nævnes afvigelsen i adfærden af værktøjet 'du' fra uutils og GNU Coreutils, som opstod efter at Ubuntu 25.10 skiftede til uutils. Udviklerne har endnu ikke besluttet, om denne afvigelse skal betragtes som en fejl, da der ligger logik bag uutils adfærd, og testpakken fra GNU Coreutils viser ikke problemer. Men på den anden side er inkompatibilitet med GNU Coreutils pålagt at blive behandlet som fejl, og adfærden fra Busybox svarer til GNU Coreutils.
Forskellige adfærd observeres, når der angives flere kataloger som argumenter til værktøjet «du», når nogle af katalogerne er undermapper til andre kataloger (for eksempel \/var og \/var\/log). Uutils viser den faktiske størrelse af hvert enkelt katalog, mens den samlede størrelse af alle angivne kataloger vises i den afsluttende linje. GNU Coreutils viser i den afsluttende linje den faktiske størrelse, som de angivne kataloger optager på disken, men viser størrelserne af hvert katalog separat med fradrag af de indeholdte kataloger, hvilket resulterer i, at deres størrelse bliver mindre end den faktiske. Desuden ændrer værdierne, der vises i GNU Coreutils og Busybox, sig afhængigt af rækkefølgen, hvormed katalogerne angives.
For eksempel, når man kontrollerer størrelsen på katalogerne «\/var\/log» og «\/var», hvis deres faktiske størrelse er 1540 og 35495 byte, vil følgende udskrift blive vist i GNU Coreutils: du -smc \/var\/log \/var 1540 \/var\/log 33955 \/var # mindre end den faktiske 35495 total du -smc \/var \/var\/log 35495 \/var # kun \/var vises, og \/var\/log vises ikke 35495 total
I uutils: du -smc \/var\/log \/var 1540 \/var\/log 35495 \/var 37033 total # større end den faktiske, men svarer til summen af \/var og \/var\/log du -smc \/var \/var\/log 35495 \/var 1540 \/var\/log 37033 total # større end den faktiske, men svarer til summen af \/var og \/var\/log
I Busybox: du -smc \/var\/log \/var 1540 \/var\/log 33955 \/var # mindre end den faktiske 35495 total du -smc \/var \/var\/log 35495 \/var # kun \/var vises, og \/var\/log vises ikke 35495 total
Kilde: opennet.ru
