Представлен (https://busybox.net/news.html) релиз пакета BusyBox 1.28 (http://www.busybox.net/) с реализацией набора стандартных утилит 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 как через суд (https://www.opennet.dev/opennews/art.shtml?num=27520), так и путём заключения (https://www.opennet.dev/opennews/art.shtml?num=26883) внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В тоже время автор BusyBox всячески возражает (https://www.opennet.dev/opennews/art.shtml?num=24685) против такой защиты - считая что она ломает ему бизнес.
Для производителей, которые не желают открывать исходные тексты модифицированных компонентов, в рамках проекта Toybox (http://landley.net/toybox/) развивается аналог BusyBox, распространяемый (https://www.opennet.dev/opennews/art.shtml?num=32952) под лицензией 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 (https://git.busybox.net/busybox/plain/docs/nofork_noexec.txt);
- В командной оболочке ash добавлена поддержка синтаксиса "trap NUM [SIG]...", формата ${var:EXPR:EXPR} и вложенных определений localvars. GPL-код noclobberopen() заменён (https://www.mail-archive.com/dash@vger.kernel.org/msg00...) на более компактную реализацию от проекта 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 добавлена опция '--'для разделения опций от аргументов.
URL: https://busybox.net/news.html
Новость: http://www.opennet.dev/opennews/art.shtml?num=47848