Rosetta 2是Apple ARM过渡的关键


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

    推荐阅读