一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事。( 二 )


一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事。


比如要建造一座别墅,“小复”会指手画脚地对工匠说:“你,在这打个壁橱,在那里做个玻璃门,再在那修一个餐台……”
而 “小精”画风完全不同,他是一块砖一块砖地告诉工匠该砌在哪里,怎么砌,最后也能把别墅建好 。
两种方式各有优缺点:“小复”的建筑团队处理速度快,能力更强,但是组织比较臃肿复杂,很多指令平时很少用到,比如盖十个房子才能用到一次 “砌围墙”这样的指令 。
而 “小精”的团队更精简高效,容易组织,缺点是处理能力没有 “小复”团队强,但这个可以通过调用更多的工匠来弥补 。
而现在苹果的问题是,“小复”这个团队原来的 “工匠 “被调走了,转岗过来的是 “小精”手里的 “工匠”,而 “小复”操着一口复杂的 “行话”,新来的工匠听不懂 。
一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事。


怎么办呢?这就得在 “小复”和 “工匠”之间安排一个翻译,让工匠们能听懂 “小复”说的话 。
这个 “翻译”的角色叫 “小 R”,也就是苹果的 “Rosetta 2” 。
这个 “小 R”怎么翻译呢?
当 “小复”对工匠们说 “在这砌个围墙”时,工匠们不知道他说了些啥 。“小 R”就帮工匠们把这句话分析、拆解,然后还是像 “小精”那样手把手告诉工匠每一块砖应该砌在什么地方 。
一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事。


这就是 Rosetta 2 的主要任务 。有了它的帮助,以前能在 Intel 芯片 Mac 上面用的 App 在搭载 M1 芯片的 Mac 上面也就都能用了 。
以IT之家手上搭载 M1 芯片的 13 英寸 MacBook Pro 为例,平时在使用的时候,基本上不会和 Rosetta 2 产生交互 。
Rosetta 2 是内置在 MacOS 11 Big Sur 系统里的,在幕后工作,只有当你第一次下载一款 x86 应用,第一次打开时,才会提示你安装 Rosetta 2 。
一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事。


换句话说,Rosetta 2 的存在完全不会对你过去一直以来使用 Mac 的习惯造成影响,它几乎是无感的,悄悄做着翻译工作 。
想要知道你使用的 App 到底是原生在 Mac 上运行的,还是经过 Rosetta 2“翻译”之后的,只要在 “应用程序”文件夹中找到这个应用的图标,右键打开菜单栏里的 “显示简介”,如果应用种类后面有一个 “Intel”,说明这个应用就是 x86 版本经过 Rosetta 2 翻译的 。
一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事。


以 x86 平台的IT之家为例,在 M1 芯片的 MacBook Pro 运行非常流畅,看新闻、发评论等各项功能也都正常,体验和在原来 Intel 芯片的 MacBook 上几乎没有差别 。
像小编工作时用的 x86 版《钉钉》,也可以正常流畅地运行,运行速度一点也不必原来慢 。
还有 Adobe 的全家桶软件,目前在经过更新后,也可以在 M1 芯片的 Mac 上正常流畅运行 。
讲到这里,你可能会好奇,毕竟中间隔了 Rosetta 2 这个翻译,x86 应用是如何能做到一边被 “翻译”,一边保持和原来差不多的运行速度的?
这主要是因为 Rosetta 2 很聪明,他并不是等到应用开启使用时,才一条指令一条指令地去翻译,而是在应用安装时就会对应用进行翻译,在用户使用应用前就给到一个针对 ARM 平台优化的版本 。对于那些无法提前翻译的指令,才会在使用时候进行即时的翻译 。
一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事。

推荐阅读