• On The Insider: Britney's Bikini-Clad Top 10
advertisement
mySimon mySimon mySimon Outdoor Gear mySimon Swimwear mySimon Home and Garden
August 26, 2009 7:42 AM PDT

Preparing for 10.6 Snow Leopard: the 64-bit reality

by CNET staff
  • Font size
  • Print
  • 21 comments

Written by Topher Kessler

Apple has announced that Snow Leopard will be available on the 28th of this month, which is only a few days away. In the mean time there are a lot of questions regarding 64-bit computing which are surfacing all over the internet since Apple has gone through great lengths to tout this technology in their latest operating system. So what exactly is 64-bit computing?

64-bit development at Apple

Starting with the PowerMac G5, Apple introduced 64-bit computing to the Mac platform, but software had not caught up with it. Apple made small modifications to Mac OS X, which allowed for 64-bit applications to address more RAM than the 4GB maximum allowed for by 32-bit systems. In addition, they modified the memory addressing aspects of the OS that allowed for more than 4GB to be available to the system as a whole, and shipped systems with 8 GB of RAM.

Since the introduction of the PowerMac G5, Apple has increased the capabilities of 64-bit computing in their software, but the system kernel and supporting applications have still been 32-bit. While Tiger and Leopard incorporated 64-bit processes and Unix subsystems to take advantage of the 64-bit architecture of the G5 and Core 2/Xeon, they were still 32-bit operating systems that ran a majority of their components in 32-bit mode. Only a few built-in processes were 64-bit, and 64-bit benefits came mainly from third-party developers.

So what is 64-bit, in reality?

The "bitness" of a processor is basically about one thing: number size. Computers work in binary notation so characters and numbers are represented by combinations of ones and zeros. A 4-bit computer would be able to work with numbers that are 4 binary units in size, giving 2^4 bit combinations to represent numbers, which allows for a maximum value of 16. That would severely limit a current processor's computing abilities. For current and older 32-bit processors this number has a maximum value of 2^32, or 4,294,967,295 units, and imposes limits such as having a 4GB cap on the amount of memory that can be accessed.

For 64-bit processors, the computer and applications that support it have the ability to manage numbers that are 64 binary units in length. This allows it to perform computations on integers and address memory spaces that are up to a value of 2^64 (18,446,744,073,709,551,615), unlike 32-bit computers which were limited to a value of 2^32 (or 4,294,967,295). These larger numbers translate to one thing: capacity, which so far has been primarily demonstrated by the maximum amount of RAM the system can use (breaking the 4GB limit for RAM, and setting it to 18 thousand thousand gigabytes--a lot!).

Because of the larger numbers, 64-bit computers and operating systems are capable of handling more at once, but this benefit is task-specific and depends on the programming of applications. Most home applications will not benefit from being 64-bit capable, but scientific modeling applications, creative professional applications, and technical applications will greatly benefit from it.

For most home users, running 64-bit vs 32-bit modes will be indistinguishable, especially for current applications. The 64-bit capability of the operating system is going to be primarily beneficial to programmers who can take advantages of the efficiencies the architecture provides.

Snow Leopard both 32 and 64-bit?

Unlike previous versions of OS X, in Snow Leopard Apple has finally provided a true 64-bit operating system from the kernel up through the kernel extensions and system processes. However, in reality Snow Leopard is provided in both 32-bit and 64-bit flavors and loads the 32-bit kernel by default, so why would Apple do this after advertising 64-bit capabilities?

The first reason is application compatibility. While 64-bit apps will run on a 32-bit kernel, and 32-bit apps will run on a 64-bit kernel, the "bitness" of the kernel will limit what kernel extensions can be loaded: a 64-bit kernel can only load 64-bit extensions, and a 32-bit kernel can only load 32-bit extensions. Most applications do not have their own kernel extensions they use, but a few rely on them for functionality. For instance, VMWare and Parallels install kernel extensions to provide network environments to the virtual machines, which in their current 32-bit only versions will not load on a 64-bit kernel. As such, if you load a 64-bit kernel you will get an error when trying to run Windows from within the Mac OS.

The second reason for loading a default 32-bit kernel is that some of the first Intel Macs were released with 32-bit Core Duo and Core Solo processors. Even though the requirements for Snow Leopard are an Intel Mac, these early Intel Macs will not run a 64-bit kernel but will run other intel-optimized code. These processors will also only run 32-bit versions of applications so any that do not support 32-bit modes will not run.

Why no 64-bit PowerPC support?

Besides being 32-bit only, the PowerPC G4 is an old chip and few people expected Apple to support it with Snow Leopard. However, with the PowerPC G5 having features such as 64-bit and multiple cores that could run Snow Leopard well, many people were quite disappointed to see it not be supported in the new OS, leaving relatively new machines unable to run the latest OS (the last G5s shipped in August 2006).

Very few resources claim any technical reason why Apple would abandon the PowerPC G5 in Snow Leopard, but according to this Appleinsider article, the PowerPC G5's slight performance hit when running 64-bit applications may have been a factor in convincing Apple to drop it. This and the opportunity to optimize their operating system for a specific architecture lead Apple to support only their future chip architecture, even though the G5 could technically have run Snow Leopard just fine.

What does 64-bit mean for the average user?

For most home users, the move to 64-bit computing in Snow Leopard will mean absolutely nothing. There will be no major speed bump (beyond those provided by other optimizations) or any difference in how your computer behaves unless you perform computations on large amounts of data, which will be appealing to creative professionals and technical professions. As applications are developed to use 64-bit technologies, they may start requiring the Snow Leopard kernel to be booted into 64-bit mode, but this requirement should take a while to develop. In the mean time there should be plenty of backward compatibility (kernel extensions developed with both 32-bit and 64-bit code) to ensure applications run seamlessly.

Think about 64-bit capability as adding a carpool commuter lane to a highway. If you have cars (applications) that have enough passengers and can use the commuter lane then you may at times see a benefit based on traffic conditions, but if not then the cars will have to use the normal lanes. Regardless of the lanes being used, however, there is still a cap on the overall speed limit so even if there is only one car in the commuter lane it cannot just zip on through.

Questions? Comments? Send us feedback: http://www.macfixit.com/contact
Be sure to check us out on Twitter and the CNET Mac forums.


Topher has been an avid Mac user for the past 10-15 years, and has been a contributing author to MacFixIt for just over a year now. One of his diehard passions has been troubleshooting Mac problems and making the best use of Macs and Apple hardware both for family and friends, as well as in the workplace. He and the newly formed MacFixIt team are hoping to bring enhanced and more personable content to our readers, and keep the MacFixIt community going here at CNET. If you have questions or comments for Topher or the other MacFixIt editors, feel free to contact us at http://www.macfixit.com/contact

Resources

  • Appleinsider article
  • http://www.macfixit.com/co...
  • Twitter
  • and the CNET Mac forums
  • More from Late-Breakers
  • Recent posts from MacFixIt
    Address Book: Search not working properly
    iTunes 9.0.3 breaks AirTunes connection for some
    Apple releases Aperture 3.0
    Manage iCal's automatic e-mail generation for invitations
    CNET TV Apple Byte: Apple faces critics
    Weekly Utilities Update: Net Monitor, MiniUsage, TimeMachineEditor, more...
    Odds and Ends: Essential video codec packs for OS X
    Address Book: Unable to add, view contacts
    Add a Comment (Log in or register) Showing 1 of 2 pages (21 Comments)
    by Carob August 26, 2009 8:54 AM PDT
    So how would you actually enable the true 64-bit mode?
    Reply to this comment
    by lkrupp August 26, 2009 8:54 AM PDT
    >
    This is a reply to a previous comment by Carob


    First, your machine must support 64 bit booting. Not only must your cpu support it but your Mac must have the EFI 64 firmware. If you meet the requirements you simply hold down the "6" and "4" keys while starting up. This will boot you into the 64 bit kernel. But be warned, a lot of 64 bit drviers are not available yet so a bunch of your third party USB hardware might not work.
    Reply to this comment
    by Carob August 26, 2009 8:54 AM PDT
    >>
    This is a reply to a previous comment by lkrupp


    Seriously? That seems way hokey!
    Reply to this comment
    by tkessler August 26, 2009 8:54 AM PDT
    >>>
    This is a reply to a previous comment by Carob


    You can set boot arguments to tell the system which kernel to load. This can be done by hotkeys or by editing system files; however, for compatibility it's best to run in 32-bit mode for now. To enhance optimization of all system components Apple is pushing for all developers to adopt 64-bit code in their applications, but this will take time. Sooner or later we will see the whole system be 64-bit, with no option for a 32-bit kernel. CPUs will also start dropping 32-bit support and require 64-bit code to run, but this will be at least several years down the road.
    Reply to this comment
    by theveggiedude August 26, 2009 8:54 AM PDT
    >>>
    This is a reply to a previous comment by Carob


    You can edit the plist file to always boot into 64-bit mode.
    Reply to this comment
    by Fingal August 26, 2009 8:54 AM PDT
    >
    This is a reply to a previous comment by Carob


    There isn't a 32 versus 64 bit mode, as such. You can enable either the 32 or 64 bit kernel and that has affects on some other software. I would be interested in the procedure for switching kernels as well. You can already run a 64-bit application in Leopard or even Tiger, and have it take advantage of 64-bit memory addressing, as long as it doesn't depend on a 32-bit kernel extension.

    This, by the way, is an advantage of open source software. Since you can get the source code, you can compile it for 64-bit support yourself by using the right commands with the compiler.
    Reply to this comment
    by John Sawyer August 26, 2009 8:54 AM PDT
    >
    This is a reply to a previous comment by Carob


    I'm sure most or all of the popular system-modifying utilities (Xupport, OnyX, etc.) will soon have an option to easily change the boot file(s) to allow true 64-bit booting, without your having to hold down any key combinations at startup.
    Reply to this comment
    by lkrupp August 26, 2009 8:54 AM PDT
    >>
    This is a reply to a previous comment by John Sawyer


    It has been pointed out several times that booting into the 64 bit kernel will be a "bag of hurt" for some time to come. While 64 bit applications will run under the 32 bit kernel, most 32 bit drivers (scanners, printers, third party USB devices) will NOT work with with the 64 bit kernel running.

    I get the impression that some think they will boot 64 bit and all will be well. It will NOT. You WILL have issues until the manufacturers and developers update their drivers to 64 bit. And, as has also been pointed out, that could take years. Some manufacturers just won't do it at all (I'm thinking Canon here. They abandon their hardware left and right.)
    Reply to this comment
    by MasterBlaster August 26, 2009 9:25 AM PDT
    "For most home users, 64-bit computing in Leopard will mean absolutely nothing. There will be no major speed bump (beyond those provided by other optimizations) or any difference in how your computer behaves unless you perform computations on large amounts of data, which will be appealing to creative professionals and technical professions."

    False. Apps don't need to be number crunchers or memory hounds to benefit from x64 versus x86. x64 versions of apps usually run faster than x86 apps, because x64 has twice as many registers as the x86 architecture and this obviates the need for apps to perform so many load and store operations between the microprocessor and main memory. Whether mom and dad actually need Mail to run 50% faster is another question, but for the most part, the apps that even mom and dad use will benefit from going 64-bit on Intel hardware.

    Snow Leopard also brings improved reliability and security to Mac OS X, through the use of NX (no-execute) and ASLR (address space layout randomization).
    Reply to this comment
    by tkessler August 26, 2009 9:25 AM PDT
    >
    This is a reply to a previous comment by MasterBlaster


    I didnt mean to delve into specifics, but despite the theoretical benefits of 64-bit, when implemented they have shown a mixed bag of results. Look up any benchmark for 32-bit vs 64-bit implementations of various computational tasks, and those that benefit the most are technical and scientific applications. Small tasks, and home computing show little benefit. Most tasks show about 5% speed differences between their 32-bit and 64-bit versions (provided libraries and system architecture are compiled to support it), and those that benefit most from 64-bit are encoding and compression algorithms such as music encoding. Here are just a few locations with benchmarks to support this (granted not all are OS X):

    http://www.geekpatrol.ca/2006/09/32-bit-vs-64-bit-performance/

    http://www.osnews.com/story/5768/Are_64-bit_Binaries_Really_Slower_than_32-bit_Binaries_/page2/

    http://64-bit-computers.com/windows-vista-32-bit-vs-64-bit-benchmark.html
    Reply to this comment
    by MasterBlaster August 26, 2009 9:25 AM PDT
    >>
    This is a reply to a previous comment by tkessler


    Your first link is to Geekbench statistics gathered under Mac OS X 10.4.7, which is 2 generations old now and was the first version of Mac OS X to support 64-bit computing (and then only for command line apps). Snow Leopard should be better optimized for 64-bits than Tiger. Geekbench activities that use SSE instructions may execute about as fast in 32-bit as in 64-bit mode, since SSE is largely independent of X86 and X64. Geekbench is also artificial and many of its tests have no bearing on ordinary "mom and dad" apps.

    Your second link is to benchmarks of an Ultra5 computer. The UltraSPARC architecture (and the PowerPC architecture) afford the same number of general purposes registers in 32-bit mode as in 64-bit mode. 64-bit UltraSPARC and PowerPC apps will use more memory, though, than their 32-bit counterparts. Shuttling the same number of data items around in memory tends to be slower when those data are twice as large. The Ultra5 is also an obsolete, low-end model that may not benefit as much from going 64-bit. For instance, the Ultra5 memory bus may be narrower than high-end Sun servers of the same era and Mac Pros.

    Your third link is to benchmarks that are also outdated, having been published nearly 3 years ago, that can be discounted for the same reasons as described above.
    Reply to this comment
    by tkessler August 26, 2009 9:25 AM PDT
    >>>
    This is a reply to a previous comment by MasterBlaster


    Then provide some benchmarks to support your argument instead of discrediting the benchmarks I provided which were run on current hardware and pair up even situations except for the 64-bit computing environments.

    All accounts state that 64-bit performance increases are hit-and-miss, and depend on a number of factors. Here's yet another benchmark run on intel iMacs and PowerPC G5s: http://arstechnica.com/apple/news/2007/10/benchmark-leopard-needs-64-bit-intel-to-beat-tiger.ars

    The argument that these are a couple of years old and are thus out of date don't fly. The software is taking advantage of the 64-bit computing features of the CPU, and performing worse in some areas and better in others. Granted OS optimization may improve these performance differences, but overall and thus far it is a mixed bag of results. We will see exactly how well Snow Leopard does with various 32-bit and 64-bit binaries, but people have yet to do direct comparisons of these binaries on the new OS. Still, given the track record in various operating systems (even 64-bit linux) the benefits of 64-bit for everyday tasks is minimal. It's like trying to make a car go faster down a 65MPH highway by increasing the number of lanes.
    Reply to this comment
    by MasterBlaster August 26, 2009 9:25 AM PDT
    >>>>
    This is a reply to a previous comment by tkessler


    My evidence: personal experience. What, you don't believe me? ;-)

    In your new link, the PowerPC G5 ran slower in 64-bit mode than in 32-bit mode, particularly for integer tests (not floating point tests associated with "scientific" computing). No surprise, for reasons I stated earlier. The Core 2 Duo iMac ran faster in 64-bit mode. Again, no surprise.

    If the benefit of X64 is so variable, why did Apple themselves compile virtually all apps bundled with Snow Leopard for the X64 architecture? Finder, Mail, Safari, Terminal, iChat, Calculator, Address Book, Calendar, Disk Utility, Airport Utility, Activity Monitor, Screen Sharing, Console, System Configuration, Server Admin, Workgroup Manager, etc.

    Without going into the details, programmers would be advised to take care when migrating their code from X86 to X64 in order to benefit from the efficiency of X64. For example, unless care is taken, an integer data type under X86 that provides 32-bits precision and suffices for the job could translate to an "overly precise" 64-bit integer data type that yields an unnecessary slow-down because of the extra memory consumed and the slower speed of shuttling more data around in memory.
    Reply to this comment
    by tkessler August 26, 2009 9:25 AM PDT
    >>>>>
    This is a reply to a previous comment by MasterBlaster


    I'm not saying there aren't benefits. With 64-bit applications, Apple can have all aspects of the OS be able to access all the RAM in the system. That seems to be the primary reason for porting all processes and applications to 64-bit, beyond the marketing hype of being the first mainstream desktop OS to fully port to 64-bit from the kernel through to the included applications.

    As for the benchmarks and performance, for most tasks the difference seems to be about 5-10% one way or the other between 32-bit and 64-bit binaries of the same application. There may be ways to use 64-bit numbers to store other data and somehow increase speed, but that has not been done yet. The facts stand that 64-bit is more about capacity than speed, regardless of what applications Apple makes 64-bit.
    Reply to this comment
    by MasterBlaster August 26, 2009 9:25 AM PDT
    >>>>>>
    This is a reply to a previous comment by tkessler


    "With 64-bit applications, Apple can have all aspects of the OS be able to access all the RAM in the system."

    Sorry, but that just doesn't make sense. Apps generally only need to access their own data and most apps don't individually use gigabytes of data.

    Geekbench also doesn't exemplify how well applications will generally perform when compiled for X86 versus X64.

    "The facts stand that 64-bit is more about capacity than speed, regardless of what applications Apple makes 64-bit."

    There are many reasons to move from the X86 architecture to the X64 architecture. 64-bit addressing capability, native 64-bit integer calculations, more general purpose registers, and better security features are the reasons that come to mind. No one feature can necessarily be deemed more important than the rest. Certainly 64-bit addressing makes some apps feasible or much easier to write, but those apps are in the minority. Almost all apps will however benefit from having twice as many registers available.

    Wait a few days. The broad appeal of X64 (versus X86) will be quite testable when Snow Leopard is released, because SL allows apps to be selectively opened in 32-bit X86 mode. If apps are just 5-10% faster, users may not notice it. I contend the speed-up will be considerably more and very noticeable.

    We're actually in a unique, sweet situation with the transition from X86 to X64. As I mentioned earlier, with other common architectures (PowerPC, UltraSPARC, Alpha) , going 64-bit isn't associated with an increase in general purpose registers. On other platforms, there's pressure to keep apps in 32-bit mode for the purposes of maintaining higher speed when large memory isn't required. Yet it can be easier for programmers to write code for a 64-bit environment, because of the flat address space and extra precision. For anyone currently developing for X86, it can be a win-win situation in going to X64, because it's not only easier to program but the code is almost assured to run faster. Just a few tricks are necessary to maximize the benefits. I don't know why anyone would want to dissuade people who are running X86 applications from migrating to X64. Yes, there's a cost associated with that migration, but the Snow Leopard client upgrade is actually quite inexpensive. If everyone had 64-bit hardware with a 64-bit OS, programmers could focus more on delivering features that make a difference in our lives instead of dealing with limitations of the hardware+OS.
    Reply to this comment
    by tkessler August 26, 2009 9:25 AM PDT
    >>>>>>>
    This is a reply to a previous comment by MasterBlaster


    Well, it makes sense because 64-bit apps will be able to address more than 4GB of RAM each, but that feature is not going to benefit most of them.

    I think you're touching on the main purpose of going with 64-bit, which is the ease for the development community. Instead of having some applications benefit from 64-bit and others not (or minimally), Apple is pushing for all developers to use one architecture regardless of the application they are creating, and code the same way and with the same APIs.

    While the next few days will show people's reactions to Snow Leopard, these reactions will not be a good example of what performance 64-bit itself brings to the table but rather an example of 64-bit coupled with high code optimization and new technologies such as Grand Central and OpenCL (which Apple is bound to incorporate in every application they can). Most people will be comparing performance to that of Leopard, but I would like to see the speed difference between a 64-bit binary and a 32-bit binary of the same application running in Snow Leopard. I'd like to see this for applications that perform different tasks as well (office vs encoding, games vs virtualization, etc...everything).
    Reply to this comment
    by MasterBlaster August 26, 2009 9:25 AM PDT
    >>>>>>>>
    This is a reply to a previous comment by tkessler


    "it makes sense because 64-bit apps will be able to address more than 4GB of RAM each, but that feature is not going to benefit most of them."

    The vast majority of apps bundled with Mac OS X don't need 4 GB memory. In fact, I can't think of any that should need more than 4 GB under any circumstance, unless they've got a memory leak.


    "these reactions will not be a good example of what performance 64-bit itself brings to the table but rather an example of 64-bit coupled with high code optimization and new technologies such as Grand Central and OpenCL (which Apple is bound to incorporate in every application they can)"

    Snow Leopard will allow the user to open apps optionally in 32-bit mode. Grand Central will still be used. OpenCL will still be used (if available). Comparing numerous apps in 64-bit and 32-bit modes will be a controlled experiment! :-)))
    Reply to this comment
    by tkessler August 26, 2009 9:25 AM PDT
    >>>>>>>>>
    This is a reply to a previous comment by MasterBlaster


    The lack of need for 4GB of RAM for any application is one of the reasons why 64-bit is not needed for many programs. Email and calendars do not need 64-bit processing to run, whereas video encoding can benefit from it greatly.

    As for opening and running in 32/64 bit modes, lets start the benchmarking. I guess the best way would be to use shell scripts to launch the application and time it...I've never implemented benchmarks for things like Mail and iCal before.
    Reply to this comment
    by MasterBlaster August 26, 2009 9:25 AM PDT
    >>>>>>>>>>
    This is a reply to a previous comment by tkessler


    Most video clips aren't terribly large. Even so, I wouldn't be surprised if video apps benefit much more (speed wise) from other features of the X64 architecture than the larger address space.
    Reply to this comment
    by WhiteDog August 26, 2009 10:53 AM PDT
    While it may seem appealing at first glance to be able to boot into a 64 bit kernel, in reality any 64 bit savvy apps you have (like most of the Leopard versions of the Apple application set) will run in 64 bit mode on a 32 bit kernel (as long as the CPU supports 64 bit processes). So the efficiency edge will be there when needed. Which is another reason Apple set the default kernel for OS X 10.6 at 32 bit. There is very little advantage to be gained for most people with a 64 kernel at this point in time. Of course, there are probably some scientific programs that will only run on a 64 bit kernel, but this is of little importance to most computer users.

    ---
    Don't anthropomorphize computers.
    They hate that.
    Reply to this comment
    Showing 1 of 2 pages (21 Comments)
    advertisement
    Click Here

    About MacFixIt

    MacFixIt is CNET's troubleshooting resource for all things Mac. The information here helps you navigate the ins-and-outs of Mac ownership with how-tos, troubleshooting information, news, reviews, and more.

    Add this feed to your online news reader