The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск uutils 0.9, варианта GNU Coreutils на языке Rust

30.05.2026 20:58 (MSK)

Опубликован выпуск проекта uutils coreutils 0.9.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 и частично в Ubuntu 26.04. Rust Coreutils также применяется в дистрибутивах AerynOS (Serpent OS) и Apertis (развивается компанией Collabora). В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL. Дополнительно той же командой разработчиков развиваются написанные на Rust аналоги наборов утилит util-linux, diffutils, findutils, procps и acl, а также программ sed и login.

В новой версии Rust Coreutils:

  • Уровень совместимости с эталонным набором тестов GNU Coreutils составил 90.58% (было 94.74%). Успешно выполнено 625 тестов, что на 5 меньше, чем в прошлой версии (630). 56 тестов завершилось неудачей (было 21), один тест привёл к ошибке, а 8 тестов было пропущено (было 14). Снижение уровня совместимости объясняется обновлением набора тестов до состояния выпуска GNU Coreutils 9.11, в котором добавлено 25 новых тестов.
  • Устранены 44 уязвимости, выявленных в ходе аудита, проведённого компанией Zellic. Большинство уязвимостей вызвано расхождением поведения с GNU coreutils или состоянием гонки, позволяющим изменить данные в момент после проверки корректности информации, но до выполнения операции с ними, например, подменить файл на символическую ссылку в момент между завершением проверки и началом выполнения операции. В контексте использования утилит cp, chmod и mv в системных скриптах, запускаемых с правами root, подобные уязвимости позволяют скопировать или перезаписать произвольные файлы. Для защиты от уязвимостей, вызванных состоянием гонки в проекте задействован модуль uucore::safe_copy. Информация об уязвимостях опубликована в отдельной новости.
  • Продолжен перевод утилит на crate-пакет rustix вместо crate-пакета nix. На rustix переведены утилиты id, tr, timeout, sort, wc, tail, cp, who и factor. Проведена чистка кода от unsafe-операций в различных утилитах.
  • В утилитах cat, wc, head, tail, yes, cp, tee и unexpand задействованы обработчики ввода/вывода на базе системных вызовов splice(), tee() и pipe(), позволившие ускорить работу за счёт исключения лишнего копирования данных между буферами.
  • Улучшена совместимость с GNU Coreutils утилит numfmt, date, tr, cksum, factor, head, stat и sort.
  • В утилиты ln, dd, mktemp и tty добавлена поддержка сборки в формате WebAssembly и использования интерфейса WASI (WebAssembly System Interface).
  • Расширены возможности, устранены проблемы и добавлены недостающие опции для утилит cat, chroot, cksum, cp, date, dd, df, dirname, du, echo, env, expr, factor, fmt, head, id, install, join, ln, logname, ls, md5sum, mkdir, mknod, mktemp, more, mv, nl, nohup, nproc, numfmt, od, paste, pinky, pr, realpath, rm, rmdir, shred, sort, split, stat, stdbuf, stty, sum, sync, tail, tee, timeout, touch, tr, tty, unexpand, uniq, uptime, wc, who, yes.


  1. Главная ссылка к новости (https://github.com/uutils/core...)
  2. OpenNews: В Rust Coreutils выявлено 113 уязвимостей. В Ubuntu 26.04 возвращены cp, mv и rm из GNU Coreutils
  3. OpenNews: Выпуск GNU Coreutils 9.11
  4. OpenNews: Выпуск uutils 0.8, варианта GNU Coreutils на языке Rust
  5. OpenNews: Выпуск дистрибутива Apertis 2026, позволяющего не использовать код под лицензией GPLv3
  6. OpenNews: В Ubuntu 26.10 намерены добавить ntpd-rs и прекратить поддержку Btrfs, XFS, ZFS, LVM и LUKS в /boot
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65586-uutils
Ключевые слова: uutils, coreutils, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (63) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:17, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >Устранены 44 уязвимости, выявленных в ходе аудита, проведённого компанией Zellic

    надо ии мифоса натравить, интересно что оно скажет.

     
     
  • 2.5, Аноним (5), 21:56, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Надо сначала хоть как-то пройти тесты...

    > выполнено 625 тестов, что на 5 меньше, чем в прошлой версии (630). 56 тестов завершилось неудачей (было 21)

     
     
  • 3.11, aname (ok), 22:31, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Определённо прогресс!

    Так победят!

     
  • 2.69, Джон Титор (ok), 01:20, 01/06/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.2, Аноним (2), 21:20, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    си + ии выглядит интереснее чем этот ужас летящий на крыльях ночи
     
     
  • 2.14, q (ok), 23:00, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • +7 +/
    в си уже сделали, чтобы int + int не был undefined behavior?
     
     
  • 3.20, Аноним (20), 00:16, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Оценка пригодности Rust для создания прошивок к микроконтроллерам

    Оценили для одной, двух или даже трёх архитектур?

     
  • 3.22, Zzzzz (?), 00:26, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Берешь перед сложением и проверяешь будет оверфлоу или нет и если будет, то сразу делаешь exit + core dump, чтобы было как тебе нравится)))
     
     
  • 4.56, morphe (?), 18:10, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как проверяешь? FYI: проверка a + b < a почему-то любимая отдельным сишниками содержит UB
     
     
  • 5.75, Zzzszz (?), 11:35, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У тебя есть максимальное и минимальное значение целого числа со знаком. Их ты и используешь, чтобы понять.

    Если хочется по-сложному, то можно считать постусловие для каждой операции и выводить предикат, потом этот предикат будет посусловием для предыдущей операции.

    https://m.books.ru/books/programmnoe-obespechenie-bez-oshibok-priemy-i-sekrety

     
  • 3.23, Аноним83 (?), 00:31, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поведение - на совести С програмиста.
     
     
  • 4.51, Zzzzz (?), 13:40, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В этом и смысл программирования, что у тебя есть ограниченный набор битов в регистре, если ты понимаешь, что с этим делать, то ты программист, а если не понимаешь, то нет.

    Всё остальное абстракции для тех, кому это не надо.

    Если ты понимаешь, что числа с плавающей точкой это лишь модель вещественного числа, то ты их не используешь для хранения денег на счетах клиентов в банке.

    И т.д. и т.п.

     
  • 3.31, Феникс123 (?), 05:17, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В расте тоже странно: паника в дебаге и переход через минимум в релизе.
     
     
  • 4.39, Твайлайт Спаркл 2 (?), 09:11, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    [profile.release]
    overflow-checks = true

    И поведение в релизе будет таким же.

     
  • 4.54, Facemaker (?), 15:30, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В Rust, если нужно, используешь saturating_add и тому подобные функции, а не гадаешь.
     
     
  • 5.57, Феникс123 (?), 18:31, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Как и в С++
     
  • 5.60, анондирован (?), 19:54, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    std::saturating_add из C++ заголовка <numeric>
    Это реализуется совсем просто и в C :)
     
  • 3.32, Аноним (32), 05:29, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, флагами компилятора.
     
  • 3.66, Аноним (66), 20:49, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >в си уже сделали, чтобы int + int не был undefined behavior?

    Пффф, в js 1+1=11 однозначно!

     
     
  • 4.72, q (ok), 08:32, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Такое только у чебуреков, складывающих ежика с зайчиком. Рынок уже давно на тайпскрипте, а жс-пуристы считают копейки, выбирая красные ценники в пятерочке по акции.
     
     
  • 5.73, Аноним (66), 10:50, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >а жс-пуристы считают копейки, выбирая красные ценники в пятерочке по акции.

    Ты перестал выбирать красные ценники в пятёрочке?!! - Предатель!

     

  • 1.3, Аноним (3), 21:24, 30/05/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –3 +/
     
  • 1.4, Аноним (5), 21:49, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Уровень совместимости с эталонным набором тестов GNU Coreutils составил 90.58% (было 94.74%).

    Ну понятно, разработка в обратную сторону.

     
     
  • 2.67, Аноним (67), 21:41, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    но зачем дочитывать до места, где говорится что было добавлено 25 новых тестов, правда? Или ты дочитал, но постеснялся цитировать?
     
     
  • 3.74, анон2 (?), 11:34, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >было добавлено 25 новых тестов

    не только в этом дело, проходимость не только в процентном объёме уменьшилась

    >Успешно выполнено 625 тестов, что на 5 меньше, чем в прошлой версии (630)

    они помимо того, что добавили новые - обновили старые и поэтому 5 старых перестали проходить (или может больше 5 старых, если с какими-то новыми тестами повезло).

     

  • 1.6, Аноним (20), 22:03, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >Целью проекта является создание кроссплатформенной альтернативной реализации Coreutils, среди прочего способной работать на платформах Windows, Redox и Fuchsia.
    >Fuchsia

    Как будто туда пустят coreutils и дадут вам терминал не за десятью слоями Qemu. Держите карман шире.

     
  • 1.8, Аноним (8), 22:19, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Шляпа. Пока раст в GCC не завезут не имеет смысла. Сишные либы и ядро в тарболах, а не на гитлабе который может быть заблокирован в любой момент.
     
     
  • 2.21, Аноним (20), 00:21, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >Пока раст в GCC не завезут не имеет смысла.

    Раст в GCC завозят так же как и Go - когда завозят, есть по пять версий впереди. Завозят для отмашки, якобы язык не одной реализации и не одного платинового спонсора.

    При этом до go хотя бы дошло, что тянуть репозитории из определённого места в интернете для языка, на котором этот интернет будет строиться - очень плохая идея.

     
  • 2.61, анондирован (?), 19:55, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Rust код компилируется LLVM написанным на C++. Есть также Rust бэкенды к rustc - экспериментальный Cranelift
     

  • 1.9, ptr (ok), 22:27, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ничего не имею против переписывания GNU Coreutils на Rust, но накатывать такое на продуктивную систему выглядит явно преждевременным. Вот через годик после того, как их включат и стабилизируют в RHEL, можно будет рискнуть.
     
     
  • 2.12, Tron is Whistling (?), 22:43, 30/05/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Придётся таки накатывать что-то на репродуктивную систему.
     
  • 2.24, Аноним (24), 01:12, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну на промышленную систему согласен - рановато, надо обкатать больше. И тут спасибо, что вовремя ребята озаботились тестированием и устранением ошибок. А на домашних компах - уже года 2 как пользуюсь.
     
     
  • 3.62, анондирован (?), 19:56, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Полностью удалил Ubuntu со всех домашних компов давным давно.
     

  • 1.10, aname (ok), 22:31, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > состоянием гонки, позволяющим изменить данные в момент после проверки
    > корректности информации, но до выполнения операции с ними, например,
    > подменить файл на символическую ссылку в момент между завершением
    > проверки и началом выполнения операции

    Б- Безопасность!

     
     
  • 2.19, омнонмонм (?), 00:13, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это безопасные ошибки.

    Если с памятью и на С - это опасные.

    Если не на С - безопасные.

     
     
  • 3.25, aname (ok), 01:13, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ради этого стоило переписывать
     
  • 2.35, Прохожий (??), 07:31, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сколько людям ни говори, что Rust не предоставляет гарантию на все возможные классы ошибок, а только на некоторые, им, что в лоб, что по лбу.

    Вот к чему вы это написали? Что сказать хотели? Логические ошибки - да, случаются. Других же ошибок, типичных для того же C, зато нет. Да, ради этого стоило переписывать. Кроме того, с вас ни копейки не взяли. Так чем вы недовольны?

     
     
  • 3.41, Аноним (41), 09:48, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А потому что уже давно существовали гораздо более безопасные и зрелые языки. Но что-то никто на них не переписывал. Но как только раст появился, так все как побежали, как побежали переписывать!
     
     
  • 4.50, q (ok), 12:56, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Но что это за языки, ты никому не скажешь.
     
     
  • 5.63, анондирован (?), 19:57, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ada :)
     
  • 3.52, aname (ok), 15:21, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сколько людям ни говори, что Rust не предоставляет гарантию на все возможные
    > классы ошибок, а только на некоторые, им, что в лоб, что
    > по лбу.
    > Вот к чему вы это написали? Что сказать хотели? Логические ошибки -
    > да, случаются. Других же ошибок, типичных для того же C, зато
    > нет. Да, ради этого стоило переписывать. Кроме того, с вас ни
    > копейки не взяли. Так чем вы недовольны?

    Потому, что надо "не кровати двигать" ©

    А пока сумасшедшие носятся с божественностью раста, их будут тыкать их мордой в их же высеры.

     
  • 2.42, ИмяХ (ok), 10:17, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Нужно переписать на язык, который гарантирует безопасность от подмены файлов.
     

  • 1.15, Аноним (15), 23:29, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А новые CVE будут?
     
     
  • 2.18, омнонмонм (?), 00:12, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Для того и выпустили
     

  • 1.16, Аноним (16), 23:36, 30/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Rust Coreutils задействован по умолчанию ... частично в Ubuntu 26.04

    Поторопились, ИМХО... Интересно, обновлять будут?

    В 26.04 вроде ещё и какие-то сложности с переключением с rust-coreutils на gnu-coreutils (зачем так прибивать гвоздями в LTS?).

     
     
  • 2.45, Аноним (16), 10:32, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    За что минус? За то, что достаточно серьёзное обновление утилит вполне может не попасть в 26.04? Или что переключиться на gnu-coreutils не так просто? Я-то тут вообще при чём? :))
     
     
  • 3.70, Аноним10084 и 1008465039 (?), 05:00, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Никогда не спрашивай, за что минус. Ещё больше наставят
     
  • 3.71, Аноним (71), 07:37, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ахаха... Какой вы смешной)
    Всем пофиг на плюсы и минусы, тем более на openet, главное аргументы и культурный диалог.
     

  • 1.26, Аноним (26), 02:02, 31/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > ускорить работу за счёт исключения лишнего копирования данных между буферами

    Про это мы слышим каждую неделю, только там вместо "буфера" используется словосочетание "страничный кеш". От ошибок навроде отравления/подстановки кеша раст не спасет.

     
  • 1.28, Аноним (28), 02:40, 31/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Снижение уровня совместимости объясняется обновлением набора тестов до состояния выпуска GNU Coreutils 9.11, в котором добавлено 25 новых тестов

    Под каждой новостью говорил, что эти тесты ничего не значат, потому что не гарантируют одинакового поведения.

    >расхождением поведения с GNU coreutils или состоянием гонки, позволяющим изменить данные в момент после проверки корректности информации, но до выполнения операции с ними

    Мда, а ведь кто-то серьёзно это на свою систему ставит. Ещё лет 5 это не будет готово, а нужно ли это будет через 5 лет большой вопрос, поскольку все ошибки работы с памятью в coreutils с ИИ найдут.

     
     
  • 2.36, Прохожий (??), 07:37, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Ещё лет 5 это не будет готово, а нужно ли это будет через 5 лет большой вопрос, поскольку все ошибки работы с памятью в coreutils с ИИ найдут.

    Кто-то запрещает тот же ИИ применить для доведения этих утилит до готовности? Уверен, токенов на это уйдёт гораздо меньше, чем поиск всех ошибок в коде на Си.

     
     
  • 3.40, Аноним (28), 09:29, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Кто-то запрещает тот же ИИ применить для доведения этих утилит до готовности?

    Ещё раз, чем готовность этих утилит измеряется?

    >Уверен, токенов на это уйдёт гораздо меньше, чем поиск всех ошибок в коде на Си

    А я нет, потому что coreutils применяются повсеместно и они проверены временем.

     
     
  • 4.44, Аноним (24), 10:25, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >А я нет, потому что coreutils применяются повсеместно

    Про busybox и тп мсье не слышал?
    >проверены временем

    Бгггг. Список CVE в корутилсах сам найдешь? Ошибки, которые не исправляются _десятками_ лет - сам найдешь? Проверенные временем дыряхи, ага.

     
     
  • 5.47, Аноним (47), 10:50, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Список CVE в корутилсах сам найдешь?

    А ничего, что coreutils значительно старше uutils? Может, нужно экстраполировать ошибки вторых к возрасту первых?

    >Ошибки, которые не исправляются _десятками_ лет - сам найдешь?

    Конечно! Вот, прям в статье указано, что какие-то тесты годами пройти никак не могут.

     
  • 2.43, Аноним (24), 10:23, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Под каждой новостью говорил, что эти тесты ничего не значат, потому что не гарантируют одинакового поведения.

    Тесты совместимости гарантируют совместимость. Причем тут поведение? Вы учились на гуманитарном?
    >Мда, а ведь кто-то серьёзно это на свою систему ставит.

    А в чем проблема? В новом софте ошибки есть всегда. И качество проекта определяется способностью разработчиков эти ошибки признавать и оперативно исправлять. Исправили, молодцы.

     
     
  • 3.46, Аноним (47), 10:44, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Тесты совместимости гарантируют совместимость. Причем тут поведение? Вы учились на гуманитарном?

    Цели проекта прочитайте. Цель - написать полный аналог coreutils, причём повторить даже баги, а любое несоответствие считается ошибкой. Тесты совместимости такого гарантировать не могут.

    >А в чем проблема?

    Да, собственно, ни в чём. Если хотят себе вызовов и проблем на пустом месте, то пожалуйста.

     
  • 3.49, Аноним (49), 11:24, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Переписывали чтобы исправить ошибки и наделали ошибок. Да, все правильно сделали.
     
  • 3.53, Аноним (5), 15:28, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В новом софте ошибки есть всегда

    Во-первых, это далеко не новый софт, а отлаженные десятилетиями системные корневые утилиты.
    Во-вторых, переписывают на раст. На расте всегда будут ошибки?!

     
  • 2.58, Аноним (20), 19:01, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Они пишут не для того, чтобы заменить пользователям. Они пишут для того, чтобы это было не GPL.
     

  • 1.48, Аноним (49), 11:23, 31/05/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Тот случай когда переписывальщикам надо было бы себе задать вопрос - "можно, а зачем?"
     
     
  • 2.64, анондирован (?), 19:58, 31/05/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Было достаточно sudo-rs, но ... M$ этого мало.
     
  • 2.76, Соль земли2 (?), 13:06, 01/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ...спрашивать твоего мнения?
     

  • 1.68, Джон Титор (ok), 01:18, 01/06/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру