Release des minimalistischen Sets von Systemwerkzeugen BusyBox 1.34

Das Release-Paket BusyBox 1.34 wird mit einer Implementierung des Sets von Standard-Unix-Utilities prĂ€sentiert, die in einer einzigen ausfĂŒhrbaren Datei zusammengefasst und fĂŒr einen minimalen Systemressourcenverbrauch optimiert sind, wobei die GesamtgrĂ¶ĂŸe des Sets weniger als 1 MB betrĂ€gt. Die erste Ausgabe des neuen Zweigs 1.34 wird als instabil positioniert; eine vollstĂ€ndige Stabilisierung wird in der Version 1.34.1 gewĂ€hrleistet, die voraussichtlich in etwa einem Monat erscheinen wird. Der Projektcode wird unter der GPLv2-Lizenz veröffentlicht.

Die modulare Natur von BusyBox ermöglicht es, eine einheitliche ausfĂŒhrbare Datei zu erstellen, die eine beliebige Sammlung der im Paket implementierten Utilities enthĂ€lt (jede Utility ist als symbolischer Link zu dieser Datei verfĂŒgbar). GrĂ¶ĂŸe, Inhalt und FunktionalitĂ€t der Sammlung können je nach den BedĂŒrfnissen und Möglichkeiten der eingebetteten Plattform, fĂŒr die das Set erstellt wird, variiert werden. Das Paket ist eigenstĂ€ndig; bei statischer Kompilierung mit uclibc sind zur Erstellung eines funktionierenden Systems ĂŒber dem Linux-Kernel nur einige GerĂ€tedateien im Verzeichnis /dev zu erstellen und Konfigurationsdateien vorzubereiten. Im Vergleich zur vorherigen Version 1.33 hat der RAM-Verbrauch einer typischen BusyBox 1.34-Kompilation um 9620 Byte zugenommen (von 1032724 auf 1042344 Byte).

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.34 sind folgende Änderungen zu verzeichnen:

  • Eine neue Utility ascii mit einer interaktiven Tabelle von ASCII-Zeichennamen wurde hinzugefĂŒgt.
  • Eine neue Utility crc32 zur Berechnung von PrĂŒfziffern wurde hinzugefĂŒgt.
  • Im eingebetteten HTTP-Server wurde die UnterstĂŒtzung fĂŒr die Methoden DELETE, PUT und OPTIONS implementiert.
  • In udhcpc wurde die Möglichkeit zur Änderung des Standardnamens der Netzwerkschnittstelle bereitgestellt.
  • In der Implementierung der TLS-Protokolle wurde die UnterstĂŒtzung fĂŒr die elliptischen Kurven secp256r1 (P256) hinzugefĂŒgt.
  • Die Entwicklung der Kommandozeileninterpreter ash und hush wurde fortgesetzt. In hush wurde die Behandlung des Befehls ^D an das Verhalten von ash und bash angepasst, die bash-spezifische Konstruktion $'str' implementiert und die Optimierung der Ersetzungsoperation ${var/pattern/repl} durchgefĂŒhrt.
  • Eine große Anzahl von Fehlerkorrekturen und Verbesserungen bei der Implementierung der Utility awk wurde vorgenommen.
  • In die Utilities base32 und base64 wurde die Option „-i“ zum Ignorieren ungĂŒltiger Zeichen hinzugefĂŒgt.
  • In den Utilities bc und dc wurde die Verarbeitung der Umgebungsvariablen BC_LINE_LENGTH und DC_LINE_LENGTH an die GNU-Utilities angenĂ€hert.
  • In die Utility blockdev wurden die Optionen —getra und —setra hinzugefĂŒgt.
  • In den Dienstprogramme chattr und lsattr wurde die Option „-p“ hinzugefĂŒgt. In lsattr wurde die Anzahl der unterstĂŒtzten ext2-Dateisystemflags erweitert.
  • In das Dienstprogramm cp wurden die Optionen „-n“ (Verhinderung des Überschreibens) und „-t DIR“ (Festlegung des Zielverzeichnisses) hinzugefĂŒgt.
  • In cpio wurde die FunktionalitĂ€t der Konstruktion „cpio -d -p A/B/C“ verbessert.
  • In das Dienstprogramm df wurde die Option „-t TYPE“ (EinschrĂ€nkung der Ausgabe auf einen bestimmten Dateisystemtyp) hinzugefĂŒgt.
  • In das Dienstprogramm du wurde die Option -b (entspricht ‘—apparent-size —block-size=1’) hinzugefĂŒgt.
  • In das Dienstprogramm env wurde die Option „-0“ (Beendigung jeder Zeile mit einem Null-Zeichen) hinzugefĂŒgt.
  • In das Dienstprogramm free wurde die Option „-h“ (Ausgabe in lesbarem Format) hinzugefĂŒgt.
  • In das Dienstprogramm ionice wurde die Option „-t“ (Ignorieren von Fehlern) hinzugefĂŒgt.
  • In dem Dienstprogramm login wurde die UnterstĂŒtzung fĂŒr die Umgebungsvariable LOGIN_TIMEOUT implementiert.
  • In das Dienstprogramm mv wurden die Optionen „-t“ (Festlegung des Zielverzeichnisses fĂŒr die Verschiebung) und „-T“ (Behandlung des zweiten Arguments als Datei) hinzugefĂŒgt.
  • In das Dienstprogramm shred wurde die Option „-s SIZE“ (Anzahl der zu löschenden Bytes) hinzugefĂŒgt.
  • In das Dienstprogramm taskset wurde die Option „-a“ (Anwendung der CPU-Bindung auf alle Threads des Prozesses) hinzugefĂŒgt.
  • In den Dienstprogrammen timeout, top, watch und ping wurde die UnterstĂŒtzung fĂŒr nicht-ganzzahlige Werte (NN.N) implementiert.
  • In das Dienstprogramm uniq wurde die Option „-z“ (Verwendung eines Null-Zeichens als Trennzeichen) hinzugefĂŒgt.
  • In das Dienstprogramm unzip wurde die Option „-t“ (PrĂŒfung des Archivs) hinzugefĂŒgt.
  • Im Editor vi wurde die Verwendung von regulĂ€ren AusdrĂŒcken im Befehl ‘:s’ ermöglicht. Ein neuer Parameter expandtab wurde hinzugefĂŒgt. Die Implementierungen des Wechsels zwischen AbsĂ€tzen, der Auswahl von Bereichen und der RĂŒckgĂ€ngigmachung von Änderungen wurden verbessert.
  • In das Dienstprogramm xxd wurden die Optionen -i (Ausgabe im C-Stil) und „-o DISPLAYOFFSET“ implementiert.
  • In das Dienstprogramm wget wurde die Verarbeitung von HTTP-Codes 307/308 fĂŒr Weiterleitungen ermöglicht. Die Option FEATURE_WGET_FTP wurde hinzugefĂŒgt, um die UnterstĂŒtzung fĂŒr FTP ein- oder auszuschalten.
  • In das Dienstprogramm dd wurde die Option „iflag=count_bytes“ hinzugefĂŒgt.
  • In das Dienstprogramm cut wurden die mit dem Werkzeug toybox kompatiblen Optionen „-O OUTSEP“, „-D“ und „-F LIST“ implementiert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4