Veröffentlichung eines minimalistischen Satzes von Systemdienstprogrammen BusyBox 1.31

Eingereicht von Paketfreigabe BusyBox 1.31 mit der Implementierung einer Reihe von Standard-UNIX-Dienstprogrammen, 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.31 ist als instabil positioniert, die vollständige Stabilisierung wird in Version 1.31.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.30 verringerte sich der RAM-Verbrauch der typischen BusyBox 1.31-Assembly um 86 Byte (von 1008478 auf 1008392 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) im Namen der BusyBox-Entwickler, beide durch Gericht, und hier entlang Schlussfolgerungen Außergerichtliche Vereinbarungen haben immer wieder erfolgreich Einfluss auf Unternehmen genommen, die keinen Zugriff auf den Quellcode von GPL-Programmen gewähren. Gleichzeitig tut der Autor von BusyBox sein Bestes Einwände gegen gegen einen solchen Schutz – in dem Glauben, dass er sein Geschäft ruiniert.

Die folgenden Änderungen werden in BusyBox 1.31 hervorgehoben:

  • Neue Befehle hinzugefügt: ts (Implementierung von Client und Server für das TSP-Protokoll (Time-Stamp Protocol)) und i2ctransfer (Erstellung und Senden von I2C-Nachrichten);
  • Unterstützung für DHCP-Optionen zu udhcp hinzugefügt 100 (Zeitzoneninformationen) und 101 (Zeitzonenname in der TZ-Datenbank) für IPv6;
  • Unterstützung für statische Hostnamenbindungen an Clients in udhcpd hinzugefügt;
  • Die Ash- und Hush-Shells implementieren die numerischen Literale „BASE#nnnn“. Die Implementierung des ulimit-Befehls wurde Bash-kompatibel gemacht, einschließlich der Optionen „-i RLIMIT_SIGPENDING“ und „-q RLIMIT_MSGQUEUE“. Unterstützung für „wait -n“ hinzugefügt. Bash-kompatible EPOCH-Variablen hinzugefügt;
  • Die Hush-Shell implementiert eine „$-“-Variable, die die standardmäßig aktivierten Shell-Optionen auflistet;
  • Der Code zum Übergeben von Werten per Referenz wurde vom Upstream an bc übertragen, Unterstützung für Void-Funktionen wurde hinzugefügt und die Möglichkeit, mit ibase-Werten bis zu 36 zu arbeiten;
  • In brctl wurden alle Befehle so konvertiert, dass sie mit dem Pseudo-FS /sys funktionieren;
  • Der Code der Dienstprogramme fsync und sync wurde zusammengeführt;
  • Die Implementierung von httpd wurde verbessert. Verbesserte Verarbeitung von HTTP-Headern und Arbeit im Proxy-Modus. Die Liste der MIME-Typen umfasst SVG und JavaScript;
  • Die Option „-c“ wurde zu losetup hinzugefügt (erzwungene Doppelprüfung der mit dem Loop-Gerät verknüpften Dateigröße) sowie eine Option zum Scannen von Partitionen. mount und losetup bieten Unterstützung für die Arbeit mit /dev/loop-control;
  • In ntpd wurde der SLEW_THRESHOLD-Wert von 0.125 auf 0.5 erhöht;
  • Unterstützung für die Zuweisung von Nullwerten zu sysctl hinzugefügt;
  • Unterstützung für Bruchwerte in der zu beobachtenden Option „-n SEC“ hinzugefügt;
  • Möglichkeit hinzugefügt, mdev als Hintergrundprozess auszuführen;
  • Das Dienstprogramm wget implementiert das Flag „-o“, um die Datei anzugeben, in die das Protokoll geschrieben werden soll. Benachrichtigungen über den Start und Abschluss von Downloads hinzugefügt;
  • Unterstützung für den AYT IAC-Befehl zu telnetd hinzugefügt;
  • Befehl „dG“ zu vi hinzugefügt (Inhalt von der aktuellen Zeile bis zum Ende der Datei löschen);
  • Option „oflag=append“ zum dd-Befehl hinzugefügt;
  • Das Flag „-H“ wurde zum Top-Dienstprogramm hinzugefügt, um den Scanmodus für einzelne Threads zu aktivieren.

Auch vor zwei Wochen fand statt freigeben Spielzeugkiste 0.8.1, ein Analogon von BusyBox, entwickelt vom ehemaligen BusyBox-Betreuer und verteilt unter BSD-Lizenz. Der Hauptzweck von Toybox besteht darin, Herstellern die Möglichkeit zu geben, einen minimalistischen Satz von Standarddienstprogrammen zu verwenden, ohne den Quellcode geänderter Komponenten öffnen zu müssen. Laut Toybox-Fähigkeiten bisher hinterherhinken von BusyBox, aber 188 grundlegende Befehle von 220 geplanten wurden bereits implementiert.

Zu den Neuerungen von Toybox 0.8.1 zählen:

  • Es wurde ein Funktionsniveau erreicht, das ausreicht, um Android in einer Umgebung zu erstellen, die auf Toybox-Dienstprogrammen basiert.
  • Die neuen Befehle mcookie und devmem sind enthalten und die neu geschriebenen Befehle tar, gunzip und zcat werden aus dem Testzweig verschoben.
  • Zum Testen wurde eine neue Implementierung von vi vorgeschlagen.
  • Der Befehl „find“ unterstützt jetzt die Optionen „-wholename/-iwholename“.
    „-printf“ und „-context“;

  • Option „--exclude-dir“ zu grep hinzugefügt;
  • Echo unterstützt jetzt die Option „-E“.
  • „UUID“-Unterstützung zum Mounten hinzugefügt.
  • Der Datumsbefehl berücksichtigt jetzt die in der Umgebungsvariable TZ angegebene Zeitzone.
  • Unterstützung für relative Bereiche (+N) zu sed hinzugefügt.
  • Verbesserte Lesbarkeit der ps-, top- und iotop-Ausgabe.

Source: opennet.ru

Kommentar hinzufügen