Booting into 64-bit mode (Snow Leopard)
By default in 2009, Snow Leopard boots into a 32-bit kernel, an odd proposition for an OS claiming to be 64-bit. But Apple defaulted to a 32-bit kernel for good reasons—
- it keeps compatibility high with drivers and specialized software, which lowers hassles for users;
- it keeps bad press away. Like bad breath, bad press makes a lasting first impression. Microsoft halitosis (also known as Windows) turned off a lot of users. (I think Microsoft should change the name, it’s a perfect fit!).
- performance is still improved over Leopard.
Since page was written, over a year has passed—
Should you boot into the 64-bit kernel?
Tests of photographic applications show that the gains of booting with the 64-bit kernel can be substantial, keeping in mind that a 30% gain via hardware often costs several thousand dollars more. Why not get a good chunk of that for about $25?
Your 64-bit programs (if any) will run fine on a 32-bit kernel, gaining the benefits of 64-bit-ness. But they won’t see full performance that way.
The reason not to boot into 64-bit mode is compatibility with software drivers of various kinds. Apple really can’t be faulted here, but you can make an intelligent choice for yourself. You’ll want to verify if your software has any issues in 64-bit mode.; one way is simply to try it.
Does your Mac have 64-bit EFI firmware? PERMALINK
You Mac might be a few years old and have 32-bit EFI firmware (the code that runs to boot the Mac). See this Apple tech note for which machines can boot the 64-bit kernel
With 32-bit firmware, you cannot boot into 64-bit kernel; it’s not possible.
To determine if your Mac has 32-bit or 64-bit firmware, copy/paste the following command shown in red into /Applications/Utilities folder):(Terminal is found in the
llcMP:~ lloyd$ ioreg -l -p IODeviceTree | grep firmware-abi | | "firmware-abi" = <"EFI64">
As shown above, the firmware-abi has the value EFI64, indicating that my Mac Pro is 64-bit capable. If it reads EFI32, then your Mac cannot be booted into a 64-bit kernel.
You can still run 64-bit apps on a 32-bit kernel! PERMALINK
Even if you cannot or do not boot the Mac OS X Snow Leopard kernel into 64-bit mode, you can run your 64-bit apps as 64-bit, and they can take advantage of all the memory in the machine. This was/is possible even with Mac OS X 10.5 Leopard. The main problem being that there are only a handful of 64-bit applications available as of September 2009.
Uncheck the “Open in 32 Bit Mode” option. Testing shows that doing so is highly beneficial, even on Mac OS X Leopard.
How to boot into 64-bit mode PERMALINK
I recommend testing first, using the two-finger dance approach, below, because rebooting without it gets you right back into 32-bit mode.
Some older Macs with 32-bit firmware cannot boot into 64-bit mode. That’s life.
The two-finger dance — wired keyboard only (not wireless)
Hold down the '6' and '4' keys when the Mac starts up (until the Apple log). After starting up in 64-bit mode, checkclick , then click on . In 64-bit mode there will be a “yes” next to “64-bit Kernel and Extensions”.
The configuration file approach for always booting into 64-bit PERMALINK
Update: Apple has added a command line setting for enabling the 64-bit kernel. You can open a Terminal window and type:
sudo systemsetup -setkernelbootarchitecture x86_64
This is the method I use, because I can leave it set the way I want to; having to hold down '6' and '4' keys at startup is absurd, it’s ridiculous that Apple did not provide a system preference panel for this.
The change is shown in red below (“arch=x86_64”). Use a plain-text editor, such as Text Wrangler.
Edit the file:
Insert arch=x86_64 into the Kernel Flags field.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Kernel</key> <string>mach_kernel</string> <key>Kernel Flags</key> <string>arch=x86_64</string> </dict> </plist>
The PRAM method for always booting into 64-bit mode PERMALINK
I’m not a big fan of this method, because I’d rather edit a text file than mess with non-volatile machine settings in the computer itself. This method sets the PRAM (parameter RAM) to tell the machine to boot 64-bi modet. It’s unclear what happens if this is done on a machine that is not 64-bit capable, or if the com.apple.Boot.plist method interacts with it (which overrides which?).
- It forces the Mac to always try to boot into 64 bit mode (assuming the boot volume contains a 64 bit kernel).
- It can be undone by resetting the PRAM by booting up while holding down the <command>, <option>, 'P' and 'R' keys.
- It doesn't require changing any system files which might be updated or
modified by other parts of the OS.
I have not tested this method, you’re on your own here. Open a Terminal window and enter this command:
sudo nvram boot-args="arch=x86_64"
You should be able to reset things as follows:
sudo nvram boot-args=""
Again, I have not tested this.