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

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

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

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

В версии BusyBox 1.26 в основном отмечается устранение ошибок. Из изменений выделяется:

  • В getopt32 реализован новый синтаксис выражений 'o:+' и 'o:*' для опций »-o NUM» и »-o LIST»;
  • Значительная порция исправлений и переработок в ash, направленных на сокращение различий с кодовой базой ash из upstream;
  • Большая порция исправлений и оптимизаций в hush;
  • В df реализована поддержка формата опций »-B n{suff} и »-B {suff}»;
  • В init решены проблемы с открытием консоли во FreeBSD;
  • Добавлен пример настройки DHCP-сервера;
  • Улучшена совместимость с библиотекой musl;
  • В mdev добавлена возможность создания устройств из /sys/dev;
  • В tar реализована обработка добавленных через pax имён файлов и символических ссылок в кодировке utf8;
  • В утилиту whois добавлена опция »-i» (поиск по имени атрибута);
  • В volume_id добавлена поддержка UBIFS;
  • В утилите strings реализован режим »-t radix».

© OpenNet