World Library  
Flag as Inappropriate
Email this Article

Universal binary

Article Id: WHEBN0002005155
Reproduction Date:

Title: Universal binary  
Author: World Heritage Encyclopedia
Language: English
Subject: OS X, Rosetta (software), Intego, Xcode, OS X Server
Collection: Executable File Formats, Os X
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Universal binary

Logo used to indicate a Universal application

A universal binary is, in Apple parlance, an executable file or application bundle that runs natively on either PowerPC or Intel-manufactured IA-32 or Intel 64-based Macintosh computers; it is an implementation of the concept more generally known as a fat binary.

With the release of Mac OS X Snow Leopard, and before that, since the move to 64-bit architectures in general, some software publishers such as Mozilla[1] have used the term Universal to refer to a fat binary that includes tailored builds for both i386 (32-bit Intel) and x86_64 systems. The same mechanism that is used to select between the PowerPC or Intel builds of an application is also used to select between the 32-bit or 64-bit builds of either PowerPC or Intel architectures.

Apple, however, continues to require native compatibility with both PowerPC and Intel in order to grant third-party software publishers permission to use Apple's trademarks related to Universal binaries.[2] At the same time, Apple does not specify whether or not such third-party software publishers must (or should) bundle separate builds for both the 32-bit and 64-bit variants of either architecture.

The universal binary format was introduced at the 2005 Apple Worldwide Developers Conference 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 beyond an increase in the storage space taken up by the larger binary.

Starting with Mac OS X Snow Leopard, only Intel-based Macs are supported, so software that specifically depends upon capabilities present only in OS X 10.6 or newer will only run on Intel-based Macs and therefore does not require Intel/PPC fat binaries. Additionally, starting with OS X Mountain Lion, only 64-bit Intel Macs are supported, so software that specifically depends on new features in OS X 10.8 or newer will only run on 64-bit processors and therefore does not require 32-bit/64-bit fat binaries.[3] Presently, fat binaries would only be necessary for software that is designed to have backward compatibility with older versions of Mac OS X running on older hardware.

Contents

  • Motivation 1
  • History 2
  • Universal applications 3
  • Identifying universal binaries 4
  • See also 5
  • References 6
  • External links 7

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 documentation, or the use of hybrid CDs. 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 larger than single-platform binaries, because multiple copies of the compiled code must be stored. However, because some non-executable resources are shared by the two architectures, the size of the resulting universal binary can be, and usually is, smaller than both binaries combined. 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 fat binaries 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 December 2008, Apple's website now lists more than 7,500 Universal applications.[4]

On April 16, 2007, Adobe Systems announced the release of Adobe Creative Suite 3, the first version of the application suite in a Universal Binary format.[5]

As of March 2008, many 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 32-bit PowerPC programs will run on Intel Macs running Mac OS X 10.4, 10.5, and 10.6 (in most cases), but with non-optimal performance, since they must be translated on-the-fly by Rosetta; they will not run on Mac OS X 10.7 Lion and later as Rosetta is no longer part of the OS.

Identifying universal binaries

The Unix file command (on OS X and several other Unix-like systems) can identify Mach-O universal binaries and report which architecture(s) they support.[6]

Snow Leopard's System Profiler provides this information on the Applications tab.

See also

References

  1. ^ "Firefox 4 for Mac OS X: Under the Hood | Boom Swagger Boom". Boomswaggerboom.wordpress.com. November 10, 2010. Retrieved October 18, 2013. 
  2. ^ "Mac OS X Universal Logo: Guidelines for Mac OS X Universal Logo Licenses". Apple Inc. June 2007. Retrieved October 18, 2013. 
  3. ^ "Mac OS X: 64-bit kernel frequently asked questions". Apple Inc. October 4, 2012. Retrieved October 18, 2013. 
  4. ^ "Macintosh Products Guide: Universal Applications".  
  5. ^ "Adobe Ships Creative Suite 3".  
  6. ^ by stany (September 6, 2005). "Mac OS X: Trimming fat from Mach-O fat files". theconsultant.net. Retrieved October 18, 2013. 

External links

  • Apple Developer Transition Resource Center
  • Apple Universal Binary Programming Guidelines
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.