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

苹果在上个月推出了搭载 M1 自研芯片的 MacBook Air、Mac mini 以及 13 英寸 MacBook Pro 。 其中 , 苹果 M1 芯片与此前 Mac 采用的芯片最大不同是基于 ARM 架构 , 而不是过去英特尔芯片的 x86 架构 。

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图1/11

由于 M1 芯片底层架构和过去不同 , 由此带来的应用生态兼容性问题是首先需要解决的 , 为此苹果也开启了为期两年的 Mac 过渡计划 。 具体来说 , 苹果借助的是 macOS 11 Big Sur 系统以及其内置的 Universal 2、Rosetta 2 和 Virtualizaion 三种技术来解决问题 。

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图2/11

不过话虽如此 , 可能还是会有小伙伴会比较犹豫 , 这些措施真的可以解决 M1 芯片 Mac 的软件兼容性问题吗?特别是原来在 x86 架构上的应用 , 开发者还没有及时做适配 , 能在 Mac 上很好地运行吗?
对于这个问题 , 其实苹果已经给出了专门的解决方案 , 就是 Rosetta 2 。 可是谈到 Rosetta 2 , 很多小伙伴并不是很了解 , 它需要怎么用 , 又是如何让 M1 芯片的 Mac 运行 x86 平台应用的 , 这里IT之家不妨为大家解释一下 。

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图3/11

说到 Rosetta 2 的运行原理 , 深入到技术层面大家可能很难理解 , 因此小编主要介绍一些基础的底层逻辑 。
首先要从 x86 架构和 ARM 架构的不同说起 。 我们所说的 x86 架构和 ARM 架构 , 都是指处理芯片的指令集 。
我们知道 , 芯片是负责运算的 , 但是它需要在什么时候做什么运算 , 芯片不能自己决定 , 得听系统的指令 , 描述 CPU 能做什么运算的一系列指令集合 , 就是指令集 。
打个比方 , 我们把智能设备完成一次功能操作比作建造一个房子的项目 , 这个过程中 , CPU 相当于工匠 , 他负责盖房子 , 但是要盖成什么样的房子 , 他不知道 , 得听项目经理的 。
项目经理相当于系统 , 他告诉工匠需要把房子盖成什么样 , 传达的指令就相当于指令集 。

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图4/11

说到指令集 , 主要有两种:x86 和 ARM 。 x86 是英特尔编写的 , 属于复杂指令集 (CISC)的代表 , 而 ARM 是英国 Acorn 有限公司设计的 , 是精简指令集(RISC)的代表 。
复杂指令集和精简指令集的差别在哪里?我们还是用上面的例子来说明 。
项目经理要告诉工匠需要盖什么样的房子 , 他们怎么传达指令呢?为了更高效地和工匠沟通 , 他们彼此间通常会约定一些只有他们听得懂 “行话”组成 “指令库” 。
复杂指令集这边的项目经理 , 我们叫他 “小复” , 他和工匠沟通的 “行话” , 包括具体每块砖砌在哪里这样简单直接的指令 , 也包含 “砌一个围墙”、“搭一个柱子”这样复杂的指令 。

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图5/11

而精简指令集这边的项目经理 , 我们叫他 “小精” , 他就不一样了 , 可能他们这边的工匠比较 “笨” , 听不懂复杂的话 , 所以它的指令都是手把手告诉工匠 “这块砖砌在哪里” 。

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图6/11

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

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图7/11

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

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图8/11

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

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图9/11

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

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图10/11

基于这样的机制 , Rosetta 2 能够帮助 x86 架构的应用在 M1 芯片的 Mac 上保持流畅快速的响应 , 从而获得很好的使用体验 。
当然 , Rosetta 2 做翻译的方案毕竟只是权宜之计 , 不会一直存在 , 只是在开发者们将自己的应用全面转到 M1 芯片原生状态之前扮演过渡的作用 。
苹果预计这个过渡期大约是两年 。 其实目前已经有不少开发者针对 M1 芯片平台适配了 App , 少了 “翻译”这个中间层 , 体验自然会更上一层楼 。
根据IT之家的了解 , 目前《有道词典》 , 《剪映》 , 《QQ 邮箱》 , 《WPS》等都有了针对 M1 芯片的原生应用 。 不久前(12 月 16 日) , 微软 Microsoft 365 App 也推出了可在 M1 芯片的 Mac 上原生运行版本 , 这说明微软核心 Office 应用 , 包括 Office、Word、Excel、PowerPoint 和 OneNote 等都能够在 M1 Mac 上正常使用 , 无需 “翻译” 。

IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事
文章图片
图11/11

当然 , 由于 M1 芯片和 iPhone 与 iPad 的 A 系列芯片都是 ARM 架构 , 因此 iOS 和 iPaOS 上的很多应用也可以在搭载 M1 芯片的 Mac 上运行 , 并且在最新版的 macOS 上 , 现为 iPhone 和 iPad 平台的应用还可以通过新的窗口选项在横向和纵向方向之间切换 , 或者是全屏显示 。
从这个角度来看 , Mac 向 M1 芯片平台的这次大迁移可谓意义重大 , 一方面 , Mac 平台现有的应用资源可以留存 , 另一方面 , 还接入了 iPhone、iPad 平台海量丰富的应用 , 要知道 , App Store 是 iPhone 的护城河 , 它背后是全球最大最稳固的应用生态系统 , 这将无限丰富 Mac 的应用生态 , 获得其他 PC 品牌无法比拟的应用资源 。
【IT之家|一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事】更重要的是 , 当迁移顺利完成 , 苹果也将完成软硬件生态的统一 , 由此带来的联动效应更不可想象 。 总之 , 我们不妨期待那一天的到来 。

    推荐阅读