Famoahana andian-tsarimihetsika minimalistika BusyBox 1.35

Ny famoahana ny fonosana BusyBox 1.35 dia atolotra miaraka amin'ny fampiharana andiana fitaovana UNIX mahazatra, natao ho rakitra tokana azo tanterahana ary natao ho an'ny fanjifana kely indrindra amin'ny loharanon'ny rafitra miaraka amin'ny haben'ny latsaky ny 1 MB. Ny famoahana voalohany ny sampana 1.35 vaovao dia napetraka ho tsy miorina; Ny fanamafisana feno dia homena amin'ny version 1.35.1, izay antenaina ao anatin'ny iray volana eo ho eo. Ny kaody tetikasa dia zaraina amin'ny alΓ lan'ny fahazoan-dΓ lana GPLv2.

Ny toetra modular an'ny BusyBox dia ahafahana mamorona rakitra iray azo tanterahana mitambatra misy fitaovana tsy misy dikany napetraka ao anaty fonosana (ny fitaovana tsirairay dia misy amin'ny endrika rohy an'ohatra amin'ity rakitra ity). Ny habeny, ny fandrafetana ary ny fampandehanana ny fanangonana kojakoja dia azo ovaina arakaraka ny filana sy ny fahaiza-manaon'ny sehatra mipetaka izay anaovana ny fivoriambe. Ny fonosana dia tsy misy afa-tsy; rehefa natsangana tamin'ny uclibc, mba hamoronana rafitra miasa eo an-tampon'ny kernel Linux, dia mila mamorona rakitra fitaovana maromaro ao amin'ny lahatahiry / dev ianao ary manomana rakitra fikirakirana. Raha ampitahaina amin'ny famoahana teo aloha 1.34, ny fanjifana RAM amin'ny fivoriambe BusyBox 1.35 mahazatra dia nitombo 1726 bytes (avy amin'ny 1042344 ka hatramin'ny 1044070 bytes).

BusyBox no fitaovana lehibe amin'ny ady amin'ny fanitsakitsahana ny GPL amin'ny firmware. Ny Software Freedom Conservancy (SFC) sy ny Software Freedom Law Center (SFLC), amin'ny anaran'ireo mpamorona BusyBox, dia imbetsaka nahomby tamin'ny fitaomana ireo orinasa izay tsy manome fidirana amin'ny kaody loharanon'ny programa GPL, na amin'ny alΓ lan'ny fitsarana na any ivelany. -fifanarahana amin'ny fitsarana. Mandritra izany fotoana izany, ny mpanoratra ny BusyBox dia manohitra mafy ny fiarovana toy izany - mino fa manimba ny orinasany izany.

Asongadina ao amin'ny BusyBox 1.35 ireto fanovana manaraka ireto:

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

Add a comment