Array|由 PowerPC 到 Intel,苹果是这么做的

苹果第一款 ARM 架构的 Macbook 很大几率会在下个月的发布会公布 , 这款机器面对的最大挑战 , 无非是软件的兼容性问题 , 这里我们不妨来回顾一下 , 当年苹果由 PowerPC 转向 Intel 时 , 是怎么做的 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
在历史上 , 苹果并非第一次更换架构 , 1984年第一代麦金塔电脑采用的是摩托罗拉的68K处理器 。在 1994 年 , 苹果将处理器更换为RISC架构的 PowerPC 。距离我们最近一次更换架构的行为 , 发生在 2005 年 , 苹果公司宣布新产品将全数改用英特尔的 x86 架构芯片 , 而在当时 , 苹果已经连续使用 PowerPC 处理器 11 年了 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
苹果为何在 2005 年全面将架构改为 x86?
PowerPC 其实性能并不弱 , 我们熟悉的索尼 Playstaion3、任天堂的 Will 和微软的 Xbox 360 都使用了 PowerPC 的处理器 。但是随着时间推移 , Intel 和 AMD 逐渐占据消费级市场的主流 , 相比越来越冷门的PowerPC , 无疑是成本更低的选择 , 而且 PowerPC 整体的能耗表现无法让苹果满意 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
乔布斯当年在 2005 年 WWDC 就说道:“我们想要为用户制造最好的电脑 , 两年前我曾经在这里承诺 3GHz 的 Power Macintosh G5 和 PowerBook G5 , 但是我们现在难以做到 。更重要的原因是 , 我们接下来还有许多优秀的产品 , 但是我们不知道如何用 PowerPC 处理器来驱动它们 , 因此我们决定转向英特尔 , 它们不仅有优秀的性能 , 同时还有更强的能耗控制 。”
PowerPC 的发热量大几乎是个不争的事实 , 苹果在 2004 年 7 月推出的 Power Mac G5 电脑 , 为了让 PowerPC G5 的处理器稳定发挥 , 苹果甚至还内置了一套水冷系统 , 这种做法即便在今天也是相当罕见的 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
苹果换到英特尔处理器后 , 效果几乎是立竿见影的 , 以 2006 年发布的第一代的13寸 Macbook Pro 为例 , 它采用了英特尔酷睿双核 T2500(2.5GHz)的笔记本 , 处理器性能超越上一代 iBook(1.42GHz G4)5 倍有多 , 而且续航还提升了 2 个小时 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
总而言之 , 当年苹果之所以更换架构 , 很大程度正是在性能和功耗上的考量 。从今天来看 , 无疑是个非常正确的决定 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
苹果在 2005 年的 WWDC 正式宣布开始全面转向 X86 架构 , 苹果当时就向开发者们公布了“开发者迁移包” , 让开发者可以更早的进行软件开发 , 包含有一台英特尔Mac的原型机 , 并安装了 Beta 版本的 Mac OS X Tiger 和 Xcode , 方便开发者重新为它们的软件进行开发和编译 , 就如同今天搭载 A12Z 芯片的 Mac mini 。
苹果当时宣称要在2年内完成架构的转换 。苹果采用了两种方式 , 第一种被称之为通用二进制应用 (Universal Binary) , 简单来说 , 这是苹果提出的一种程序代码 , 使程序能以本地程序的形式运行在使用 PowerPC 或者英特尔微处理器 (x86) 的麦金塔电脑上 , 在同一个程序包中同时为两种架构提供最理想的性能 。当程序在操作系统中运行后 , 将自动检测通用二进制代码 , 根据使引用的架构自动选择合适的代码来执行 , 实现无损的本地程序运行速度 。分页标题

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
这种方式的优点 , 自然是运作效率相对较高 , 而且同时兼容两个平台 。缺点就是需要软件开发者额外对自家软件进行编译 , 因为要储存不同平台的代码 , 所以通用二进制的程序体积会相对更大 。在系统迁移初期 , 许多高端的应用程序还没有通用二进制版本 , 比如微软的 Office , Adobe Photoshop 等 , 对用户造成诸多不便 。
针对这种情况 , 苹果还提出了 Rosetta 转译器的方案 , 这如同是一个内置的虚拟机 , 可以让尚未适配新架构的软件运行在新的机器上 , 转译完成后即可使用 , 对于一些尚未做适配的小型应用来说 , 非常方便 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
当然 , 这种方式也有它的缺陷 , 因为只是机器转译 , 软件的运行效率不如原生针对新架构开发的应用 , 而且有机会无法运行 , 当时有反馈称 , 使用 Rosetta 只能达到原本约 60%-80% 的性能 , 在运行一些大型生产力应用时 , 就会出现明显的卡顿情况 。
苹果整个架构的迁移过程由 2005 年正式开始 , 3 年后苹果开始推出不再支持 PowerPC 处理器的 MacOS , MacOS X Snow Leopard 。对于Rosetta 转译器的支持一直持续到 2011 年 7 月 , 之后就无法再使用 。最终于 2013 年 8 月 , 苹果正式结束了对 PowerMac架构的支持 。
可以看到 , 整个架构的迁移过程并不轻松 , 也完全称不上“无痛” , 由苹果宣布改变架构到结束支持 , 中间这个过程持续了将近 9 年 。而这一次由 x86 转向 arm 的难度势必会更大 , 不仅软件的数量相比之前有了指数级的上升 , 而且现在英特尔 Mac 的用户保有量依然非常庞大 , 对于软件公司来说 , 或许在很长时间内英特尔还是优先发布的平台 。此外 , 因为架构的转变 , 以后想要在 Mac 中运行 Windows , 势必变得更困难 。

Array|由 PowerPC 到 Intel,苹果是这么做的
文章图片
文章图片
【Array|由 PowerPC 到 Intel,苹果是这么做的】当然 , 意图打通x86和ARM架构可不止苹果一家 , 微软早在 2012 年就已经发布了针对 arm 架构的 WindowsRT 系统 , 而且微软还开发了一个名为“通用 Windows 平台”的解决方案 , 使得软件可以在不同平台上运行而且无需重新编写 。不过兼容性问题至今上不能很好的解决 , 目前只能满足比较轻量化的办公 。苹果能否解决兼容性的难题 , 我们拭目以待吧 。