Ukukhutshwa kweseti encinci yezixhobo zenkqubo iBusyBox 1.35

Ukukhutshwa kwephakheji ye-BusyBox 1.35 ibonakaliswe ngokuphunyezwa kwesethi yemigangatho ye-UNIX esetyenziswayo, eyilwe njengefayile enye ephunyeziweyo kwaye ilungiselelwe ukusetyenziswa okuncinci kwezixhobo zenkqubo kunye nobukhulu obumiselweyo obungaphantsi kwe-1 MB. Ukukhutshwa kokuqala kwesebe elitsha 1.35 kubekwe njengento engazinzanga, ukuzinza okupheleleyo kuya kubonelelwa kwinguqulo 1.35.1, ekulindeleke malunga nenyanga. Ikhowudi yeprojekthi isasazwa phantsi kwelayisensi ye-GPLv2.

Ubume bemodyuli ye-BusyBox yenza kube nokwenzeka ukwenza ifayile enye ephunyeziweyo edibeneyo equlethe iseti engafanelekanga yezinto eziluncedo eziphunyeziweyo kwiphakheji (into eluncedo nganye ifumaneka ngendlela yophawu lwekhonkco kule fayile). Ubungakanani, ukubunjwa kunye nokusebenza kokuqokelelwa kwezinto ezisetyenziswayo kunokuhluka ngokuxhomekeke kwiimfuno kunye nobuchule beqonga elidibeneyo apho indibano iqhutyelwa khona. Iphakheji izimele; xa yakhiwe ngokuthe tye nge-uclibc, ukwenza inkqubo yokusebenza ngaphezulu kwe-Linux kernel, udinga kuphela ukwenza iifayile ezininzi zesixhobo kwi-dev directory kwaye ulungiselele iifayile zoqwalaselo. Xa kuthelekiswa nokukhululwa kwangaphambili kwe-1.34, ukusetyenziswa kwe-RAM yendibano eqhelekileyo ye-BusyBox 1.35 kwanda ngama-bytes angama-1726 (ukusuka kwi-1042344 ukuya kwi-1044070 bytes).

I-BusyBox sisixhobo esiphambili ekulweni nokuphulwa kwe-GPL kwi-firmware. ISoftware Freedom Conservancy (SFC) kunye neSoftware Freedom Law Centre (SFLC), egameni labaphuhlisi beBusyBox, baye baphembelela ngokuphindaphindiweyo iinkampani ezingaboneleli ngokufikelela kwikhowudi yemvelaphi yeenkqubo zeGPL, zombini ngeenkundla nangaphandle -izivumelwano zenkundla. Kwangaxeshanye, umbhali weBusyBox ukuchasa ngamandla ukhuseleko olunjalo-ekholelwa ukuba lonakalisa ishishini lakhe.

Olu tshintsho lulandelayo luphawulwe kwi-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Β».

umthombo: opennet.ru

Yongeza izimvo