Lanzamento dun conxunto minimalista de utilidades do sistema BusyBox 1.35

O lanzamento do paquete BusyBox 1.35 preséntase coa implementación dun conxunto de utilidades estándar de UNIX, deseñadas como un único ficheiro executable e optimizadas para un consumo mínimo de recursos do sistema cun tamaño definido inferior a 1 MB. A primeira versión da nova rama 1.35 sitúase como inestable; a estabilización total proporcionarase na versión 1.35.1, que se espera dentro dun mes aproximadamente. O código do proxecto distribúese baixo a licenza GPLv2.

A natureza modular de BusyBox fai posible crear un ficheiro executable unificado que contén un conxunto arbitrario de utilidades implementadas no paquete (cada utilidade está dispoñible en forma de ligazón simbólica a este ficheiro). O tamaño, a composición e a funcionalidade da colección de utilidades poden variar en función das necesidades e capacidades da plataforma integrada para a que se está a realizar a montaxe. O paquete é autónomo; cando se crea estáticamente con uclibc, para crear un sistema de traballo enriba do núcleo de Linux, só precisa crear varios ficheiros de dispositivo no directorio /dev e preparar ficheiros de configuración. En comparación coa versión anterior 1.34, o consumo de memoria RAM do conxunto típico de BusyBox 1.35 aumentou en 1726 bytes (de 1042344 a 1044070 bytes).

BusyBox é a principal ferramenta na loita contra as violacións da GPL no firmware. O Software Freedom Conservancy (SFC) e o Software Freedom Law Center (SFLC), en nome dos desenvolvedores de BusyBox, influíron repetidamente con éxito en empresas que non proporcionan acceso ao código fonte dos programas GPL, tanto a través dos tribunais como a través dos - acordos xudiciais. Ao mesmo tempo, o autor de BusyBox se opón firmemente a esa protección, crendo que arruina o seu negocio.

Os seguintes cambios están destacados en 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, аналога BusyBox, развиваемого бывшим мэйнтейнером BusyBox и распространяемого под лицензией 0BSD. Основным назначением Toybox является предоставление производителям возможности использования минималистичного набора стандартных утилит без открытия исходных текстов модифицированных компонентов. По возможностям Toybox пока отстаёт от BusyBox, но уже реализовано 296 базовых команд (217 полностью и 83 частично) из 374 запланированных.

Из новшеств 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».

Fonte: opennet.ru

Engadir un comentario