zurück zum Artikel

FatELF schnürt Universal Binaries für Linux

Christian Kirsch

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

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 [1] benutzt das unter Linux übliche Executable and Linking Format [2] (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 [3] , die elfutils und das Programm file müssen modifziert werden. Einige dieser Patches hat Gordon bereits vorgeschlagen.

(ck [4])


URL dieses Artikels:
https://www.heise.de/-837756

Links in diesem Artikel:
[1] http://www.h-online.com/open/news/item/FatELF-to-bring-Universal-binaries-to-Linux-837296.html
[2] http://refspecs.freestandards.org/elf/elf.pdf
[3] https://www.heise.de/news/GNU-Debugger-lernt-Rueckwaertslaufen-817379.html
[4] mailto:ck@ix.de