Релиз минималистичного набора системных утилит 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-программ. Для производителей, которые не желают открывать исходные тексты модифицированных компонентов, в рамках проекта 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".