Release des Pakets 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 , als auch durch 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 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 (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 Release , ein Pendant zu BusyBox, das von einem ehemaligen Maintainer von BusyBox weiterentwickelt wird, und 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 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
