服务器 频道

旧瓶装新酒 Mac OS X雪豹64位操作系统

  【IT168评测中心】8月25日,苹果正式对外公布,其最新操作系统Snow Leopard(雪豹)将于28日正式发布。


Mac OS X Snow Leopard

  现在的Mac OS是一个基于FreeBSD核心的操作系统。历代Mac OS X版本都用大型猫科动物来命名,如10.4 Tiger(虎)、10.5 Leopard(豹)、10.6 Snow Leopard(雪豹),Mac OS X的X就是罗马数字,10的意思。

  从版本号刻意看出,Snow Leopard可以说是前一个系统的“升级版”。在界面上,可以看到Snow Leopard和前一代Leopard基本一致,没有大的改动,功能上也并无突破式的创新,不过,在底层上,Snow Leopard的改变还是挺大的,关于Snow Leopard界面或者功能我们已经了解了不少,下面我们就来看看Snow Leopard底层的改进。

  早在PowerMac G5的时候,Apple就将Mac平台引入64位世界,但是并没有什么软件上的应用。PowerMac G5上的64位支持很有限:系统内核和大量系统构件仍然是32位,到了Mac OS X的初代,实际上只是允许系统支持超过4GB的内存,在32位内核上。这种情况一直到Tiger和Leopard上都没有太大的变化(Leopard上,Mac OS的核心组件Cocoa framewor提供了64位版本,不过其他系统组件仍然是32位)。

Snow Leopard:雪豹

  不同于之前的OS X,Snow Leopard的底层进行了全面的更新,从系统内核到内核扩展,再到系统进程,全部都提供了64位版本,这是一个真正的64位系统。不过,默认情况下Snow Leopard启动的只是32位版本。这显然是基于兼容性的考虑。

  Snow Leopard的64位应用有些很值得一写的地方:和32位程序的交互性。通过IPC机制(InterProcess Communications,进程间通信),64位Quicktime可以装载32位的codec,而64位的Safari则可以装载32位的plug-in。Windows上没有这个机制,因此32位浏览器仍然是主流,因为懒惰的Adobe没有为Windows 64给出64位的Flash插件。在Windows上,64位的codec的问题比起浏览器来要好一些,不少的codec都已经有了64位的版本。 

  Mac OS Server默认启动的是64位内核,其他系统上大部分都支持一个可选选项,为了启动到64位内核(后者,在Mac OS Server上启动到32位内核),你需要在引导过程中按下“6”和“4”(要想进入32位则是按下“3”和“2”)。除了每次开机都按两个键之外,或许你也可以考虑一下改写com.apple.Boot.plist以默认引导至64位(或者32位)内核:

/Library/Preferences/SystemConfiguration/com.apple.Boot.plist

找到:

<key>Kernel Flags</key>
<string></string>

更改为:

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


Mac机器对64位内核的支持,Capable:支持,Default:默认

  一些使用了64位处理器的Mac无法引导64位内核,因为它们可能使用了32位的EFI。只有64位EFI可以引导64位内核,这是Apple导致的一个限制。不过别放弃希望,当你发现你的系统是32位EFI的时候,hackintosh社区的一个小工具netkas' pcefiv10.1 bootloader可以帮上你的忙,它可以让你的32位EFI引导至64位内核。你可以使用以下命令确认你的EFI版本:

ioreg -l -p IODeviceTree | grep firmware-abi

  输出将会是EFI32或者EFI64。

  这个GCD可不是Global Cooldown的意思(WoW玩多了)……GCD是Snow Leopard带的Grand Central Dispatch的意思,Lucifer暂且将其翻译为统一中央调度。GCD出现是顺应现在处理器发展不是朝越来越高的频率,而是朝着越来越多的核心、越来越多的线程执行数量来发展,实际上是一个并行优化解决方案,通过GCD,你的多核心处理器会得到更好的应用。


GCD:Grand Central Dispatch

  GCD既包括了操作系统内核上的机制,也包括了编程模型的更新。GCD允许编程人员定义不同的Blocks,然后将这些块送入GCD,Snow Leopard通过GCD统一调度到多个处理核心上。编程人员不再需要关心太过具体的多线程优化,Snow Leopard提供了一个全局性的架构。


Snow Leopard:雪豹

  通过GCD,现在的程序可以立即获得微弱的性能提升,不过为了获得最好的效果,你需要重新编写程序……

  GPGPU,或者说GPU通用计算时下越炒越热,前些日子我们IT168评测中心的专业图形卡横评也有提到相关的内容,为了充分发挥发展越来越快的GPU的威力,图形芯片厂商们推行了让GPU执行通用计算的计划,NVIDIA有CUDA,ATI则有Fusion,然而不同的GPU通用计算架构实际上并不“通用”,你使用不用的图形卡的时候,需要使用不同的API,无疑是一件痛苦的事情。

NV在第十代Quadro上推出的GPU Interactive Ray Tracing,通过CUDA实现;一般的着色器很难实现光线追踪需要的运算功能

  从名字来看,OpenCL和OpenGL很相似,它们都提供了一个统一的、开放性的架构,实际上,它们都是同一个组织发布的。OpenCL允许了通过一个单一的API,来应用不同GPU的计算能力,它们可以用来加速视频编码,进行并行运算,或者加速光线追踪渲染,等等。

 

08年的图:OpenCL开发过程;最新的OpenCL版本是1.0.45

  OpenCL是Apple在08年6月提交给Khronos Group,为了让OpenCL赶上Snow Leopard的发布,OpenCL的发展迅速,一个统一的行业标准在不足一年的时间内就成立了,要知道这可不是一件容易的事情,因为Khronos Group可不是一个很有效率的组织……不然也不会让OpenGL的发展逐渐让DirectX追上了。Snow Leopard的内置OpenCL支持,实际上这也是促成OpenCL标准发布的重要条件之一。OpenCL的参与开发厂商还有Intel、AMD、NVIDIA和QualComm。


OpenCL未来可能还会用到iPhone上

(完)

0
相关文章