Fat binary

From Free net encyclopedia

A fat binary (or multiarchitecture binary) is a computer program that is native to multiple instruction set architectures (ISA) and thus can be run on multiple processor types. The usual method of implementation is to include a version of the machine code for each ISA, resulting in a file larger than a normal one-architecture binary, thus the name.

Fat binary support is not commonplace among operating systems; there are several alternatives to solve the same problem, such as the use of an installer program to choose an architecture-specific binary at install time, distributing software in source code form and compiling it in-place, or the use of a virtual machine and Just In Time compilation.

Examples

One popular occurrence of fat binaries was on the Apple Macintosh PowerPC, where a program would contain both 68000 instructions and PowerPC instructions. This was accomplished by putting the PowerPC code (in PEF format) into the data fork of the program, while the 68000 code continued to be stored as resources in the resource fork. Fat binaries are being used for the transition from PowerPC to Intel x86 processors in 2006 (the year of this writing) and 2007. Apple has chosen to call these binaries "Universal Binaries," perhaps to distinguish this new processor transition from the 68000 to PowerPC transition.

The Mach-O object file format used in NeXT's NeXTSTEP and OPENSTEP operating systems supports fat binaries, which allows software on a NeXT Cube to be compiled and run on an Intel machine running NeXTSTEP, and so on. The technology is also available in Darwin, and therefore Mac OS X, where it can be used to support multiple variants of an architecture, for instance to have different versions of code compiled for PowerPC G3, PowerPC G4, and PowerPC G5 processors. This solution was originally intended to allow OpenStep applications to run on IA32 and the various RISC platforms it supported, and is finding new use in the PowerPC to x86 transition mentioned earlier.

The most recent example of this technology was introduced by Apple in the form of the Universal Binary with the release of Mac OS X Tiger (10.4.4 was the first non-developer release to support this). It contains code for both the new Intel based Mac systems and the traditional Mac PowerPC-based code in a single package.it:Fat binary ja:ファットバイナリ