Die Veröffentlichung des Pakets BusyBox 1.35 umfasst eine Implementierung einer Reihe standardmĂ€Ăiger UNIX-Werkzeuge, die in einer einzigen ausfĂŒhrbaren Datei zusammengefasst und fĂŒr einen minimalen Ressourcenverbrauch optimiert sind, bei einer PaketgröĂe von weniger als 1 MB. Die erste Version des neuen Zweigs 1.35 wird als instabil eingestuft, die vollstĂ€ndige Stabilisierung wird in Version 1.35.1 erwartet, die in etwa einem Monat verfĂŒgbar sein soll. Der Code des Projekts wird unter der GPLv2-Lizenz vertrieben.
Der modulare Charakter von BusyBox ermöglicht es, eine einheitliche ausfĂŒhrbare Datei zu erstellen, die eine beliebige Menge der im Paket enthaltenen Werkzeuge beinhaltet (jedes Werkzeug ist als symbolischer Link auf diese Datei verfĂŒgbar). GröĂe, Inhalt und FunktionalitĂ€t der Werkzeugsammlung können je nach Bedarf und Möglichkeiten der eingebetteten Plattform, fĂŒr die die Zusammenstellung erfolgt, angepasst werden. Das Paket ist selbststĂ€ndig, bei einer statischen Zusammenstellung mit uclibc sind nur einige GerĂ€te-Dateien im Verzeichnis /dev und Konfigurationsdateien fĂŒr die Erstellung eines funktionierenden Systems nötig. Im Vergleich zur vorherigen Version 1.34 hat der Speicherverbrauch der typischen Zusammenstellung von BusyBox 1.35 um 1726 Bytes zugenommen (von 1042344 auf 1044070 Bytes).
BusyBox ist ein zentrales Werkzeug im Kampf gegen VerstöĂe gegen die GPL in Firmware. Die Organisationen Software Freedom Conservancy (SFC) und Software Freedom Law Center (SFLC) haben im Namen der Entwickler von BusyBox sowohl gerichtlich als auch durch auĂergerichtliche Vereinbarungen wiederholt erfolgreich auf Unternehmen eingewirkt, die keinen Zugang zum Quellcode von GPL-Programmen bieten. Gleichzeitig widerspricht der Autor von BusyBox einer solchen Verteidigung vehement - er hĂ€lt sie fĂŒr schĂ€dlich fĂŒr sein GeschĂ€ft.
In der Version BusyBox 1.35 sind folgende Ănderungen hervorgehoben:
- In der Utility find wurde die Option â-samefile nameâ implementiert, um zu ĂŒberprĂŒfen, ob die Datei dasselbe Inode verwendet wie die Datei mit dem angegebenen Namen. Der Code wurde fĂŒr den Zeitvergleich vereinheitlicht und die Optionen â-aminâ, â-atimeâ, â-cminâ und â-ctimeâ wurden hinzugefĂŒgt, um die Zugriffs- und Erstellungszeiten einer Datei zu ĂŒberprĂŒfen.
- In die Utility mktemp wurde die Option ââtmpdirâ hinzugefĂŒgt, um das Basisverzeichnis anzugeben, relativ zu dem die Pfade der temporĂ€ren Dateien berechnet werden.
- In das cpio-Dienstprogramm wurden die Optionen ââignore-devnoâ zum Ignorieren der realen GerĂ€tenummer (die immer 0 gespeichert wird) und âârenumber-inodesâ zum Umbenennen von Inodes vor dem HinzufĂŒgen zum Archiv eingefĂŒhrt.
- Im awk-Dienstprogramm wurde die Funktion des Ausdrucks âprintf %%â verbessert.
- Rund ein Dutzend Ănderungen wurden in die Bibliothek libbb eingefĂŒhrt. Die KompatibilitĂ€t von realpath mit dem Pendant aus der coreutils-Suite wurde verbessert.
- Eine groĂe Menge von Korrekturen fĂŒr die Shells ash und hush wurde 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 der Operationen â${x//\*|}â beschleunigt.
- Im Dienstprogramm basename wurden die Optionen â-aâ zur Ăbertragung mehrerer Namen bei einem Aufruf und â-s SUFFIXâ zum Entfernen von Endzeichen âSUFFIXâ implementiert.
- In das blkdiscard-Dienstprogramm wurde die Option â-fâ (force) hinzugefĂŒgt.
- Im httpd wurde das Senden der Header Last-Modified / ETag / Content-Length fĂŒr Seiten mit Fehlern eingestellt.
- In httpd und telnetd wurde die Möglichkeit geschaffen, den Standardnetzwerkport zu Àndern.
- Im tar wurde eine Schwachstelle behoben, die dazu fĂŒhrte, dass der gesamte verfĂŒgbare Speicher bei der Verarbeitung von Archiven mit sehr langen Dateinamen verbraucht wurde.
- Im TLS-Code wurde die Implementierung von P256 und x25519 ĂŒberarbeitet.
- Im Dienstprogramm wget wurde die Option ââpost-fileâ zum Senden von Dateien implementiert, und es wurde erlaubt, den Inhalt des Content-Type-Headers fĂŒr die Optionen ââpost-dataâ und ââpost-fileâ einzustellen.
- In das Dienstprogramm timeout wurde die UnterstĂŒtzung fĂŒr die Option â-k KILL_SECSâ hinzugefĂŒgt, um das SIGKILL-Signal zu senden, wenn der Befehl innerhalb von zusĂ€tzlichen KILL_SECS Sekunden nicht abgeschlossen wurde.
- Im Dienstprogramm ip wurde die UnterstĂŒtzung fĂŒr das Setzen des Parameters netns fĂŒr GerĂ€te hinzugefĂŒgt.
- Im Dienstprogramm cal wurde die Option â-mâ zum Anzeigen des angegebenen Monats implementiert.
- In den Dienstprogrammen date und touch wurde die Angabe einer Zeitzonenverschiebung in Daten 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.
- Im Dienstprogramm ed wurde das Ergebnis der AusfĂŒhrung von read/write-Befehlen an die POSIX-1.2008-Spezifikation angepasst. UnterstĂŒtzung fĂŒr die Option â-pâ wurde hinzugefĂŒgt.
- In das Dienstprogramm cmp wurde die Option â-n Nâ zum EinschrĂ€nken des Vergleichs auf N Bytes hinzugefĂŒgt.
DarĂŒber hinaus wurde vor einigen Tagen die Toybox 0.8.6 veröffentlicht, das Ăquivalent zu BusyBox, das von einem ehemaligen Maintainer von BusyBox entwickelt und unter der Lizenz 0BSD verbreitet wird. Das Hauptziel von Toybox ist es, Herstellern die Möglichkeit zu geben, ein minimalistisches Set von Standarddienstprogrammen zu verwenden, ohne die Quelltexte modifizierter Komponenten offenlegen zu mĂŒssen. In Bezug auf die Funktionen hinkt Toybox derzeit hinter BusyBox hinterher, hat aber bereits 296 grundlegende Befehle (217 vollstĂ€ndig und 83 teilweise) von geplanten 374 umgesetzt.
Zu den Neuerungen in Toybox 0.8.6 gehören Verbesserungen bei den Skripten zur Erstellung von Systemabbildern, die HinzufĂŒgung der Befehle sha256sum, sha224sum, sha384sum, sha512sum, linux32, strace und hexdump. Implementiert wurden die Optionen â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â.
Quelle: opennet.ru
