Die Veröffentlichung des BusyBox 1.35-Pakets ist nun verfĂŒgbar. Dieses umfasst eine Sammlung von Standard-Unix-Dienstprogrammen, die in einer einzigen ausfĂŒhrbaren Datei zusammengefasst und fĂŒr einen minimalen Ressourcenverbrauch optimiert sind, wobei die GesamtgröĂe des Pakets unter 1 MB liegt. Die erste Ausgabe des neuen 1.35-Zweigs wird als instabil angesehen; eine vollstĂ€ndige Stabilisierung ist in der Version 1.35.1 zu erwarten, die in etwa einem Monat erscheinen soll. Der Code des Projekts wird unter der GPLv2-Lizenz veröffentlicht.
Die modulare Struktur von BusyBox ermöglicht die Erstellung einer einheitlichen ausfĂŒhrbaren Datei, die eine beliebige Sammlung von im Paket implementierten Utility-Programmen enthĂ€lt (jedes Utility ist als symbolischer Link auf diese Datei verfĂŒgbar). GröĂe, Inhalt und FunktionalitĂ€t der Sammlung können je nach den Anforderungen und Möglichkeiten der eingebetteten Plattform, fĂŒr die die Kompilierung erfolgt, variiert werden. Das Paket ist eigenstĂ€ndig; bei einer statischen Kompilierung mit uclibc sind nur einige GerĂ€te-Dateien im Verzeichnis /dev zu erstellen und die Konfigurationsdateien vorzubereiten, um ein funktionierendes System auf Grundlage des Linux-Kernels zu erstellen. Im Vergleich zur vorherigen Version 1.34 hat sich der Speicherbedarf der typischen Kompilierung von BusyBox 1.35 um 1726 Bytes erhöht (von 1.042.344 auf 1.044.070 Bytes).
BusyBox ist ein wesentliches Werkzeug im Kampf gegen die Verletzung der GPL in Firmware. Die Organisationen Software Freedom Conservancy (SFC) und Software Freedom Law Center (SFLC) haben im Namen der Entwickler von BusyBox sowohl durch Gerichtsverfahren als auch durch auĂergerichtliche Einigungen erfolgreich Unternehmen zur Bereitstellung des Quellcodes von GPL-Programmen bewegt. Gleichzeitig widerspricht der Entwickler von BusyBox vehement diesem Schutz, da er der Meinung ist, dass er sein GeschĂ€ft schĂ€digt.
Die folgenden Ănderungen sind in BusyBox 1.35 zu verzeichnen:
- In der Utility find wurde die Option â-samefile â implementiert, um zu ĂŒberprĂŒfen, ob die Datei denselben Inode wie die angegebene Datei verwendet. Der Code zum Vergleich der Zeiten wurde vereinheitlicht und die Optionen â-aminâ, â-atimeâ, â-cminâ und â-ctimeâ wurden hinzugefĂŒgt, um die Zugriffs- und Erstellungszeiten der Datei zu ĂŒberprĂŒfen.
- Das mktemp-Tool hat die Option ââtmpdirâ erhalten, um das Basisverzeichnis anzugeben, von dem aus die Pfade fĂŒr temporĂ€re Dateien berechnet werden.
- Das cpio-Tool wurde um die Optionen ââignore-devnoâ zum Ignorieren der tatsĂ€chlichen GerĂ€tenummer (immer 0) und âârenumber-inodesâ zum Neuerstellen der Inodes vor der Archivierung erweitert.
- In der awk-UtilitĂ€t wurde die Funktionsweise des Ausdrucks âprintf %%â geregelt.
- Etwa ein Dutzend Ănderungen wurden an der libbb-Bibliothek vorgenommen. Die KompatibilitĂ€t von realpath mit der Variante aus den coreutils wurde verbessert.
- Eine umfangreiche Sammlung von Korrekturen wurde fĂŒr die Shells ash und hush vorgeschlagen, um die KompatibilitĂ€t mit anderen Shells zu verbessern. In ash wurde die UnterstĂŒtzung fĂŒr bash-Ă€hnliche ERR-Traps, set -E und $FUNCNAME hinzugefĂŒgt, und die Extraktion von Zeichenfolgen wurde mit dem Ausdruck â${s:}â beschleunigt. In ash und hush wurde die AusfĂŒhrung von Operationen â${x//\*/|}â beschleunigt.
- In der basename-UtilitĂ€t wurden die Optionen â-aâ zum Ăbergeben mehrerer Namen bei einem Aufruf und â-s SUFFIXâ zum Entfernen der Endzeichen âSUFFIXâ implementiert.
- Das Tool blkdiscard hat die Option â-fâ (force) hinzugefĂŒgt.
- In httpd wurde das Senden der Header Last-Modified / ETag / Content-Length fĂŒr Fehlerseiten eingestellt.
- In httpd und telnetd wurde die Möglichkeit hinzugefĂŒgt, den Standardport zu Ă€ndern.
- In tar wurde eine Schwachstelle behoben, die zu einem vollstĂ€ndigen Speicherverbrauch beim Verarbeiten von Archiven mit sehr langen Dateinamen fĂŒhrt.
- Die Implementierung von P256 und x25519 im TLS-Code wurde ĂŒberarbeitet.
- In das Dienstprogramm wget wurde die Option ââpost-fileâ implementiert, um Dateien zu senden, und es ist nun möglich, den Inhalt des Content-Type-Headers fĂŒr die Optionen ââpost-dataâ und ââpost-fileâ anzupassen.
- Das Dienstprogramm timeout unterstĂŒtzt jetzt die Option â-k KILL_SECSâ, um das Signal SIGKILL zu senden, wenn der Befehl nach zusĂ€tzlichen KILL_SECS Sekunden nicht abgeschlossen wird.
- Im Dienstprogramm ip wurde die UnterstĂŒtzung zur Festlegung des netns-Parameters fĂŒr GerĂ€te hinzugefĂŒgt.
- Das Dienstprogramm cal bietet nun die Option â-mâ, um einen bestimmten Monat anzuzeigen.
- In den Dienstprogrammen date und touch wurde die Angabe der Zeitzonenverschiebung in Datumsangaben erlaubt.
- Im Editor vi wurde die UnterstĂŒtzung fĂŒr die Datei ~/.exrc hinzugefĂŒgt, und die Verarbeitung von â-câ und EXINIT wurde geĂ€ndert.
- Das Dienstprogramm ed bringt die Ergebnisse der read/write-Befehle in Ăbereinstimmung mit der POSIX-1.2008-Spezifikation. Die UnterstĂŒtzung der Option â-pâ wurde hinzugefĂŒgt.
- Im Dienstprogramm cmp wurde die Option â-n Nâ hinzugefĂŒgt, um den Vergleich auf N Bytes zu beschrĂ€nken.
Vor einigen Tagen wurde Toybox 0.8.6 veröffentlicht, ein Pendant zu BusyBox, das von einem ehemaligen Maintainer von BusyBox entwickelt und unter der Lizenz 0BSD vertrieben wird. Toybox bietet Herstellern die Möglichkeit, ein minimalistisches Set von Standardwerkzeugen zu nutzen, ohne den Quellcode der modifizierten Komponenten offenlegen zu mĂŒssen. In Bezug auf die FunktionalitĂ€ten bleibt Toybox zwar hinter BusyBox zurĂŒck, aber es sind bereits 296 grundlegende Befehle (217 vollstĂ€ndig und 83 teilweise) von 374 geplanten realisiert.
Zu den Neuerungen in Toybox 0.8.6 gehören verbesserte Skripte zur Erstellung von Systemabbildern sowie die HinzufĂŒgung der Befehle sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace und hexdump. Es wurden Optionen wie â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â und âgrep -Lâ implementiert.
Quelle: opennet.ru
