蘋果在上個月推出了搭載 M1 自研芯片的 MacBook Air、Mac mini 以及 13 英寸 MacBook Pro。其中,蘋果 M1 芯片與此前 Mac 采用的芯片最大不同是基于 ARM 架構(gòu),而不是過去英特爾芯片的 x86 架構(gòu)。
由于 M1 芯片底層架構(gòu)和過去不同,由此帶來的應(yīng)用生態(tài)兼容性問題是首先需要解決的,為此蘋果也開啟了為期兩年的 Mac 過渡計劃。具體來說,蘋果借助的是 macOS 11 Big Sur 系統(tǒng)以及其內(nèi)置的 Universal 2、Rosetta 2 和 Virtualizaion 三種技術(shù)來解決問題。
不過話雖如此,可能還是會有小伙伴會比較猶豫,這些措施真的可以解決 M1 芯片 Mac 的軟件兼容性問題嗎?特別是原來在 x86 架構(gòu)上的應(yīng)用,開發(fā)者還沒有及時做適配,能在 Mac 上很好地運行嗎?
對于這個問題,其實蘋果已經(jīng)給出了專門的解決方案,就是 Rosetta 2。可是談到 Rosetta 2,很多小伙伴并不是很了解,它需要怎么用,又是如何讓 M1 芯片的 Mac 運行 x86 平臺應(yīng)用的,這里IT之家不妨為大家解釋一下。
說到 Rosetta 2 的運行原理,深入到技術(shù)層面大家可能很難理解,因此小編主要介紹一些基礎(chǔ)的底層邏輯。
首先要從 x86 架構(gòu)和 ARM 架構(gòu)的不同說起。我們所說的 x86 架構(gòu)和 ARM 架構(gòu),都是指處理芯片的指令集。
我們知道,芯片是負(fù)責(zé)運算的,但是它需要在什么時候做什么運算,芯片不能自己決定,得聽系統(tǒng)的指令,描述 CPU 能做什么運算的一系列指令集合,就是指令集。
打個比方,我們把智能設(shè)備完成一次功能操作比作建造一個房子的項目,這個過程中,CPU 相當(dāng)于工匠,他負(fù)責(zé)蓋房子,但是要蓋成什么樣的房子,他不知道,得聽項目經(jīng)理的。
項目經(jīng)理相當(dāng)于系統(tǒng),他告訴工匠需要把房子蓋成什么樣,傳達(dá)的指令就相當(dāng)于指令集。
說到指令集,主要有兩種:x86 和 ARM。x86 是英特爾編寫的,屬于復(fù)雜指令集 (CISC)的代表,而 ARM 是英國 Acorn 有限公司設(shè)計的,是精簡指令集(RISC)的代表。
復(fù)雜指令集和精簡指令集的差別在哪里?我們還是用上面的例子來說明。
項目經(jīng)理要告訴工匠需要蓋什么樣的房子,他們怎么傳達(dá)指令呢?為了更高效地和工匠溝通,他們彼此間通常會約定一些只有他們聽得懂 “行話”組成 “指令庫”。
復(fù)雜指令集這邊的項目經(jīng)理,我們叫他 “小復(fù)”,他和工匠溝通的 “行話”,包括具體每塊磚砌在哪里這樣簡單直接的指令,也包含 “砌一個圍墻”、“搭一個柱子”這樣復(fù)雜的指令。
而精簡指令集這邊的項目經(jīng)理,我們叫他 “小精”,他就不一樣了,可能他們這邊的工匠比較 “笨”,聽不懂復(fù)雜的話,所以它的指令都是手把手告訴工匠 “這塊磚砌在哪里”。
比如要建造一座別墅,“小復(fù)”會指手畫腳地對工匠說:“你,在這打個壁櫥,在那里做個玻璃門,再在那修一個餐臺……”
而 “小精”畫風(fēng)完全不同,他是一塊磚一塊磚地告訴工匠該砌在哪里,怎么砌,最后也能把別墅建好。
兩種方式各有優(yōu)缺點:“小復(fù)”的建筑團(tuán)隊處理速度快,能力更強,但是組織比較臃腫復(fù)雜,很多指令平時很少用到,比如蓋十個房子才能用到一次 “砌圍墻”這樣的指令。
而 “小精”的團(tuán)隊更精簡高效,容易組織,缺點是處理能力沒有 “小復(fù)”團(tuán)隊強,但這個可以通過調(diào)用更多的工匠來彌補。
而現(xiàn)在蘋果的問題是,“小復(fù)”這個團(tuán)隊原來的 “工匠 “被調(diào)走了,轉(zhuǎn)崗過來的是 “小精”手里的 “工匠”,而 “小復(fù)”操著一口復(fù)雜的 “行話”,新來的工匠聽不懂。
怎么辦呢?這就得在 “小復(fù)”和 “工匠”之間安排一個翻譯,讓工匠們能聽懂 “小復(fù)”說的話。
這個 “翻譯”的角色叫 “小 R”,也就是蘋果的 “Rosetta 2”。
這個 “小 R”怎么翻譯呢?
當(dāng) “小復(fù)”對工匠們說 “在這砌個圍墻”時,工匠們不知道他說了些啥。“小 R”就幫工匠們把這句話分析、拆解,然后還是像 “小精”那樣手把手告訴工匠每一塊磚應(yīng)該砌在什么地方。
這就是 Rosetta 2 的主要任務(wù)。有了它的幫助,以前能在 Intel 芯片 Mac 上面用的 App 在搭載 M1 芯片的 Mac 上面也就都能用了。
以IT之家手上搭載 M1 芯片的 13 英寸 MacBook Pro 為例,平時在使用的時候,基本上不會和 Rosetta 2 產(chǎn)生交互。
Rosetta 2 是內(nèi)置在 macOS 11 Big Sur 系統(tǒng)里的,在幕后工作,只有當(dāng)你第一次下載一款 x86 應(yīng)用,第一次打開時,才會提示你安裝 Rosetta 2。
換句話說,Rosetta 2 的存在完全不會對你過去一直以來使用 Mac 的習(xí)慣造成影響,它幾乎是無感的,悄悄做著翻譯工作。
想要知道你使用的 App 到底是原生在 Mac 上運行的,還是經(jīng)過 Rosetta 2“翻譯”之后的,只要在 “應(yīng)用程序”文件夾中找到這個應(yīng)用的圖標(biāo),右鍵打開菜單欄里的 “顯示簡介”,如果應(yīng)用種類后面有一個 “Intel”,說明這個應(yīng)用就是 x86 版本經(jīng)過 Rosetta 2 翻譯的。
以 x86 平臺的IT之家為例,在 M1 芯片的 MacBook Pro 運行非常流暢,看新聞、發(fā)評論等各項功能也都正常,體驗和在原來 Intel 芯片的 MacBook 上幾乎沒有差別。
像小編工作時用的 x86 版《釘釘》,也可以正常流暢地運行,運行速度一點也不比原來慢。
還有 Adobe 的全家桶軟件,目前在經(jīng)過更新后,也可以在 M1 芯片的 Mac 上正常流暢運行。
講到這里,你可能會好奇,畢竟中間隔了 Rosetta 2 這個翻譯,x86 應(yīng)用是如何能做到一邊被 “翻譯”,一邊保持和原來差不多的運行速度的?
這主要是因為 Rosetta 2 很聰明,他并不是等到應(yīng)用開啟使用時,才一條指令一條指令地去翻譯,而是在應(yīng)用安裝時就會對應(yīng)用進(jìn)行翻譯,在用戶使用應(yīng)用前就給到一個針對 ARM 平臺優(yōu)化的版本。對于那些無法提前翻譯的指令,才會在使用時候進(jìn)行即時的翻譯。
基于這樣的機制,Rosetta 2 能夠幫助 x86 架構(gòu)的應(yīng)用在 M1 芯片的 Mac 上保持流暢快速的響應(yīng),從而獲得很好的使用體驗。
當(dāng)然,Rosetta 2 做翻譯的方案畢竟只是權(quán)宜之計,不會一直存在,只是在開發(fā)者們將自己的應(yīng)用全面轉(zhuǎn)到 M1 芯片原生狀態(tài)之前扮演過渡的作用。
蘋果預(yù)計這個過渡期大約是兩年。其實目前已經(jīng)有不少開發(fā)者針對 M1 芯片平臺適配了 App,少了 “翻譯”這個中間層,體驗自然會更上一層樓。
根據(jù)IT之家的了解,目前《有道詞典》,《剪映》,《QQ 郵箱》,《WPS》等都有了針對 M1 芯片的原生應(yīng)用。不久前(12 月 16 日),微軟 Microsoft 365 App 也推出了可在 M1 芯片的 Mac 上原生運行版本,這說明微軟核心 Office 應(yīng)用,包括 Office、Word、Excel、PowerPoint 和 OneNote 等都能夠在 M1 Mac 上正常使用,無需 “翻譯”。
當(dāng)然,由于 M1 芯片和 iPhone 與 iPad 的 A 系列芯片都是 ARM 架構(gòu),因此 iOS 和 iPadOS 上的很多應(yīng)用也可以在搭載 M1 芯片的 Mac 上運行,并且在最新版的 macOS 上,現(xiàn)為 iPhone 和 iPad 平臺的應(yīng)用還可以通過新的窗口選項在橫向和縱向方向之間切換,或者是全屏顯示。
從這個角度來看,Mac 向 M1 芯片平臺的這次大遷移可謂意義重大,一方面,Mac 平臺現(xiàn)有的應(yīng)用資源可以留存,另一方面,還接入了 iPhone、iPad 平臺海量豐富的應(yīng)用,要知道,App Store 是 iPhone 的護(hù)城河,它背后是全球最大最穩(wěn)固的應(yīng)用生態(tài)系統(tǒng),這將無限豐富 Mac 的應(yīng)用生態(tài),獲得其他 PC 品牌無法比擬的應(yīng)用資源。
更重要的是,當(dāng)遷移順利完成,蘋果也將完成軟硬件生態(tài)的統(tǒng)一,由此帶來的聯(lián)動效應(yīng)更不可想象??傊覀儾环疗诖且惶斓牡絹?。
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。