Utjefte fan in minimalistyske set fan systeemhulpprogramma's BusyBox 1.35

De frijlitting fan it BusyBox 1.35-pakket wurdt presintearre mei de ymplemintaasje fan in set standert UNIX-hulpprogramma's, ûntworpen as ien útfierber bestân en optimalisearre foar minimaal konsumpsje fan systeemboarnen mei in setgrutte fan minder dan 1 MB. De earste release fan 'e nije 1.35-tûke wurdt as ynstabyl gepositioneerd; folsleine stabilisaasje sil wurde levere yn ferzje 1.35.1, dy't oer in moanne ferwachte wurdt. De projektkoade wurdt ferspraat ûnder de GPLv2-lisinsje.

De modulêre aard fan BusyBox makket it mooglik om ien unifoarm útfierber bestân te meitsjen mei in willekeurige set fan nutsbedriuwen ymplementearre yn it pakket (elk hulpprogramma is beskikber yn 'e foarm fan in symboalyske keppeling nei dit bestân). De grutte, komposysje en funksjonaliteit fan 'e kolleksje fan nutsbedriuwen kinne farieare wurde ôfhinklik fan' e behoeften en mooglikheden fan it ynbêde platfoarm wêrfoar de gearstalling wurdt útfierd. It pakket is selsstannich; as statysk boud mei uclibc, om in wurkjend systeem boppe op 'e Linux-kernel te meitsjen, moatte jo allinich ferskate apparaatbestannen oanmeitsje yn' e /dev-map en konfiguraasjebestannen tariede. Yn ferliking mei de foarige release 1.34 is it RAM-konsumpsje fan 'e typyske BusyBox 1.35-assemblage ferhege mei 1726 bytes (fan 1042344 nei 1044070 bytes).

BusyBox is it wichtichste ark yn 'e striid tsjin GPL-oertredings yn firmware. De Software Freedom Conservancy (SFC) en Software Freedom Law Center (SFLC), út namme fan 'e BusyBox-ûntwikkelders, hawwe hieltyd mear súkses beynfloede bedriuwen dy't gjin tagong jouwe ta de boarnekoade fan GPL-programma's, sawol fia de rjochtbanken as fia bûten - rjochtbank ôfspraken. Tagelyk is de skriuwer fan BusyBox sterk beswier tsjin sa'n beskerming - yn betinken dat it syn bedriuw ferneatiget.

De folgjende wizigingen wurde markearre yn 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».

Boarne: opennet.ru

Add a comment