Fat File

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 lauffähig sind. Eine Universal Binary enthält somit zwei 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).

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:

  • Transaction-Safe FAT File System — A transaction safe FAT (TFAT) file system is a file system designed to provide transaction safety for data stored on a disk. TFAT requires a hardware specific driver designed for the type of media on which the TFAT volume resides.In addition,… …   Wikipedia

  • File allocation table — Pour les articles homonymes, voir FAT. FAT, acronyme anglais de file allocation table (table d allocation de fichiers), est un système de fichiers conçu par Bill Gates et Marc McDonald pour le Microsoft Disk BASIC, puis réutilisé dans QDOS dont c …   Wikipédia en Français

  • file allocation table — FAT failų išdėstymo sistema statusas T sritis informatika apibrėžtis ↑Failų išdėstymo sistema, visą informaciją apie diske esančius failus laikanti fiksuoto dydžio lentelėje. Yra trys sistemos variantai: FAT12, FAT16, FAT32. Skaičius rodo, kiek… …   Enciklopedinis kompiuterijos žodynas

  • FAT — (File Allocation Table) fæt area of a disk in which the location of each file is recorded (Computers) …   English contemporary dictionary

  • FAT — failų išdėstymo sistema statusas T sritis informatika apibrėžtis ↑Failų išdėstymo sistema, visą informaciją apie diske esančius failus laikanti fiksuoto dydžio lentelėje. Yra trys sistemos variantai: FAT12, FAT16, FAT32. Skaičius rodo, kiek bitų… …   Enciklopedinis kompiuterijos žodynas

  • FAT failų išdėstymo sistema — statusas T sritis informatika apibrėžtis ↑Failų išdėstymo sistema, visą informaciją apie diske esančius failus laikanti fiksuoto dydžio lentelėje. Yra trys sistemos variantai: FAT12, FAT16, FAT32. Skaičius rodo, kiek bitų skiriama ↑blokinio… …   Enciklopedinis kompiuterijos žodynas

  • File Allocation Table — For other uses, see Fat (disambiguation). FAT Developer Microsoft Full Name File Allocation Table FAT12 (12‑bit version) FAT16/FAT16B (16‑bit versions) FAT32 (32‑bit version with 28 bits used) Introduced …   Wikipedia

  • File system — For library and office filing systems, see Library classification. Further information: Filing cabinet A file system (or filesystem) is a means to organize data expected to be retained after a program terminates by providing procedures to store,… …   Wikipedia

  • File Allocation Table — Das File Allocation Table (vom Englischen etwa für „Dateizuordnungstabelle“; Abkürzung FAT, englische Aussprache [fæt]) ist ein von Microsoft entwickeltes Dateisystem. Inhaltsverzeichnis 1 Hintergrund 2 Aufbau 2.1 Bootsektor …   Deutsch Wikipedia

  • File System — Système de fichiers Pour les articles homonymes, voir FS et SGF. Un système de fichiers (file system ou filesystem en anglais) ou système de gestion de fichiers (SGF) est une structure de données permettant de stocker les informations et de les… …   Wikipédia en Français

Share the article and excerpts

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