Veröffentlichung eines minimalistischen Satzes von Systemdienstprogrammen BusyBox 1.34

Die Veröffentlichung des BusyBox 1.34-Pakets wird mit der Implementierung einer Reihe von Standard-UNIX-Dienstprogrammen vorgestellt, die als einzelne ausführbare Datei konzipiert und für minimalen Verbrauch von Systemressourcen mit einer Satzgröße von weniger als 1 MB optimiert sind. Die erste Veröffentlichung des neuen Zweigs 1.34 ist als instabil positioniert; die vollständige Stabilisierung wird in Version 1.34.1 bereitgestellt, die in etwa einem Monat erwartet wird. Der Projektcode wird unter der GPLv2-Lizenz vertrieben.

Der modulare Charakter von BusyBox ermöglicht die Erstellung einer einheitlichen ausführbaren Datei, die einen beliebigen Satz von im Paket implementierten Dienstprogrammen enthält (jedes Dienstprogramm ist in Form eines symbolischen Links zu dieser Datei verfügbar). Die Größe, Zusammensetzung und Funktionalität der Sammlung von Dienstprogrammen kann je nach den Anforderungen und Fähigkeiten der eingebetteten Plattform, für die die Montage durchgeführt wird, variiert werden. Das Paket ist eigenständig; wenn es statisch mit uclibc erstellt wird, müssen Sie zum Erstellen eines funktionierenden Systems auf dem Linux-Kernel lediglich mehrere Gerätedateien im Verzeichnis /dev erstellen und Konfigurationsdateien vorbereiten. Im Vergleich zur Vorgängerversion 1.33 stieg der RAM-Verbrauch der typischen BusyBox 1.34-Assembly um 9620 Byte (von 1032724 auf 1042344 Byte).

BusyBox ist das wichtigste Tool im Kampf gegen GPL-Verstöße in der Firmware. Die Software Freedom Conservancy (SFC) und das Software Freedom Law Center (SFLC) haben im Auftrag der BusyBox-Entwickler wiederholt erfolgreich Einfluss auf Unternehmen genommen, die keinen Zugriff auf den Quellcode von GPL-Programmen gewähren, sowohl gerichtlich als auch außergerichtlich -gerichtliche Vereinbarungen. Gleichzeitig lehnt der Autor von BusyBox einen solchen Schutz entschieden ab – da er glaubt, dass er sein Geschäft ruiniert.

Die folgenden Änderungen werden in BusyBox 1.34 hervorgehoben:

  • Ein neues ASCII-Dienstprogramm mit einer interaktiven Tabelle mit ASCII-Zeichennamen hinzugefügt.
  • Neues Dienstprogramm crc32 zur Berechnung von Prüfsummen hinzugefügt.
  • Der integrierte http-Server unterstützt die Methoden DELETE, PUT und OPTIONS.
  • Udhcpc bietet die Möglichkeit, den Standardnamen der Netzwerkschnittstelle zu ändern.
  • Die Implementierung von TLS-Protokollen unterstützt jetzt elliptische Kurven secp256r1 (P256)
  • Die Entwicklung der Befehlsshells Ash und Hush wurde fortgesetzt. Kurz gesagt, die Handhabung des ^D-Befehls wurde an das Verhalten von Ash und Bash angepasst, das Bash-spezifische $'str'-Konstrukt wurde implementiert und die ${var/pattern/repl}-Ersetzungsoperationen wurden implementiert optimiert.
  • An der Implementierung des awk-Dienstprogramms wurden viele Korrekturen und Verbesserungen vorgenommen.
  • Option „-i“ zu Base32- und Base64-Dienstprogrammen hinzugefügt, um ungültige Zeichen zu ignorieren.
  • In den Dienstprogrammen bc und dc ähnelt die Handhabung der Umgebungsvariablen BC_LINE_LENGTH und DC_LINE_LENGTH der der GNU-Dienstprogramme.
  • Optionen --getra und --setra zum Dienstprogramm blockdev hinzugefügt.
  • Den Dienstprogrammen chattr und lsattr wurde die Option „-p“ hinzugefügt. lsattr hat die Anzahl der unterstützten ext2-FS-Flags erweitert.
  • Dem Dienstprogramm cp wurden die Optionen „-n“ (Überschreiben deaktivieren) und „-t DIR“ (Zielverzeichnis angeben) hinzugefügt.
  • In cpio wurde die Konstruktion „cpio -d -p A/B/C“ angepasst.
  • Dem df-Dienstprogramm wurde die Option „-t TYPE“ hinzugefügt (die die Ausgabe auf einen bestimmten Dateityp beschränkt).
  • Option -b zum Dienstprogramm du hinzugefügt (entspricht „—apparent-size —block-size=1“).
  • Option „-0“ zum env-Dienstprogramm hinzugefügt (beendet jede Zeile mit einem Zeichen mit Code Null).
  • Die Option „-h“ (lesbare Ausgabe) wurde dem kostenlosen Dienstprogramm hinzugefügt.
  • Option „-t“ (Fehler ignorieren) zum ionice-Dienstprogramm hinzugefügt.
  • Das Anmeldedienstprogramm unterstützt jetzt die Umgebungsvariable LOGIN_TIMEOUT.
  • Dem MV-Dienstprogramm wurden die Optionen „-t“ (Zielverzeichnis angeben, das verschoben werden soll) und „-T“ (zweites Argument als Datei behandeln) hinzugefügt.
  • Die Option „-s SIZE“ (Anzahl der zu löschenden Bytes) wurde dem Shred-Dienstprogramm hinzugefügt.
  • Die Option „-a“ wurde zum Taskset-Dienstprogramm hinzugefügt (CPU-Affinität für alle Prozess-Threads anwenden).
  • Die Dienstprogramme Timeout, Top, Watch und Ping unterstützen jetzt nicht ganzzahlige Werte (NN.N).
  • Die Option „-z“ wurde zum Uniq-Dienstprogramm hinzugefügt (verwenden Sie das nullcodierte Zeichen als Trennzeichen).
  • Dem Unzip-Dienstprogramm wurde die Option „-t“ (Archivprüfung) hinzugefügt.
  • Der vi-Editor ermöglicht die Verwendung regulärer Ausdrücke im Befehl „:s“. Option „Expandtab“ hinzugefügt. Verbesserte Implementierungen zum Wechseln zwischen Absätzen, Auswählen von Bereichen und Rückgängigmachen von Änderungen.
  • Das Dienstprogramm xxd implementiert die Optionen -i (Ausgabe im C-Stil) und -o DISPLAYOFFSET.
  • Das Dienstprogramm wget ermöglicht die Verarbeitung von HTTP 307/308-Codes für Weiterleitungen. Option FEATURE_WGET_FTP hinzugefügt, um die FTP-Unterstützung zu aktivieren/deaktivieren.
  • Option „iflag=count_bytes“ zum dd-Dienstprogramm hinzugefügt.
  • Das Cut-Utility implementiert die Toybox-kompatiblen Optionen „-O OUTSEP“, „-D“ und „-F LIST“.

Source: opennet.ru

Kommentar hinzufügen