Universal binary

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 existing PowerPC architecture to systems based on Intel processors, which began shipping in 2006. Universal binaries typically include both PowerPC and x86 versions of a compiled application. The operating system detects a universal binary by its header, and executes the appropriate section for the architecture in use. This allows the application to run natively on any supported architecture, with no negative performance impact.

Motivation

There are two general alternative solutions. The first is to simply provide two separate binaries, one compiled for the x86 architecture and one for the PowerPC architecture. However, this can be confusing to software users unfamiliar with the difference between the two, although the confusion can be remedied through improved documentations, or the use of hybrid CD. The other alternative is to rely on emulation of one architecture by a system running the other architecture. This approach results in lower performance, and is generally regarded an interim solution to be used only until universal binaries or specifically compiled binaries are available (see Rosetta).

Universal binaries are usually larger than single-platform binaries, because multiple copies of the compiled code must be stored. The size of the resulting universal binary can be, and usually is, smaller than both binaries combined, because some non-executable resources are shared by the two architectures. They also do not require extra RAM because only one of those two copies is loaded for execution.

History

Apple previously used a similar technique during the transition from 68k processors to PowerPC in the mid-1990s. These dual-platform executables were called "fat binaries", referring to their larger file size.

NEXTSTEP, another predecessor of Mac OS X, supported the fat binary so that one application bundle could be run on multiple architectures, including Intel's x86, Sun Microsystems' Sparc and Hewlett-Packard's PA-RISC. The binary format underlying the universal binary, a Mach-O archive, is the same format used for the fat binary in NEXTSTEP.

Apple's Xcode 2.1 supports the creation of these files, a new feature in that release. A simple application developed with processor-independence in mind might require very few changes to compile as a universal binary, but a complex application designed to take advantage of architecture-specific features might require substantial modification. Applications originally built using other development tools might require additional modification. These reasons have been given for the delay between the introduction of Intel-based Macintosh computers and the availability of third-party applications in universal binary format. Apple's delivery of Intel-based computers several months ahead of their previously announced schedule is another factor in this gap.

Apple's Xcode 2.4 takes the concept of universal binaries even further, by allowing four-architecture binaries to be created (32 and 64 bit for both Intel and PowerPC), therefore allowing a single executable to take full advantage of the CPU capabilities of any Mac OS X machine.

Universal applications

Many software developers have provided universal binary updates for their products since the 2005 WWDC. As of January 2008, Apple's website now lists more than 7,200 Universal applications. [cite web |url= http://guide.apple.com/universal/ |title= Macintosh Products Guide: Universal Applications |publisher= Apple Computer |accessdate= 2008-01-16]

On April 16, 2007, Adobe announced the release of Adobe Creative Suite 3, the first version of the application suite in a Universal Binary format. [http://www.adobe.com/aboutadobe/pressroom/pressreleases/200704/041607CS3Shipping.html]

As of March 2008, all high-profile applications for Mac OS X have been ported to Universal binary, including QuarkXPress, Apple's own Final Cut Studio, Adobe Creative Suite, Microsoft Office 2008, and Shockwave Player beginning with version 11. Non-Universal products will run on Intel Macs (in most cases), but with non-optimal performance, since they must be translated on-the-fly by Rosetta.

ee also

*Apple-Intel architecture
*Apple Intel transition
*Fat binary

References

External links

* [http://www.apple.com/universal/ Apple's "Universal Applications" page] and [http://guide.apple.com/action.lasso?-database=MacOSGuide&-layout=cgi_search&-response=/universal/hitlist_universal.html&-op=bw&binaries=Universal&HWorSW=SW&-maxRecords=20&-search listing of current Universal applications]
*Apple [http://developer.apple.com/transition/index.html Developer Transition Resource Center]
*Apple [http://developer.apple.com/documentation/MacOSX/Conceptual/universal_binary/universal_binary.pdf Universal Binary Programming Guidelines]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • 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 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 — may refer to:* The Universe, defined as the summation of all particles and energy that exist and the space time in which all events occurAs a modifier* Universal (metaphysics) * Universal joint, a machine part consisting of a pair of hinges… …   Wikipedia

  • 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… …   Deutsch Wikipedia

  • Universal algebra — (sometimes called general algebra) is the field of mathematics that studies algebraic structures themselves, not examples ( models ) of algebraic structures.For instance, rather than take particular groups as the object of study, in universal… …   Wikipedia

  • Binary economics — is a heterodox theory of economics that endorses both private property and a free market but proposes significant reforms to the banking system. The aim of binary economics is to ensure that all individuals receive income from their own… …   Wikipedia

  • Binary Research — Ltd was a company founded in Auckland, New Zealand by Murray Haszard in 1991 after the sale of his previous company, B32 Software.Binary Research initially considered developing competitors to the file transfer programs Blast and Laplink. The… …   Wikipedia

  • Universal Networking Language — (UNL) is a declarative formal language specifically designed to represent semantic data extracted from natural language texts. It can be used as a pivot language in interlingual machine translation systems or as a knowledge representation… …   Wikipedia

  • Universal code (data compression) — In data compression, a universal code for integers is a prefix code that maps the positive integers onto binary codewords, with the additional property that whatever the true probability distribution on integers, as long as the distribution is… …   Wikipedia

Share the article and excerpts

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