Sakin ƙaramin tsari na kayan aikin tsarin BusyBox 1.35

An gabatar da sakin busyBox 1.35 kunshin tare da aiwatar da tsarin daidaitattun kayan aikin UNIX, wanda aka tsara azaman fayil guda ɗaya da za'a iya aiwatarwa kuma an inganta shi don ƙarancin amfani da albarkatun tsarin tare da saita girman ƙasa da 1 MB. Sakin farko na sabon reshe na 1.35 an sanya shi azaman mara ƙarfi; za a samar da cikakken kwanciyar hankali a cikin sigar 1.35.1, wanda ake sa ran cikin kusan wata guda. Ana rarraba lambar aikin a ƙarƙashin lasisin GPLv2.

Yanayin BusyBox na yau da kullun yana ba da damar ƙirƙirar fayil ɗin aiki ɗaya ɗaya wanda ya ƙunshi saitin kayan aiki na sabani da aka aiwatar a cikin fakitin (kowane kayan aiki yana samuwa ta hanyar hanyar haɗin yanar gizo ta alama zuwa wannan fayil ɗin). Girman, abun da ke ciki da kuma ayyuka na tarin kayan aiki za a iya bambanta dangane da buƙatu da damar da ake da shi na dandalin da aka saka wanda ake gudanar da taron. Kunshin yana ƙunshe da kansa; lokacin da aka gina shi a tsaye tare da uclibc, don ƙirƙirar tsarin aiki a saman kernel na Linux, kawai kuna buƙatar ƙirƙirar fayilolin na'urori da yawa a cikin directory / dev kuma shirya fayilolin sanyi. Idan aka kwatanta da sakin 1.34 na baya, yawan RAM na al'ada BusyBox 1.35 taro ya karu da 1726 bytes (daga 1042344 zuwa 1044070 bytes).

BusyBox shine babban kayan aiki a cikin yaƙi da cin zarafin GPL a cikin firmware. The Software Freedom Conservancy (SFC) da Software Freedom Law Center (SFLC), a madadin BusyBox developers, akai-akai samun nasarar rinjayar kamfanonin da ba su samar da damar yin amfani da lambar tushe na shirye-shiryen GPL, ta hanyar kotu da kuma ta hanyar waje. - yarjejeniyar kotu. A lokaci guda kuma, marubucin BusyBox yana da ƙarfi ga irin wannan kariyar - yana gaskanta cewa yana lalata kasuwancinsa.

Ana haskaka canje-canje masu zuwa a cikin 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».

source: budenet.ru

Add a comment