Lançimi i Rust Coreutils 0.4. Shkalla e divergjencës së sjelljes së utilitarit du në uutils dhe GNU Coreutils

U publikua versioni 0.4.0 i projektit uutils coreutils (Rust Coreutils), që zhvillon një alternativë për paketën GNU Coreutils, e shkruar në gjuhën Rust. Coreutils përmban më shumë se njëqind utilitarë, përfshirë sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln dhe ls. Qëllimi i projektit është krijimi i një implementimi alternativ të Coreutils për platforma të ndryshme, duke përfshirë aftësinë për të punuar në platforma si Windows, Redox dhe Fuchsia.

Rust Coreutils është përdorur si standard në lëshimin e Ubuntu 25.10 dhe aplikohet në distribucione si AerynOS (Serpent OS) dhe Apertis (i zhvilluar nga Collabora). Ndryshe nga GNU Coreutils, implementimi në Rust shpërndahet nën licencën permissive MIT, në vend të licencës copyleft GPL. Gjithashtu, nga e njëjta ekip zhvilluesish po zhvillohen versione të shkruara në Rust të grupeve të utiliteteve util-linux, diffutils, findutils dhe procps, si dhe programeve sed dhe login.

Në versionin e ri të Rust Coreutils:

  • ËshtĂ« pĂ«rmirĂ«suar kompatibiliteti me paketat e testit standard GNU Coreutils, duke kaluar me sukses 544 teste, 12 mĂ« shumĂ« se versioni i mĂ«parshĂ«m (532). 56 (68) teste pĂ«rfunduan me dĂ«shtim, ndĂ«rsa 33 (33) teste u anashkaluan. Niveli i shpallur i kompatibilitetit Ă«shtĂ« 85.80% (ishte 83.91%).
  • NĂ« utilitarin data Ă«shtĂ« pĂ«rmirĂ«suar kompatibiliteti me datĂ«n GNU kur pĂ«rpunohen zona tĂ« ndryshme kohore (shtuar mundĂ«sia e specifikimit tĂ« emrave tĂ« shkurtuar tĂ« zonave tĂ« ndryshme kohore nĂ« opsionin —set).
  • NĂ« utilitarin factor u angazhua paketa num_prime pĂ«r tĂ« pĂ«rshpejtuar faktorizimin e tipeve u64/u128.
  • NĂ« utilitarin tsort, implementimi i algoritmit tĂ« pĂ«rshkĂ«mbjes DFS Ă«shtĂ« kaluar nga njĂ« metodĂ« rekurzive nĂ« njĂ« metodĂ« iteruese pĂ«r tĂ« parandaluar mbushjen e stack-ut.
  • NĂ« utilitarin cksum Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r hash-e sha2 dhe sha3. JanĂ« shtuar teste pĂ«r tĂ« ndjekur ndryshimin e performancĂ«s sĂ« cksum. Funksionaliteti hashsum Ă«shtĂ« transferuar nĂ« cksum.
  • NĂ« utilitarin mkdir Ă«shtĂ« eliminuar mbushja e stack-ut qĂ« shkaktonte mbyllje aksidentale kur krijoheshin shumĂ« (mĂ« shumĂ« se 200) katalogĂ« tĂ« thelluar.
  • NĂ« utilitarĂ«t stdbuf dhe uptime Ă«shtĂ« realizuar mbĂ«shtetje pĂ«r platformĂ«n OpenBSD.
  • JanĂ« pĂ«rmirĂ«suar ndĂ«rtimi dhe testimi nĂ« platformĂ«n FreeBSD.
  • JanĂ« bĂ«rĂ« pĂ«rmirĂ«sime tĂ« pĂ«rgjithshme pĂ«r tĂ« rritur portabilitetin.
  • JanĂ« zgjeruar mundĂ«sitĂ«, janĂ« eliminuar problemet dhe janĂ« shtuar opsione tĂ« humbura pĂ«r utilitarĂ«t base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.

Gjithashtu, duhet të përmendet divergjenca në sjelljen e utilitarit "du" nga paketat uutils dhe GNU Coreutils, që u shfaq pas kalimit të Ubuntu 25.10 në uutils. Zhvilluesit ende nuk kanë vendosur nëse ta trajtojnë këtë divergjencë si një gabim, pasi nga njëra anë ka logjikë në sjelljen e uutils dhe paketa e testeve GNU Coreutils nuk tregon probleme, por nga ana tjetër, jo-kompatibilitetet me GNU Coreutils duhet të trajtohen si gabime dhe sjellja e Busybox korrespondon me GNU Coreutils.

Një sjellje e ndryshme vërehet kur gjatë përdorimit të utilitarit «du» specifikohen disa direktori, në situatën kur disa prej direktoreve janë nën-direktori të direktoreve të tjera (p.sh., /var dhe /var/log). Uutils tregon madhësinë reale të secilës direktori, ndërsa në linjën përfundimtare jep madhësinë totale të të gjitha drejtimeve të specifikuara. GNU Coreutils tregon në linjën përfundimtare madhësinë reale që drejtoritë e specifikuara zënë në disk, por në listën e ndarë tregon madhësitë e secilës direktori duke përjashtuar nën-drejtori, duke bërë që madhësia e tyre të rezultojë më e vogël se ajo reale. Për më tepër, vlerat e dhëna nga GNU Coreutils dhe Busybox ndryshojnë në varësi të rendit të specifikimit të direktorive.

Për shembull, kur kontrollohet madhësia e direktorive «/var/log» dhe «/var», madhësia reale e të cilave është 1540 dhe 35495 byte, në GNU Coreutils do të dalë: du -smc /var/log /var 1540 /var/log 33955 /var # më pak se e vërteta 35495 total du -smc /var /var/log 35495 /var # shfaqet vetëm /var dhe nuk shfaqet /var/log 35495 total

Në uutils: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # më shumë se e vërteta, por përputhet me shumën e /var dhe /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # më shumë se e vërteta, por përputhet me shumën e /var dhe /var/log

Në Busybox: du -smc /var/log /var 1540 /var/log 33955 /var # më pak se e vërteta 35495 total du -smc /var /var/log 35495 /var # shfaqet vetëm /var dhe nuk shfaqet /var/log 35495 total

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster