Inside Mac OS X Snow Leopard: 64-bits

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.

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.

64-bit Cocoa

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.

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.

OK, I'm a little confused here. If running OS X with a 32-bit kernel doesn't give you access to accessing more than 4GB, then what's the added benefit from running the apps as 64-bit?

That being said, I was running Windows 7 64-bit and it had drivers for all of my hardware. 64-bit editions of Windows have been around for years, so making the move to 64-bit isn't going to be much of an issue for people. Most printer and other peripheral drivers are already included in 64-bit Windows and any new hardware that comes out usually has 64-bit versions available for download (or Windows will grab them on its own through Windows Update).

And I do believe that the majority of new Windows 7 PC purchases that will be sold this year and forward will be 64-bit editions because PCs (with the exception of maybe netbooks) have had the capability for quite some time and the driver situation is quite agreeable.

Microsoft should have made Windows 7 64-bit only IMHO and gotten rid of the 32-bit versions.

Dell and HP have been shipping most of their computers with 64 bit Windows for at least a year if not longer. with HP servers a lot of their drivers are still 32 bit but they run just fine in x64 Windows

If one has all the required drivers they really should be running the 64 bit kernel. The extra features may not sound like much but some are security related and that is always a consideration.

In a more general sense with the APIs Apple is strongly twisting arms to force a 64 bit migration. So why not make the whole machine 64 bit if it is no grief. I defaulted my machine to 64 bit and have very satisfied with the behaviour of the machine.

Actually, ability to address more than 4 GB of RAM is NOT the only benefit of 64 bit kernel. Apple themselves are saying that 64 bit kernel is 250% faster than 32 bit kernel in making system calls, and 170% faster in mapping user address space to kernel space.

There are technical reasons for this. While windows, linux and BSD do 2/2 split of the 4 GB address space between the kernel and user apps (meaning kernel gets 2 GB of address space and 2 GB of address space for applications, with ability to do 1/3 split on windows with the 3G startup switch), in OS X the split is 4/4. This means kernel can address 4 GB of RAM, and user applications can also address 4 GB of RAM.

The benefit of this is that applications get more RAM, but the draw back is that each time user application makes a system call into the kernel, user data has to be copied into the kernel address space, and user data possibly paged out (since the kernel also wants those same 4 GB of RAM).

This makes system calls with 32 bit OS X kernel slow (much slower than in Linux, Windows or BSD).

64 bit kernel has no such limitations. It is also much more efficient managing larger amounts of memory (and this does not mean just more than 32 GB of RAM), it's better if you have more than 4 GB of RAM.

You mentioned address space randomization benefit as well.

So, yes 64 bit kernel is better for almost everyone (expect on hardware that can't physically address more than 4 GB of RAM anyway).

The ONLY reason 64 kernel is not the default is because of the driver problem. Third parties have not written 64 bit drivers and it remains to be seen how fast will printer, scanner and other peripherals manufacturers start making 64 bit drivers. My bet is that they will NOT, since no one uses the 64 bit kernel. The only time they will have to do this is when 64 bit kernel becomes the default. Which leads me to believe OS X will be stuck with 32 bit kernel for a long while, until more than 32 GB laptops become common things. Which is probably not for another 10 years.

I'm a bit in a fog after reading that article, since I'm just a lay consumer of software, not any sort of expert, so I have just one question (please forgive my ignorance): I'm about to purchase Final Cut Studio, for $1,000, and this article says Apple has yet to release a 64-bit version of it, despite that it just released a brand new version a few weeks ago. Should I wait until a 64-bit version is released, or does it really matter all that much? Would there be, ahem, a"patch" available at some point to upgrade the 32-bit version into 64-bit, or is that like saying you could buy oranges now if you want nectarines, because there might be magic nectarine seeds available later which you could implant in the oranges later to transform them into nectarines?