Universal Binaries

Universal Binaries
Apple Universal Binary Logo

Universal Binaries (auf deutsch in etwa universelle Binärdatei) sind im Apple-Jargon ausführbare Dateien (d. h. Programme), die nativ sowohl auf einem PowerPC-basierten Apple Computer als auch auf einem x86 (Intel)-basierenden Apple Computer lauffähig sind, also eine Form des Fat Binary Konzepts. Es ist auch möglich, den Code für 32-Bit- und 64-Bit-Systeme auf diese Weise zu integrieren. Eine Universal Binary enthält somit bis zu vier verschiedene Arten des ausführbaren Codes einer Anwendung; zum einen enthält sie den ausführbaren Code für PowerPC-Prozessoren und zum anderen den ausführbaren Code für Intel-Prozessoren (in derselben Programmdatei) – ggf. sogar jeweils in der 32-Bit- und der 64-Bit-Variante.

Eine Universal Binary wird beim Ausführen vom Betriebssystem als solche an ihrem Header erkannt, wodurch das Betriebssystem anschließend anhand der vorhandenen Architektur den jeweiligen ausführbaren Code abarbeiten kann.

Dieser Vorgang ermöglicht es nun, eine Anwendung sowohl auf einem Apple Computer mit PowerPC-Architektur als auch auf einem Apple Computer mit Intel-Architektur ohne Geschwindigkeitsverlust auszuführen.

Die Universal Binary wurde auf der Worldwide Developers Conference (WWDC) 2005 eingeführt, um den Übergang zwischen der bestehenden PowerPC-Architektur zu Intel-basierenden Systemen zu erleichtern. Der Ursprung der Universal Binaries geht aber auf das Mach-O-Fat-Format zurück, das bereits in NeXTStep und OpenStep verwendet wurde, da diese Betriebssysteme für unterschiedliche Architekturen portiert wurden. Noch heute enthalten OpenSource-Bestandteile von Mac OS X Hinweise auf M68k, SPARC und weitere CPUs.

Technisches

Realisiert werden Universal Binaries über das Binärformat Mach-O, das im Gegensatz zum ELF-Format, welches unter Linux und anderen unixähnlichen Betriebssystemen verbreitet ist, Binärcode für mehrere Architekturen enthalten kann. Mit dem Tool objdump aus den GNU Binutils kann man die Binärcodes eines Universal Binaries auslesen.

Das universale Safari enthält sowohl Code für Intel (i386) als auch für PowerPC (powerpc:common). „mach-o-le“ und „mach-o-be“ stehen für die Byte-Reihenfolgen Little Endian und Big Endian.

$ objdump -f /Applications/Safari.app/Contents/MacOS/Safari 
In archive /Applications/Safari.app/Contents/MacOS/Safari:

/Applications/Safari.app/Contents/MacOS/Safari:     file format mach-o-le
architecture: i386, flags 0x000001ff:
HAS_RELOC, EXEC_P, HAS_LINENO, HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED
start address 0x0000000000000000


/Applications/Safari.app/Contents/MacOS/Safari:     file format mach-o-be
architecture: powerpc:common, flags 0x000001ff:
HAS_RELOC, EXEC_P, HAS_LINENO, HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED
start address 0x0000000000061830

Es gibt auch Programme die in zwei getrennten Versionen (Intel-Binary und PPC-Binary) angeboten werden, hier muss man sich bereits beim Download für die richtige Datei entscheiden, was jedoch den Vorteil kleinerer Dateien hat.

Bei Programmen für nur eine Architektur wird entsprechend nur ein Binärcode angezeigt:

$ objdump -f /Applications/VLC.app/Contents/MacOS/VLC 

/Applications/VLC.app/Contents/MacOS/VLC:     file format mach-o-le
architecture: i386, flags 0x000001ff:
HAS_RELOC, EXEC_P, HAS_LINENO, HAS_DEBUG, HAS_SYMS, HAS_LOCALS, DYNAMIC, WP_TEXT, D_PAGED
start address 0x0000000000000000

Ohne zusätzliche Programme lässt sich der Binärcode mit dem Befehl file auslesen. Also für das obige Beispiel Safari: file /Applications/Safari.app/Contents/MacOS/Safari.

Hintergrund

Schon beim Wechsel von der Motorola-68k- auf die PowerPC-Prozessorarchitektur verwendete Apple das Konzept, in derselben Datei Code für mehrere Prozessoren unterzubringen. Damals wurde der Begriff Fat Binary verwendet. Realisiert wurde es jedoch nicht als Mach-O-Datei, sondern als das eigentlich modernere PEF-Dateiformat (Preferred Executable Format). Dabei lag der 68k-Code in der resource fork und der PPC-Code in der data fork.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Universal binaries — Pour les articles homonymes, voir Universal. Universal Binaries ou UB est la façon par laquelle Apple désigne un fichier binaire qui peut s exécuter nativement sur les processeurs Intel et PowerPC. Universal Binaries a été présenté lors de la… …   Wikipédia en Français

  • Universal Binary — Universal binaries Pour les articles homonymes, voir Universal. Universal Binaries ou UB est la façon par laquelle Apple désigne un fichier binaire qui peut s exécuter nativement sur les processeurs Intel et PowerPC. Universal Binaries a été… …   Wikipédia en Français

  • Universal binary — Universal binaries Pour les articles homonymes, voir Universal. Universal Binaries ou UB est la façon par laquelle Apple désigne un fichier binaire qui peut s exécuter nativement sur les processeurs Intel et PowerPC. Universal Binaries a été… …   Wikipédia en Français

  • Universal Binary — Universal Binaries (auf deutsch in etwa universelle Binärdatei) sind im Apple Jargon ausführbare Dateien (d. h. Programme), die nativ sowohl auf einem PowerPC basierten Apple Computer als auch auf einem x86 (Intel) basierenden Apple Computer… …   Deutsch Wikipedia

  • Universal — Universal, hergeleitet vom lateinischen Wort universus (= „gesamt“), bedeutet „gesamtheitlich“, „umfassend“, „global“ („weltweit“). Als Substantiv ist Universal (Universal ) Bestandteil von: das Universalinstrument der Astronomie und Geodäsie… …   Deutsch Wikipedia

  • Universal binary — A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or x86 (Intel) based Macintosh computers. It was introduced at the 2005 WWDC as a means to ease the transition from the… …   Wikipedia

  • Universal — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sur les autres projets Wikimedia : « Universal », sur le Wiktionnaire (dictionnaire universel) Universal peut désigner : le groupe… …   Wikipédia en Français

  • Universal Disk Format — The Universal Disk Format (UDF) is a format specification of a file system for storing files on optical media. It is an implementation of the ISO/IEC 13346 standard (also known as ECMA 167). It is considered to be a replacement of ISO 9660, and… …   Wikipedia

  • Fat File — Universal Binaries (auf deutsch in etwa universelle Binärdatei) sind im Apple Jargon ausführbare Dateien (d. h. Programme), die nativ sowohl auf einem PowerPC basierten Apple Computer als auch auf einem x86 (Intel) basierenden Apple Computer… …   Deutsch Wikipedia

  • Universelle Binärdatei — Universal Binaries (auf deutsch in etwa universelle Binärdatei) sind im Apple Jargon ausführbare Dateien (d. h. Programme), die nativ sowohl auf einem PowerPC basierten Apple Computer als auch auf einem x86 (Intel) basierenden Apple Computer… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”