Релиз минималистичного набора системных утилит BusyBox 1.25

Увидел свет релиз пакета BusyBox 1.25.0 с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Первый выпуск новой ветки 1.25 позиционируется как нестабильный, полная стабилизация будет обеспечена в версии 1.25.1, которая ожидается примерно через месяц. Код проекта распространяется под лицензией GPLv2.

Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.24.2 потребление оперативной памяти типовой сборкой BusyBox 1.25.0 уменьшилось на 689 байт (с 894406 до 893717 байт).

BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд, так и путём заключения внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. Для производителей, которые не желают открывать исходные тексты модифицированных компонентов, в рамках проекта Toybox развивается аналог BusyBox, распространяемый под лицензией BSD (2 clause). По возможностям Toybox пока отстаёт от BusyBox.

Основные новшества BusyBox 1.25:

  • Новые утилиты ubirename, blkdiscard, unshare и nsenter;
  • В cpio реализована опция »-R» (»--owner»);
  • В gunzip добавлена поддержка длинного синтаксиса задания опций (»--имя»);
  • В gzip добавлена опция »--no-name»;
  • В nandwrite реализован режим »-n» для чтения/записи без учёто кодов коррекции ошибок;
  • Добавлена поддержка команды 'ip neigh';
  • В cp добавлены опции »-u»/»--update» и »--remove-destination»;
  • В iproute добавлена поддержка параметра «scope»;
  • В mount добавлена опция «nofail»;
  • Улучшена работа встроенного сервера синхронизации точного времени (ntpd);
  • В sed обеспечена работа конструкции 's///w FILE', добавлена поддержка выражения »-f -», обеспечен разбор символов \n, \r и \t в командах «i» и «a»;
  • В setarch добавлена команда '-R' (отключение рандомизации);
  • В setsid добавлена команда »-c»;
  • В sort налажена обработка конечного символа (ENDCHAR) в выражении »-kSTART, N.ENDCHAR»;
  • В tar добавлена проверка для защиты от записи в символические ссылки и реализована опция »--strip-components=N»;
  • В dumpleases добавлена опция »-d» для показа времени в секундах;
  • В blkid добавлена поддержка bcache;
  • В chpasswd добавлена опция »-c»;
  • В dd добавлена поддержка выражения «iflag=skip_bytes»;
  • В tr обеспечена возможность указания восьмеричных диапазонов;
  • В ash добавлено ключевое слово 'function', в функциях разрешено использование только локальных переменных;
  • Реализована поддержка вызова «busybox утилита» при отключении busybox;
  • Обеспечена возможность сборки утилиты stat на системах, отличных от Linux;
  • Улучшена поддержка Си-библиотеки musl;
  • Устранено переполнение буфера во встроенном HTTP-сервере (httpd);

© OpenNet