Ngaleupaskeun set minimalis tina sistem utiliti BusyBox 1.35

Pelepasan pakét BusyBox 1.35 dibere palaksanaan sakumpulan utilitas UNIX standar, dirarancang salaku file anu tiasa dieksekusi sareng dioptimalkeun pikeun konsumsi minimal sumberdaya sistem kalayan ukuran set kirang ti 1 MB. Pelepasan munggaran cabang 1.35 anyar diposisikan salaku teu stabil; stabilisasi pinuh bakal disayogikeun dina versi 1.35.1, anu diperkirakeun sakitar sabulan. Kodeu proyék disebarkeun dina lisénsi GPLv2.

Sifat modular BusyBox ngamungkinkeun pikeun nyieun hiji file éksekusi ngahijikeun ngandung hiji set wenang utilitas dilaksanakeun dina pakét (unggal utiliti sadia dina bentuk link simbolis kana file ieu). Ukuran, komposisi sareng pungsionalitas koleksi utilitas tiasa rupa-rupa gumantung kana kabutuhan sareng kamampuan platform anu dipasang pikeun dimana perakitan dilaksanakeun. Paketna mandiri; nalika diwangun sacara statis sareng uclibc, pikeun nyiptakeun sistem anu tiasa dianggo di luhur kernel Linux, anjeun ngan ukur kedah nyiptakeun sababaraha file alat dina diréktori / dev sareng nyiapkeun file konfigurasi. Dibandingkeun jeung release saméméhna 1.34, konsumsi RAM tina BusyBox 1.35 assembly has ngaronjat ku 1726 bait (tina 1042344 ka 1044070 bait).

BusyBox mangrupikeun alat utama dina perang ngalawan palanggaran GPL dina firmware. Software Freedom Conservancy (SFC) sareng Software Freedom Law Center (SFLC), atas nama pamekar BusyBox, tos sababaraha kali suksés mangaruhan perusahaan-perusahaan anu henteu masihan aksés kana kode sumber program GPL, boh ngaliwatan pengadilan sareng di luar. -perjangjian pangadilan. Dina waktos anu sami, panulis BusyBox niatna ngabantah panyalindungan sapertos kitu - percanten yén éta ngarusak bisnisna.

Parobihan di handap ieu disorot dina 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».

sumber: opennet.ru

Tambahkeun komentar