为什么你的MacsOS EDR解决计划不应该在Rosetta 2下运行

去年,苹果公司宣布将为Macs设备构建自己的CPU,而不是依靠英特尔作为其处理器,这一消息轰动一时。这些新设备于2020年末开始发售,并通过多个代号与Intel Macs进行了区别。

苹果公司为推销他们的新设备创造的第一个术语是“Apple silicon”,意思是指基于ARM公司设计的芯片的CPU芯片。苹果授权基础设计,并自行设计。很明显,他们不想把自己的芯片标榜为是ARM芯片,而更愿意用一个独特的品牌名称“Apple silicon”来体现其品牌价值。

当然,苹果公司已经在iOS系统中使用他们自己定制的ARM芯片很多年了,并用“A”和数字说明符来进行编号,比如A10、A11、A12等等(当前版本的iOS系统搭载的是A14芯片)。大概是为了保持这种编号的规定,第一个Macs ARM芯片被编码为“M1”。随着苹果不断迭代设计,我们希望看到M2和M3等产品。因此,除了被称为“Apple Silicon Macs,苹果的第一代非英特尔设备也被称为“M1 Mac”。

这就有必要是我们研究二进制文件——可执行文件格式,它是苹果和第三方软件的基础,可以在这些新的M1芯片上运行。当然,这些必须有一个与CPU架构兼容的格式。在英特尔设备上,我们有x86_64 Macsh-O可执行文件;对于M1/Apple silicon Macs,本机二进制格式是arm64e Macsh-O。

因此,我们有一个基于ARM的M1/Apple硅处理器架构和运行在上面的arm64二进制文件。这似乎很简单,但有一个问题:过去15年或更长时间里为英特尔Macs电脑编写的所有软件呢?不要忽视这样一个事实:至少在未来的两年内,苹果仍在销售和生产带有英特尔芯片的Macs电脑。同时拥有两个完全不兼容的软件目录的两个硬件产品线是站不住脚的。苹果需要找到一种方法,让在英特尔设备上构建的软件能够在新的M1设备上运行。

输入Rosetta 2和通用文件格式。

英特尔、ARM和对翻译软件的需求

Rosetta这个名字源于著名的“Rosetta Stone”,正是这块石碑让我们得以将埃及象形文字翻译成现代语言。苹果原始的Rosetta软件实际上帮助公司在2000年代中期将早期的架构PowerPC转化为英特尔。

由于 M1 芯片底层架构和过去不同,由此带来的应用生态兼容性问题是首先需要解决的,为此苹果也开启了为期两年的 Mac 过渡计划。具体来说,苹果借助的是 macOS 11 Big Sur 系统以及其内置的 Universal 2、Rosetta 2 和 Virtualizaion 三种技术来解决问题。不过话虽如此,可能还是会有小伙伴会比较犹豫,这些措施真的可以解决 M1 芯片 Mac 的软件兼容性问题吗?特别是原来在 x86 架构上的应用,开发者还没有及时做适配,能在 Mac 上很好地运行吗?
 

【声明】:芜湖站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章