Login
Newsletter
Werbung

Mo, 26. Oktober 2009, 12:27

Software::Entwicklung

FatELF-Binärformat für Linux vorgestellt

Das Projekt FatELF will mit Binärdateien, die Programme oder Bibliotheken für mehrere Architekturen enthalten, das Leben der Benutzer und Entwickler erleichtern.

Das FatELF-Format ist eine Erweiterung des ELF-Formats, das unter Linux und anderen Systemen zur Speicherung von Programmen und dynamischen Bibliotheken verwendet wird. Es speichert den Code von mehreren Architekturen in einer Datei, wobei zur Laufzeit der richtige Code ausgewählt wird. An der Entwicklung des Formats ist der nicht ganz unbekannte Spiele-Entwickler Ryan Gordon von icculus.org beteiligt.

Mit FatELF ergeben sich »universelle Binärdateien«, die dem Projekt zufolge eine Reihe von Vorzügen haben. Die Distributoren müssen nicht mehr separate Binärdateien für verschiedene Plattformen bereitstellen, und für die Benutzer entfällt die Suche nach dem passenden Binärpaket für ihre Architektur (z.B. x86, x86_64, PowerPC und MIPS). Es muss keine separaten Verzeichnisse /lib, /lib32 und /lib64 für 32- und 64-Bit-Code mehr geben. Es sind keine fehleranfälligen Workarounds mehr nötig, um die richtige Variante eines Programms zu starten, und Drittanbieter und Installationsprogramme haben es ebenfalls leichter.

Als Nachteil nennt das Team, dass die Paketgröße natürlich zunimmt. Dies stellt in den meisten Fällen aber kein Hindernis dar, da man das Format nicht auf alle Programme einer Distribution anwenden muss (das bisherige ELF-Format funktioniert weiterhin), und bei vielen Programmen die Daten weit größer sind als die ausführbaren Teile.

FatELF erfordert Anpassungen am Kernel, glibc und diversen Hilfsprogrammen. Das Projekt wartet diese Anpassungen, die noch nicht in die offiziellen Versionen der betroffenen Komponenten eingeflossen sind, in einem Mercurial-Repositorium. Der Status der Patches ist auf der Projektseite aufgeführt. Viele Teile sind bereits fertig, es steht nur noch die glibc aus. Anpassungen der module-init-tools und der elfutils wurden noch nicht begonnen, ebenso wie die Portierung auf die BSD-Systeme.

Eine virtuelle Maschine mit einem angepassten Ubuntu 9.04 steht zur Demonstration des Konzepts zur Verfügung. In dieser sind die x86- und x86_64-Architekturen vereint. FatELF soll gegenüber ELF keine Geschwindigkeitsnachteile haben und nicht mehr Speicher verbrauchen, da nur die benötigten Code-Teile geladen werden. Der Code von FatELF steht unter der freien zlib-Lizenz, die Patches für die anderen Komponenten unter deren jeweiliger Lizenz.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung