将你的Snow Leopard设置为64位

Posted by Elton's Blog on March 30, 2010

很多人对Snow Leopard的64位还是一头雾水,下面我详细说一下。

首先,默认情况下,Snow Leopard总是开启32位内核;如果你的CPU是Core 2或者Core i7(的话,系统会在运行程序时自动启动Universal Binary中的64位部分(这里的Universal是32位Intel和64位Intel的Universal,不是指PPC和Intel的),因为默认的32位内核可以运行64位程序。但是,如果你想从内核就变成完全的64位,那么需要你的Mac还具备一个条件,就是你的EFI必须是64位的。EFI是固件用户接口,这里指的是你的固件必须是64位的。

EFI是否为64位的判别方法是: 打开终端,输入代码:

ioreg -l -p IODeviceTree | grep "firmware-abi" | sed -e 's/[^0-9A-Z]//g'

回车后,如果返回EFI64,则表示是64位的EFI,如果是EFI32则表明是32位的EFI……

通过Mactracker搜索,得到的分界如下: MacBook:由于苹果限制,MB均不可开启64位内核。 MacBook Pro:MA895/896/897(Mid 2007)及以前的机型是32位的EFI,之后的机型是64位。 iMac:MA876/877/878(Mid 2007)有一部分是32位的EFI,一部分是64位的EFI,在这之前的都是32位,之后都是64位。 Mac Pro:第一代4核和8核都是32位,以后的都是64位。 注意,以上统计信息不一定准确,如果你在自己的机器上发现与上述写法不符的,请及时提出,我将做出更正! 目前已知MA895(预装Tiger)也具备64位EFI,因此wikipedia所谓预装Tiger是32位EFI的言论已经不靠谱了……

关于开启64位内核后的检查方法有四种: 1、进入“About This Mac”,点击“More Info”,在弹出的“System Profiler”中选择左边的“Software”,在右侧可以看到“64-bit kernel and extensions”,即可得知是否开启了64位内核。

2、打开终端,输入“uname -m”即可查看内核构架:

3、打开终端,输入”uname -v”即可查看内核发布信息:

4、打开“活动监视器”,找到进程“kernel_tasks”(PID为0),查看它的构架,它就代表内核。

最后说明开启64位的方法: 暂时性方法: 开机启动听到“咚”的一声马上按住“6”和”4”直到启动完成。建议先用这种方法查看开启64位内核是否有问题,我曾经在一台机器上面尝试开启64位后键盘失灵了。 永久性方法: 打开终端,拷贝下面的命令,回车运行:

sudo /Applications/TextEdit.app/Contents/MacOS/TextEdit /Library/Preferences/SystemConfiguration/com.apple.Boot.plist

在弹出的文本编辑器中,找到kernel_flag下面的,并把它改写成arch=x86_64. 也就是说,改好的文件应该是这个样子:

	
	<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
	
		
		        Kernel
		        mach_kernel
		        Kernel Flags
		        arch=x86_64
		
	

改完之后保存退出就可以了。