Die Veröffentlichung des minimalistischen Sets an Systemwerkzeugen BusyBox 1.31

Vorstellung Release des Pakets BusyBox 1.31 mit der Implementierung eines Satzes von Standard-UNIX-Dienstprogrammen, die in einer einzigen ausfĂŒhrbaren Datei zusammengefasst und fĂŒr einen minimalen Systemressourcenverbrauch optimiert sind, wobei die GrĂ¶ĂŸe des Pakets weniger als 1 MB betrĂ€gt. Die erste Ausgabe des neuen Zweigs 1.31 wird als instabil eingestuft, die vollstĂ€ndige Stabilisierung wird in der Version 1.31.1 sichergestellt, die voraussichtlich in etwa einem Monat erwartet wird. Der Code des Projekts wird unter der GPLv2-Lizenz verbreitet.

Der modulare Charakter von BusyBox ermöglicht es, eine einheitliche ausfĂŒhrbare Datei zu erstellen, die eine beliebige Anzahl der im Paket implementierten Dienstprogramme enthĂ€lt (jedes Dienstprogramm ist als symbolischer Link auf diese Datei verfĂŒgbar). Die GrĂ¶ĂŸe, der Umfang und die FunktionalitĂ€t der Sammlung von Dienstprogrammen können je nach den Anforderungen und Möglichkeiten der eingebetteten Plattform, fĂŒr die die Erstellung erfolgt, variiert werden. Das Paket ist eigenstĂ€ndig: Bei einer statischen Erstellung mit uclibc zum Aufbau eines funktionierenden Systems auf dem Linux-Kernel muss lediglich eine Anzahl von GerĂ€tedateien im Verzeichnis /dev erstellt und die Konfigurationsdateien vorbereitet werden. Im Vergleich zur vorherigen Version 1.30 hat sich der Verbrauch des Arbeitsspeichers bei der typischen Erstellung von BusyBox 1.31 um 86 Byte verringert (von 1008478 auf 1008392 Byte).

BusyBox ist das Hauptwerkzeug im Kampf gegen die Verletzung der GPL in Firmware. Die Organisationen Software Freedom Conservancy (SFC) und Software Freedom Law Center (SFLC) haben durch die Entwickler von BusyBox sowohl ĂŒber das Gericht, als auch durch Absprachen außergerichtliche Vereinbarungen haben sie mehrfach erfolgreich auf Unternehmen eingewirkt, die keinen Zugang zu den Quellcodes von GPL-Programmen bereitstellen. Gleichzeitig widerspricht der Autor von BusyBox entschieden diesem Schutz— da er der Meinung ist, dass er sein GeschĂ€ft zerstört. gegen diesen Schutz — da er seinem GeschĂ€ft schadet.

Die Version BusyBox 1.31 zeichnet sich durch folgende Änderungen aus:

  • Neue Befehle wurden hinzugefĂŒgt: ts (Implementierung des Clients und des Servers fĂŒr das Protokoll TSP (Time-Stamp-Protokoll)) und i2ctransfer (Erstellung und Versand von I2C-Nachrichten);
  • In udhcp wurde die UnterstĂŒtzung fĂŒr DHCP-Optionen 100 (Informationen zur Zeitzone) und 101 (Name der Zeitzone in der TZ-Datenbank) fĂŒr IPv6 hinzugefĂŒgt;
  • In udhcpd wurde die UnterstĂŒtzung fĂŒr statische Bindungen von Hostnamen an Clients hinzugefĂŒgt;
  • In den Shells ash und hush wurden numerische Literale „BASE#nnnn“ implementiert. Die Implementierung des Befehls ulimit wurde mit bash kompatibel gemacht, einschließlich der hinzugefĂŒgten Optionen „-i RLIMIT_SIGPENDING“ und „-q RLIMIT_MSGQUEUE“. UnterstĂŒtzung fĂŒr „wait -n“ wurde hinzugefĂŒgt. Bash-kompatible Variablen EPOCH wurden hinzugefĂŒgt;
  • In der Shell hush wurde die Variable „$-„ implementiert, in der die standardmĂ€ĂŸig aktivierten Optionen der Shell aufgelistet sind;
  • In bc wurde der Code fĂŒr die Übergabe von Werten durch Verweis aus upstream ĂŒbernommen, die UnterstĂŒtzung fĂŒr void-Funktionen hinzugefĂŒgt und die Möglichkeit geschaffen, Werte bis zur Basis 36 zu verarbeiten;
  • In brctl wurden alle Befehle auf die Verwendung des Pseudo-FS /sys umgestellt;
  • Der Code der Dienstprogramme fsync und sync wurde zusammengefĂŒhrt;
  • Verbesserte Implementierung von httpd. Verbesserte Verarbeitung von HTTP-Headern und Betrieb im Proxy-Modus. SVG und JavaScript wurden in die Liste der MIME-Typen aufgenommen;
  • In losetup wurde die Option „-c“ (gezielte ÜberprĂŒfung der DateigrĂ¶ĂŸe, die mit dem Loop-GerĂ€t verbunden ist) sowie eine Option zum Scannen von Partitionen hinzugefĂŒgt. In mount und losetup wurde die UnterstĂŒtzung fĂŒr die Verwendung von /dev/loop-control sichergestellt;
  • Im ntpd wurde der Wert SLEW_THRESHOLD von 0,125 auf 0,5 erhöht;
  • In sysctl wurde die UnterstĂŒtzung fĂŒr die Zuweisung leerer Werte hinzugefĂŒgt;
  • In watch wurde die UnterstĂŒtzung fĂŒr Dezimalwerte in der Option „-n SEC“ hinzugefĂŒgt;
  • Es wurde die Möglichkeit hinzugefĂŒgt, mdev als Hintergrundprozess auszufĂŒhren;
  • Im wget-Dienstprogramm wurde das Flag „-o“ zur Bestimmung der Protokolldatei implementiert. Benachrichtigungen ĂŒber den Beginn und das Ende des Downloads wurden hinzugefĂŒgt;
  • Im telnetd wurde die UnterstĂŒtzung fĂŒr den Befehl AYT IAC hinzugefĂŒgt;
  • In vi wurde der Befehl ‚dG‘ (Entfernung des Inhalts von der aktuellen Zeile bis zum Ende der Datei) hinzugefĂŒgt;
  • In den Befehl dd wurde die Option ‚oflag=append‘ integriert;
  • Im Dienstprogramm top wurde das Flag ‚-H‘ zur Aktivierung des Scan-Modus fĂŒr einzelne Threads hinzugefĂŒgt.

Außerdem vor zwei Wochen hat stattgefunden Release Toybox 0.8.1, ein Pendant zu BusyBox, das von einem ehemaligen Maintainer von BusyBox weiterentwickelt wird, und distribuiert unter der BSD-Lizenz. Das Hauptziel von Toybox besteht darin, Herstellern die Nutzung eines minimalistischen Satzes von Standarddienstprogrammen zu ermöglichen, ohne den Quellcode der modifizierten Komponenten offenlegen zu mĂŒssen. Bei den Möglichkeiten bleibt Toybox derzeit hinter von BusyBox, aber bereits 188 von 220 geplanten Grundbefehlen realisiert.

Zu den Neuheiten von Toybox 0.8.1 gehören:

  • Ein Funktionsniveau wurde erreicht, das ausreichend ist, um Android in einer Umgebung zu kompilieren, die auf Toybox-Dienstprogrammen basiert.
  • Neue Befehle wie mcookie und devmem wurden hinzugefĂŒgt, wĂ€hrend die ĂŒberarbeiteten Befehle tar, gunzip und zcat aus dem Testzweig ĂŒbernommen wurden.
  • FĂŒr Tests wurde eine neue Implementierung von vi vorgeschlagen.
  • In den Befehl find wurde die UnterstĂŒtzung fĂŒr die Optionen „-wholename/-iwholename“,
    „-printf“ und „-context“ hinzugefĂŒgt;
  • In grep wurde die Option „—exclude-dir“ eingefĂŒhrt;
  • In echo wurde die UnterstĂŒtzung fĂŒr die Option „-E“ hinzugefĂŒgt.
  • In mount wurde die UnterstĂŒtzung fĂŒr „UUID“ integriert.
  • In den Befehl date wurde die BerĂŒcksichtigung der Zeitzone, die in der Umgebungsvariable TZ festgelegt ist, hinzugefĂŒgt.
  • In sed wurde die UnterstĂŒtzung fĂŒr relative Bereiche (+N) hinzugefĂŒgt.
  • Die Lesbarkeit der Ausgaben von ps, top und iotop wurde verbessert.

Quelle: opennet.ru

60GB SSD 8Gb DDR4