快捷登录,享 免费下载
首页 > 教程资讯 > 教程详情

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

教程文章 完美下载小客服 2021-03-09
文章分享
软件首页

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

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

  不过话虽如此,可能还是会有小伙伴会比较犹豫,这些措施真的可以解决 M1 芯片 Mac 的软件兼容性问题吗?特别是原来在 x86 架构上的应用,开发者还没有及时做适配,能在 Mac 上很好地运行吗?

  对于这个问题,其实苹果已经给出了专门的解决方案,就是 Rosetta 2。可是谈到 Rosetta 2,很多小伙伴并不是很了解,它需要怎么用,又是如何让 M1 芯片的 Mac 运行 x86 平台应用的,这里IT之家不妨为大家解释一下。

  说到 Rosetta 2 的运行原理,深入到技术层面大家可能很难理解,因此小编主要介绍一些基础的底层逻辑。

  首先要从 x86 架构和 ARM 架构的不同说起。我们所说的 x86 架构和 ARM 架构,都是指处理芯片的指令集。

  我们知道,芯片是负责运算的,但是它需要在什么时候做什么运算,芯片不能自己决定,得听系统的指令,描述 CPU 能做什么运算的一系列指令集合,就是指令集。

  打个比方,我们把智能设备完成一次功能操作比作建造一个房子的项目,这个过程中,CPU 相当于工匠,他负责盖房子,但是要盖成什么样的房子,他不知道,得听项目经理的。

  项目经理相当于系统,他告诉工匠需要把房子盖成什么样,传达的指令就相当于指令集。

  说到指令集,主要有两种:x86 和 ARM。x86 是英特尔编写的,属于复杂指令集 (CISC)的代表,而 ARM 是英国 Acorn 有限公司设计的,是精简指令集(RISC)的代表。

  复杂指令集和精简指令集的差别在哪里?我们还是用上面的例子来说明。

  项目经理要告诉工匠需要盖什么样的房子,他们怎么传达指令呢?为了更高效地和工匠沟通,他们彼此间通常会约定一些只有他们听得懂 “行话”组成 “指令库”。

  复杂指令集这边的项目经理,我们叫他 “小复”,他和工匠沟通的 “行话”,包括具体每块砖砌在哪里这样简单直接的指令,也包含 “砌一个围墙”、“搭一个柱子”这样复杂的指令。

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

  比如要建造一座别墅,“小复”会指手画脚地对工匠说:“你,在这打个壁橱,在那里做个玻璃门,再在那修一个餐台……”

  而 “小精”画风完全不同,他是一块砖一块砖地告诉工匠该砌在哪里,怎么砌,最后也能把别墅建好。

  两种方式各有优缺点:“小复”的建筑团队处理速度快,能力更强,但是组织比较臃肿复杂,很多指令平时很少用到,比如盖十个房子才能用到一次 “砌围墙”这样的指令。

  而 “小精”的团队更精简高效,容易组织,缺点是处理能力没有 “小复”团队强,但这个可以通过调用更多的工匠来弥补。

  而现在苹果的问题是,“小复”这个团队原来的 “工匠 “被调走了,转岗过来的是 “小精”手里的 “工匠”,而 “小复”操着一口复杂的 “行话”,新来的工匠听不懂。

  怎么办呢?这就得在 “小复”和 “工匠”之间安排一个翻译,让工匠们能听懂 “小复”说的话。

  这个 “翻译”的角色叫 “小 R”,也就是苹果的 “Rosetta 2”。

  这个 “小 R”怎么翻译呢?

  当 “小复”对工匠们说 “在这砌个围墙”时,工匠们不知道他说了些啥。“小 R”就帮工匠们把这句话分析、拆解,然后还是像 “小精”那样手把手告诉工匠每一块砖应该砌在什么地方。

  这就是 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 翻译的。

  以 x86 平台的IT之家为例,在 M1 芯片的 MacBook Pro 运行非常流畅,看新闻、发评论等各项功能也都正常,体验和在原来 Intel 芯片的 MacBook 上几乎没有差别。

  像小编工作时用的 x86 版《钉钉》,也可以正常流畅地运行,运行速度一点也不必原来慢。

  还有 Adobe 的全家桶软件,目前在经过更新后,也可以在 M1 芯片的 Mac 上正常流畅运行。

  讲到这里,你可能会好奇,毕竟中间隔了 Rosetta 2 这个翻译,x86 应用是如何能做到一边被 “翻译”,一边保持和原来差不多的运行速度的?

  这主要是因为 Rosetta 2 很聪明,他并不是等到应用开启使用时,才一条指令一条指令地去翻译,而是在应用安装时就会对应用进行翻译,在用户使用应用前就给到一个针对 ARM 平台优化的版本。对于那些无法提前翻译的指令,才会在使用时候进行即时的翻译。

  基于这样的机制,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 上正常使用,无需 “翻译”。

  当然,由于 M1 芯片和 iPhone 与 iPad 的 A 系列芯片都是 ARM 架构,因此 iOS 和 iPaOS 上的很多应用也可以在搭载 M1 芯片的 Mac 上运行,并且在最新版的 MacOS 上,现为 iPhone 和 iPad 平台的应用还可以通过新的窗口选项在横向和纵向方向之间切换,或者是全屏显示。

  从这个角度来看,Mac 向 M1 芯片平台的这次大迁移可谓意义重大,一方面,Mac 平台现有的应用资源可以留存,另一方面,还接入了 iPhone、iPad 平台海量丰富的应用,要知道,App Store 是 iPhone 的护城河,它背后是全球最大最稳固的应用生态系统,这将无限丰富 Mac 的应用生态,获得其他 PC 品牌无法比拟的应用资源。

  更重要的是,当迁移顺利完成,苹果也将完成软硬件生态的统一,由此带来的联动效应更不可想象。总之,我们不妨期待那一天的到来。

SE-Explorer

SE-Explorer

软件大小:2.42 MB

高速下载

相关问答

更多
  • 手机中的se代表什么

    手机型号后面加SE是表示特62616964757a686964616fe78988e69d8331333433636230别版,是special edition(特殊版本)的缩写,例道如小米8SE,小米9SE。手机特别版本在价格与配置上都比普通版的要高。外观上也存在差别,特别版外观上更华丽和美观。S代表“加强”,是strengthen的缩写,通常是上一款手机型号的升级版本,主要是从软件上进行升级,而外观上几乎无差别,主要是商务手机系列,例如iPhone4和iPhone4S,iPhone6和iPhone6S。扩展资料:其他手机型号后面的字母都代表意思:1、C代表简约,是concise的缩写,意味回着简约、青春,通常是减少相应配置的廉价版,例如iPhone5C。2、pro是professional的意思,也就是称之为”专业版/顶配版“,专业版拥有拓展的隐含意义,在pro系列中会有很明显的功能增强,带有部分的新科技,如华为P20pro,P30pro。3、Plus通常表示屏幕更大,性能更强的手机,是本系列的升级,不过最主要的还是在屏幕和价格上,所以答Plus一般都是被称为高配版的手机,例如iPhone 7 Plus、iPhone 8 Plus。4、T区别于其它版本的手机,带T的不是全网通,是移动版。

  • SE是什么职业的简称

    SE是系统工程师System Engineer的简称。系统工程师是62616964757a686964616fe4b893e5b19e31333366306462指具备较高专业技术水平,能够分析商业需求,并使用各种系统平台和服务器软件来设计并实现商务解决方案的基础架构的技术人员。他是个“纯粹”的技术职业,而且需要脚踏实地地工作,能够亲自动手进行软件、硬件操作,因而受到许多求职者的青睐。系统工程师确保服务器的稳定运行和调整结构满足应用服务的需要。做好安全防范,配置防火墙。定期做好备份工作,以便在出现问题可以及时修复。有一定的监控程序,对硬件、服务、流量做监控。以便出现问题时能第一时间知道并解决。再就是服务器改动前要做好备份,及改动方案。了解不同应用的硬件及系统需求等。职业要求1. 了解多种安全攻防技术;2. 了解主流unix/linux、windows平台的设计、实施工作,了解主流数据库管理、网络、存储技术及相关平台的实施工作、能用SHELL编写相关脚本、了解SQL注入、跨站脚本攻击;3. 熟悉Mysql数据库、oracle数据库、sqlserver、db2等主流数据库;4. 具备良好的沟通能力和团队协作精神及较好的文档能力;5. 积极进取,工作热情高,能承受工作压力,有很强的自学能力。参考资料:百度百科-系统工程师

  • JavaSE是什么

    Java se是由Sun Microsystems公司于1995年5月推出的Java程序设计62616964757a686964616fe4b893e5b19e31333366306532语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算,从此Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。Java语言恐怕是稳居网路应用程序语言的首选了,这都要归功于它高度的安全性以及跨平台的特性,几乎在目前所有的电脑平台上您都可以见得到Java的芳踪。Java se用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序,Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。扩展资料:Java se用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序,Java SE包括用于开发Java Web服务的类库,同时,Java SE为Java EE提供了基础。过去很可能会有不少人抱怨Java虽然有着相当不错的跨平台以及安全防护等特性,但是它的执行速度远远不及C++等各种传统惯用的程序语言。不过这次SunMicrosystem可是有备而来的,不仅在执行速度上有大幅度的改革,而且在内容上也有做了一些修改以及增强。参考资料:JAVA SE-百度百科

  • iPhone SE中的SE是什么意思?

    SE的意思来大概应该是“specialedition”(特别自版)的意思。iPhone SE是2016年美国苹果公司推出的一款新的4英寸iPhone智能手机,可以说是iPhone 5s的升级版本,使用铝合金机身,外观几乎与iPhone5s相同,采用A9处理器和M9协处理器。其图形性能相当于5s三倍,相对5s更省电,后置1200万像素摄像头,屏幕补光,全景支持1200万像素,支持LivePhoto和Apple Pay。iPhoneSE支持4K视频录制,LTE速度比5s快50%,wifi速度快了5s三倍。