FatELF schnürt Universal Binaries für Linux

Inspiriert von Apples Universal Binaries soll das FatELF-Format Varianten desselben Programms für verschiedene Linux- oder Unix-Architekturen vereinen.

In Pocket speichern vorlesen Druckansicht 269 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Christian Kirsch

Apple hat es vor Jahren mit seinen "Universal Binaries" vorgemacht: Eine Datei enthält den Code des Programms für mehrere Plattformen. Anwender brauchen dabei nicht zu wissen, welcher Prozessor in ihrem Rechner steckt, wenn sie die Software herunterladen.

Nun setzt Ryan Gordon, der bislang Spiele auf verschiedene Plattformen portiert hat, diese Idee für Linux um. Sein FatELF-Projekt benutzt das unter Linux übliche Executable and Linking Format (ELF, PDF-Datei). Es hängt mehrere solcher ELF-Programme hintereinander und schreibt an den Anfang dieser Sammlung die nötige Verwaltungsinformation. Dadurch lassen sich, so Gordon, unterschiedliche Versionen etwa für 64- und 32-Bit-Linux-Systeme oder für MIPS- und Intel-CPUs, in einer Datei unterbringen.

Als Demonstration der Technik stellt er eine virtuelle Maschine mit einem Ubuntu-Linux zur Verfügung, die das FatELF-Format nutzt. Da weiterhin für jede Architektur ein Binary erforderlich ist, wächst der Platzbedarf der Software mit jeder eingebundenen Plattform-Variante. Auf ihrem System können Anwender per Kommandozeilenwerkzeug jedoch alle bis auf die dort benötigte Version entfernen.

Damit sich die Technik durchsetzt, sind Änderungen unter anderem am Linux-Kernel erforderlich. Auch die binutils, der gdb , die elfutils und das Programm file müssen modifziert werden. Einige dieser Patches hat Gordon bereits vorgeschlagen.

(ck)