Представлен (https://busybox.net/news.html) релиз пакета BusyBox 1.31 (http://www.busybox.net/) с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Первый выпуск новой ветки 1.31 позиционируется как нестабильный, полная стабилизация будет обеспечена в версии 1.31.1, которая ожидается примерно через месяц. Код проекта распространяется под лицензией GPLv2.
Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.20 потребление оперативной памяти типовой сборкой BusyBox 1.30 уменьшилось на 86 байт (с 1008478 до 1008392 байт).
BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд (https://www.opennet.ru/opennews/art.shtml?num=27520), так и путём заключения (https://www.opennet.ru/opennews/art.shtml?num=26883) внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В то же время автор BusyBox всячески возражает (https://www.opennet.ru/opennews/art.shtml?num=24685) против такой защиты - считая что она ломает ему бизнес.
В версии BusyBox 1.31 выделяются следующие изменения:
- Добавлены новые команды: ts (реализация клиента и сервера для протокола TSP (Time-Stamp Protocol)) и i2ctransfer (создание и отправка сообщений I2C);
- В udhcp добавлена поддержка опций DHCP 100 (https://tools.ietf.org/html/rfc4833) (сведения о часовом поясе) и 101 (название часового пояса в БД TZ) для IPv6;
- В udhcpd добавлена поддержка статических привязок имён хостов к клиентам;
- В командных оболочках ash и hush реализованы числовые литералы "BASE#nnnn". Приведена к совместимости с bash реализация команды ulimit, в том числе добавлены опции "-i RLIMIT_SIGPENDING" и "-q RLIMIT_MSGQUEUE". Добавлена поддержка "wait -n". Добавлены совместимые с bash переменные EPOCH;
- В командной оболочке hush реализована переменная "$-", в которой перечислены активированные по умолчанию опции командной оболочки;
- В bc из upstream перенесён код для передачи значений по ссылке, добавлена поддержка void-функций и возможность работы со значениями ibase до 36;
- В brctl все команды переведены на работу с использованием псевдо-ФС /sys;
- Объединён код утилит fsync и sync;
- Усовершенствована реализация httpd. Улучшена обработка HTTP-заголовков и работа в режиме прокси. В список MIME-типов включены SVG и JavaScript;
- В losetup добавлена опция "-c" (принудительная перепроверка размера файла, связанного c loop-устройством), а также опция для сканирования разделов. В mount и losetup обеспечена поддержка работы с использованием /dev/loop-control;
- В ntpd значение SLEW_THRESHOLD увеличено с 0.125 до 0.5;
- В sysctl добавлена поддержка присвоения пустых значений;
- В watch добавлена поддержка дробных значений в опции "-n SEC";
- Добавлена возможность запуска mdev в форме фонового процесса;
- В утилите wget реализован флаг "-o" для определения файла для записи лога. Добавлены уведомления о начале и завершении загрузки;
- В telnetd добавлена поддержка команды AYT IAC;
- В vi добавлена команда 'dG'(удаление содержимого от текущей строки до конца файла);
- В команду dd добавлена опция 'oflag=append';
- В утилиту top добавлен флаг '-H' для включения режима сканирования отдельных потоков.
Кроме того, две недели назад состоялся (https://github.com/landley/toybox/releases/tag/0.8.1) релиз Toybox 0.8.1 (http://landley.net/toybox/), аналога BusyBox, развиваемого бывшим мэйнтейнером BusyBox и распространяемого (https://www.opennet.ru/opennews/art.shtml?num=32952) под лицензией BSD. Основным назначением Toybox является предоставление производителям возможности использования минималистичного набора стандартных утилит без открытия исходных текстов модифицированных компонентов. По возможностям Toybox пока отстаёт (http://landley.net/toybox/status.html) от BusyBox, но уже реализовано 188 базовых команд из 220 запланированных.
Из новшеств Toybox 0.8.1 можно отметить:
- Достигнут уровень функциональности, достаточный для сборки Android в окружении на базе утилит Toybox.
- В состав включены новые команды mcookie и devmem, из тестовой ветки перенесены переписанные команды tar, gunzip и zcat.
- Для тестирования предложена новая реализация vi.
- В команду find добавлена поддержка опций "-wholename/-iwholename",
"-printf" и "-context";
- В grep добавлена опция "--exclude-dir";
- В echo появилась поддержка опции "-E".
- В mount добавлена поддержка "UUID".
- В команду date добавлен учёт часового пояса, заданного в переменной окружения TZ.
- В sed добавлена поддержка относительных диапазонов (+N).
- Улучшена читаемость вывода ps, top и iotop.
URL: http://lists.busybox.net/pipermail/busybox-cvs/2019-June/039...
Новость: https://www.opennet.ru/opennews/art.shtml?num=50844