Inside Mac OS X Snow Leopard: 64-bits

Posted:
in macOS edited January 2014
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.



Inside Mac OS X Snow Leopard: QuickTime X

Inside Mac OS X Snow Leopard: GPU Optimization

Inside Mac OS X Snow Leopard: Exchange Support

Inside Mac OS X Snow Leopard: Malware Protection







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.
«13456

Comments

  • Reply 1 of 117
    64 bit???? Please

    Safari is super slow

    Takes 4 seconds for any page except yahoo to load up

    whats up with that?
  • Reply 2 of 117
    mazda 3smazda 3s Posts: 1,554member
    Quote:

    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.



    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.
  • Reply 3 of 117
    al_bundyal_bundy Posts: 1,525member
    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
  • Reply 4 of 117
    jeffdmjeffdm Posts: 12,946member
    Why is the abstract for this article exactly the same as the abstract for the Quicktime X article?
  • Reply 5 of 117
    So now that we're all finally on Cocoa, Apple will switch to something else, just to show developers who's boss. Take that.



    -Clive
  • Reply 6 of 117
    Quote:
    Originally Posted by super8sean View Post


    64 bit???? Please

    Safari is super slow

    Takes 4 seconds for any page except yahoo to load up

    whats up with that?



    It's definitely you!
  • Reply 7 of 117
    wizard69wizard69 Posts: 12,647member
    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.



    Dave
  • Reply 8 of 117
    mariomario Posts: 345member
    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.
  • Reply 9 of 117
    damit, my 2007 imac with a 2.33 ghz processor says its only 32 bit
  • Reply 10 of 117
    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?
  • Reply 11 of 117
    Quote:
    Originally Posted by polarissucks View Post


    damit, my 2007 imac with a 2.33 ghz processor says its only 32 bit



    Most likely uses 32-bit firmware.
  • Reply 12 of 117
    So does this mean that the OS will run slower using the 32 bit kernel?



    Slower than the 64 bit kernel, that is.
  • Reply 13 of 117
    backtomacbacktomac Posts: 4,579member
    Quote:
    Originally Posted by al_bundy View Post


    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



    Some drivers will work and some won't. See here. I know when I hooked my fathers printer, a Lexmark, up to his new Vista machine last year I had to get a vista printer driver and they had a 32 and 64 bit flavors. It wasn't a bid deal for me but he probably would have screwed it up.



    Apple's strategy here is smart even if some don't get it. The end user doesn't need to worry about drivers with the kernel in 32 bit mode. The transition to 64 bit is gradual so that the user doesn't have printers that all of a sudden won't work.



    Notice how in SL that if you're missing a printer driver and connected to the internet that SL will reach out and get it? When OSX has 64 bit kernel enabled, 10.7 I suspect, I expect that if you are missing a 64 bit driver it'll go and get it for you. The user experience isn't sacrificed for 64 bit computing this way.



    Maybe they could have done this now, I don't know. The point is that Apple is making this invisible to the end user.
  • Reply 14 of 117
    Quote:
    Originally Posted by backtomac View Post


    Some drivers will work and some won't. See here. I know when I hooked my fathers printer, a Lexmark, up to his new Vista machine last year I had to get a vista printer driver and they had a 32 and 64 bit flavors. It wasn't a bid deal for me but he probably would have screwed it up.



    Apple's strategy here is smart even if some don't get it. The end user doesn't need to worry about drivers with the kernel in 32 bit mode. The transition to 64 bit is gradual so that the user doesn't have printers that all of a sudden won't work.



    Notice how in SL that if you're missing a printer driver and connected to the internet that SL will reach out and get it? When OSX has 64 bit kernel enabled, 10.7 I suspect, I expect that if you are missing a 64 bit driver it'll go and get it for you. The user experience isn't sacrificed for 64 bit computing this way.



    Maybe they could have done this now, I don't know. The point is that Apple is making this invisible to the end user.





    So when i buy brand new Macbook Pro 13" with 8GB and SL installed, it's running 32bit kernel ? Should not the drivers be no problem because they are already installed and provided by Apple ?

    If i dont care about printer drivers(dont print at all), could i force it to use 64bit Kernel, because using that 6-4 keyboard combination every time it boots up, is quite dumb.
  • Reply 15 of 117
    gazoobeegazoobee Posts: 3,754member
    Quote:
    Originally Posted by Mazda 3s View Post


    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? ...



    The flaw is that you *don't* need to be running the 64 bit kernel to access more than 4GB of memory.



    It's not a black and white situation but people have been able to access more than 4GB on Mac OS-X for a while. It's not the same architecture as Windows so the assumptions don't transfer over as well.
  • Reply 16 of 117
    al_bundyal_bundy Posts: 1,525member
    Quote:
    Originally Posted by Gazoobee View Post


    The flaw is that you *don't* need to be running the 64 bit kernel to access more than 4GB of memory.



    It's not a black and white situation but people have been able to access more than 4GB on Mac OS-X for a while. It's not the same architecture as Windows so the assumptions don't transfer over as well.



    Windows can access more than 4GB as well, it's just an artificial license limitation by MS. it all goes back to PAE that Intel made more than 10 years ago. But it's not true memory access over 4GB like x64 gives you.



    we've had windows 2000 servers with 8GB RAM since 2002 running SQL, but with a lot of limitations. x64 lets us run processes that can access more than 4GB of RAM



    on the desktop the big reason for x64 is games
  • Reply 17 of 117
    backtomacbacktomac Posts: 4,579member
    Quote:
    Originally Posted by VeixES View Post


    So when i buy brand new Macbook Pro 13" with 8GB and SL installed, it's running 32bit kernel ? Should not the drivers be no problem because they are already installed and provided by Apple ?

    If i dont care about printer drivers(dont print at all), could i force it to use 64bit Kernel, because using that 6-4 keyboard combination every time it boots up, is quite dumb.



    You may not print but many people do. They also use scanners to. These require drivers as well. Apple doesn't make these drivers, AFAIK.



    As you say you can boot into 64 bit mode by holding down the 6 and 4 keys. If that's a PIA for you you can get a 64 bit flavor of windows. Then you're responsible for making sure your drivers are compatible with your systems OS. It doesn't sound like a big deal but plenty of people screw it up.
  • Reply 18 of 117
    Well, I'm glad the article cleared that one up
  • Reply 19 of 117
    Is that really hard to make 64 drivers for all those "different" mac systems supported by SL and leave 3rd party drivers(addon devices) for 3rd party Manufactureres to worry about, just like MS did.

    Long time ago when taking plunge to 64bit XP, users knew that they are taking a risk... so why not give mac users that OPTION ?

    I understand the "most users" approach is good mostly, but is there way for DIY users to forcefully use 64bit Kernel all the time ?
  • Reply 20 of 117
    mariomario Posts: 345member
    Quote:
    Originally Posted by InTheCatBoxAgain View Post


    So does this mean that the OS will run slower using the 32 bit kernel?



    Slower than the 64 bit kernel, that is.



    That highly depends on the type of software you run. If you look at your activity monitor CPU usage, and look at the "System" section, and portion of the graph painted in RED.



    This is the amount of time your system is spending running the kernel code. Any time you do something that relies on the system calls a lot, like doing a search from the command line, or repairing disk permissions etc, significant portion of time is spent in the kernel.



    If you just browse internet, very little time is spent in the kernel.



    For those tasks that rely on the system function calls and spend good portion of their time in the kernel, 64 bit kernel will be faster and those processes will run faster as well by about 1.7-2.5 times faster.
Sign In or Register to comment.