Новая версия минималистичного набора системных утилит BusyBox 1.23

Представлен релиз пакета BusyBox 1.23.0 с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Первый выпуск новой ветки 1.23 позиционируется как нестабильный, полная стабилизация будет обеспечена в версии 1.23.1, которая ожидается примерно через месяц. Код проекта распространяется под лицензией GPLv2. Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов-устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.22.1 потребление оперативной памяти типовой сборкой BusyBox 1.23.0 увеличилось на 3 Кб (с 880918 до 883885 байт).

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

Добавлены новые команды fatattr и unlink; В ftpd добавлена поддержка аутентификации, обеспечен показ начинающихся с точки файлов в выводе команды LIST, добавлена поддержка команды XPWD; В vi обеспечена поддержка отката изменений (undo); Во wget добавлена поддержка https с использованием «openssl s_client»; В df добавлена опция »-T» для вывода типа файловой системы; В find добавлена поддержка конструкции '-exec … {} +' и опции »-perm /BITS»; Реализован фреймворк unit-tests для проведения unit-тестирования; В crond добавлена возможность указания «SHELL=prog» в crontab, упрощён код для ведения лога; В ash и hush увеличено качество случайных значений в переменной $RANDOM, реализована очистка переменной при выполнении «local VAR», добавлена поддержка unicode в выражении ${#var}; В awk решены проблемы с обработкой выражений «if … break; else …»; В ntpd добавлена поддержка чтения настроек из /etc/ntp.conf, добавлена опция »-I IFACE»; В процессе init, при использовании системной библиотеки с поддержкой Unicode, обеспечено выполнение при запуске setlocale (LC_ALL,»); В утилите install реализована опция »-t DIR» для указания целевой директории; В ip link добавлена поддержка «address ETHADDR»; В libarchive добавлена поддержка распаковки в mem.buffer; В man добавлен разбор списка директорий в $MANPATH и по умолчанию применена кодировка ascii; В sendmail параметр »-f» переведён в число опциональных (по умолчанию в качестве отправителя указывается текущий логин и домен); В tftpd добавлена поддержка полных 512-байтовых запросов; В xargs добавлена поддержка опций »-I» и »-i» для замены строк; В ping добавлена опция »-p» для указания шаблона заполнения 16-байтовой области данных в пакете; В udhcp добавлена поддержка префикса PXELINUX и возможность тонкой настройки arpping; В ifupdown добавлена поддержка семейства адресов 'link'; В wapon добавлена опция »-d» для включения поддержки discard; В su обеспечена задержка после ввода неправильного пароля; Переписана реализация команды which.

© OpenNet