蘋果向英特爾平台遷移

title: 往例.
content: 在1994年到1996年期间,Mac电脑产品线同样完成了一次类似的硬件平台迁移,此时Apple选择了停止继续使用摩托罗拉推出的68K处理器,改用由AIM联盟(Apple、IBM、摩托罗拉)共同开发推出的PowerPC处理器。这一次的平台迁移花费了数年时间,期间Apple推出了可以同时运行在68K处理器及PowerPC处理器的Mac OS操作系统,并为配备了PowerPC处理器的Mac电脑制作了底层的模拟器,鼓励第三方开发商制作能够原生运作在两个平台的程序(因为该种程序程序码肥大,又被用户暱称为「fat binaries」)。  稍后几年,Apple更是将全线Mac电脑的操作系统,自原有的Mac OS迁移至全新的Mac OS X之中。该次平台迁移同样花费了数年时间(小部分旧款Mac电脑依然使用早期的Mac OS操作系统),Apple其后在操作系统中集成的Classic环境使用户可以方便地迁移至新的操作系统环境。Classic环境允许用户在Mac OS X内刷出一个Mac OS 9副本(Instance),在Mac OS X上执行一些未经移植的Mac OS 9程序。Apple同时还为Mac OS 9及Mac OS X推出Carbon API,让开发者可以更简易地为两个平台开发程序。  事实上,Apple为每代Mac OS X同时开发了Intel版本及PowerPC版本,而且还保留了对上代NeXTSTEP操作系统的兼容性。Apple并没有透漏过曾为哪些硬件平台开发过操作系统,而近年推出的iOS移动操作系统,修改自原有的OS X计划,则显而易见地是运作在ARM平台之上。
title: 迁移原因.
content: 史提夫·乔布斯表示,Apple迁移电脑产品硬件平台的主要原因是对IBM在PowerPC技术的开发进展上感到失望,同时相信Intel可以在日后可以更好地满足Apple的需要与部署。在Intel提供的发展路线图当中,史提夫·乔布斯曾特别指出,如果按照消耗的能源来作对比基准,以瓦特来作单位,Intel处理器的表现要远远佳于PowerPC处理器的性能。 而在手提电脑设计里,这是一个非常重要的考虑因素,这一性能指标将严重影响电脑的电池寿命与使用时间。  2003年6月,史提夫·乔布斯在推出配备PowerPC G5处理器的Mac时曾许诺,在十二个月内会将PowerPC处理器的时钟频率提升至高达3 GHz。而实际上即便是在两年之后,Apple与IBM依然未能将3 GHz的PowerPC处理器投入市场,市场上的流言认为这一尴尬的局面是IBM其POWER4衍生芯片组的低良品率所造成的。此外,配备在Mac手提电脑上的PowerPC处理器,在运作时产生的巨大热量,也广被同时期的业界诟病。  一些分析师曾预料Apple会与另一家x86处理器生产商AMD展开合作。然而与Intel相比,AMD缺少优良的低能耗CPU设计,相信这是Apple放弃与AMD合作的最终原因。不过自2017年AMD Ryzen推出市场并且其效能、能耗表现良好(与英特尔Haswell/Boardwell微架构的处理器基本持平),而AMD有为客户半客制芯片的业务对Apple而言又有成本优势,加上英特尔自2012年以来的处理器产品成本高企而效能和能耗上进步又不高,因此有消息指Apple未来可能会考虑采用基于AMD Zen微架构的SoC产品。
title: 优点.
content: 最初,如要在Mac上执行x86软件,需要类似如DOSBox或Microsoft Virtual PC这一类的虚拟化软件。在Apple的电脑产品迁移至Intel平台之后,这一类软件(如Parallels Desktop for Mac及VMware Fusion)如今将可以透过虚拟化技术,提供更接近原生速度的虚拟环境。希望达致更方便的部署环境的用户,透过在配备x86处理器的Mac上使用Boot Camp软件,甚至可以划分两个、三个、甚至是四个启动磁区,来原生启动各种操作系统。  虽然大多数游戏使用Mac OS X无法利用的DirectX API,但迁移至Intel平台之后,开发者明显可以更方便地制作出独立的系统代码,如透过使用OpenGL。至少开发者无需再处理移植至PowerPC平台时遇到的端序问题(Endian)与指令集依赖问题。
title: 通用二进制.
content: 为了减轻开发人员移植平台时的负担,Apple推出了通用二进制程序代码,使应用程序能以原生形式运行在使用PowerPC或者Intel微处理器(x86)的Mac电脑上,在同一个程序包中同时为两种架构提供最理想的性能。通用二进制与Apple的Intel平台迁移计划同时在2005年WWDC大会上公布,开发者在转用Intel平台的Mac电脑后,可以使用通用二进制来发布同时适合新旧Mac电脑使用的应用程序。当程序在Mac OS X中执行后,操作系统将自动检测通用二进制程序码,然后根据使用的硬件架构自动选择合适的程序码来执行,因此实现原生的本地程序运行速度。因为同时包含了两套架构的程序码,通用二进制应用程序的大小要比普通版本的大一些。  Xcode是唯一一个可以编译通用二进制代码的GUI工具,在Xcode 2.4之中,Apple进一步扩充了通用二进制程序码的功能,引入「四架构二进制」概念(对应Intel及PowerPC平台的32位元及64位元版本),使支援64位元运算的PowerPC G5处理器在Apple正式迁移至Intel平台后的岁月里依然可以发挥余热。  随着去除PowerPC支援的Mac OS X Snow Leopard的发布,部分应用程序已经去除了对PowerPC处理器的支援。
title: 迁移的障碍.
title: 公众对平台迁移的反应.
content: Apple宣布迁移至Intel平台后推出了过渡方案Rosetta─一套PowerPC的动态转译器,用户可以通过使用Rosetta在配备Intel处理器的Mac上执行PowerPC应用程序。 然而,在Rosetta最初公布的时候,其实际效能仅有G3处理器的60%～80%。除此之外,在PowerPC Mac中,为虚拟Mac OS 9环境而设的Classic环境,在迁移至x86平台之后也将不复存在,使得新的配备了Intel处理器的Mac电脑无法执行最原始的Mac OS Classic应用程序(然而,用户可以使用由第三方开发者推出的虚拟软件,如SheepShaver,来虚拟一台执行Mac OS 9的Mac电脑)。 也有用户质疑,Intel处理器甚至是x86架构其本身的性能是否足够强大,平台迁移会否影响到操作系统的性能与应用程序品质。除此之外用户关注的问题还包括:Intel平台上的内存端序顺序,以及应用程序实作时,相比同等级别或同时代PowerPC处理器的浮点运算性能下降。  在Apple正式推出配备Intel处理器的Mac电脑之前,用户社群曾有不少疑惑(如担心过早公布迁移事项会造成恐慌效应,导致产品滞销;或是担心主导USB标准的Intel会要求Apple停止在新型Mac电脑上使用Apple自行研发的FireWire硬件接口),但最终均被证明全是莫需有的担心,Apple最终很好地处理了平台迁移事务上的过渡。  Apple在Macworld 2006正式发布首款配备Intel处理器的Mac电脑,用户心中的疑惑大多都随着正式产品的推出而烟消云散。Rosetta在正式面世时得到了大幅改进,实际的执行效率比最初演示的速度要快得多。(当然,在Intel Core Duo iMac之下,使用Rosetta执行PowerPC程序码的速度依然比不上G5 iMac的速度。)Intel的Core Duo处理器其实际性能,在Mac OS X上的表现几乎可以与原先的Power Mac G5台式电脑媲美。Intel处理器在整数运算及浮点运算SPECmark测试之中的表现,甚至还超越了2005年的G5 iMac型号。  可以同时在Intel Mac和PowerPC Mac运作的应用程序(如Safari网页浏览器),在Intel平台上的代码其执行效率要优于在PowerPC平台上的性能。然而,与PowerPC Mac相比,配备了Intel处理器的新型Mac电脑却无法直接执行Classic环境的应用程序。如果需要在Intel Mac上执行Mac OS X推出之前的Classic应用程序,则只能使用第三方开发者推出的虚拟工具,如vMac、Basilisk II、SheepShaver等,这些工具或多或少都受到硬件或软件架构上的制限,功能及稳定性不足。  公众之前对平台迁移计划的疑惑在Apple实际推出产品之后旋即烟消云散,财报显示在2006年的圣诞购物季里面,Apple的Mac机销量比上一年同期大幅增长。而「Intel Inside」这一类通常在Intel OEM客户产品上会出现的标示,也从没出现在任何Apple产品之上。
title: 硬件.
content: 外界一直不了解在整个平台迁移过程之中,Apple保留了多少非处理元件的系统设计权重。Apple传统上是一个整合系统的建造商,一些评论担心Apple的工业设计理念会受到其他通用部件的设计方式而影响。对此持不同意见的人则指出,Apple事实上正逐步使用与PC一致的通用部件(如于1995年为Power Mac添加的PCI接口插座),转用非Apple设计的芯片组与产品设计,并未影响到Mac的实际表现效能与形象。  配备Intel处理器的Mac在产品轫体上选用了全新的Intel技术─可延伸固件接口(EFI)─而非以往Apple一直使用的Open Firmware技术。采用EFI技术的电脑,无需再倚赖普通PC上的BIOS元件,就可以同时提供到更多的可延伸性功能。  迁移至x86架构也使得Windows可以原生运行在Apple硬件上,开发者也可以尝试使用Wine的组件来直接在Mac OS X上执行Windows应用程序。有人认为,Mac OS X用户自此可以在配备了Intel处理器的Mac上安装多一个Windows操作系统,或使用Wine(或其变体CrossOver Mac或Darwine)执行Windows应用程序,会使得Mac OS X在软件开发的布局里变得没那么重要。反对者则表示,迁移至Intel平台对Mac OS X来说利大于弊:希望转用Mac电脑的用户现在购买Mac之后,不必离开现有的PC操作系统,即可一睹Mac OS X的芳容。也有用户提出,Apple的电脑在迁移至Intel平台之后是否可以算作是一台普通PC的讨论,Apple对此则表示,不会允许普通PC执行Mac OS X,因此迁移至Intel平台后的Mac依然有其独特性,不能算作是一台普通PC。对此限制,民间则建立了一些社群,尝试在普通PC上安装并执行Mac OS X,该计划被称为OSx86计划或Hackintosh(中文社群时常将其称为「黑苹果」)。
title: Boot Camp.
content: 在Apple推出Boot Camp软件前,用户与开发者普遍认为,因Windows XP并不支援EFI轫体架构,因而无法在新款的Intel Mac上使用,微软在回答用户疑问时则表示,32位元版本的Windows Vista并不支援EFI轫体架构,但可以透过安装最新版的Boot Camp软件,让Windows Vista运行在Intel Mac之上。  在以往的Mac社群当中,Intel处理器往往被视为又热又慢的产品(尤其是奔腾4)。在1990年代末,Apple甚至还拍摄过一部名为「烤兔子」 的广告来讽刺奔腾II处理器的发热问题与性能。然而,专为手提电脑设计的奔腾M系列处理器,运作时的温度则一直要比奔腾4处理器凉快得多。Apple声称,Intel推出的新款Intel Core处理器,乃是基于原有的奔腾M微架构,若以能源消耗作对比基准,以瓦特来作基本对照单位,Intel新款处理器的表现要比PowerPC G5甚至是G4都要好得多。  对是次平台迁移抱负面态度的人士认为,x86并非一个良好的选择,较PowerPC相比,Intel的x86处理器缺少硬件暂存器,且也不支援PowerPC的AltiVec技术。支持者则声称,x86架构自8086处理器最初推出时已经过大量改进与发展,CPU内部的设计随着时间的推进,也开始融合起精简指令集及复杂指令集其双方的设计理念,与以往的处理器设计早已完全不一样。他们还认为,SSE指令集在未来的改进,最终有可能发展得比AltiVec技术更为优越。  Intel Core Solo与Intel Core Duo处理器均属32位元设计。2006年8月7日,Apple推出首款采用Xeon处理器的64位元架构Mac Pro及Xserve产品。到了2007年8月7日,Apple旗下所有电脑产品线均已更新至支援64位元运算的Intel Core 2 Duo处理器。  按当时的性能基准来比较,Intel Core 2 Duo处理器的性能在32位元运算之下,并没有比Intel Core Duo处理器要优秀很多,其64位元架构的性能优势,直至Mac OS X 10.6 Snow Leopard面世才真正得以发挥出来。在配备了64位元Intel处理器的Mac电脑里面,用户也可以安装Windows 7使用完整的64位元模式来启动电脑。
title: 现有的PowerPC应用软件.
content: 运行在直译器上的Java应用程序(不依赖于Java原生接口的)、Dashboard Widget、及工序指令无需改动即可同时运作在两种系统上。无法迁移至Intel平台的Mac OS X应用程序,其代码若需要在Intel Mac上使用,将会自动传送至PowerPC动态转译器「Rosetta」中执行。Rosetta最初仅支援G3的指令集,但后来经Apple改进,目前支援AltiVec技术以及G4的指令集,仅余下G5处理器的附加指令集并未提供支援,因此必须基于G5处理器的应用程序无法使用在Rosetta上执行。即便已是相当老旧的程序版本,绝大多数使用G4指令集以下的应用程序都可以无误地直接在Rosetta上正常运作,如于2003年推出的Internet Explorer for Mac 5.2.3。Rosetta是一个类似先前允许PowerPC Mac电脑在68k模拟器中执行旧程序的指令转译器。与Classic环境不同的是,Rosetta并不需要在启动程序前预先开启一个子系统即可马上工作。 AltiVec技术自Mac OS Panther起本身已被封装成一个向量程序库,该向量程序库在PowerPC平台上会调用AltiVec技术,在x86平台上则使用SSE指令集。  新版Xcode已支援同时为Intel及PowerPC平台的Mac电脑编译通用二进制代码。Cocoa应用程序如需制作通用二进制版本代码,只需要检查一下端序问题,并重新编译一次即可完成移植。Carbon应用程序移植时可能需要一些额外的调整,但其复杂程度远比从Mac OS 9过渡至Mac OS X时低。使用Metrowers CodeWarrior套件编写的应用程序则可能需要大幅修改,Apple与Metrowerks称使用PowerPlant的应用程序稍作修改即可完成移植。  采用x86架构的Mac电脑将不再支援Classic环境。配备了Intel处理器的Mac将无法再直接执行Mac OS Classic环境的软件。然而,配备了Intel处理器的Mac电脑,可以选择安装Mini vMac、Basilisk II及SheepShaver来虚拟一个Mac OS Classic环境的操作系统,以此来执行某些旧式程序。

Summary: 苹果向英特尔平台迁移指的是2006年Mac电脑从PowerPC平台迁移至Intel x86平台的事件。平台迁移计划最初在2005年的WWDC大会上由Apple执行长史提夫·乔布斯(Steve Jobs)正式公布,Apple称日后将停止在Mac电脑中继续使用由摩托罗拉(Motorola)及IBM提供的PowerPC微处理器,改用Apple大多数竞争对手选用Intel提供的x86处理器。

Transition d'Apple vers Intel: "Cet article traite de la transition des processeurs PowerPC vers une architecture Intel. Lisez Architecture Apple-Intel pour un article sur la nouvelle plateforme." La transition d’Apple vers Intel est un changement de l'architecture de la plateforme Macintosh pour l'utilisation de microprocesseurs Intel à la place des PowerPC d'IBM utilisés jusque-là.