diglloyd Mac Performance Guide

Max Your Mac Pro at OWC

Booting into 64-bit mode (Snow Leopard)

Last updated October 26, 2009 - Send Feedback

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?

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.

bits

To determine if your Mac has 32-bit or 64-bit firmware, copy/paste the following command shown in red into Terminal (Terminal is found in the /Applications/Utilities folder):

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!

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 Mac OS X Snow Leopard 64-bit mode   How to boot into Mac OS X Snow Leopard 64-bit mode
Two 64-bit applications: uncheck “Open in 32 Bit Mode”

How to boot into 64-bit mode

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, check About This Mac…, click More Info, then click on Software. In 64-bit mode there will be a “yes” next to “64-bit Kernel and Extensions”.

How to boot into Mac OS X Snow Leopard 64-bit mode
Checking whether 64-bit kernel is in use

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"?>
<!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

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.

Site sponsor Other World Computing helps make this site possible.

Buying a Mac? Get one at the Apple Store.

Please let others know about this site—thank you!

 


Up to 960GB of Storage!

diglloyd.com | Terms of Use | PRIVACY POLICY
Contact | About Lloyd Chambers | Consulting | Photo Tours
Mailing Lists | RSS Feeds | Twitter
Copyright © 2008-2014 diglloyd Inc, all rights reserved.