The OpenNET Project / Index page

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

Выпуск Rust Coreutils 0.6.0, повысивший совместимость с GNU Coreutils с 87% до 96%

03.02.2026 09:37 (MSK)

Опубликован выпуск проекта uutils coreutils 0.6.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 и acl, а также программ sed и login.

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

  • Достигнут уровень совместимости с эталонным тестовым набором GNU Coreutils - 96.28% (было 87.75%). Успешно выполнено 622 тестов, что на 56 больше, чем в прошлой версии (566). 16 (было 55) тестов завершилось неудачей, а 7 (было 23) тестов было пропущено. Наиболее значительное повышение совместимости отмечено для утилит sort, ls, date, cksum и tail.
  • Из date, sort, locale.rs и других утилит удалён код, в котором использовалось ключевое слово "unsafe".
  • Обращения к стандартной библиотеке libc заменены на эквивалентные защищённые вызовы, предоставляемые пакетом nix.
  • Улучшена обработка ошибок, исключены аварийные завершения при записи в /dev/full.
  • В утилите date реализована локализация названий месяцев и дней, учитывающая ICU. Обеспечено форматирование часов и календаря с учётом локали.
  • В утилите sort обеспечена сортировка чисел c разделителями тысяч и реализована обработка параметров +POS/-POS.
  • В утилиту join добавлена поддержка свойств локали "collation", позволяющих выполнять сопоставления с учётом смысла символов (например, при сравнении может не приниматься во внимание знак ударения).
  • Проведена оптимизация производительности утилит base32, base64, basenc и df.
  • В утилите uniq снижено потребление памяти при работе без учёта регистра.
  • В утилите shuf оптимизирован числовой вывод и добавлена опция "--random-seed".
  • В tsort исключена загрузка всех входных данных в память.
  • В утилиту tail добавлен флаг "--debug".
  • В утилите chmod решены проблемы с рекурсивным выполнением операций и добавлена опция "--preserve-root".
  • На Unix-подобных системах усилена безопасность при обходе содержимого каталогов.
  • В утилиты ls, id, mkdir, mkfifo и mknod добавлена поддержка механизма мандатного контроля доступа SMACK.
  • В систему непрерывной интеграции добавлена проверка сборки на 64-разрядных системах RISC-V с библиотекой musl.
  • Улучшена работа в Windows c использованием Cygwin.
  • Расширены возможности, устранены проблемы и добавлены недостающие опции для утилит arch, base64, basename, cat, chgrp, chmod, chroot, cksum, comm, cp, csplit, date, dd, df, dir, dirname, du, echo, env, expand, expr, fmt, fold, groups, hashsum, head, hostid, id, install, join, kill, ln, logname, ls, mkdir, mkfifo, mknod, mktemp, more, mv, nice, nl, nohup, nproc, numfmt, pr, printenv, printf, ptx, readlink, rm, rmdir, runcon, seq, shred, shuf, sort, split, stat, stdbuf, stty, sync, tac, tail, tee, test, timeout, touch, truncate, tsort, uname, unexpand, uniq, uptime, users, wc, yes, ucore, uucore, uudoc.


  1. Главная ссылка к новости (https://github.com/uutils/core...)
  2. OpenNews: Выпуск uutils 0.5, варианта GNU Coreutils на языке Rust
  3. OpenNews: Из-за ошибки в uutils в Ubuntu 25.10 перестала работать автоматическая проверка наличия обновлений
  4. OpenNews: Уязвимость в GNU sort, приводящая к выходу за границу буфера
  5. OpenNews: В Ubuntu 25.10 решено заменить GNU Coreutils на uutils, написанные на Rust
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64730-coreutils
Ключевые слова: coreutils, rust, uutils
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (113) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 10:02, 03/02/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +9 +/
     
     
  • 2.4, Аноним (4), 10:10, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +7 +/
     
     
  • 3.6, Аноним (4), 10:20, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.14, Аноним (-), 11:01, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +4 +/
     
     
  • 5.17, warlock66613 (ok), 11:20, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 6.51, Аноним (51), 12:49, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 6.65, Аноним (65), 14:27, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Но ассемблерные вставки всегда sound. Так что unsafe в этом случае имеет иной смысл и просто синоним "я не боюсь".

    Почему rust относится к программисту, как к глупому ребенку? Смотри, здесь ассемблер! Напиши unsafe и будь внимателен!

     
     
  • 7.80, Аноним (80), 15:27, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Идея такова, что этих программистов успешно заменит чатгпт, который натренируют на их коде. И чатпгт глупее ребёнка.
     
  • 7.92, Аноним (92), 15:57, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Почему rust относится к программисту, как к глупому ребенку?

    Раст относится к программисту как с серьезному человеку и старается ему помочь сделать этот мир лучше. Поэтому говорит "вот предыдущее я проверил, там все ок, а тут я не могу, так что давай ты сам".
    Не то что компилятор дыряхи - овно на вход, овно на выход.
    "И так сойдет" (с)

     
     
  • 8.96, Аноним (96), 16:43, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Такой и должен быть системный язык и его компилятор Ты на ассемблере когда-нить... текст свёрнут, показать
     
     
  • 9.99, Аноним (99), 16:49, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Писал А теперь сравни средний размер программы на асме и на сишке Будет где В... текст свёрнут, показать
     
     
  • 10.112, Аноним (65), 18:39, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не поверишь, но есть написать флаги для проверки кода, то компилятор покажет ... текст свёрнут, показать
     
     
  • 11.115, Аноним (-), 18:57, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ты не поверишь, но в ведре однажды решили включить -Werror И все развалилось в ... текст свёрнут, показать
     
     
  • 12.119, Аноним (96), 19:40, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Пф-ф-ф, а на расте ваще ядра нету ... текст свёрнут, показать
     
     
  • 13.121, Аноним (-), 19:51, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А это что github com redox-os kernel Три с половиной землекопа смогли написать ... текст свёрнут, показать
     
  • 3.9, Аноним (9), 10:36, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы специально так криво форматируете?
     
     
  • 4.10, Аноним (4), 10:52, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я случайно форматирование.
     
  • 3.33, Аноним (33), 12:12, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Какой ужасный синтаксис, где return?
     
     
  • 4.41, Карлос Сношайтилис (ok), 12:30, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Там же, где и begin/end
     
     
  • 5.54, Аноним (-), 13:08, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 6.63, Аноним (63), 14:11, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.11, Аноним (11), 10:57, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Хочешь оптимизаций добавляй unsafe. Чудес не бывает

    unsafe никак не связан с оптимизациями. Он лишь отключает запрет на доступ к нескольким небезопасным возможностям (типа разыменовантя сырых указателей) во время компиляции.

     
     
  • 3.26, Феникс123 (?), 11:34, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что позволяет применять оптимизации которые иначе компилятор не допускает т.к. не может просчитать их безопасность.

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

     
     
  • 4.34, Аноним (34), 12:22, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > если код у тебя safe то постоянно добавляются накладные расходы

    А пример привести сможете?
    Напр. на godbolt с асм выхлопом.

     
     
  • 5.58, Аноним (58), 13:32, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если этого не знаешь - пример не поможет.
     
     
  • 6.59, Аноним (11), 13:40, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Он тоже не знает, поэтому примера не будет.
     
  • 4.36, Аноним (11), 12:24, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Я это тоже заметил в расте, если код у тебя safe то постоянно добавляются накладные расходы, т.к. компилятор много чего просчитать не может.

    Safe сам по себе не добавляет накладных расходов, которые unsafe сам по себе магически убирает. Если ты САМ пишешь оптимизацию ручками, то да: ее может понадобиться частично или полностью зюобернуть в unsafe. Но само по себе наличие unsafe не дает каких-то моагических возможностей компилятору для автоматических оптимизаций.

     
  • 2.13, Аноним (11), 11:01, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>Проведена оптимизация производительности утилит base32, base64, basenc и df.
    > Посмотрел код. Хочешь оптимизаций добавляй unsafe

    Ты куда-то не туда смотрел. 😄 Вот pull request этой оптимизации, и unsafe в коде даже не упоминается:

    https://github.com/uutils/coreutils/pull/9632/changes

     
     
  • 3.15, Аноним (15), 11:11, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Вот pull request этой оптимизации, и unsafe в коде даже не упоминается:

    Зато он получил три плюсика и одобрение у всех ему поверившим.
    И заодно набросил про невозможность оптимизаций без unsafe.
    Молодец!

     
  • 3.21, Аноним (2), 11:26, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Смотреть сюда где +

    https://github.com/uutils/coreutils/commit/3c2f35837296bd4b3b751e0e1beb4229e8c

     
     
  • 4.22, Аноним (2), 11:27, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Строка 561
     
  • 4.35, Аноним (35), 12:22, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Смотреть сюда https://github.com/uutils/coreutils/pull/9632/commits "remove unsafe" и 2 и 3 коммит
     
     
  • 5.38, Аноним (35), 12:24, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И сюда https://github.com/uutils/coreutils/pull/9632/commits/dbeacf7c7d3cb588c3d2d95a

    TL;DR - Изначально в pull request было unsafe - к моменту его принятия unsafe уже не было.

     
     
  • 6.42, Аноним (11), 12:31, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 7.77, Аноним (96), 15:22, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 6.53, Аноним (53), 13:01, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > TL;DR - Изначально в pull request было unsafe - к моменту
    > его принятия unsafe уже не было.

    Т.е. таки смогли в оптимизации без unsafe, да?))

     
  • 4.43, Аноним (11), 12:36, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Смотреть сюда где +

    https://github.com/uutils/coreutils/commit/3c2f35837296bd4b3...

    А зачем мне смотреть коммит из пулл реквеста 2025 года, где, к тому же, unsafe убрали буквально в следующем коммите?

    https://github.com/uutils/coreutils/pull/9632/changes/dbeacf7c7d3cb588c3d2d95a

    Ну и самое главное: тат самый base_common.rs сейчас не содержит ни одного unsafe:

    https://github.com/uutils/coreutils/blob/main/src/uu/base32/src/base_common.rs

    Поэтому повторяю вопрос: куда ты смотрел?

     

  • 1.3, Аноним (4), 10:05, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    С такой скоростью разработки к поздней весне достигнут полного паритета по проходжению тестового набора.
     
     
  • 2.5, ebassi (?), 10:18, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    К тому времени Убунта 26.04 появится
     
     
  • 3.30, Аноним (-), 11:54, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > К тому времени Убунта 26.04 появится

    Будем надеяться что они всё успеют и утилиты будут поставляться с LTS версией.
    Может еще sudo-rs затянут.

     
  • 2.66, Аноним (65), 14:30, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Только полный паритет по тестам не значит полного паритета по работе, что уже раз сто обсуждалось.
     

  • 1.8, Маяковский (?), 10:34, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +23 +/
    где C++, там каждый байт — граната.
    где Rust, там каждая строка — петля.
    Один рванёт — и нету результата.
    Другой удавит, подло, втихаря.
     
     
  • 2.62, Аноним (62), 14:01, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но Маяковский в другом стиле писал, а ещё ёлью. Ви таки не настоящий!
     
     
  • 3.111, онанист (?), 18:16, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    реинкарнация
     

  • 1.16, Аноним (35), 11:17, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    > В отличие от GNU Coreutils реализация на Rust распространяется под пермиссивной лицензией MIT, вместо копилефт-лицензии GPL.

    Настоящая причина создания этого проекта.

     
     
  • 2.19, mos87 (ok), 11:24, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • –3 +/
     
  • 2.24, Аноним (24), 11:33, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –5 +/
    > Настоящая причина создания этого проекта.

    Так отлична же причина!
    Линукс начал очищаться от запретительной GPLv3 в пользу свободных лицензий.
    Как тут не порадоваться))

    А заодно со временем избавится от гнутых версий util-linux, diffutils, findutils, procps, acl, sed и login. Плюс заменит древнюю дыряху на нормальный язык.
    Шикарно же! Тот линукс, о котором мечтают все адекватные люди.

     
     
  • 3.27, Аноним (35), 11:42, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вместо бессмысленных споров о свободе хотела бы заметить, что корпорации стали "любить Open Source" как только они осознали, что это фактически бесплатная рабочая сила.
    См. также https://opensource.guide/starting-a-project/ и https://opensource.guide/how-to-contribute/ - инструкции, созданные GitHub (в подвале сайта) - т.е. Microsoft.
     
     
  • 4.29, Аноним (29), 11:49, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > как только они осознали, что это фактически бесплатная рабочая сила

    Так и есть. Они же не немамонты какие-то чтобы игнорировать такую халяву.
    А вот почему эта рабочая сила бесплатная нужно задавать вопросы бороде и его прихлебателям.
    Не зря же он писал в своем манифесте "ну будут программисты получать меньше, и чо?"

    > opensource.guide

    Первый раз вижу этот сайт.
    Вы бы хотя бы какое-то Open Source Initiative привели в пример, а не вообще непонятно что.

    А с другой стороны - гитхаб бесплатно предоставил ресурсы и возможности для сотен тысяч открытых проектов. Даже к тем, о которых МС даже не знает.
    Не сказать им спасибо - быть крайне неблагодарной мра.. ну вы поняли.

     
     
  • 5.31, Аноним (35), 11:58, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Open Source Initiative

    Они больше по юридической части.
    opensource.guide - что-то вроде "почему вам стоит заниматься open-source" ака работать за бесплатно - т.е. фокус на обычных людей.

     
  • 5.32, Аноним (35), 12:06, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    "крайне неблагодарной" В принципе согласна, только в добрые корпорации "Don't be evil" больше не верю :)

    https://en.wikipedia.org/wiki/Enshittification

     
     
  • 6.44, Аноним (44), 12:37, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 6.56, Аноним (56), 13:24, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > в добрые корпорации "Don't be evil" больше не верю :)

    Сам слоган "Don't be evil" не декларирует что будут добрыми, а только что не будут злыми.
    Можно быть neutral. А еще лучше Chaotic Neutral :)

    Вы сами что-то придумали про "добрые корпорации", а потом расстраиваетесь когда это оказывается не так.

     
  • 3.40, Аноним (44), 12:29, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И вейланд, вейланд!
     
     
  • 4.71, Аноним (-), 14:54, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.70, Аноним (-), 14:51, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.23, Фонтимос (?), 11:29, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Достигнут уровень совместимости ... 96.28% (было 87.75%)

    ага, про date тоже писали, что все пучком, а оказалось не фига, половину опций тупо заглушками реализовали...

     
     
  • 2.28, Аноним (29), 11:44, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ага, про date тоже писали, что все пучком

    Так с date и было "было пучком" на момент написания что "всё пучком".
    А почему убунтоводы взяли версию месчной давности - вопрос к убунтоидам.

    Ну и нужно понимать что это за цифры. Это успешность прохождения тестового набора GNU Coreutils. Если что-то тестом не покрыто, то отличие в имплементации будет даже при 100% прохождении тестов.

     
     
  • 3.67, Аноним (67), 14:30, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Если что-то тестом не покрыто, то отличие в имплементации будет даже при 100% прохождении тестов.

    И буквально везде надо акцентировать внимание, что это не тесты на совместимость. Это тесты нужные разработчикам, которые такими тестами проверяют то, в правильной работе чего на разных платформах они не уверены.

    То в чём уверены тестами не обкладывают.

     

  • 1.39, Анонимомус (?), 12:27, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    После перехода с GNU Coreutils на Rust Coreutils правильно будет называть систему Rust/Linux?
     
     
  • 2.45, kravich (ok), 12:38, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    uutils/Linux
     
  • 2.46, Аноним (44), 12:40, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Systemd/Linux уже забронировал эту возможность
     
  • 2.48, Аноним (51), 12:42, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.49, Аноним (49), 12:44, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это нужно еще GNU libc убрать
     
  • 2.64, Аноним (63), 14:14, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     

  • 1.47, Аноним (47), 12:41, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >удалён код, в котором использовалось ключевое слово "unsafe".

    А зачем тогда было добавлять в _НОВЫЙ_ код, который пишется _С НУЛЯ_ этот unsafe. Если надо было сделать быстрее, то смысл проекта утрачивается. Если изначально люди делали которые без unsafe не осилили...а зачем тогда вообще брались ?

     
     
  • 2.50, Аноним (53), 12:47, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А зачем тогда было добавлять в _НОВЫЙ_ код, который пишется _С НУЛЯ_ этот unsafe.

    Потому что не все можно сделать без unsafe. Это понимают все, кто пишет на раст.
    Если в лоб переписывали кода с бсд утилити, то там без unsafe скорее всего никак, потому что на дыряхе. А чтобы от него избавиться, нужно напр. менять структуры данных и/или взаимодействие объектов.

    > Если изначально люди делали которые без unsafe не осилили...а зачем тогда вообще брались

    Могли придти другие люди, которые смогли.
    Могли эти обучиться и смочь самостоятельно.
    Важен же только результат - в коде нет unsafe.

     
     
  • 3.52, Аноним (52), 12:59, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >  А чтобы от него избавиться, нужно напр. менять структуры данных и/или взаимодействие объектов.

    В некоторых случаях нужно будет менять сам Rust, так как без unsafe он не может в принципе реализовывать некоторые алгоритмы и структуры данных.

     
     
  • 4.55, Аноним (4), 13:09, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 3.81, Аноним (96), 15:29, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > А чтобы от него избавиться, нужно напр. менять структуры данных и/или взаимодействие объектов.

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

     
  • 3.120, Аноним (120), 19:51, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.122, Аноним (-), 19:53, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.57, Аноним (58), 13:24, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Наиболее значительное повышение совместимости отмечено для утилит sort, ls, date, cksum и tail.

    И это всего лишь базовые тривиальные утилиты.

     
     
  • 2.74, Аноним (-), 15:07, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Осель же наконец теминал! Кода выучишь sed или awk, bash-скрипт - то познаешь Дзен. И эти базовые утилиты превратятся в незаменимых помощников.
     
     
  • 3.83, Аноним (83), 15:30, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >выучишь sed или awk, bash-скрипт - то познаешь Дзен

    Кто то где то не умеет, sed или awk (думаю это 0,01% на планете), и не познал Дзен.

     
  • 2.86, Аноним (86), 15:34, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > И это всего лишь базовые тривиальные утилиты.

    Ох уж эти опеннетные непризнанные гении от п(р)ограммирования. ls на 5(!) с гаком тыщ строк им тривиален 🙄
    https://cgit.git.savannah.gnu.org/cgit/coreutils.git/tree/src/ls.c
    tail на 2500 тоже ...
    как в прочем и date c вооот-такенным маном и поддеркой RFC/ISO/локалей/часовых поясов (и их сокращений) и т.д и т.п.

    Как жаль, что гении не пишут код ☹

     

  • 1.60, Jh (?), 13:44, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Rust создали чтобы всё переписать на Rust.
     
     
  • 2.97, Аноним (58), 16:43, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > всё переписать

    Когда Qt перепишут?

     
     
  • 3.106, Аноним (106), 17:10, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Спроси у владельцев Qt.

    Хотя те решили сделать что-то иное: https://www.qt.io/press/qt-group-unveils-expansion-plans-for-technology-agnost

     

  • 1.61, Аноним (61), 13:48, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Интересно, а что с производительностью, по сравнению с GNU Coreutils?
     
     
  • 2.73, Аноним (73), 15:02, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, а что с производительностью, по сравнению с GNU Coreutils?

    Что-то лучше, что-то хуже.

    Напр. base64 медленнее на некоторых больших файлах.
    А tr была в 9.8x slower, а сейчас в 1.58x faster.
    sort: 3.72x faster (regular), 1.46x faster (numeric)
    factor - медленнее

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

     
     
  • 3.76, Аноним (80), 15:18, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На каких данных? Как бы не оказалось, что сишный код тоже можно ускорить в 100 раз с минимумом затрат. Просто, какой смысл? Все эти растовские "у нас быстрее" такой идиотизм всегда. Я проверял, плюсы могут гораздо эффективнее работать с файлами -- скажем, с чтением разница не на уровне погрешности. Нужно всего лишь извратиться со стандартной библиотекой немного и с шланговой libcxx хуже работает, чем с гнутой. Зависимость от тулчейна. Только в итоге всё равно видно в основном на быстрых на ssd и гигантских файлах (читающихся целиком в память).
     
     
  • 4.85, Аноним (85), 15:31, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Как бы не оказалось, что сишный код тоже можно ускорить в 100 раз с минимумом затрат.

    "Я тоже так могу, просто не хочу" (с)

    > Нужно всего лишь извратиться со стандартной библиотекой немного

    Как же хорошо что нормальные разабы не извращаются :)

     
  • 4.88, Аноним (-), 15:44, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > сишный код тоже можно  ускорить в 100 раз с минимумом затрат. Просто, какой смысл?

    Действительно.
    Оно ж всё равно останется дырявым.
    Будешь так же ловить CVEшки и выдавать какирам рут, но быстро-быстро))

    > Нужно всего лишь извратиться

    Как обычно)

     
     
  • 5.91, Аноним (80), 15:53, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так лучше дырявое, но не падающее в сегфолты и паники по кд. Я оценил рипгреп -- подобные косяки у всех растописак, как я посмотрю. Может, когда-нибудь станет юзабельно, не в ближайшие 10 лет.
     
     
  • 6.94, Аноним (-), 16:40, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну так лучше дырявое, но не падающее в сегфолты и паники по кд.

    Лол, т.е тебе норм что твой комп будет как общественный туалет где-то на трассе М5?
    Твое право.

    > Я оценил рипгреп -- подобные косяки у всех

    есть.
    Вопрос в последствиях.


    > Может, когда-нибудь станет юзабельно, не в ближайшие 10 лет.

    Вангования от ыкспердов это всегда весело (нет).
    Вон уже Linux From Scratch выкидывает дидовые копролиты.
    Так что может уже лет через пять оплотом гнутых утилит будет всякая маргинальщина, как сейчас с системд.


     
     
  • 7.101, Аноним (80), 16:55, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 7.110, Аноним (58), 17:41, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > комп будет как общественный туалет

    Нет, у меня нету карги и раста.

     
  • 2.75, Аноним (-), 15:11, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Интересно, а что со временем при компиляции из исходных кодов, по сравнению с GNU Coreutils?

    Интересно, а что с размером бинарников, по сравнению с GNU Coreutils?

     
     
  • 3.79, Аноним (80), 15:24, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не забывай про сотни гигабайт временных файлов. Ресурс ссд не бесконечный, такие "разработчики" сознательно уничтожают железо конкурентов.
     
  • 3.82, Аноним (85), 15:29, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 4.87, Аноним (86), 15:42, 03/02/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.89, Аноним (86), 15:45, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Интересно, а что с размером бинарников, по сравнению с GNU Coreutils?

    pkg rquery %sh-%n coreutils rust-coreutils

    18.5MiB-coreutils
    11.3MiB-rust-coreutils

     
     
  • 4.93, Аноним (80), 16:10, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так там 1 блоб против раздельных файлов?
     
     
  • 5.102, Аноним (86), 17:02, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Так там 1 блоб против раздельных файлов?

    Э-э ... и чо? Тот же busybox/toybox (или бздшный /rescue ) -- тайно переписали на расте или "это другое!"?


     
     
  • 6.107, Аноним (80), 17:12, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Статическая линковка в 1 блоб устраняет довольно много паразитных данных бинарей динамической линковки, только в конечном счёте динамическая линковка выгоднее всегда. Если же статически линковать в раздельные файлы, то пакет получится совсем уж раздутый одними и теми же данными. Когда вызываешь этот блоб тысячу раз в секунду, становится заметно.
     
     
  • 7.109, Аноним (86), 17:19, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Если же статически линковать в раздельные файлы, то пакет получится совсем уж раздутый
    > одними и теми же данными.

    Там один блоб и симлинки на него. В случае бсдшного /rescue - один блоб с хардлинками. И чей-то мне не очень верится, что будет какая-то ощутимая разница даже при тыще вызовов один раз замапленого в память блоба.

     
     
  • 8.116, Аноним (80), 19:03, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так без KSM только динамические библиотеки шарят память При статической линковк... текст свёрнут, показать
     
  • 4.95, Аноним (58), 16:42, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Дак на расте ещё не вся функциональность сделана.
     
  • 4.105, Аноним (80), 17:04, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Подозреваю, зависимости очень криво тобой посчитаны. Зависимости  uutils-coreutils так и вовсе зачем-то пытаются линковаться с гццшной либстд.

    Вот, к примеру, gnu coreutils (собрано раздельными файлами, не учитывает openssl, gnupg, и всё остальное)


      * sys-apps/coreutils-9.9-r12
             Total files : 250
             Total size  : 7.07 MiB


     
     
  • 5.108, Аноним (86), 17:14, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Подозреваю, зависимости очень криво тобой посчитаны. Зависимости  uutils-coreutils так
    > и вовсе зачем-то пытаются линковаться с гццшной либстд.

    Подозревай. На реальность это никак не влияет.

    % pkg rquery %dn rust-coreutils    
    oniguruma
    % pkg_deps_all rust-coreutils | xargs -n1 pkg rquery "%sh-%n"
    1.02MiB-oniguruma

    pkg_deps_all coreutils | xargs -n1 pkg rquery "%sh-%n"    
    12.6KiB-indexinfo
    2.00MiB-gettext-runtime

    Прикол тут в вот этом, маленьком нюансе:
    % pkg rquery "reponamme %R-%sh-%n" coreutils rust-coreutils                              
    reponamme FreeBSD-18.5MiB-coreutils
    reponamme FreeBSD-11.3MiB-rust-coreutils


     

  • 1.68, Аноним (68), 14:36, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Осталось избавится от glibc, gcc и bash.
     
     
  • 2.72, Аноним (51), 14:55, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > glibc

    c-ward

    > gcc

    clang

    > bash

    fish

     
     
  • 3.78, Аноним (80), 15:22, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С опытом к тебе придёт понимание, что это не конкуренты. В целом, польза от альтернатив имеется, только в итоге некоторые опенсорсные проекты корпорации завязывают на эти кривые альтернативы, и вот это уже не айс.
     
     
  • 4.84, Аноним (4), 15:30, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Скажем так. На GNU et al. свет клином не сошелся, а многим пуританские плащи пошивочной фабрики им. пятилетки FSF жмут в плечах.

    > конкуренты

    Иногда даже не нужно ничего спрашивать, и воспитанники культур с zero-sum thinking сами о себе расскажут.

     

  • 1.69, Аноним (69), 14:45, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Голубая луна всему виной - все в округе говорили,
    Этой странной любви, этой странной любви, Убунте так и не простили...
     
  • 1.90, Аноним (90), 15:52, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Обращения к стандартной библиотеке libc заменены на эквивалентные защищённые вызовы, предоставляемые пакетом nix.

    Чем безопаснее ещё одна прокладка? libc та же, вызовы те же, всё тот же Rust...
    Чтобы в исходниках проекта было красиво, без unsafe? Как-то нелепо, учитывая nix и статическую линковку.

     
     
  • 2.98, Аноним (4), 16:43, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    For many system APIs, Nix provides a safe alternative to the unsafe APIs exposed by the libc crate. This is done by wrapping the libc functionality with types/abstractions that enforce legal/safe usage.

    '''
    // libc api (unsafe, requires handling return code/errno)
    pub unsafe extern fn gethostname(name: *mut c_char, len: size_t) -> c_int;

    // nix api (returns a nix::Result<OsString>)
    pub fn gethostname() -> Result<OsString>;
    '''

    То есть: libc дает лезвие, острое, заточеное со всех сторон и без ручки. Nix обматывает лезвие армированой изолентой. Не то, чтобы очень удобно, но хоть порезаться шансов меньше.

     
     
  • 3.100, Аноним (90), 16:54, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Склалывается впечатление, что тут просто добавили прокладку, чтобы со взимодействием с libc парился кто-то другой.
     
     
  • 4.103, Аноним (4), 17:02, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В том числе. Пусть ꙮ глаз смотрят в несколько мест. В каждом проекте свои обертки над unsafe  API - так себе затея.
    То есть, та же история, что и с clap, serde, rand и рядом других.
     
  • 2.104, Аноним (104), 17:04, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Чем безопаснее ещё одна прокладка? libc та же, вызовы те же, всё тот же Rust...

    Тем что она агрегирует обработку ошибок в одном месте и позволяет не писать велосипеды каждый раз когда нужно вызвать функцию.

    Напр. gethostname (github.com/nix-rust/nix/blob/master/src/unistd.rs#L1332)

    Создали буфер, сделали unsafe запрос, убедились что результат null-terminated, вернули или его, или ошибку.
    И так бы это все пришлось писать в каждом вызове gethostname.

    Это практически со всеми функциями - возврат нормального Result вместо int, который тупо можно проигрорить.

     

  • 1.113, Кошкажена (?), 18:42, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > среди прочего способной работать на платформах Windows, Redox и Fuchsia

    Очень нужно (нет).

     
  • 1.114, Аноним (114), 18:50, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Раст уже не модно, уже есть более безопасный Lean, пора на нём все переписывать
     
     
  • 2.117, Аноним (-), 19:05, 03/02/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Э ты это серьезно Тут у неосиляторов опилки в голове подгорают от нипанятны... большой текст свёрнут, показать
     

  • 1.118, anonymous (??), 19:13, 03/02/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот, правильный никс. Мы не выбрасываем старый добрый софт, мы его замещаем, ориентируясь на сохранение совместимости.

    Вяленому стоило бы поучиться.

     

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



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

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