由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Apple版 - Snow Leopard:64位时代,就在不远的将来【连载5/23】
相关主题
Snow Leopard:价格与策略——不止是写个价签儿那么简单【连载2为什么XServe不卖了呢?
Snow Leopard:安装进度条背后的故事【连载3/23】SL和8GB内存
Snow Leopard:依旧是那副皮囊【连载4/23】Snow Leopard:WWDC 上没有提到的 10 个新功能(zz)
想买个mac mini玩如何保存现有文件升级到Snow leopard
好期待星期五[转]Snow Leopard Is a Pale Imitation of Windows 7
Snow Leopard 很耗内存Snow Leopard将让苹果打开更多商业市场
Snow Leopard:宝刀已铸成 关二爷请砍人【8/23】苹果肯定没给CNET钱
能伸能缩的DOCK【17/23】Snow Leopard in Hand
相关话题的讨论汇总
话题: 64话题: 内核话题: leopard话题: mac话题: snow
进入Apple版参与讨论
1 (共1页)
a****a
发帖数: 5763
1
http://bbs.weiphone.com/read.php?tid=490818
Mac OS X 10.6即所谓的Snow Leopard操作系统已正式发售。一如既往,Apple产品光鲜
的外表下凝聚了太多艰辛的劳作。ArsTechnic的John Siracusa以其独特的、专业的、
全面的视角深入翔实地体验这款最新的操作系统。
Weiphone.com将对该综述进行翻译整理并独家连载。欢迎关注。
此前我们提到,Snow Leopard带来的变化大都是“内在”的,从本系列连载的内
容中您也可以窥见一斑。如果您只对“可见”的变化有兴趣您大可皱皱眉头然后跳过,
但是您将错过Apple这款全新的操作系统的精华与“内在美”。
64位:继续征途
早在2003年Panther面世之时,Mac OS X就已踏上了64位探索之旅。然而,当时
的Panther操作系统仅仅有限支持PowerPC G5的64bit CPU。(译注:虽说Mac OS X 10.3
Panther在64位处理器上运行,但严格意义上并不算64位的操作系统。参见http://www.theregister.co.uk/2003/07/07/mac_os_x/ 以及 http://en.wikipedia.org/wiki/Power_Mac_G5 ) 2005年推出的Tiger则是真正具备64位运算能力的一款操作系统,尽管其并未连接到任何Gui Libraries。最终,2007年推出的Leopard包含了对64位Gui Libraries的支持,然而仅限于对Cocoa程序的支持。事实上,这意味着Carbon走到了尽头。(译注:Cocoa、Carbon等都是Apple为Mac OS X创建的编程环境)
尽管如此,Mac OS X想要真正完成64位的蜕变,还有一段路需要走。下图对此予
以说明。

图表中黄色的部分代表Snow Leopard能够支持的,而并不是其默认的操作模式。

K64
Snow Leopard是Mac OS X中第一款具备64位内核的操作系统(Apple的说法就是
K64),但是并不是所有的系统的缺省选项。原因很简单。回想一下,Mac OS X中并没有
所谓的“混合模式”。运行过程中,要么64位模式,要么32位模式,并且只能调用该模
式下的其他代码——如Library,插件等。
内核调用的一类重要插件就是设备驱动。如果Snow Leopard默认运行64位内核,
那么就只有64位的设备驱动程序可以加载。既然Snow Leopard是第一款包括64位内核的
系统,那么在发售之时,用户系统上的这类支持恐怕是少之又少(译注:字面意思。引
申意我猜可能是说,snow Leopard推广之初,64位设备驱动可能会比较少)。
因此,Snow Leopard只有在运行2008年以后的Xserves服务时才会默认引导64位
内核。我猜测,这些Xserve附带的设备或许是由Snow Leopard本身提供的64位驱动所支
持的。
然而不可思议的是,并不是所有具备64位处理器的Mac都能够引导启用64位内核
。当然这一点或许会随着Snow Leopard的推出而改变。下表列出了所有能够引导或者磨
粉引导K64的Mac。(您可以在Mac上找到“Model Name”,在菜单中选择“About This
Mac”,然后点击“More Info…”并查看“Model Identifier”。)

对于所有支持K64的Mac,您可以在启动时同时按下“6”和“4”键来选择引导64
位内核。当然也有一步到位的方案,使用nvram命令,在boot-args字符串中添加“arch
=x86_64”,或者编辑/Library/Preferences/SystemConfiguration/com.apple.Boot.
plist文件,并在Kernel Flag字符串中添加“arch=x86_64”。

如果想要切换回32位内核,可以在启动时同时按下“3”和“2”键,或者采用
以上方法,并将“x86_64”替换为“i386”。
我们之前已经谈到了,在最初阶段您恐怕不愿意引导K64。但是Snow Leopard费
尽心机将现有的内核拓展到64位支持,一定有他的理由。
第一个原因与RAM有关,并且可能不是您想象的那样。尽管Leopard使用32位内
核,运行Leopard的Mac可以控制和使用更多的RAM,远超过4GB的限制。但是随着RAM的
增加,另外一个问题应运而生:地址空间(address space)枯竭——不是应用程序,而
是内核本身。
对于32位处理器,内核本身被限制在32位的地址空间。或许看起来这不算什么
问题,毕竟内核可能并不需要比4GB更多的内存来运作。但是请记住,内核的一部分任
务是要跟踪并管理系统内存。内核将使用64-bytes结构来追踪系统使用的RAM中每个4KB
页的使用状态。
这里提到的64-bytes并不是千字节(kilobytes)。看起来这并不是一个很大的数
字。但是想想,或许在不远的将来Mac即将获得96GB的RAM。当然96GB听起来或许有点荒
谬,但是回想一下5年以前8GB听起来是不是也很荒谬呢?追踪96GB的RAM需要1.5GB的内
核地址空间。使用1/3以上的内核地址空间却仅仅用来追踪内存,这或许是个相当尴尬
的境况。
相反,64位内核事实上没有限定内核地址空间(16 exabytes. 译注:exabytes是一
种信息或者计算机存储单位,SI词头exa表示千兆兆,1 exabyte=10^18 bytes)。K64将
是一个不可避免的趋势,允许系统内存迅速增加。或许现在您并不需要,但是对服务器
来说,拥有2位数GB的RAM已经很常见了。
另一个原因是与运行速度有关。X86指令集体系结构(instruction set
architecture)曾经有过一段痛苦的历史。最初为x86结构设计64位扩展时,AMD抓住机
会摒弃了一些腐朽陈旧的东西,囊括了一些很“高科技”的功能:更多的寄存器(
Register),新的寻址方式(Addressing Mode),无堆栈的浮点运算能力(Non-stack-
based Floating Point Capabilities),等等。K64从中获益。Apple对于其性能作出了
如下声明:
250%更快的系统调用入口点(system call entry point)
70%更快的用户/内核空间拷贝(user/kernel memory copy)
(译者插播:看着跟暗黑装备属性一样 囧rz)
我相信相关的基准能够证明以上的说法。但是在日常使用中,您或许不会把任
何特殊的性能表现归功于内核。K64实际上相当于为一些应用程序(一般是基于服务器的
程序)去掉了瓶颈,通常这些程序很大程度上依赖于内核。
一言以蔽之,64位将使内核更为高效地工作,并且即使您安装了96GB的RAM也不
必担心内核地址空间枯竭。如果您没有什么依赖于32位驱动的东西要用,引导入64位内
核必将是一个明智的选择。
对于其他用户来说,K64已经准备就绪,一旦您需要即可使用。当然对内核扩展制
造商来说,尽快增加K64支持是相当明智和必要的。
最后,有必要重申一下:请记住,事实上您并不需要为了运行64位程序而引导64位
内核或者安装4GB以上的RAM。即使在32位内核上,应用程序也可以运行64位模式,而且
即使对于早期版本的Mac OS X,安装和利用大于4GB的RAM也是完全可能的。
1 (共1页)
进入Apple版参与讨论
相关主题
Snow Leopard in Hand好期待星期五
snow leopard & matlab 2009aSnow Leopard 很耗内存
装好了snow leopardSnow Leopard:宝刀已铸成 关二爷请砍人【8/23】
推荐glimmerblocker,Snow Leopard下彻底干掉老刑广告能伸能缩的DOCK【17/23】
Snow Leopard:价格与策略——不止是写个价签儿那么简单【连载2为什么XServe不卖了呢?
Snow Leopard:安装进度条背后的故事【连载3/23】SL和8GB内存
Snow Leopard:依旧是那副皮囊【连载4/23】Snow Leopard:WWDC 上没有提到的 10 个新功能(zz)
想买个mac mini玩如何保存现有文件升级到Snow leopard
相关话题的讨论汇总
话题: 64话题: 内核话题: leopard话题: mac话题: snow