Представлен релиз пакета BusyBox 1.35 с реализацией набора стандартных утилит UNIX, оформленных в виде единого исполняемого файла и оптимизированных для минимального потребления системных ресурсов при размере комплекта менее 1 Мб. Первый выпуск новой ветки 1.35 позиционируется как нестабильный, полная стабилизация будет обеспечена в версии 1.35.1, которая ожидается примерно через месяц. Код проекта распространяется под лицензией GPLv2.
Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.34 потребление оперативной памяти типовой сборкой BusyBox 1.35 увеличилось на 1726 байт (с 1042344 до 1044070 байт).
BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд, так и путём заключения внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В то же время автор BusyBox всячески возражает против такой защиты - считая что она ломает ему бизнес.
В версии BusyBox 1.35 выделяются следующие изменения:
Из новшеств Toybox 0.8.6 можно отметить улучшение скриптов для создания системных образов, добавление команд sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace и hexdump. Реализованы опции "date -s", "pmap -p", "tail -F -s", "kill -0", reboot/halt/poweroff -d", "tail --bytes --lines", "i2cdetect -q", "find -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio --ignore-devno --renumber-inodes", "tar --selinux", "split -n", "grep -L".
Модульный характер BusyBox даёт возможность сформировать один унифицированный исполняемый файл, содержащий в себе произвольный набор реализованных в пакете утилит (каждая утилита доступна в форме символической ссылки на данный файл). Размер, состав и функциональность коллекции утилит можно варьировать в зависимости от потребностей и возможностей встраиваемой платформы, для которой осуществляется сборка. Пакет самодостаточный, при статической сборке с uclibc для создания рабочей системы поверх ядра Linux требуется лишь создать несколько файлов устройств в директории /dev и подготовить файлы конфигурации. По сравнению с прошлым выпуском 1.34 потребление оперативной памяти типовой сборкой BusyBox 1.35 увеличилось на 1726 байт (с 1042344 до 1044070 байт).
BusyBox является основным инструментом в борьбе с нарушением GPL в прошивках. Организации Software Freedom Conservancy (SFC) и Software Freedom Law Center (SFLC) от лица разработчиков BusyBox как через суд, так и путём заключения внесудебных соглашений неоднократно успешно воздействовала на компании, не предоставляющие доступ к исходному коду GPL-программ. В то же время автор BusyBox всячески возражает против такой защиты - считая что она ломает ему бизнес.
В версии BusyBox 1.35 выделяются следующие изменения:
- В утилите find реализована опция "-samefile имя" для проверки использованием в файле того же inode, что и у файла с указанным именем. Унифицирован код для сравнения времени и добавлены опции "-amin", "-atime", "-cmin" и "-ctime" для проверки времени доступа и создания файла.
- В утилиту mktemp добавлена опция "--tmpdir" для указания базового каталога, относительно которого вычисляются пути, связанные с временными файлами.
- В утилиту cpio добавлены опции "--ignore-devno" для игнорирования реального номера устройства (всегда записывается 0) и "--renumber-inodes" для перенумерования inode перед помещением в архив.
- В утилите awk налажена работа выражения "printf %%".
- Добавлено около десятка изменений в библиотеку libbb. Улучшена совместимость realpath с аналогом из набора coreutils.
- Включена большая порция исправлений в командных оболочках ash и hush, нацеленных на улучшение совместимости с другими оболочками. В ash добавлена поддержка bash-подобных ERR trap, set -E и $FUNCNAME, а также ускорено извлечение строк при помощи выражения "${s:}". В ash и hush ускорено выполнение операций "${x//\*/|}".
- В утилите basename реализованы опции "-a" для передачи нескольких имён при одном вызове и "-s SUFFIX" для удаления конечных символов "SUFFIX".
- В утилиту blkdiscard добавлена опция "-f" (force).
- В httpd прекращена отправка заголовков Last-Modified / ETag / Content-Length для страниц с ошибками.
- В httpd и telnetd предоставлена возможность изменения сетевого порта по умолчанию.
- В tar устранена уязвимость, приводящая к расходованию всей доступной памяти при обработке архивов с очень длинными именами файлов.
- В коде TLS переделана реализация P256 и x25519.
- В утилите wget реализована опция "--post-file" для отправки файлов и разрешено настраивать содержимое заголовка Content-Type для опций "--post-data" и "--post-file".
- В утилиту timeout добавлена поддержка опции "-k KILL_SECS" для отправки сигнала SIGKILL, если команда не завершилась в течение дополнительных KILL_SECS секунд.
- В утилиту ip добавлена поддержка установки параметра netns для устройств.
- В утилите cal реализована опция "-m" для отображения заданного месяца.
- В утилитах date и touch разрешено указание смещения часового пояса в датах.
- В редакторе vi добавлена поддержка файла ~/.exrc, изменена обработка "-c" и EXINIT.
- В утилите ed результат выполнения команд read/write приведён в соответствие со спецификацией POSIX-1.2008. Добавлена поддержка опции "-p".
- В утилиту cmp добавлена опция "-n N" для ограничения сравнения N-байтами.
Из новшеств Toybox 0.8.6 можно отметить улучшение скриптов для создания системных образов, добавление команд sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace и hexdump. Реализованы опции "date -s", "pmap -p", "tail -F -s", "kill -0", reboot/halt/poweroff -d", "tail --bytes --lines", "i2cdetect -q", "find -quit -lname -ilname -d", "cut -d $'\n'", "cut -nb", "cpio --ignore-devno --renumber-inodes", "tar --selinux", "split -n", "grep -L".
Релиз минималистичного набора системных утилит BusyBox 1.35
www.opennet.ru