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

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

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

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

В версии BusyBox 1.28 выделяются следующие изменения:

  • Добавлено приложение arch для вывода информации об аппаратной архитектуре (аналог «uname -m»);
  • В набор klibc-utils включены новые приложения resume, nuke и minips;
  • Добавлено приложение net с утилитой netcat (как псевдоним nc);
  • Добавлено приложение run-init для запуска системы инициализации после монтирования корня в новой ФС;
  • Добавлено приложение setfattr для установки расширенных атрибутов файлов;
  • Добавлено приложение hexedit для просмотра и редактирования файлов в виде шестнадцатеричного дампа;
  • В конфигураторе произведено слияние меню «Busybox Settings» и «Busybox Library Tuning»;
  • Большое число приложений переведены на работу в режиме NOEXEC;
  • В командной оболочке ash добавлена поддержка синтаксиса «trap NUM [SIG]…», формата ${var: EXPR: EXPR} и вложенных определений localvars. GPL-код noclobberopen () заменён на более компактную реализацию от проекта FreeBSD;
  • В командной оболочке hush добавлена поддержка «set -e», ${VAR: N:-M} и новых встроенный команд «getopts», «readonly» и «times». В команду «read» добавлена поддержка опции «d DELIM». Установлен приоритет определённых в скрипте функций над встроенными командами
  • В crond добавлен макрос @daily;
  • В httpd налажена работа запросов с http-заголовком Range;
  • В inetd обеспечена возможность запуска под пользователями, отличными от root;
  • В rpm2cpio добавлена поддержка rpms-файлов, сжатых при помощи LZMA;
  • В приложении xargs добавлена поддержка опций »-P NUM» и »-a FILE»;
  • В приложении kill добавлена опция '--'для разделения опций от аргументов.

© OpenNet