深入雪豹之二:64 位

当某些聒噪的专家不顾一切的将雪豹诋毁为「服务包」的时候,自成一体的它,已经默默的将麦金塔平台延展到许多重要而且不为人知的地方。本系列文章将向你揭示雪豹众所周知但常被误解的功能,这是第二篇。

 
原文链接;作者:Daniel Eran Dilger  

64 位内核

对于 EFI (引导操作系统的启动固件)仍是 32 位的麦金塔用户来说,雪豹的新 64 位内核会是一个问题。2008 年之前苹果电脑虽然配备了 64 位的酷睿 2 处理器,但也只能使用 32 位内核来运行 64 位的程序,因为苹果的 64 位内核既需要 64 位处理器(酷睿 2 或更好的处理器)又需要 64 位的 EFI 的支持。

由于 Windows 不使用 EFI 而是更为原始的 BIOS,因此 64 位版本的 Windows XP 以及 Vista 在这类机器上要通过 Boot Camp 来引导。

无论如何,在这类机器上使用 64 位内核获得的收益有限,虽然 64 位内核的确能带来好处,例如获得更好的安全性。使用 64 位内核的主要好处是可以直接使用超过 4GB 以上的内存,而这在目前的大多数消费级麦金塔和普通 PC 上是做不到的。

即便是在拥有 64 位 EFI 的消费级机型上,雪豹仍默认使用 32 位内核,这是为了防止普通用户在使用部分还未 64 位化的软件时,由于内核拓展与驱动程序(如打印机软件)无法协同将会导致的问题。
 
这个问题在过去几年里一直压制着 64 位 Windows 的发展,然而却没有推迟 64 位麦金塔的部署,这是因为雪豹只有一个版本,迫使它必须自我调整以适应受限的硬件。
 
想要使用 64 位内核的用户(2008 年初后发布的麦金塔)可以在启动时按住「6」和「4」键。如果想知道 EFI 固件的版本是否是 64 位,可以在终端里输入如下的命令「ioreg -l -p IODeviceTree | grep firmware-abi」。
 
64 位系统程序
 
雪豹能够让所有装载酷睿 2 处理器的 64 位麦金塔(2007 年后的所有机型)都能够享用 64 位系统程序带来的快感。无论是 Finde 、Dock 还是 iChat 和 Mail ,甚至是后台进程如 Launchd 以及系统级的拼写检查都没问题。不管是不是使用 64 位内核,只要硬件支持 64 位,雪豹就能运行 64 位程序。于此相较的是,没有一款 32 位版本的 Windows 能运行 64 位程序,即使硬件支持。
 
升级至 64 位的系统程序的效能总体上提高了,如此而为是由于英特尔的 32 位芯片所致,而 AMD 开发的 X64 处理器模型解决了这些问题。然而在其他处理器上移植 64 位程序并不能获得同样的性能提升,反而会导致额外的系统开销,例如 PowerPC,这便是雪豹只能运行在英特尔处理器上的原因之一。
 
Windows XP/Vista/7 的用户同样能从 64 位程序中获得好处,不过 64 位程序只能在具有 64 位内核的版本中运行。除非将硬件更换为带有 64 位驱动的型号,否则主流 PC 用户很难体验到 64 位计算带来的好处,这使得 64 位 Windows 推进缓慢。
 
64 位第三方程序
 
雪豹同时也为 64 位第三方应用程序打下了坚实的基础。尽管 Leopard 也能够运行 64 位图形程序,Tiger 可以运行 64 位后台进程,然而 64 位麦金塔应用程序的演进才刚刚开始。即便是苹果,目前也所为不多,iWork、iLife、iTunes,甚至是专业应用仍然是 32 位,而微软的 Office 和 Adobe CS 系列也都如此。
 
雪豹的 64 位内核使得新一代的麦金塔能够使用更大的内存,释放更多的潜能,提供更好的性能并允许更加激进的缓冲处理,特别是针对内核的输入输出部分,例如磁盘访问。在麦金塔平台上转换到 64 位总体上说比 Windows 更快,这是由于大多数 PC 机仍在运行 32 位版本的 XP 。与雪豹不同的是,它无法运行任何 64 位程序。
 
雪豹虽然为麦金塔用户带来了实质性的性能提升,但它最为重要的作用是为了今后数年的 64 位高性能计算打下了基础。在此得感谢 32 位系统长久以来限制着 PC 平台的内存增长,因此现在的内存价格比以往任何时候都要便宜,这也是使用麦金塔优于 32 位 PC 的一个好处吧。
 
PC 用户所受的限制不仅止于 4GB 的内存容量,Windows 还会人为的制造其他限制,例如它取走了 2GB 的内存,只允许剩下的 2GB 供程序使用。Mac OS X 同 Linux 那样,允许程序在英特尔架构上使用所有的 4GB 内存。这个差异曾给 Windows 带来页表缓冲(TLB,Translation Lookaside Buffer)方面的性能优势,但是雪豹的 64 位程序抹平了这项差距,并且提供了比之亿万台装有 Windows 的 PC 更为强劲的性能。
 
另外,麦金塔的 64 位化仅需迈向一处,而 Windows 则被庞大的低端 32 位市场(包括正在大量增长的上网本市场)与高端的少部分使用 64 位的专业用户和游戏玩家所割裂开来。由于 64 位 Windows 用户并不比使用麦金塔的人数多,因此它们其实旗鼓相当。
 
64 位 Cocoa
 
同时,苹果亦回到原先的策略:将 Cocoa 置为 Mac OS X 程序的主要图形 API 。这也标志着苹果十年以来对微软和 Adobe 容忍的结束,它们都拒绝将现有的程序从古老的 Mac OS 中升级到自 NeXT 时期以来引入的更先进的新框架里。而现在,无论谁想要编写 64 位的图形程序都必须使用 Cocoa 接口。
 
十年前,苹果太过弱小,因而无法推动这项进程。在当时,一方面,麦金塔平台看上去没有剩下多少潜力可挖;另一方面,新的 Mac OS X 也无法向第三方开发者保证自己的前途。而今事情全变,苹果运维着一个超越普通 PC 销量的强健平台已有数年之久。
 
开发者们也意识到现在他们可以通过为 Mac OS X 攒写程序获得收入了。此外,开发麦金塔软件的工具同开发 iPhone 与 iPod touch 的工具基本上也是相同的。
 
苹果唯独关注 Cocoa 的举动将会大幅度简化开发工作,也不需要将 Cocoa 和 Carbon 都移入 64 位世界了。尽管 Adobe 抱怨说苹果在 32 位维修模式下冻结了 Carbon 而阻止了它发布 64 位版 CS4 的步伐,然而 Cocoa 将会迫使 Adobe 在下一个版本中做出改变,从两方面升级 CS 系列(Cocoa 和 64 位),而不是拖着 Carbon 进入下一个十年。
 
微软和其他主要的麦金塔软件开发者也将紧跟 Cocoa 带来的潮流。比起市场占有率而言,麦金塔巨大的关注度、市场关联以及软件赢利能说明更多的问题。苹果果断的放弃了旧有的系统,为开发者们提供了更加简单、明晰的选择,就像在 iPhone 上做的那样。
 
当然,苹果还需要发布 64 位版本的 Logic Studio,Final Cut Studio 以及 Aperture。转向 Power PC 时的苹果曾被第三方开发者所超越,转到 Intel 后,这个差距减少了。由于苹果既是平台提供商也是程序开发者,相信这样的身份将使得它为开发者提供更为切实有用的工具。
 
苹果在 64 位化过程中起着领军作用,它为雪豹打下的坚实基础将在诸多重要方面引领麦金塔的发展。然而比起支持 64 位 CPU 来说,还有许多事情要做,下一节将会讨论苹果在 GPU 利用方面的前瞻举措,以及对今日的麦金塔和下一代机型会有什么样的影响。