從 Apple 推出使用其新的高性能 ARM 芯片的新 Mac 之后,第三方軟件開發(fā)人員就一直不停嘗試,試圖在新硬件上啟動(dòng)和運(yùn)行可替代的操作系統(tǒng)。上個(gè)月初,一些開發(fā)人員在 M1 Mac 上啟動(dòng)了 Windows 10 和 Fedora Linux 虛擬機(jī),但是這并不算操作系統(tǒng)的替代使用。在開發(fā) M1 Mac 替代操作系統(tǒng)中,獲得最大突破是專門從事 ARM 設(shè)備虛擬機(jī)的公司 Corellium 的團(tuán)隊(duì)。該團(tuán)隊(duì)設(shè)法移植了 Linux,并使其在 M1 Mac Mini 上 “完全可用”。
新的 Linux 端口使得 Ubuntu 首次在 Apple 的 M1 Macs 運(yùn)行。Corellium 已成功將 Ubuntu 移植到 M1 Macs 上,并發(fā)布了一個(gè)教程供其他人遵循。修改后的 Ubuntu 版本啟動(dòng)后會(huì)加載到常規(guī)用戶界面中,并包括 USB 支持。
盡管 M1 芯片和 Apple 的其他芯片共享著很多組件,但它是非標(biāo)準(zhǔn)化的,因此創(chuàng)建 Linux 驅(qū)動(dòng)程序以確保 Ubuntu 正常運(yùn)行并不容易。
蘋果公司在設(shè)計(jì) M1 Mac 時(shí)并未考慮到雙系統(tǒng)或替代系統(tǒng)。蘋果公司軟件工程高級(jí)副總裁 Craig Federighi 此前曾指出官方無意支持以本地方式啟動(dòng)其他操作系統(tǒng),例如 Windows 或 Linux。虛擬機(jī)看似是蘋果公司建議用戶使用其它操作系統(tǒng)的唯一方法,但這并沒有阻止人們創(chuàng)建自己的端口。
Hector Martin 是一個(gè)常常將 Linux 在各種硬件上運(yùn)行的開發(fā)人員,他也正試圖將 Linux 移植到 M1 Macs 上。這些開發(fā)人員大多被蘋果 M1 芯片提供的性能優(yōu)勢(shì)吸引,在基于 ARM 的 MAC 上運(yùn)行 Linux 想必是無聲的?!翱梢赃\(yùn)行 Linux 的 ARM 筆記本電腦已經(jīng)讓我期待很久了,” Linux 創(chuàng)造者 Linus Torvalds 在 11 月表示,“除了操作系統(tǒng)外,新版的蘋果 Air 幾乎是完美的?!?/p>
Corellium 首席技術(shù)辦公室 Chris Wade 昨天在 Twitter 上宣布了團(tuán)隊(duì)工作的最新進(jìn)展。他在博客上寫道:“研究蘋果 M1,不僅是為了創(chuàng)造新的 Linux 端口,這也是我們安全研究的一部分?!?/p>
該博客文章提供了 Corellium 在此過程中克服的諸多障礙,包括處理 Apple 的 SoC 是如何創(chuàng)建更多 CPU 內(nèi)核的,處理 Apple 專有的中斷控制器等等。除此之外,Corellium 還添加了預(yù)加載器,該預(yù)加載器充當(dāng) Linux 的包裝程序,并作為啟動(dòng)處理器內(nèi)核的緩沖。
這篇文章包括在 M1 Mac 上安裝 Ubuntu 的教程,還有一個(gè) Github 存儲(chǔ)庫(corellium /linux-m1),用戶可以從中下載。按照這些步驟操作,用戶最終可以直接從 USB 啟動(dòng)操作系統(tǒng)。但是,目前距離 Boot Camp 風(fēng)格的雙系統(tǒng)還有很長的路要走。即使 Corellium 團(tuán)隊(duì)已經(jīng)公布了教程,但其所需的步驟仍比大多數(shù)用戶想像的更為復(fù)雜,所以不建議普通用戶把它作為日常驅(qū)動(dòng)程序。
“這個(gè)新端口在 Mac Mini M1 上 “完全可用”,并且可以通過 USB 啟動(dòng)完整的 Ubuntu 桌面?!盋orellium 的首席技術(shù)官 Chris Wade 稱,“但是,用戶將需要一個(gè) USB-C 加密狗才能使網(wǎng)絡(luò)正常工作,并且運(yùn)行端口需要對(duì) Linux 和自定義內(nèi)核有所了解。Corellium 近期會(huì)發(fā)布有關(guān)該過程的教程?!?/p>
Corellium 團(tuán)隊(duì)表示,蘋果不使用傳統(tǒng)方式來啟動(dòng)其 CPU。首先,它引導(dǎo)加載程序運(yùn)行一種名為 Mach 目標(biāo)文件格式(Mach-O)的可執(zhí)行文件,該可執(zhí)行文件以名為 IMG4 的簽名包裝器格式進(jìn)行包裝。隨著啟動(dòng)更多 CPU 內(nèi)核,情況變得更加復(fù)雜,它們將從內(nèi)存映射 I / O(MMIO)寄存器指定的地址開始運(yùn)行內(nèi)核。
蘋果公司設(shè)計(jì)了自己的控制器,該控制器超出了通常的 ARM 通用中斷控制器(GIC)標(biāo)準(zhǔn)。定時(shí)器中斷被導(dǎo)向快速中斷請(qǐng)求(FIQ),這不是標(biāo)準(zhǔn)化程序,反映了較舊的 32 位 ARM 系統(tǒng)。Corellium 團(tuán)隊(duì)稱,必須提供一組處理器間中斷(IPI)才能使多個(gè)處理器進(jìn)行通信。
Corellium 團(tuán)隊(duì)具有處理 FIQ 支持的經(jīng)驗(yàn),并早已為 Apple 的大多數(shù)非標(biāo)準(zhǔn)方法做好了準(zhǔn)備。它的處理方法之一是,添加一個(gè)預(yù)加載程序,充當(dāng) Linux 的包裝程序,從而導(dǎo)致 OS 在 M1 處理器上啟動(dòng)。
該小組沒有用于 M1 Mac 的接口,因此不得不尋找替代輸入路線。在藍(lán)牙、USB 主機(jī)和 PCIe 上的 xHCI USB 主機(jī)中,他們選擇了 USB 主機(jī)并與 I2C 上的芯片進(jìn)行交互。
建立正確的 USB 連接后,他們可以連接鍵盤,鼠標(biāo)和閃存驅(qū)動(dòng)器。這為運(yùn)行正常的桌面 Linux 發(fā)行版提供了可能性。
Corellium 在解決 Apple 操作系統(tǒng)保護(hù)方面有一些經(jīng)驗(yàn)。此前它為安全研究人員提供了虛擬 iPhone,以幫助進(jìn)行漏洞探索。這一舉動(dòng)激怒了蘋果,使得它于 2019 年 8 月以版權(quán)為由向 Corellium 提起訴訟。蘋果后來在 2020 年 1 月指控 Corellium 違反了數(shù)字千年版權(quán)法案(DMCA),而法官在 12 月駁回了其侵犯版權(quán)的控告。關(guān)于其他數(shù)字千年版權(quán)法案指控的裁決已被推遲。
Corellium 此次利用其開發(fā) Sandcastle 項(xiàng)目的經(jīng)驗(yàn),編寫用于新 Apple SoC 的 Linux 驅(qū)動(dòng)程序。幸運(yùn)的是,Apple 正式允許在 Apple Silicon Macs 上引導(dǎo)自定義內(nèi)核,因此替換程序開發(fā)者們無需利用漏洞來導(dǎo)向內(nèi)核。與其他 64 位 ARM SoC 相比,Apple Silicon 的固件接口和啟動(dòng)過程非常不同。經(jīng)過一些工作,Corellium 團(tuán)隊(duì)設(shè)法增加了對(duì)足夠硬件接口的支持,從而成功在 M1 Mac Mini 上引導(dǎo) Linux Ubuntu。
用戶可以下載 Corellium 共享的有關(guān)如何啟動(dòng) Ubuntu 的說明。關(guān)于此說明,簡單概括,首先需要下載其實(shí)時(shí)映像(從用于 Raspberry Pi 的 ARM64 Ubuntu 構(gòu)建中稍作修改),然后將映像復(fù)制到外部 USB 驅(qū)動(dòng)器(需要至少 16GB 的容量),將 USB 驅(qū)動(dòng)器連接到 Mac Mini 的 USB-C 端口,啟動(dòng)進(jìn)入初始操作系統(tǒng)界面,安裝自定義內(nèi)核(Corellium 提供了安裝腳本),最后使用默認(rèn)憑據(jù)登錄。
Corellium 也稱,安裝過程不是很友好,因此不建議初學(xué)者在 Mac Mini 上使用 Linux。此外,M1 的機(jī)器學(xué)習(xí)核心沒有 GPU 加速或支持,因此不要企圖在新系統(tǒng)上玩游戲或運(yùn)行機(jī)器學(xué)習(xí)任務(wù)。但對(duì)于 PC 硬件和 Linux 的發(fā)燒友來說,這仍然是個(gè)令人振奮的消息。此外,Linux 創(chuàng)造者 Linus Torvalds 也稱,Apple Silicon MacBooks 所提供的性能和電池壽命是首屈一指的,因此它們非常適合進(jìn)行實(shí)時(shí)編程。
色 發(fā)自 凹非寺
量子位 | 公眾號(hào) QbitAI
蘋果M1/M2芯片首個(gè)符合OpenGL ES 3.1標(biāo)準(zhǔn)的GPU驅(qū)動(dòng)誕生了。
它來自Asahi Linux,就是那個(gè)專注于將Linux引入蘋果芯片系統(tǒng)的開源項(xiàng)目。
目前,該驅(qū)動(dòng)已經(jīng)過數(shù)萬次測(cè)試,確保穩(wěn)定性。
值得一提的是,這一號(hào)稱“里程碑”的進(jìn)展僅由兩個(gè)程序員大佬完成,他們做到了蘋果自己都沒有辦到的事兒。
(眾所周知,蘋果本身的驅(qū)動(dòng)不兼容任何開放GPU標(biāo)準(zhǔn))。
我和Asahi Lina是資金最少的兩個(gè)人。但我們打敗了大公司,有點(diǎn)尷尬……
消息一出,網(wǎng)友直呼“”,光是在ycombinator上就已有破千的熱度。
你們簡直就是逆向工程領(lǐng)域里的巨頭,我打賭蘋果已經(jīng)在挖你們的墻腳了吧。
還有人表示:
Mac末代i9機(jī)皇哭暈在廁所。
Asahi Linux項(xiàng)目由黑客Hector Martin發(fā)起,主要為Apple Silicon系列蘋果電腦做Linux系統(tǒng)移植,也就是讓Mac系統(tǒng)跑上Linux。
2021年1月該項(xiàng)目正式啟動(dòng),受到“Linux之父”Linus Torvalds的關(guān)注。
去年3月,Asahi Linux成功在M1芯片實(shí)現(xiàn)運(yùn)行Linux,終端一行代碼啟動(dòng)安裝,也能一鍵刪除卸載。
在此之后,他們便計(jì)劃在該系統(tǒng)上推出兼容Apple Silicon的GPU驅(qū)動(dòng)。
當(dāng)時(shí),Asahi Linux已對(duì)原型完成逆向工程工作,證明它“足以運(yùn)行真正的圖形應(yīng)用程序和基準(zhǔn)測(cè)試”。
終于,現(xiàn)在,第一個(gè)也是唯一一個(gè)可在Apple Silicon上運(yùn)行的、符合OpenGL ES 3.1標(biāo)準(zhǔn)的成品誕生了。
所謂的OpenGL ES標(biāo)準(zhǔn),就是一個(gè)讓開發(fā)者利用設(shè)備GPU(包括手機(jī)、PDA和游戲主機(jī)等嵌入式設(shè)備)來繪制圖像、創(chuàng)建虛擬世界,以及實(shí)現(xiàn)許多其他與圖形相關(guān)功能的統(tǒng)一方法。
它由非營利性技術(shù)聯(lián)盟Khronos Group于2003年發(fā)布第一版,當(dāng)時(shí)就立刻得到了大批游戲商的支持。
但蘋果的芯片自己專門開發(fā)了一套API(即Metal),導(dǎo)致無論是適用Vulkan、OpenGL還是OpenGL ES等“主流”標(biāo)準(zhǔn)的程序都沒法在Mac上運(yùn)行。
Asahi Linux今天發(fā)布的這一驅(qū)動(dòng)則改寫了這一格局,把M1、M1 Pro/Max/Ultra、M2和M2 Pro/Max都支持了個(gè)遍。
——當(dāng)然,前提還是得在Linux系統(tǒng)上才行。
所以,如果你想體驗(yàn),需要先安裝Asahi Linux。
如果你已經(jīng)是它的用戶,直接使用dnf upgrade (Fedora) 或pacman -Syu (Arch) 命令升級(jí)系統(tǒng),就可以獲得這一最新驅(qū)動(dòng)程序了。
目前,該驅(qū)動(dòng)也已將測(cè)試結(jié)果提交給Khronos Group,通過30天的審查期后就可以蓋上官方認(rèn)定。
如果你對(duì)其實(shí)現(xiàn)原理感興趣,可以進(jìn)一步查閱文末官方博客[參考鏈接1]。
不容置疑,Asahi Linux這一發(fā)布收獲了網(wǎng)友大量的掌聲。
這對(duì)游戲行業(yè)很利好(深度學(xué)習(xí)還差點(diǎn))。
你們真的是世界上最強(qiáng)的逆向工程大佬。蘋果都想挖你們了吧?是不是沒答應(yīng)?(手動(dòng)狗頭)
還有人表示,太強(qiáng)了,唯有捐款才能表達(dá)我們的感謝。
(ps.Asahi Linux作為一個(gè)非盈利組織,全靠為愛發(fā)電,他們自述所做工作光靠業(yè)余時(shí)間根本完不成,只能全職,確實(shí)需要一些外部支持。)
值得一提的是,大家討論最多的方向是蘋果以后會(huì)不會(huì)改善對(duì)OpenGL、Vulkan等這些大眾標(biāo)準(zhǔn)的支持?
畢竟它正在與NVidia、Adobe、Autodesk、Microsoft等圍繞OpenUSD渲染/動(dòng)畫/CAD/3D場(chǎng)景格式合作。
一位網(wǎng)友列出兩種可能:
(1)蘋果遵守OpenGL和Vulkan的現(xiàn)有標(biāo)準(zhǔn),讓電影和游戲制作商也獲得足夠大的動(dòng)力;
(2)蘋果努力發(fā)揮自己的影響力,迫使開發(fā)者乃至全世界都支持他們的Metal標(biāo)準(zhǔn);
隨后又自問自答:
我內(nèi)心希望選擇方案(1),但我的直覺告訴我,蘋果將竭盡全力推動(dòng)方案(2)。
這一觀點(diǎn)得到了許多人的支持。
如果蘋果能夠兼容所有標(biāo)準(zhǔn)(例如Vulkan),這對(duì)整個(gè)行業(yè)的渲染來說都會(huì)更好”。
但其中還是不乏反對(duì)之聲:
從游戲開發(fā)者的評(píng)價(jià)來看,Metal比Vulkan更受歡迎。
Apple曾是Vulkan工作組的成員,知道游戲開發(fā)者更喜歡什么,這就是他們?yōu)槭裁春竺骐x開并創(chuàng)建了Metal。
言外之意,他認(rèn)為蘋果應(yīng)該堅(jiān)持目前的做法。
你認(rèn)為蘋果有希望重回這些標(biāo)準(zhǔn)嗎?
參考鏈接:
[1]https://rosenzweig.io/blog/first-conformant-m1-gpu-driver.html
[2]https://news.ycombinator.com/item?id=37224042
[3]https://appleinsider.com/articles/23/08/22/linux-for-apple-silicon-adds-first-conformant-m1-gpu-driver
— 完 —
量子位 QbitAI · 頭條號(hào)簽約
關(guān)注我們,第一時(shí)間獲知前沿科技動(dòng)態(tài)
源:appleinsider
編輯:LQ
周二,Linux內(nèi)核主要開發(fā)者Linus Torvalds宣布候選版本Linux 5.13現(xiàn)在可以進(jìn)行公開測(cè)試。
而這次的最新版本引入了對(duì)蘋果 M1系統(tǒng)芯片的支持。
根據(jù)commit信息,Linux 5.13對(duì)蘋果M1芯片的初始支持已被合并到Linux SoC代碼樹中,預(yù)計(jì) Linux Kernel 5.13 將帶來 M1 芯片支持。
從commit信息可以看到,在Linux內(nèi)核實(shí)現(xiàn)對(duì)M1初始支持的開發(fā)者是Arnd Bergmann和Hector Martin. 他們的commit已在以下設(shè)備通過測(cè)試:
Mac mini (M1, 2020)
MacBook Pro (13-inch, M1, 2020)
MacBook Air (M1, 2020)
初步的M1支持包含UART、中斷、SMP和設(shè)備樹位,以提供基本功能。此外還有一個(gè)基于SimpleFB的幀緩沖器,不過要實(shí)現(xiàn)良好支持的3D/視頻加速顯然是一項(xiàng)艱巨挑戰(zhàn)。
去年12月, 被稱為「Linux移植專家」的Hector Martin還曾經(jīng)發(fā)起為M1版Mac移植Linux系統(tǒng)的眾籌。
這位自稱Marcan的開發(fā)者一直致力于將Linux移植到各種不同的平臺(tái),根據(jù)他的介紹:
自2000年代初以來,我一生中有一半以上的時(shí)間都在使用逆向工程設(shè)備。我曾致力于為一些平臺(tái)構(gòu)建非官方的開放軟件支持,比如任天堂 Wii (我是其中一個(gè)最大的硬件文檔、開放庫、“越獄”軟件(The Homebrew Channel)、恢復(fù)工具(BootMii)等)、索尼 PS3(我編寫了AsbestOS和一個(gè) Linux補(bǔ)丁集,以便在 PS3 Slim 上運(yùn)行 Linux,以及在最初的Linux支持被移除之后使用最新的PS3單元)、 PS4(我將 Linux 移植到了 PS4上,以便能夠運(yùn)行帶有全面OpenGL/Vulkan 圖形支持的Steam游戲) ,以及其他一些較小的平臺(tái)。
但是,讓Linux在蘋果M1上運(yùn)行很難,這也需要全身心的投入,用Marcan的話,這是一份全職工作,所以他就發(fā)起了這項(xiàng)眾籌,希望得到每月4000美元的支持。
這個(gè)項(xiàng)目沒有得到蘋果的批準(zhǔn),但是只要Marcan不使用 macOS 的代碼來構(gòu)建Linux支持,他說他向用戶發(fā)布是合法的。
蘋果還允許在其自研芯片上引導(dǎo)自定義內(nèi)核,這為Linux支持鋪平了道路,但是Martin需要對(duì)蘋果的驅(qū)動(dòng)程序進(jìn)行逆向工程。
Linus Torvalds也曾表示,如果M1 Mac運(yùn)行Linux,他會(huì)很喜歡,但他覺得沒有蘋果的合作是不可能的。
Torvalds說: 「對(duì)我來說,M1的主要問題是它的GPU和周圍的其他設(shè)備,因?yàn)檫@可能會(huì)阻礙我使用它,因?yàn)槌翘O果公司開放,否則它不會(huì)有任何Linux支持。
他還認(rèn)為蘋果「似乎不太可能」公開其芯片組,但「你總是可以希望」。
萬一有一天實(shí)現(xiàn)了呢?
當(dāng)然Linux 5.13只是初步的,僅僅是能夠啟動(dòng),能夠簡單用用而已,GPU部分就還完全不可用。
若需全面支持 M1還要解決許多關(guān)鍵問題,特別是讓Mac的圖形系統(tǒng)在Linux下完全正常運(yùn)行以供日常使用。
Linus Torvlds表示,這需要大量的工作,但還好目前看起來進(jìn)展比較順利。
除了對(duì)蘋果自研芯片的支持,Linux 5.13還引入了大量新的驅(qū)動(dòng)程序,還有此前驅(qū)動(dòng)程序的更新,以及對(duì)文件系統(tǒng)、體系架構(gòu)、工具和進(jìn)程處理等方面的其他改進(jìn)。
據(jù)外媒9to5Linux消息,Linux 5.13的最終版本將在6月底或7月初向公眾發(fā)布。這將取決于Torvalds在開發(fā)周期中決定發(fā)布多少個(gè)候選版本。
參考資料:
https://appleinsider.com/articles/21/05/11/latest-linux-kernel-introduces-preliminary-apple-m1-support?utm_medium=rss
https://www.macrumors.com/2020/11/30/linux-apple-silicon-port-patreon/
https://www.oschina.net/news/136804/initial-m1-support-merged-into-linux-soc-tree