Релиз на минималистичния комплект системни утилити BusyBox 1.35

Представен е релиз на пакета 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 се открояват следните промени:

  • В утилитата 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“.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster