本周早些时候,在蒂姆·库克所说的“历史性的一天”,苹果公司宣布将Mac电脑从英特尔处理器转移到自己的硅芯片上。第一款搭载苹果芯片的Mac将于2020年底问世,但苹果预计整个过渡过程需要两年时间。
新的Mac将使用ARM64,这与最近的iOS设备使用的CPU架构相同(基于英特尔的Mac使用一种称为x86-64的架构)。这是一个令人兴奋的举动,因为这意味着他们将能够与为MacOS开发的应用程序一起运行iOS和iPadOS应用程序。但这也意味着,最初为英特尔架构开发的应用程序不能在苹果即将推出的硬件上本地运行。
这就是Rosetta2的用武之地:它是MacOS Big Sur内置的仿真器,将使ARM Mac能够运行旧的英特尔应用程序。“罗塞塔2”本质上是将为英特尔处理器编写的指令“翻译”成苹果芯片可以理解的命令。开发人员将不需要对他们的旧应用程序进行任何更改;它们只需工作即可。(最初的Rosetta是在2006年发布的,目的是促进苹果从PowerPC向英特尔的过渡。苹果还表示,就操作系统更新而言,它将“在未来几年”支持x86 Mac。该公司在2006年从PowerPC转向英特尔芯片,但在2009年放弃了对前者的支持;OS X Snow Leopard只支持英特尔。)。
作为用户,您不需要与Rosetta交互;它在幕后工作。软件开发学校App Brewery的创始人安吉拉·于(Angela Yu)表示:“Rosetta 2主要是为了将最终用户购买苹果硅片新Mac时对他们体验的影响降至最低。”如果Rosetta 2完成了它的工作,普通用户应该不会注意到它的存在。
不过,你可能会感觉到一个不同之处:速度。在原始的Rosetta下运行的程序通常比在Intel上本地运行的程序运行得慢,因为翻译人员需要时间来解释代码。早期的基准测试发现,流行的PowerPC应用程序,如Photoshop和Office,在Intel系统上的运行速度还不到其本机速度的一半。
我们将拭目以待,看看Rosetta2下的应用程序是否会受到类似的性能影响。但有几个理由值得乐观。首先,原始的Rosetta在执行指令时实时转换每条指令。Rosetta2可以在安装时正确转换应用程序,有效地在打开之前创建应用程序的ARM优化版本。(对于不能提前翻译的应用程序,例如浏览器、Java和Javascript进程,或者如果它在安装时遇到其他未翻译的新代码,它还可以动态翻译。)。有了Rosetta2的前置工作,我们可能会看到翻译后的应用程序有更好的性能。
演示看起来也很有希望。苹果使用动画软件Maya和1080p版的游戏“古墓丽影”展示了罗塞塔;这两款游戏在主旨演讲中看起来都很实用。
首先,罗塞塔2并不是一个长期的解决方案。苹果还没有说它会存在多久;与OS X Tiger一起发布的Rosetta在三个版本之后才在OS X Lion上停产。这是一个可以让苹果的过渡期变得更容易的工具,但苹果肯定打算让它的开发者尽早开始使用他们的x86应用程序的ARM原生端口。苹果自己的应用程序,包括Final Cut Pro和Logic,已经在ARM上本地运行。该公司已经发布了内置ARM处理器的开发人员过渡工具包,以帮助应用程序制造商更新和测试他们的软件-该公司在主旨中指出,微软已经在开发Office,Adobe正在开发Creative Cloud。苹果在WWDC主题演讲中展示了原生版本的Word、Excel、PowerPoint、Lightroom CC和Photoshop,以及自己的Final Cut Pro。
苹果鼓励开发者创建原生应用程序;Rosetta 2被设计为临时解决方案。
这就是说,苹果公司清楚地知道,并不是所有的开发者都会为第一次ARM发布准备好端口-而且在秋季购买第一款ARM系统的客户将希望立即使用他们最喜欢的程序。罗塞塔2还意味着开发者在第一代ARM Mac问世时不需要争先恐后地重新优化他们的产品。(将MacOS应用程序移植到Apple Silicon的过程超出了本指南的范围,但您可以在Apple开发者网站上找到详细说明。)。
“改变CPU的语言是一件大事,”Pocket Prep的联合创始人兼首席技术官肯·吉列(Ken Gillette)说。Pocket Prep是一家移动备考公司,已经为苹果的生态系统开发了100多个应用程序。他说:“如果在新电脑投入使用前,每一个应用程序都需要更新,这将是非常困难的。要在短时间内做出改变,需要付出很大的努力。“。
“(罗塞塔)将使终端用户无缝地购买新的Mac,”吉列说。“如果苹果不这样做,这个过程将痛苦得多,因为消费者每天使用的许多应用程序将从他们全新的机器中消失。”
另一件需要注意的事情是,引擎也不能支持所有内容。它与一些程序不兼容,包括虚拟机应用程序,你可能会使用这些程序在Mac上运行Windows或其他操作系统,或者在不影响系统其余部分的情况下测试新软件。(您也不能在ARM Mac电脑的Boot Camp模式下运行Windows。微软只授权PC制造商使用ARM版本的Windows 10。)。Rosetta2也不能翻译内核扩展,一些程序利用内核扩展来执行MacOS没有原生功能的任务(类似于Windows中的驱动程序)。
Rosetta 2应该会帮助苹果避免微软在自己的ARM过渡中看到的一些令人头疼的问题。
第三,即使Rosetta 2功能齐全,ARM Mac可能工作得多好仍是一个悬而未决的问题。在其主题演讲中,苹果强调了其新芯片的效率,声称它们将“为Mac提供业界领先的每瓦性能”。该公司还承诺提供更好的图形体验、机器学习能力和电池续航时间。但它回避了原始功率的问题-因此,尽管ARM Mac可能比它们的英特尔前身更有效率,但它们的功能也可能不那么强大。苹果也没有澄清它是否计划生产自己的新GPU,或者它的CPU是否会与第三方GPU接口。
在电池续航时间和LTE兼容性方面,我们在Surface Pro X等Windows PC上看到的ARM处理器的表现优于他们的英特尔竞争对手。但我们也遇到了一些ARM PC的性能问题,尽管这至少部分是因为微软用来在ARM上运行x86应用程序的仿真层只能运行32位Windows应用程序(而不是现代的64位x86应用程序),而且许多32位程序明显比64位程序慢。
如果一切都像苹果承诺的那样运行,罗塞塔2意味着希望MacOS不会出现这样的混乱局面。