UtgÄvan av projektet uutils coreutils 0.4.0 (Rust Coreutils) har publicerats, som utvecklar en analog till GNU Coreutils, skriven i Rust. Coreutils innehÄller mer Àn hundra verktyg, inklusive sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln och ls. Projektets mÄl Àr att skapa en plattformsoberoende alternativ implementation av Coreutils, som bland annat kan fungera pÄ plattformar som Windows, Redox och Fuchsia.
Rust Coreutils anvÀnds som standard i versionen av Ubuntu 25.10 och anvÀnds i distributionerna AerynOS (Serpent OS) och Apertis (utvecklas av Collabora). Till skillnad frÄn GNU Coreutils distribueras Rust-implementeringen under den permissiva MIT-licensen, istÀllet för copyleft-licensen GPL. Dessutom utvecklar samma team av utvecklare Rust-baserade alternativ till verktygen util-linux, diffutils, findutils och procps, samt programmen sed och login.
I den nya versionen av Rust Coreutils:
- Kompatibiliteten med det officiella testsetet för GNU Coreutils har förbÀttrats, dÀr 544 tester lyckades genomföras, vilket Àr 12 fler Àn i den tidigare versionen (532). 56 (68) tester misslyckades, och 33 (33) tester hoppades över. Den uppgivna kompatibilitetsnivÄn Àr 85.80% (jÀmfört med tidigare 83.91%).
- I verktyget data har kompatibiliteten med GNU date förbĂ€ttrats vid hantering av tidszoner (möjlighet att ange förkortade namn pĂ„ tidszoner i alternativet âset har lagts till).
- I verktyget factor anvÀnds paketet num_prime för att pÄskynda faktoriseringsprocessen för typerna u64/u128.
- I verktyget tsort har algoritmen för DFS-genomsökning överförts frÄn en rekursiv till en iterativ metod för att förhindra stacköversvÀmning.
- I verktyget cksum har stöd för sha2 och sha3 hash implementerats. Tester har lagts till för att spÄra förÀndringar i cksum-prestanda. Funktionaliteten hos hashsum har flyttats till cksum.
- I verktyget mkdir har en stacköversvÀmning som ledde till krasch vid skapande av ett stort antal (över 200) underkataloger ÄtgÀrdats.
- Stödet för plattformen OpenBSD har implementerats i verktygen stdbuf och uptime.
- Bygg och testning pÄ plattformen FreeBSD har förbÀttrats.
- AllmÀnna förbÀttringar har gjorts för att öka portabiliteten.
- Möjligheter har utvidgats, problem har ÄtgÀrdats och saknade alternativ har lagts till för verktygen base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.
Dessutom kan man notera en avvikelse i beteendet hos verktyget âduâ mellan uutils- och GNU Coreutils-paketen, som uppstod efter att Ubuntu 25.10 övergick till uutils. Utvecklarna har Ă€nnu inte bestĂ€mt om denna avvikelse ska tolkas som ett fel, eftersom det finns logik i uutils beteende och testsetet frĂ„n GNU Coreutils visar inga problem, men Ă„ andra sidan föreskrivs att inkompatibiliteter med GNU Coreutils ska hanteras som fel, och beteendet hos Busybox motsvarar GNU Coreutils.
Olika beteenden observeras nÀr man anger flera kataloger som argument till verktyget "du" i situationer dÀr vissa av katalogerna Àr underkataloger till andra kataloger (t.ex. /var och /var/log). Uutils visar den faktiska storleken för varje enskild katalog, medan den sammanfattande raden visar den totala storleken för alla angivna kataloger. GNU Coreutils visar i den sammanfattande raden den faktiska storleken som angivna kataloger upptar pÄ disken, men visar storlekarna för varje katalog utan inbÀddade kataloger i en separat lista, vilket gör att deras storlek blir mindre Àn den faktiska. Dessutom varierar vÀrdena som visas i GNU Coreutils och Busybox beroende pÄ ordningen av angivna kataloger.
Till exempel, nÀr man kontrollerar storleken pÄ katalogerna "/var/log" och "/var", vars faktiska storlekar Àr 1540 och 35495 byte, kommer GNU Coreutils att visa: du -smc /var/log /var 1540 /var/log 33955 /var # mindre Àn den faktiska 35495 total du -smc /var /var/log 35495 /var # visas endast /var och /var/log visas inte 35495 total
I uutils: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # större Àn den faktiska, men stÀmmer överens med summan av /var och /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # större Àn den faktiska, men stÀmmer med summan av /var och /var/log
I Busybox: du -smc /var/log /var 1540 /var/log 33955 /var # mindre Àn den faktiska 35495 total du -smc /var /var/log 35495 /var # visas endast /var och /var/log visas inte 35495 total
KĂ€lla: opennet.ru
