Inside Mac OS X Snow Leopard: 64-bits
September 2nd, 2009
Daniel Eran Dilger
As jingle-pundits desperately try to denigrate Snow Leopard as a “Service Pack,” Apple’s new operating system reference release actually expands the reach of the Mac platform in several important and under-reported new directions. Here’s the second in a series looking closer at some of Snow Leopard’s well-known, but often misrepresented or misunderstood features.
Inside Mac OS X Snow Leopard: 64-bits.
The 64-bit Kernel
It seems fashionable to describe Snow Leopard’s new 64-bit kernel as a problem for Mac users with 32-bit EFI (the startup firmware that launches the operating system). It’s true, 64-bit Core2 Duo machines prior to 2008 still run Snow Leopard’s 64-bit apps using a 32-bit kernel, because Apple’s 64-bit kernel requires both a 64-bit processor (a Core2 Duo or better) and 64-bit EFI.
The 64-bit edition of Windows XP or Vista will run on 64-bit Macs with 32-bit EFI via Boot Camp because Windows doesn’t use EFI; it still lives in the simpler world of BIOS.
However, running a 64-bit kernel on these machines is of limited benefit. While there are certain advantages with the move to a 64-bit kernel, including new security enhancements, the primary benefit of a 64-bit kernel is being able to directly work with significantly more than 4GB of RAM, something that most existing consumer Macs and generic PCs can’t do anyway.
For this reason, Snow Leopard also defaults to running its 32-bit kernel even on consumer models with 64-bit EFI. This prevents mainstream users from running into problems related to incompatible kernel extensions and device drivers (such as printer software), which aren’t yet 64-bit.
This problem has helped repress the popularity of the 64-bit editions of Windows over the last several years, but won’t hold up 64-bit Mac adoption because there is only one edition of Snow Leopard, one that runs on all Intel Macs and simply adjusts itself to the limitations of the given hardware.
Users who want to run the new 64-bit kernel on late modeled Macs (pretty much anything released after early 2008) can do so by booting with the 6 and 4 keys held down. If you’re wondering whether your Mac has a 64-bit EFI firmware, you can type the command “ioreg -l -p IODeviceTree | grep firmware-abi” into the Terminal. The response will identify the machine as either having 32-bit or 64-bit EFI.
64-bit System Apps
What Snow Leopard does do is bring all Core2 Duo, 64-bit Macs (pretty much everything sold since 2007) up to speed with 64-bit system apps, from the Finder and Dock to iChat and Mail to background processes such as launchd and the system-wide spell checker. Running the 64-bit kernel or not, the singular version of Snow Leopard always runs 64-bit apps when running on 64-bit hardware; in contrast, no 32-bit editions of Windows can run 64-bit apps, even on 64-bit capable hardware.
Snow Leopard’s upgrade to 64-bit system apps provides an overall speed boost due to limitations in the original design of Intel’s 32-bit chips; the move to the new 64-bit x64 processor model, originally developed by AMD, solves these issues. Moving to 64-bit apps on other processor families, such as PowerPC, does not yield the same boost, but rather only incurs additional overhead, one of the reasons Snow Leopard is Intel-only.
Windows XP/Vista/7 users also benefit from running 64-bit apps, but Windows can only run 64-bit apps using the 64-bit kernel provided with the 64-bit “edition.” This prevents mainstream generic PC users from realizing the benefits of the move to 64-bits unless they are equipped to make the full jump, which requires lining up 64-bit kernel drivers for all their hardware. This sticky bit has kept 64-bit adoption on Windows very low despite the significant advantages related to making the move.
Snow Leopard does not share this problem, because it has no problem running 64-bit apps using its 32-bit kernel. Additionally, Apple’s unique Universal Binary specification packs both 32-bit and 64-bit code into each application, making Snow Leopard’s 64-bit capable apps backwardly compatible with 32-bit Macs.
64-bit Third Party Apps
Snow Leopard also lays a strong foundation for 64-bit third party apps. While Leopard could run 64-bit graphical apps and even Tiger could run 64-bit background processes, the delivery of 64-bit Mac apps is just getting started. Even Apple is behind the curve on that front, with iWork, iLife, iTunes, and even its Pro Apps all still in 32-bit land. Microsoft Office and Adobe Creative Suite are also waiting for a 64-bit overhaul.
Snow Leopard’s 64-bit kernel enables new generations of Macs that can use far more memory, unlocking new potential and more efficient performance by easing existing bottlenecks and allowing more aggressive caching, particularly for kernel i/o such as disk access. Third party Mac software titles that can benefit from the jump to 64-bits will likely begin to transition to full 64-bit capable binaries at a faster pace than the Windows side overall, because the majority of the installed base of Windows PCs are still running the 32-bit edition of XP, which unlike Snow Leopard, can’t run 64-bit apps at all.
Snow Leopard delivers a performance boost to existing users of 64-bit Macs, but it really lays a foundation for 64-bit, high performance computing in the next few years. Thanks to the long standing 32-bit barrier that has held up the PC demand for large amounts of memory, RAM is now cheaper than ever, making the ability to install large amounts of memory that the operating system can actually use something that mainstream Mac users will hold as an advantage over the mainstream of 32-bit PC users.
That’s because mainstream generic PCs are limited not just to 4GB of RAM, but also incur additional artificial limitations under Windows, where the operating system takes 2GB leaving only 2GB available for the running application. Mac OS X, like Linux, has always allowed applications the full 4GB available on the Intel architecture. This difference has given Windows a translation lookaside buffer performance advantage in the past, but Snow Leopard’s new 64-bit applications erase this lead and instead provide Macs with the upper hand relative to the billion installed base of Windows PCs.
Additionally, as all modern Macs transition to 64-bit apps in a single leap, the Windows installed base will effectively splinter between the mass market of low end, 32-bit offerings (including the large increase in netbooks) and the higher end of 64-bit pros and gamers who will collectively amount to a population not dramatically larger than the Mac installed base, dramatically leveling the competitive playing field in the 64-bit arena.
Meanwhile, Apple is now arriving back to its original strategy in delivering Cocoa as the primary graphical API for Mac OS X applications. This marks the end of Apple’s decade of compatibility appeasement to Adobe and Microsoft, both of whom led a third-party refusal to update existing apps from the old Mac OS routines to the advanced new frameworks Apple acquired from Steve Job’s NeXT. Going forward, anyone who wants to deliver 64-bit graphical apps has to build them using a Cocoa interface.
Apple was powerless to force the issue a decade ago, when the Mac platform didn’t seem to have much potential left and the new Mac OS X could not offer any guarantees of its survival or success to third party developers. That has all changed. Apple now operates a strong platform that has been rapidly outpacing the growth in generic PC sales by a significant factor for several years now.
Developers now know there is money to be made in shipping third party apps for Mac OS X. Additionally, the tools used to build new Mac apps are essentially identical to those used to develop apps for the iPhone and iPod touch, the leading mobile platform by a wide margin.
Apple’s singular focus on Cocoa will greatly simplify the company’s development efforts, as it won’t be having to move both Cocoa and Carbon into graphical 64-bit land. While Adobe has complained that Apple’s decision to freeze Carbon in a 32-bit maintenance mode has prevented it from delivering a 64-bit version of CS4, the simplified Cocoa roadmap will force Adobe to get on the ball with the next release, upgrading Creative Suite in two directions (Cocoa and 64-bit) rather than dragging along the Carbon past into another decade.
Microsoft and other significant Mac developers will also have to get on the Cocoa bandwagon in order to stay relevant on Apple’s 64-bit Mac platform for the next decade. The Mac already has much more visibility, market relevance and software profitability than its market share would suggest, thanks in part to Apple’s bold capacity to decisively burn its legacy bridges in order to give developers a single, clear option for future development, just as it did on the iPhone.
Of course, Apple itself needs to deliver 64-bit versions of its own Logic Studio, Final Cut Studio, and Aperture, too. The company was previously outpaced by its third party developers in the move to PowerPC, and to a lesser extent, in the move to Intel Macs. Apple’s position as both a platform vendor and an application developer should help it to deliver practical, usable tools for its own developers.
Apple’s leadership in laying out a strong 64-bit future in Snow Leopard has created a strong foundation that will enable the Mac to move ahead in important ways. However, there’s more going on in Snow Leopard than just new progress in supporting 64-bit CPUs. The next segment will look at how Apple has pioneered efficient use of GPUs, and what it means for today’s Macs and for coming generations.
Daniel Eran Dilger is the author of “Snow Leopard Server (Developer Reference),” a new book from Wiley available now for pre-order at a special price from Amazon.