Snow Leopard Seeds Use 32bit Kernel, Drivers by Default

Even though Apple has been hyping up the 64bit nature of its ucpoming Snow Leopard operating system, stating it will be the first Mac OS X release to be 64bit top-to-bottom, reality turns out to be a little bit different so far. With the current Snow Leopard seed, only Xserve users get the 64bit kernel and drivers – all other Macs default to 32bit. By holding down the ‘6’ and ‘4’ keys during boot, you can to boot into full 64bit mode – that is, if your Mac supports it. As it turns out, some Macs with 64bit processors cannot use the 64bit kernel because the EFI is 32bit. Note: I should have included in the article that 64bit applications will run just fine (including benefits) on a 32bit kernel in Mac OS X. Since this was already possible in Leopard, I assumed people were well aware of that. Turns out some were not, so my apologies for that.

The release notes – dubbed ‘seed notes’ – attached to the latest Mac OS X 10.6 Snow Leopard seed (build 10A432) detail exactly which Macs can boot into a 64bit kernel and drivers by default, and which can’t. Only the Xserves boot into 64bit by default, while all other Macs capable of running Snow Leopard still get a 32bit kernel and drivers.

This table comes straight from the seed notes:

64bit support in Snow Leopard.

If your Mac is on this list, you can force Snow Leopard to boot into 64bit mode by holding down the ‘6’ and ‘4’ keys during the boot process. You can also use the NVRAM or the com.apple.Boot.plist file to more permanently boot into 64bit mode. Holding the ‘3’ and ‘2’ keys will, obviously, boot Snow Leopard in 32bit mode.

That table above might be a bit cryptic, but it’s technically pretty simple. Only Macintosh machines with a 64bit EFI are able to boot the 64bit Snow Leopard kernel and kexts; this is an artificially implemented limitation by Apple, as 32bit EFI can boot a 64bit kernel just fine. On top of that, even if your MacBook has a 64bit EFI, you will only be able to boot the 32bit version of Snow Leopard – again because of an artificial limitation by Apple for MacBooks. Probably the harshest consequence of this is that the original Mac Pro, discontinued January 8, 2008, cannot boot the 64bit kernel and drivers.

So, even if you have a 64bit processor, and you thought you were in the clear, Apple might not give you the option to go 64bit. However, in what probably rivals the Amazon Kindle 1984 thing in most ironic moment of 2009, the hackintosh community has come to the rescue. With netkas’ pcefiv10.1 bootloader, you can boot into 64bi Snow Leopard even on 32bit EFI Macs.

So far, it’s not yet known if Apple will enable owners of machines with 32bit EFI to boot into a 64bit kernel in Snow Leopard-final; Apple might offer an EFI update, or remove the artificial limitation. The same applies to MacBooks; it might be that Apple is planning on using 64bit as a selling point to drive people to buy MacBook Pros instead of ordinary MacBooks.

You can check your machine’s EFI by running the following command in the terminal:

ioreg -l -p IODeviceTree | grep firmware-abi

Output will be either EFI32 or EFI64.

Apple is probably limiting proper 64bit support to Xserve machines for now simply because 3rd party drivers are not yet updated (printers, scanner, and so on) for 64bit support. This means that while both Linux and Microsoft have more or less completed the 64bit transition because they started early on, Apple is trailing behind and still needs to wait for its driver base to update their drivers – something which has already happened on competing platforms.

97 Comments

  1. 2009-08-18 6:51 pm
    • 2009-08-18 7:11 pm
      • 2009-08-18 7:32 pm
        • 2009-08-18 7:52 pm
          • 2009-08-18 9:58 pm
          • 2009-08-18 11:13 pm
      • 2009-08-18 7:43 pm
        • 2009-08-18 8:04 pm
        • 2009-08-19 3:38 pm
          • 2009-08-20 2:31 am
          • 2009-08-20 8:38 am
          • 2009-08-20 9:26 am
      • 2009-08-18 9:50 pm
      • 2009-08-18 11:14 pm
        • 2009-08-19 2:53 pm
      • 2009-08-19 7:53 am
    • 2009-08-18 10:28 pm
    • 2009-08-19 7:42 am
  2. 2009-08-18 6:52 pm
    • 2009-08-18 8:32 pm
      • 2009-08-18 8:47 pm
        • 2009-08-18 8:58 pm
          • 2009-08-18 9:54 pm
          • 2009-08-18 10:16 pm
          • 2009-08-18 10:25 pm
          • 2009-08-18 10:41 pm
          • 2009-08-18 10:34 pm
          • 2009-08-18 10:46 pm
          • 2009-08-18 11:06 pm
          • 2009-08-19 1:43 am
          • 2009-08-19 7:15 am
          • 2009-08-19 9:21 am
          • 2009-08-19 2:58 pm
          • 2009-08-19 8:30 am
      • 2009-08-19 2:55 am
  3. 2009-08-18 7:20 pm
  4. 2009-08-18 7:31 pm
    • 2009-08-18 9:32 pm
    • 2009-08-19 5:13 pm
  5. 2009-08-18 7:39 pm
    • 2009-08-18 7:52 pm
      • 2009-08-18 8:16 pm
      • 2009-08-18 8:19 pm
      • 2009-08-19 1:28 am
        • 2009-08-19 2:27 am
        • 2009-08-19 3:07 pm
      • 2009-08-19 5:09 am
    • 2009-08-18 9:52 pm
      • 2009-08-18 10:41 pm
    • 2009-08-19 2:28 am
  6. 2009-08-18 7:54 pm
    • 2009-08-18 9:13 pm
      • 2009-08-19 3:10 pm
        • 2009-08-20 12:00 am
  7. 2009-08-18 8:16 pm
  8. 2009-08-18 8:27 pm
  9. 2009-08-18 8:53 pm
    • 2009-08-18 9:15 pm
  10. 2009-08-18 9:01 pm
    • 2009-08-18 9:35 pm
      • 2009-08-19 6:28 am
  11. 2009-08-18 9:16 pm
    • 2009-08-18 9:18 pm
      • 2009-08-18 10:04 pm
        • 2009-08-20 12:10 am
          • 2009-08-20 5:59 am
          • 2009-08-20 6:53 am
          • 2009-08-20 8:29 am
          • 2009-08-20 9:44 am
          • 2009-08-20 9:53 am
      • 2009-08-19 3:12 pm
    • 2009-08-18 10:03 pm
  12. 2009-08-18 10:28 pm
  13. 2009-08-18 11:00 pm
  14. 2009-08-19 1:43 am
    • 2009-08-20 12:23 am
  15. 2009-08-19 4:50 am
    • 2009-08-20 12:26 am
  16. 2009-08-19 5:37 am
    • 2009-08-19 7:15 am
      • 2009-08-19 6:16 pm
  17. 2009-08-19 5:52 am
    • 2009-08-19 6:17 am
  18. 2009-08-19 10:33 am
    • 2009-08-19 10:49 am
      • 2009-08-19 12:01 pm
      • 2009-08-19 12:40 pm
      • 2009-08-19 8:14 pm
  19. 2009-08-19 11:11 am
    • 2009-08-19 11:16 am
  20. 2009-08-19 11:17 am
    • 2009-08-19 11:23 am
      • 2009-08-19 11:34 am
  21. 2009-08-19 11:27 am
  22. 2009-08-27 6:51 am