A liberazione di u pacchettu BusyBox 1.35 hè presentata cù l'implementazione di un inseme di utilità standard UNIX, cuncepitu cum'è un unicu schedariu eseguibile è ottimizzatu per u minimu cunsumu di risorse di u sistema cù una dimensione stabilita di menu di 1 MB. A prima versione di u novu ramu 1.35 hè posizionatu cum'è inestabile; a stabilizazione cumpleta serà furnita in a versione 1.35.1, chì hè prevista in circa un mese. U codice di u prugettu hè distribuitu sottu a licenza GPLv2.
A natura modulare di BusyBox permette di creà un schedariu eseguibile unificatu chì cuntene un inseme arbitrariu di utilità implementate in u pacchettu (ogni utilità hè dispunibule in forma di un ligame simbolicu à stu schedariu). A dimensione, a cumpusizioni è a funziunalità di a cullizzioni di utilità pò esse variata sicondu i bisogni è e capacità di a piattaforma integrata per quale l'assemblea hè stata realizata. U pacchettu hè autonomu; quandu hè custruitu staticamente cù uclibc, per creà un sistema di travagliu nantu à u kernel Linux, avete solu bisognu di creà parechji schedarii di u dispositivu in u cartulare /dev è preparanu i schedarii di cunfigurazione. Comparatu à a versione precedente 1.34, u cunsumu di RAM di l'assemblea tipica BusyBox 1.35 hà aumentatu da 1726 bytes (da 1042344 à 1044070 bytes).
BusyBox hè u strumentu principale in a lotta contru à e violazioni GPL in firmware. U Software Freedom Conservancy (SFC) è Software Freedom Law Center (SFLC), in nome di i sviluppatori di BusyBox, anu influenzatu ripetutamente cù successu e cumpagnie chì ùn furniscenu micca accessu à u codice fonte di i prugrammi GPL, sia per via di i tribunali sia per fora di l'imprese. - accordi di tribunale. à u listessu tempu, l'autore di BusyBox s'oppone fermamente à una tale prutezzione - crede chì arruvina a so attività .
I seguenti cambiamenti sΓ² evidenziati in 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Β».
Source: opennet.ru