Fat Binary
Die englische Bezeichnung Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. (übersetzt: Fette Binärdatei) bezeichnet ein Computerprogramm, das sich unmodifiziert auf Rechnern ausführen lässt, deren CPUs eigentlich vollkommen unterschiedliche Befehlssatzarchitekturen (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., kurz: ISA) besitzen. Dies wird durch die Zusammenfassung mehrerer auf den jeweiligen CPU-Typen lauffähiger Programme in einer entsprechend strukturierten binären Containerdatei erreicht. Das Betriebssystem ist dann dafür zuständig, das benötigte Programm aus diesem Container zu laden und auszuführen.
Apple[Bearbeiten]

Fat Binaries wurden beispielsweise eingesetzt, als Apple 1994 von den CPUs der 68k-Familie zum PowerPC wechselte. Viele in der Übergangszeit veröffentlichten Programme enthalten Maschinencode sowohl für Macintosh-Rechner mit einer CPU aus der 68k-Familie als auch für solche mit dem damals neuen PowerPC.
Für den Übergang von den PowerPC-CPUs zu den Intel-CPUs aus der Core-Duo- und der Core-2-Duo-Serie im Jahr 2006 setzte Apple erneut Fat Binaries ein. Allerdings wurden diese nun als Universal Binary bezeichnet, einem Format, das theoretisch die Vereinigung von Code für bis zu über vier Milliarden<ref>[Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Apple Developer Connection, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2008-07-25 (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.</ref> unterschiedliche Architekturen ermöglicht.
Linux[Bearbeiten]

FatELF ist eine Fat-Binary-Implementierung für Linux und andere unixoide Betriebssysteme von Ryan C. Gordon.<ref>icculus.org</ref> Umgesetzt ist FatELF als Erweiterung des ELF Binärformats.<ref name="fatelfspec">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] icculus.org, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> Neben verschiedenen CPU-Architekturen mit variierenden Datenwortgrößen (z. B. 32-Bit oder 64-Bit Systeme) oder Byte-Reihenfolge können auch Software-Plattformvariationen unterstützt werden, wie verschiedene OS ABIs (oder Versionen). Hieraus ergeben sich laut den Entwicklern folgende Anwendungsszenarien:<ref name="fatelf">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] icculus.org, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>
- Linux-Distributionen brauchen nicht mehr für verschiedene Hardwarearchitekturen getrennt angeboten zu werden, die Wahl der korrekten Version ist für Anwender manchmal verwirrend. Dadurch reduziert sich auch der Bereitstellungs- und Unterstützungsaufwand für den Distributor.
- Es kann im Betriebssystemverzeichnisbaum auf Multilib, also z. B. die getrennten Verzeichnisse für
/lib,/lib32und/lib64, verzichtet werden. - Die Wahl der korrekten Anwendungsdatei und Programmbibliothek wird an zentraler Stelle vom Betriebssystem durchgeführt anstelle durch unsichere Shell-Skripte.
- Sollte sich die ELF ABI ändern, könnte neu erstellte Software auch weiterhin auf älteren Systemen lauffähig sein.
- Es können Webbrowser-Plug-ins ausgeliefert werden, die auf unterschiedlichen Plattformen lauffähig sind.
- Anwendungsdateien für 64- und 32-Bit-Architekturen oder für Linux und BSD-variationen können in einer einzigen Datei vereint werden.
- Dieselbe Installationspartition kann zum Booten von verschiedener Hardware verwendet werden. Ein Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., verschiedene Kernel- und Hardwareversionen sind möglich.
- Es würde die Verbreitung von kommerziellen, vorkompilierten Computerspielen auf der Linuxplattform (distributionsübergreifend) deutlich vereinfachen<ref>Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] gaslamp Games, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref> und eine längerfristigere Nutzung, z. B. über mehrere Distributionsversionen (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.) hinweg erlauben.<ref>Dan McKay: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] In: Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am 2009-05-13 (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden. „Vorlage:Str trim“</ref>
- Eine Applikation, die auf einem Netzlaufwerk oder USB-Stick bereitgestellt wird, kann auf verschiedensten Systemen lauffähig sein. Hierdurch sind portable Applikationen und auch Cloud-Computing-Images für heterogene Systeme leichter realisierbar.<ref name="cloud">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] gmane.org, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>
Eine Beispielimplementierung für Ubuntu 9.04 ist verfügbar.<ref>VM eines Ubuntu 9.04 mit “fat binary support”. icculus.org</ref> Eine Integration in den Linux-Kernel steht noch aus.<ref name="kernel1">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] icculus.org, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref><ref name="kernel2">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] osnews.com, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref><ref name="selfanatomy">Vorlage:Cite book/NameVorlage:Cite book/Name: [Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden. Skriptfehler: Ein solches Modul „Vorlage:Internetquelle“ ist nicht vorhanden.] Linux Weekly News, Skriptfehler: Ein solches Modul „DateTime“ ist nicht vorhanden., archiviert vom Vorlage:Referrer (nicht mehr online verfügbar) am Vorlage:Cite book/URL (Skriptfehler: Ein solches Modul „Multilingual“ ist nicht vorhanden.).Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Skriptfehler: Ein solches Modul „TemplatePar“ ist nicht vorhanden.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>
Einzelnachweise[Bearbeiten]
<references />