Veröffentlichung eines minimalistischen Satzes von Systemdienstprogrammen BusyBox 1.32

Eingereicht von Paketfreigabe BusyBox 1.32 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.32 ist als instabil positioniert, die vollständige Stabilisierung wird in Version 1.32.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.31 stieg der RAM-Verbrauch der typischen BusyBox 1.32-Assembly um 3590 Byte (von 1011750 auf 1015340 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.32 hervorgehoben:

  • Neuer Befehl hinzugefügt mim um Skippts aus einer bestimmten Mimdatei auszuführen (erinnert ein wenig an ein abgespecktes Make-Dienstprogramm);
  • Das Suchdienstprogramm hat die Option „-empty“ hinzugefügt, um nach leeren Dateien zu suchen.
  • Im Dienstprogramm wget wurde die Begrenzung der Anzahl der Umleitungen erweitert und die Unterstützung für die Prüfung von TLS-Zertifikaten mit ENABLE_FEATURE_WGET_OPENSSL implementiert;
  • Korrekte Unterstützung für eine Liste von Mustern (pattern_list) zu grep hinzugefügt und die Option „-R“ hinzugefügt (rekursive Verarbeitung von Verzeichnisinhalten);
  • Probleme beim Erstellen in Clang 9 behoben und Compiler-Warnungen beseitigt;
  • Für die Befehls-Shells ash und hush wurden zahlreiche Korrekturen vorgeschlagen, die darauf abzielen, die Kompatibilität mit anderen Shells zu verbessern. Die Möglichkeit, integrierte Befehle mit Tabulatoren automatisch zu vervollständigen, wurde zu Ash und Hush hinzugefügt. Neue integrierte Befehle wurden in Ash stabilisiert.
  • Das Dienstprogramm fdisk unterstützt jetzt HFS- und HFS+-Partitionen;
  • init hat die Handhabung von Race-Bedingungen beim Empfang von Signalen verbessert;
  • Zum Dienstprogramm zur visuellen Überwachung von Systemparametern nm Ausgabeformat „%NT“ hinzugefügt (zeitlich auf Nullen ausgerichtet);
  • Dem Aufgabensatz wurde die Möglichkeit hinzugefügt, eine Liste von CPUs zu verarbeiten und anzuzeigen (Option „-c“);
  • In tar wurde das Verhalten der Option „-a“ geändert, die nun, anstatt die „lzma“-Komprimierung zu aktivieren, mit der automatischen Erkennung anhand der Dateierweiterung verknüpft ist;
  • Udhcpc6 hat Unterstützung für „staatenlos» für DHCPv6 (der Server sendet nur Netzwerkparameter, ohne eine Adresse zuzuweisen);
  • nslookup unterstützt jetzt die Verarbeitung von Antworten ohne RR-Datensätze und fügt Unterstützung für SRV-Datensätze hinzu;
  • Neue Befehle „showmacs“ und „showstp“ wurden zu brctl hinzugefügt;
  • Unterstützung für den Parameter „Relay-Server“ zu dhcpc hinzugefügt;
  • Einstellung zu syslogd hinzugefügt, um die Zeit mit Millisekundengenauigkeit anzuzeigen;
  • In httpd ist bei der Ausführung im NOMMU-Modus das Festlegen eines anderen Home-Verzeichnisses zulässig und die Option „-h“ funktioniert, wenn ein Hintergrundprozess ausgeführt wird.
  • xargs hat die Handhabung von in Anführungszeichen eingeschlossenen Argumenten verbessert und das korrekte Verhalten der Option „-n“ sichergestellt;
  • Fehler in den Dienstprogrammen grep, top, dc, gzip, awk, bc, ntpd, pidof, stat, telnet, tftp, whois, unzip, chgrp, httpd, vi und route behoben.

Auch letzten Monat fand statt freigeben Spielzeugkiste 0.8.3, 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 272 Grundbefehle wurden bereits implementiert (204 vollständig und 68 teilweise) von 343 geplanten.

Zu den Neuerungen von Toybox 0.8.3 zählen:

  • Neue Befehle rtcwake, blkdiscard, getopt und readelf hinzugefügt;
  • „make root“ bietet die Möglichkeit, eine funktionierende Boot-Umgebung zu erstellen, die nur auf dem Linux-Kernel und den Toybox-Dienstprogrammen basiert und mit einem eigenen Init-Skript geladen werden kann.
  • Anfängliche Unterstützung für Module mit separaten Implementierungen von Dienstprogrammen hinzugefügt, die nicht in der Haupt-ToyBox enthalten sind;
  • Der Befehlsinterpreter „toysh“ ist zu 80 % fertig (es gibt noch keine Unterstützung für Funktionen, Verlauf, Terminalverwaltung, Jobs, $((math)), Vorlagen);
  • Unterstützung für zusätzliche Optionen zu verschiedenen Dienstprogrammen hinzugefügt, einschließlich Patch, Cal, CP, MV, Lsattr, Chattr, Ls, ID, Netcat und Setsid.

Source: opennet.ru

Kommentar hinzufügen