OS X booting into 64-bit mode
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.
The install disk for the 2010 Mac Pro now defaults Mac OS X 10.6.4 to 64-bit mode.
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?
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 into Terminal (Terminal is found in the /Applications/Utilities folder):
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.
A 64-bit EFI is required to boot into K64 but is not always sufficient. Some machines do have a 64-bit EFI but are not able to boot into K64 (the iMac7,1 falls into that category).
You can still run 64-bit apps on a 32-bit kernel!
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.
The configuration file approach for always booting into 64-bit
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: /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
Insert arch=x86_64 into the Kernel Flags field.
<?xml version="1.0" encoding="UTF-8"?> <plist version="1.0"> <dict> <key>Kernel</key> <string>mach_kernel</string> <key>Kernel Flags</key> <string>arch=x86_64</string> </dict> </plist>