Rilascio di un set minimalista di utilità di sistema BusyBox 1.35

Il rilascio del pacchetto BusyBox 1.35 si presenta con l'implementazione di un set di utilità UNIX standard, progettate come un singolo file eseguibile e ottimizzate per un consumo minimo di risorse di sistema con una dimensione impostata inferiore a 1 MB. La prima versione del nuovo ramo 1.35 è posizionata come instabile; la stabilizzazione completa verrà fornita nella versione 1.35.1, prevista tra circa un mese. Il codice del progetto è distribuito sotto la licenza GPLv2.

La natura modulare di BusyBox consente di creare un file eseguibile unificato contenente un insieme arbitrario di utilità implementate nel pacchetto (ogni utilità è disponibile sotto forma di un collegamento simbolico a questo file). La dimensione, la composizione e la funzionalità della raccolta di utilità possono essere variate a seconda delle esigenze e delle capacità della piattaforma embedded per la quale viene effettuato l'assemblaggio. Il pacchetto è autonomo; quando creato staticamente con uclibc, per creare un sistema funzionante sopra il kernel Linux, è sufficiente creare diversi file di dispositivo nella directory /dev e preparare i file di configurazione. Rispetto alla versione precedente 1.34, il consumo di RAM del tipico assieme BusyBox 1.35 è aumentato di 1726 byte (da 1042344 a 1044070 byte).

BusyBox è lo strumento principale nella lotta contro le violazioni della GPL nel firmware. La Software Freedom Conservancy (SFC) e il Software Freedom Law Center (SFLC), per conto degli sviluppatori di BusyBox, hanno ripetutamente influenzato con successo le aziende che non forniscono accesso al codice sorgente dei programmi GPL, sia attraverso i tribunali che attraverso fonti esterne -accordi giudiziali. Allo stesso tempo, l'autore di BusyBox si oppone fermamente a tale protezione, ritenendo che rovini la sua attività.

Le seguenti modifiche sono evidenziate in BusyBox 1.35:

  • L'utilità di ricerca implementa l'opzione "-samefile name" per verificare se un file utilizza lo stesso inode del file con il nome specificato. Codice unificato per il confronto temporale e aggiunte opzioni "-amin", "-atime", "-cmin" e "-ctime" per verificare l'ora di accesso e la creazione del file.
  • L'utilità mktemp ha aggiunto un'opzione "--tmpdir" per specificare la directory di base rispetto alla quale vengono calcolati i percorsi associati ai file temporanei.
  • All'utilità cpio sono state aggiunte le opzioni “-ignore-devno” per ignorare il numero reale del dispositivo (viene sempre scritto 0) e “-renumber-inodes” per rinumerare l'inode prima di memorizzarlo nell'archivio.
  • Nell'utilità awk, l'espressione “printf %%” è stata modificata.
  • Aggiunte circa una dozzina di modifiche alla libreria libbb. Migliorata la compatibilità di realpath con la sua controparte del set coreutils.
  • Sono state proposte numerose correzioni per le shell dei comandi ash e hush, volte a migliorare la compatibilità con altre shell. Ash ha aggiunto il supporto per trap ERR simili a bash, set -E e $FUNCNAME e un recupero più rapido delle stringhe utilizzando l'espressione "${s:}". Nel silenzio e nel silenzio, l'esecuzione delle operazioni "${x//\*/|}" è stata accelerata.
  • L'utilità basename implementa le opzioni "-a" per passare più nomi in una chiamata e "-s SUFFIX" per rimuovere i caratteri "SUFFIX" finali.
  • Aggiunta l'opzione "-f" (forzatura) all'utilità blkdiscard.
  • httpd ha smesso di inviare intestazioni Last-Modified/ETag/Content-Length per le pagine con errori.
  • httpd e telnetd offrono la possibilità di modificare la porta di rete predefinita.
  • Risolta una vulnerabilità in tar che causava il consumo di tutta la memoria disponibile durante l'elaborazione di archivi con nomi di file molto lunghi.
  • L'implementazione di P256 e x25519 è stata rielaborata nel codice TLS.
  • L'utilità wget implementa l'opzione "--post-file" per l'invio di file e consente di personalizzare il contenuto dell'intestazione Content-Type per le opzioni "--post-data" e "--post-file".
  • L'utilità timeout ora supporta l'opzione "-k KILL_SECS" per inviare un segnale SIGKILL se il comando non viene completato entro i secondi KILL_SECS aggiuntivi.
  • All'utilità ip è stato aggiunto il supporto per l'impostazione del parametro netns per i dispositivi.
  • L'utilità cal implementa l'opzione "-m" per visualizzare il mese specificato.
  • Le utilità data e tocco consentono di specificare una differenza di fuso orario nelle date.
  • Nell'editor vi è stato aggiunto il supporto per il file ~/.exrc ed è stata modificata la gestione di "-c" e EXINIT.
  • Nell'utilità ed, il risultato dell'esecuzione dei comandi di lettura/scrittura viene reso conforme alla specifica POSIX-1.2008. Aggiunto il supporto per l'opzione "-p".
  • Aggiunta l'opzione "-n N" all'utilità cmp per limitare il confronto a N byte.

Inoltre, pochi giorni fa è stato rilasciato Toybox 0.8.6, un analogo di BusyBox, sviluppato da un ex manutentore di BusyBox e distribuito sotto la licenza 0BSD. Lo scopo principale di Toybox è fornire ai produttori la possibilità di utilizzare un set minimalista di utilità standard senza aprire il codice sorgente dei componenti modificati. In termini di capacità, Toybox è ancora in ritardo rispetto a BusyBox, ma sono già stati implementati 296 comandi di base (217 completamente e 83 parzialmente) dei 374 previsti.

Tra le novità di Toybox 0.8.6 possiamo notare il miglioramento degli script per la creazione di immagini di sistema, l'aggiunta dei comandi sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace e hexdump. Opzioni implementate “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".

Fonte: opennet.ru

Aggiungi un commento