Dimittere de minimalistic paro of ratio utilitatum BusyBox 1.35

In emissione BusyBox 1.35 sarcina exhibetur cum exsecutione instrumentorum communium UNIX utilitatum, pro uno documento exsecutabili et optimized ad minimam sumptionem subsidiorum systematis cum magnitudine minoris quam 1 MB. Prima emissio novi rami 1.35 instabilis ponitur: plena stabilisatio in versione 1.35.1 providebitur, quae circiter mensem expectatur. In codice exertus licentia GPLv2 distribuitur.

Naturae modularis BusyBox efficit ut unum efficiat unum fasciculum exsecutabile, quo arbitraria copia utilitatum in sarcina conficitur (unaquaeque utilitas in forma coniunctionis symbolicae huic fasciculi praesto est). Magnitudo, compositio et functiones collectionis utilitatum variari possunt secundum necessitates et facultates tribunalis immersi pro quo conventus exercetur. Sarcina in se contenta est, cum uclibc stabiliter constructa, systema laborantem in summitate nuclei Linux creare, tantum opus est ut plures tabellas machinae in /dev directorio creare et conformationem imaginum parare. 1.34 comparata emissione priori, RAM consumptio BusyBox typicae 1.35, conventus ab 1726 bytes auctus est (ab 1042344 ad 1044070 bytes).

BusyBox est principale instrumentum in pugna contra GPL violationes in firmware. Libertas Conservancy (SFC) et Software Freedom Law Center (SFLC), pro tincidunt Busybox, societates saepe feliciter ducti sunt, quae accessum non praebent ad fontem codicem programmatum GPL, tum per iudicia, tum per extra. pacta -court. Eodem tempore auctor BusyBox valde obicit huic praesidio - credens negotium suum destrui posse.

Sequentes mutationes in BusyBox 1.35 extolluntur:

  • Π’ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ 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: opennet.ru