一文看懂蘋(píng)果 Rosetta 2 技術(shù)原理:這個(gè) “翻譯”有點(diǎn)本事

2020/12/25 17:25:35 來(lái)源:IT之家 作者:汐元 責(zé)編:汐元

蘋(píng)果在上個(gè)月推出了搭載 M1 自研芯片的 MacBook Air、Mac mini 以及 13 英寸 MacBook Pro。其中,蘋(píng)果 M1 芯片與此前 Mac 采用的芯片最大不同是基于 ARM 架構(gòu),而不是過(guò)去英特爾芯片的 x86 架構(gòu)。

由于 M1 芯片底層架構(gòu)和過(guò)去不同,由此帶來(lái)的應(yīng)用生態(tài)兼容性問(wèn)題是首先需要解決的,為此蘋(píng)果也開(kāi)啟了為期兩年的 Mac 過(guò)渡計(jì)劃。具體來(lái)說(shuō),蘋(píng)果借助的是 macOS 11 Big Sur 系統(tǒng)以及其內(nèi)置的 Universal 2、Rosetta 2 和 Virtualizaion 三種技術(shù)來(lái)解決問(wèn)題。

不過(guò)話(huà)雖如此,可能還是會(huì)有小伙伴會(huì)比較猶豫,這些措施真的可以解決 M1 芯片 Mac 的軟件兼容性問(wèn)題嗎?特別是原來(lái)在 x86 架構(gòu)上的應(yīng)用,開(kāi)發(fā)者還沒(méi)有及時(shí)做適配,能在 Mac 上很好地運(yùn)行嗎?

對(duì)于這個(gè)問(wèn)題,其實(shí)蘋(píng)果已經(jīng)給出了專(zhuān)門(mén)的解決方案,就是 Rosetta 2??墒钦劦?Rosetta 2,很多小伙伴并不是很了解,它需要怎么用,又是如何讓 M1 芯片的 Mac 運(yùn)行 x86 平臺(tái)應(yīng)用的,這里IT之家不妨為大家解釋一下。

說(shuō)到 Rosetta 2 的運(yùn)行原理,深入到技術(shù)層面大家可能很難理解,因此小編主要介紹一些基礎(chǔ)的底層邏輯。

首先要從 x86 架構(gòu)和 ARM 架構(gòu)的不同說(shuō)起。我們所說(shuō)的 x86 架構(gòu)和 ARM 架構(gòu),都是指處理芯片的指令集。

我們知道,芯片是負(fù)責(zé)運(yùn)算的,但是它需要在什么時(shí)候做什么運(yùn)算,芯片不能自己決定,得聽(tīng)系統(tǒng)的指令,描述 CPU 能做什么運(yùn)算的一系列指令集合,就是指令集。

打個(gè)比方,我們把智能設(shè)備完成一次功能操作比作建造一個(gè)房子的項(xiàng)目,這個(gè)過(guò)程中,CPU 相當(dāng)于工匠,他負(fù)責(zé)蓋房子,但是要蓋成什么樣的房子,他不知道,得聽(tīng)項(xiàng)目經(jīng)理的。

項(xiàng)目經(jīng)理相當(dāng)于系統(tǒng),他告訴工匠需要把房子蓋成什么樣,傳達(dá)的指令就相當(dāng)于指令集。

說(shuō)到指令集,主要有兩種:x86 和 ARM。x86 是英特爾編寫(xiě)的,屬于復(fù)雜指令集 (CISC)的代表,而 ARM 是英國(guó) Acorn 有限公司設(shè)計(jì)的,是精簡(jiǎn)指令集(RISC)的代表。

復(fù)雜指令集和精簡(jiǎn)指令集的差別在哪里?我們還是用上面的例子來(lái)說(shuō)明。

項(xiàng)目經(jīng)理要告訴工匠需要蓋什么樣的房子,他們?cè)趺磦鬟_(dá)指令呢?為了更高效地和工匠溝通,他們彼此間通常會(huì)約定一些只有他們聽(tīng)得懂 “行話(huà)”組成 “指令庫(kù)”。

復(fù)雜指令集這邊的項(xiàng)目經(jīng)理,我們叫他 “小復(fù)”,他和工匠溝通的 “行話(huà)”,包括具體每塊磚砌在哪里這樣簡(jiǎn)單直接的指令,也包含 “砌一個(gè)圍墻”、“搭一個(gè)柱子”這樣復(fù)雜的指令。

而精簡(jiǎn)指令集這邊的項(xiàng)目經(jīng)理,我們叫他 “小精”,他就不一樣了,可能他們這邊的工匠比較 “笨”,聽(tīng)不懂復(fù)雜的話(huà),所以它的指令都是手把手告訴工匠 “這塊磚砌在哪里”。

比如要建造一座別墅,“小復(fù)”會(huì)指手畫(huà)腳地對(duì)工匠說(shuō):“你,在這打個(gè)壁櫥,在那里做個(gè)玻璃門(mén),再在那修一個(gè)餐臺(tái)……”

而 “小精”畫(huà)風(fēng)完全不同,他是一塊磚一塊磚地告訴工匠該砌在哪里,怎么砌,最后也能把別墅建好。

兩種方式各有優(yōu)缺點(diǎn):“小復(fù)”的建筑團(tuán)隊(duì)處理速度快,能力更強(qiáng),但是組織比較臃腫復(fù)雜,很多指令平時(shí)很少用到,比如蓋十個(gè)房子才能用到一次 “砌圍墻”這樣的指令。

而 “小精”的團(tuán)隊(duì)更精簡(jiǎn)高效,容易組織,缺點(diǎn)是處理能力沒(méi)有 “小復(fù)”團(tuán)隊(duì)強(qiáng),但這個(gè)可以通過(guò)調(diào)用更多的工匠來(lái)彌補(bǔ)。

而現(xiàn)在蘋(píng)果的問(wèn)題是,“小復(fù)”這個(gè)團(tuán)隊(duì)原來(lái)的 “工匠 “被調(diào)走了,轉(zhuǎn)崗過(guò)來(lái)的是 “小精”手里的 “工匠”,而 “小復(fù)”操著一口復(fù)雜的 “行話(huà)”,新來(lái)的工匠聽(tīng)不懂。

怎么辦呢?這就得在 “小復(fù)”和 “工匠”之間安排一個(gè)翻譯,讓工匠們能聽(tīng)懂 “小復(fù)”說(shuō)的話(huà)。

這個(gè) “翻譯”的角色叫 “小 R”,也就是蘋(píng)果的 “Rosetta 2”。

這個(gè) “小 R”怎么翻譯呢?

當(dāng) “小復(fù)”對(duì)工匠們說(shuō) “在這砌個(gè)圍墻”時(shí),工匠們不知道他說(shuō)了些啥?!靶?R”就幫工匠們把這句話(huà)分析、拆解,然后還是像 “小精”那樣手把手告訴工匠每一塊磚應(yīng)該砌在什么地方。

這就是 Rosetta 2 的主要任務(wù)。有了它的幫助,以前能在 Intel 芯片 Mac 上面用的 App 在搭載 M1 芯片的 Mac 上面也就都能用了。

以IT之家手上搭載 M1 芯片的 13 英寸 MacBook Pro 為例,平時(shí)在使用的時(shí)候,基本上不會(huì)和 Rosetta 2 產(chǎn)生交互。

Rosetta 2 是內(nèi)置在 macOS 11 Big Sur 系統(tǒng)里的,在幕后工作,只有當(dāng)你第一次下載一款 x86 應(yīng)用,第一次打開(kāi)時(shí),才會(huì)提示你安裝 Rosetta 2。

換句話(huà)說(shuō),Rosetta 2 的存在完全不會(huì)對(duì)你過(guò)去一直以來(lái)使用 Mac 的習(xí)慣造成影響,它幾乎是無(wú)感的,悄悄做著翻譯工作。

想要知道你使用的 App 到底是原生在 Mac 上運(yùn)行的,還是經(jīng)過(guò) Rosetta 2“翻譯”之后的,只要在 “應(yīng)用程序”文件夾中找到這個(gè)應(yīng)用的圖標(biāo),右鍵打開(kāi)菜單欄里的 “顯示簡(jiǎn)介”,如果應(yīng)用種類(lèi)后面有一個(gè) “Intel”,說(shuō)明這個(gè)應(yīng)用就是 x86 版本經(jīng)過(guò) Rosetta 2 翻譯的。

以 x86 平臺(tái)的IT之家為例,在 M1 芯片的 MacBook Pro 運(yùn)行非常流暢,看新聞、發(fā)評(píng)論等各項(xiàng)功能也都正常,體驗(yàn)和在原來(lái) Intel 芯片的 MacBook 上幾乎沒(méi)有差別。

像小編工作時(shí)用的 x86 版《釘釘》,也可以正常流暢地運(yùn)行,運(yùn)行速度一點(diǎn)也不比原來(lái)慢。

還有 Adobe 的全家桶軟件,目前在經(jīng)過(guò)更新后,也可以在 M1 芯片的 Mac 上正常流暢運(yùn)行。

講到這里,你可能會(huì)好奇,畢竟中間隔了 Rosetta 2 這個(gè)翻譯,x86 應(yīng)用是如何能做到一邊被 “翻譯”,一邊保持和原來(lái)差不多的運(yùn)行速度的?

這主要是因?yàn)?Rosetta 2 很聰明,他并不是等到應(yīng)用開(kāi)啟使用時(shí),才一條指令一條指令地去翻譯,而是在應(yīng)用安裝時(shí)就會(huì)對(duì)應(yīng)用進(jìn)行翻譯,在用戶(hù)使用應(yīng)用前就給到一個(gè)針對(duì) ARM 平臺(tái)優(yōu)化的版本。對(duì)于那些無(wú)法提前翻譯的指令,才會(huì)在使用時(shí)候進(jìn)行即時(shí)的翻譯。

基于這樣的機(jī)制,Rosetta 2 能夠幫助 x86 架構(gòu)的應(yīng)用在 M1 芯片的 Mac 上保持流暢快速的響應(yīng),從而獲得很好的使用體驗(yàn)。

當(dāng)然,Rosetta 2 做翻譯的方案畢竟只是權(quán)宜之計(jì),不會(huì)一直存在,只是在開(kāi)發(fā)者們將自己的應(yīng)用全面轉(zhuǎn)到 M1 芯片原生狀態(tài)之前扮演過(guò)渡的作用。

蘋(píng)果預(yù)計(jì)這個(gè)過(guò)渡期大約是兩年。其實(shí)目前已經(jīng)有不少開(kāi)發(fā)者針對(duì) M1 芯片平臺(tái)適配了 App,少了 “翻譯”這個(gè)中間層,體驗(yàn)自然會(huì)更上一層樓。

根據(jù)IT之家的了解,目前《有道詞典》,《剪映》,《QQ 郵箱》,《WPS》等都有了針對(duì) M1 芯片的原生應(yīng)用。不久前(12 月 16 日),微軟 Microsoft 365 App 也推出了可在 M1 芯片的 Mac 上原生運(yùn)行版本,這說(shuō)明微軟核心 Office 應(yīng)用,包括 Office、Word、Excel、PowerPoint 和 OneNote 等都能夠在 M1 Mac 上正常使用,無(wú)需 “翻譯”。

當(dāng)然,由于 M1 芯片和 iPhone 與 iPad 的 A 系列芯片都是 ARM 架構(gòu),因此 iOS 和 iPadOS 上的很多應(yīng)用也可以在搭載 M1 芯片的 Mac 上運(yùn)行,并且在最新版的 macOS 上,現(xiàn)為 iPhone 和 iPad 平臺(tái)的應(yīng)用還可以通過(guò)新的窗口選項(xiàng)在橫向和縱向方向之間切換,或者是全屏顯示。

從這個(gè)角度來(lái)看,Mac 向 M1 芯片平臺(tái)的這次大遷移可謂意義重大,一方面,Mac 平臺(tái)現(xiàn)有的應(yīng)用資源可以留存,另一方面,還接入了 iPhone、iPad 平臺(tái)海量豐富的應(yīng)用,要知道,App Store 是 iPhone 的護(hù)城河,它背后是全球最大最穩(wěn)固的應(yīng)用生態(tài)系統(tǒng),這將無(wú)限豐富 Mac 的應(yīng)用生態(tài),獲得其他 PC 品牌無(wú)法比擬的應(yīng)用資源。

更重要的是,當(dāng)遷移順利完成,蘋(píng)果也將完成軟硬件生態(tài)的統(tǒng)一,由此帶來(lái)的聯(lián)動(dòng)效應(yīng)更不可想象。總之,我們不妨期待那一天的到來(lái)。

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

相關(guān)文章

關(guān)鍵詞:蘋(píng)果,Rosetta 2MacBook Pro

軟媒旗下網(wǎng)站: IT之家 最會(huì)買(mǎi) - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買(mǎi) 要知