大家好,我是七七,欢迎来到我们的频道,一起见证ARM架构的崛起。今天,我们聊一下Rosetta 2(罗塞塔)。 不久前的苹果发布会,除了M2以外,还有一大看点,苹果macOS 13增加了一个非常酷炫的功能,把翻译工具Rosetta 2带到了ARM Linux虚拟机上。Rosetta 2是如何工作的?这个Rosetta 2对于苹果而言,意义在哪里?欢迎观看本期视频。
苹果将 Rosetta 2 引入 ARM Linux 虚拟机
1、Rosetta 2:解决Mac架构迁移背后的软件兼容问题 在M1发布之前,苹果的Msc电脑使用X86架构,应用软件也都是基于X86开发的。M1发布后,Mac芯片从X86迁移到了ARM架构。但是,遇到一个很大的问题,就是软件兼容问题。 原来在x86架构上的应用,开发者还没有及时做适配,可能没办法运行??Rosetta 2的推出,就是为了解决这一问题。Rosetta 2深入到技术层面很难解释,需要从指令集架构说起。这里,我们以施工队为例,尽可能通俗解释。 我们把智能设备完成一次功能操作比作建造一个房子的项目,这个过程中,CPU相当于工匠,他负责盖房子,但是要盖成什么样子,得听项目经理的。项目经理相当于系统,他告诉工匠需要把房子盖成什么样,传达的指令就相当于指令集。
项目经理要告诉工匠需要盖什么样的房子,他们怎么传达指令呢?为了更高效地和工匠沟通,他们彼此间通常会约定一些只有他们听得懂 “行话”组成 “指令库”。 复杂指令集这边的项目经理,叫 “小复”,他和工匠沟通的 “行话”,包括具体每块砖砌在哪里这样简单直接的指令,也包含 “砌一个围墙”、“搭一个柱子”这样的复杂指令。
而精简指令集这边的项目经理,叫 “小简”,他就不一样了,他这边的工匠比较 “笨”,听不懂复杂的话,所以它下达的指令都比较简单,像“这块砖砌在哪里”、“这块砖砌在这里”……
小复团队,能力强,干活快,但是体系比较臃肿复杂; 小简团队,虽然接收的都是很简单的指令,处理复杂工作能力差,但是工人一块砖一块砖地干,也能把房子盖好。 苹果从X86切换到ARM架构以后,现在苹果的问题是,“小复”团队原来的 “工匠 “被调走了,转岗过来的是“小简”的“工匠”。而 “小复”操着一口复杂的“行话”,新来的工匠听不懂。
怎么办呢?对的,安排一个翻译,让工匠们能听懂 “小复”说的话。这个 “翻译”的角色叫“小 R”,就是苹果的“Rosetta 2”。 这个“小 R”怎么翻译呢?
当“小复”对工匠们说 “在这砌个围墙”时,工匠们不知道他说了些什么。“小 R”就帮工匠们把这句话分析、拆解,然后还是像“小简”那样,手把手告诉工匠每一块砖应该砌在什么地方。 有了它的帮助,用X86架构开发的APP,在搭载 M1芯片的Mac上,现在也能用了。 Rosetta 2是内置在mac OS系统里的,在幕后工作。用户第一次下载、打开x86应用时,系统会提示你安装 Rosetta 2。
安装后,它适用于任何其他需要它的 App,以后不用二次下载。换句话说,对于用户而言,Rosetta 2 几乎是无感的,悄悄做着翻译工作。 2、Rosetta 2:苹果从X86彻底转向ARM架构中的一环 其实,苹果转换架构不是第一次了。 1984年第一代麦金塔电脑采用的是摩托罗拉的68K处理器。在1994年,苹果将处理器更换为RISC架构的PowerPC。2005 年,苹果从PowerPC切换到了英特尔的x86芯片。当年,为了确保架构迁移顺利,苹果推出了Rosetta,如同一个内置虚拟机,可以让尚未适配新架构的软件能运行在新的机器上。 在上一次的架构迁移中,Rosetta为苹果立下了汗马功劳。Rosetta 2让采用M1芯片的Mac能兼容以前的X86软件,是苹果从X86彻底转向ARM架构中的关键一环。
6月7日,在最新更新的开发者文档中,苹果宣布更新到macOS 13及更高版本时,用户将可以通过Rosetta在ARM Linux虚拟机中运行Linux x86_64应用。 从2020年,Rosetta 2问世至今。两年时间,苹果已在 Intel(x86_64)平台的文件转译工作上取得了长足进步。目前,尚不清楚这一工具的效果如何。如果大多数软件可以正常翻译,那么苹果M1/M2 Mac电脑使用Linux将是一个巨大的体验改善。 谢谢大家,这期内容就先介绍到这里。 我们下期再见!
参考资料: 1、IT之家,一文看懂苹果 Rosetta 2 技术原理:这个 “翻译”有点本事 2、WHYLAB,由PowerPC到Intel,苹果是这么做的?
|