Выпуск Rust Coreutils 0.4. РасхоТдСниС повСдСния ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ du Π² uutils ΠΈ GNU Coreutils

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ выпуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° uutils coreutils 0.4.0 (Rust Coreutils), Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Π°Π½Π°Π»ΠΎΠ³ ΠΏΠ°ΠΊΠ΅Ρ‚Π° GNU Coreutils, написанный Π½Π° языкС Rust. Π’ состав coreutils Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΎΠ»Π΅Π΅ ста ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ sort, cat, chmod, chown, chroot, cp, date, dd, echo, hostname, id, ln ΠΈ ls. ЦСлью ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся созданиС кроссплатформСнной Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Coreutils, срСди ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ способной Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… Windows, Redox ΠΈ Fuchsia.

Rust Coreutils задСйствован ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² выпускС Ubuntu 25.10 ΠΈ примСняСтся Π² дистрибутивах AerynOS (Serpent OS) ΠΈ Apertis (развиваСтся ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Collabora). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ GNU Coreutils рСализация Π½Π° Rust распространяСтся ΠΏΠΎΠ΄ пСрмиссивной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT, вмСсто ΠΊΠΎΠΏΠΈΠ»Π΅Ρ„Ρ‚-Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ GPL. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ написанныС Π½Π° Rust Π°Π½Π°Π»ΠΎΠ³ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠ² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ util-linux, diffutils, findutils ΠΈ procps, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ sed ΠΈ login.

Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Rust Coreutils:

  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с эталонным тСстовым Π½Π°Π±ΠΎΡ€ΠΎΠΌ GNU Coreutils, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ 544 тСста, Ρ‡Ρ‚ΠΎ Π½Π° 12 большС, Ρ‡Π΅ΠΌ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ вСрсии (532). 56 (68) тСстов Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΎΡΡŒ Π½Π΅ΡƒΠ΄Π°Ρ‡Π΅ΠΉ, Π° 33 (33) тСста Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ. ЗаявлСн ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ совмСстимости 85.80% (Π±Ρ‹Π»ΠΎ 83.91%).
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ data ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π² GNU date ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ часовых поясов (Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания сокращённых Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΉ часовых поясов Π² ΠΎΠΏΡ†ΠΈΠΈ β€”set).
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ factor задСйствован ΠΏΠ°ΠΊΠ΅Ρ‚ num_prime для ускорСния Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠΎΠ² u64/u128.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ tsort рСализация Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ±Ρ…ΠΎΠ΄Π° DFS ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° с рСкурсивного Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ для прСдотвращСния пСрСполнСния стСка.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ cksum Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ…ΡΡˆΠ΅ΠΉ sha2 ΠΈ sha3. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ тСсты для отслСТивания измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ cksum. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ hashsum пСрСнСсСна Π² cksum.
  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ mkdir устранСно ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка, приводящСС ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡŽ ΠΏΡ€ΠΈ создании большого (200+) числа Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².
  • Π£ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°Ρ… stdbuf ΠΈ uptime Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ OpenBSD.
  • Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° сборка ΠΈ тСстированиС Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ FreeBSD.
  • ВнСсСны ΠΎΠ±Ρ‰ΠΈΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ пСрСносимости.
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности, устранСны ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½Π΅Π΄ΠΎΡΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ base64, cat, chown, chsum, date, dd, du, factor, hashsum, install, ls, mkdir, od, printenv, printf, readlink, stdbuf, timeout, truncate, tsort, uptime, uudoc.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ расхоТдСниС Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Β«duΒ» ΠΈΠ· Π½Π°Π±ΠΎΡ€ΠΎΠ² uutils ΠΈ GNU Coreutils, Π²ΡΠΏΠ»Ρ‹Π²ΡˆΠ΅Π΅ послС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Ubuntu 25.10 Π½Π° uutils. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈ Π΄Π°Π½Π½ΠΎΠ΅ расхоТдСниС ΠΊΠ°ΠΊ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с ΠΎΠ΄Π½ΠΎΠΉ стороны Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ uutils Π΅ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ тСстовый Π½Π°Π±ΠΎΡ€ GNU Coreutils Π½Π΅ выявляСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны нСсовмСстимости с GNU Coreutils прСдписано ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ошибки ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Busybox соотвСтствуСт GNU Coreutils.

Π Π°Π·Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ Π² числС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Β«duΒ» Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Π² ситуации, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, /var ΠΈ /var/log). Uutils ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π° Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ строкС Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ суммарный Ρ€Π°Π·ΠΌΠ΅Ρ€ всСх ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ². GNU Coreutils ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ строкС фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Π½Π° дискС, Π½ΠΎ Π² Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ спискС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° с Π²Ρ‹Ρ‡Π΅Ρ‚ΠΎΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ получаСтся мСньшС фактичСского. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, значСния, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² GNU Coreutils ΠΈ Busybox, ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² зависимости ΠΎΡ‚ порядка указания ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

НапримСр, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² Β«/var/logΒ» ΠΈ Β«/varΒ», фактичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… 1540 ΠΈ 35495 Π±Π°ΠΉΡ‚, Π² GNU Coreutils Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ: du -smc /var/log /var 1540 /var/log 33955 /var # мСньшС фактичСского 35495 total du -smc /var /var/log 35495 /var # ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ /var ΠΈ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ /var/log 35495 total

Π’ uutils: du -smc /var/log /var 1540 /var/log 35495 /var 37033 total # большС фактичСского, Π½ΠΎ соотвСтствуСт суммС /var ΠΈ /var/log du -smc /var /var/log 35495 /var 1540 /var/log 37033 total # большС фактичСского, Π½ΠΎ соотвСтствуСт суммС /var ΠΈ /var/log

Π’ Busybox: du -smc /var/log /var 1540 /var/log 33955 /var # мСньшС фактичСского 35495 total du -smc /var /var/log 35495 /var # ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ /var ΠΈ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ /var/log 35495 total

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ