Universal binary
From Wikipedia, the free encyclopedia
A universal binary is, in Apple Computer's parlance, an 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 depending on the architecture in use. This allows the application to run natively on any supported architecture, with no performance impact.
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. The other alternative is to rely on emulation of one architecture by a system running the other architecture. This approach results in slower 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 substantially larger than single-platform binaries, because multiple copies of the compiled code must be stored. The size of the resulting universal binary is usually not double as a significant portion will be non-executable resources which are shared between the two architectures. They do not require extra RAM, however, because only one of those two copies is loaded for execution.
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.
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.
Contents |
[edit] Universal applications
Many software developers have provided universal binary updates for their products since the 2005 WWDC. As of December 2006, Apple's website now lists more than 4,500 Universal applications.[1]
However, such updates are yet to be released for some high-profile applications, such as Adobe Creative Suite, Adobe After Effects and Microsoft Office 2004. Both products have been reported to run correctly on Intel macs using the Rosetta emulation layer, although with non-optimal performance; as a result, traditional benchmarks involving Adobe Photoshop cannot be used to compare Intel macs to their PowerPC predecessors or to computers running Windows at this time. Adobe has stated that there will be no Universal patch for the current version of its products; instead, the company plans to introduce universal binary support along with the next major update.[2] Microsoft has made a similar announcement.[3]
[edit] See also
[edit] References
- ^ Macintosh Products Guide: Universal Applications. Apple Computer. Retrieved on 2006-12-08.
- ^ FAQ: Adobe Support for Intel-based Mac computers. Adobe Systems. Retrieved on 2006-10-14.
- ^ Q&A: Using Microsoft for Mac Products with Intel-Based Macs. Microsoft. Retrieved on 2006-10-14.
[edit] External links
- Apple's "Universal Applications" page and listing of current Universal applications
- Apple Developer Transition Resource Center
- Apple Universal Binary Programming Guidelines
- A collection of completed Universal binary ports: Amazing Programs for your x86 Tiger Mac
- MacUpdate's listing of current Universal applications
- VersionTracker's listing of current Universal applications
- MacRumors' listing of current Universal binary games
- Universal Blog: Updates on New Universal Binaries
- Runtime Revolution Universal Binary Programming
Applications
Address Book • Automator • Backup • Calculator • Chess • Dashboard • Dictionary • DVD Player • Finder • Front Row • Grapher • iCal • iChat • iSync • iTunes • Mail • Photo Booth • Preview • QuickTime Player • Safari • Sherlock • Stickies • TextEdit
Utilities
Activity Monitor • AirPort Admin Utility • Audio MIDI Setup • Bluetooth File Exchange • BOMArchiveHelper • Classic • ColorSync Utility • Console • Crash Reporter • DigitalColor Meter • Directory Access • DiskImageMounter • Disk Utility • Font Book • Grab • Help Viewer • Image Capture • Installer • Internet Connect • Keychain Access • Migration Assistant • NetInfo Manager • Network Utility • ODBC Administrator • Printer Setup Utility • Software Update • System Preferences • System Profiler • Terminal • Universal Access • VoiceOver • X11
Technology & User interface (future features italicized)
⌘ • ⌥ • Apple Advanced Typography • AppleScript • Aqua • ATSUI • Audio Units • Bonjour • Boot Camp • Carbon • Cocoa • ColorSync • Core Animation • Core Audio • Core Data • Core Foundation • Core Image • Core Video • CUPS • Darwin • Exposé • FileVault • Inkwell • icns • Keychain • Mach-O • OpenGL • plist • Quartz • QuickTime • Rosetta • Smart folder • Spaces • Spotlight • Time Machine • Uniform Type Identifier • Universal binary • WebKit • Xgrid • XNU