为什么我的 Mac OS X 10.6 内核以 32 位模式运行?

为什么我的 Mac OS X 10.6 内核以 32 位模式运行?

我有一台 MacBook Pro (5,1),配备 4GB 内存,运行 10A432 - 但它运行的是 32 位内核。

为什么它不能在 64 位模式下运行,以及我该如何让它这样做?

答案1

在 Jon Siracusa 对 Snow Leopard 的评论中,他讨论 64 位过渡

老虎 豹 雪豹

简短版本如下:因为没有“混合模式”,64 位内核需要 64 位内核扩展和驱动程序

由于这些尚未广泛普及,Apple 选择默认使用 32 位,以避免破坏很多东西。

文章中的说明:

对于所有支持 K64 的 Mac,启动时同时按住“6”和“4”键以选择 64 位内核。要获得更持久的解决方案,请使用 nvram 命令将其添加arch=x86_64boot-args字符串中,或​​编辑文件/Library/Preferences/SystemConfiguration/com.apple.Boot.plist并将其添加arch=x86_64到 Kernel Flags 字符串中:

...
    <key>Kernel</key>
    <string>mach_kernel</string>
    <key>Kernel Flags</key>
    <string>arch=x86_64</string>
...

要切换回 32 位内核,请在启动时按住“3”和“2”键,或者使用上述技术之一,将“x86_64”替换为“i386”。

答案2

与大多数其他操作系统不同,在 Snow Leopard 中运行 64 位内核并没有什么好处。在 Windows 和 Linux 中,您需要 64 位内核才能运行 64 位应用程序。在 OS X 上,您可以使用 32 位内核运行 64 位应用程序。

大多数人似乎都担心在 OS X 中运行 32 位内核会限制其机器的性能或功能,但实际上这并没有产生重大的实质性影响。32 位内核支持运行 64 位应用程序,这些应用程序具有虚拟 64 位地址空间,该空间由内核映射到 36 位 PAE 地址空间,因此它们的行为与在 64 位内核上的行为相同,只是内存使用受到更多限制,并且内存映射 I/O 到可用范围。Apple 在 32 位内核中处理此地址空间的方式导致物理内存限制为 32 GB,打破了 PAE 的 4 GB 32 位限制。从性能方面来看,使用 32 GB 或更少内存的 64 位内核并没有什么好处,如果有的话。如果您愿意,您可以在启动时按住和6键强制启动 64 位内核时自己测试一些基准4。我怀疑你会看到性能上的显著差异。

另一个问题是与设备驱动程序、内核扩展和设备固件的兼容性。对于设备驱动程序和内核扩展,它们需要匹配位数、重新编译或重写(特别是如果它们有任何汇编代码,这些部分在这些类型的代码中很常见)。Apple 的 EFI 最初仅提供 32 位,最近一些型号有 64 位固件。为了使操作系统与固件通信,内核和 EFI 的位数必须匹配。涉及与 EFI 通信的事情包括选择启动磁盘或一些电源管理控制(例如,如果您安装了多个 OS X,并且需要在电池耗尽后从睡眠状态唤醒)。

那么 64 位内核有好处吗?从性能角度来看,实际上并没有好处,而且我认为 Apple 明智的做法是为大多数运行 Snow Leopard 的机器使用 32 位内核,以获得更好的兼容性。

答案3

根据泄露给 MacRumors 的信息(由于官方文件受保密协议保护)(来源)仅以下计算机支持运行64位内核:

  • 2008 年初 Mac Pro(MacPro 3,1)
  • 2008 年初 Xserve(Xserve 2,1)
  • MacBook Pro(15 英寸/17 英寸)(MacBookPro 4,1)
  • 2008 年 iMac(iMac 8,1)
  • 一体式 MacBook Pro(MacBookPro 5.1 和 5.2)
  • 2009 年初 Mac Pro(MacPro 4,1)
  • 2009 年 iMac(iMac 9,1)
  • 2009 年初 Xserve(Xserve 3,1)。

仅 XServes 默认使用 64 位内核。

6如果你按住和键启动计算机,4你将启动 64 位内核,或者根据另一个来源违反他们的保密协议,你可以编辑/Library/Preferences/SystemConfiguration/com.apple.Boot.plist添加内核标志或在 nvram 中执行此操作。

答案4

在 Snow Leopard 发布之前,我们无法知道哪些系统将支持 64/32 位模式...但所有迹象表明 Snow Leopard 将透明地提供内核支持...

但是,很抱歉,如果您是 Appleseed 的注册会员,Appleseed 论坛会讨论如何强制内核进入 64 位模式。否则,如果您在其他地方收到了 Snow Leopard,请不要担心。

Snow Leopard 即将发布...

相关内容