相比軟件遷移Apple Silicon Mac的Linux系統移植工作更困難
近日,一位Linux開發者吐槽了將系統移植到Apple Silicon Mac上的難度實在太大。相比之下,為M1 Mac開發原生軟件就沒有那麼複雜了。據悉,不同於其它64-bit ARM系統,蘋果使用了高度定制的過程來實現Mac硬件的引導。而為了順利向M1 Mac遷移軟件,該公司至少為開發者提供了完善的x86軟件適配方案。
Asahi Linux項目團隊在博客文章中寫道,他們嘗試了在Apple Silicon系統上設置備用啟動內核。雖然已實現大多數功能,但還是缺乏對安裝非蘋果內核的命令支持。
Apple Insider指出,主要障礙在於Apple Silicon的啟動方式與PC存在很大的不同。與常見的計算機相比,它更像是一個嵌入式平台(類似Android / iOS)。
深入分析發現,蘋果有努力讓Apple Silicon 平台的啟動過程更接近於Intel Mac,但兩者仍存在著一些差異、尤其是某些量身定制的運行機制。
這些差異會導致某些意外的行為,比如對於從外部存儲進行啟動的處理方式、引導加載程序未能呈現圖形用戶界面(GUI)。
此外啟動項選擇器(Boot Picker)只是一款全屏顯示的macOS 應用程序,而不是引導加載程序的一部分。
基於此,開發者認為Apple Silicon Mac 的啟動過程不基於任何現有標準,而是沿用了自iOS 早期逐漸發展起來的蘋果定制運行機制。
(來自:Asahi Linux進度報告)
作為引導過程的一部分,蘋果設備樹(Apple Device Tree)也基於開放固件標準,且該規范曾用於引導早期的PowerPC Mac 。
遺憾的是,由於缺乏有關數據表示的高級詳情,第三方無法輕易地實現二進制格式的自動化差異轉換。
Asahi Linux 項目團隊聲稱:“試圖統一蘋果和Linux 關於設備樹應該如何工作的想法,將會是一場難以克服的噩夢”。
為了攻克這方面的難題,項目團隊已經開發了用於Apple Silicon Mac 的m1n1 引導程序。
據悉,這項工作源於早期用於檢查任天堂Wii的最小環境。經過相應的修改,項目團隊得以開始記錄蘋果的自定義ARM指令、系統寄存器、以及中斷控制器等硬件。
同時Asahi Linux 團隊與Corellium 攜手努力,以期將Linux 順利移植到M1 平台。
1 月份的時候,Corellium 曾提及類似的非傳統啟動過程、並且使用了非標準的控制器,從而設法啟動了Linux 。
然而與基於Intel 芯片的macOS 應用程序遷移工作相比,Apple Silicon 的第三方系統移植工作還是要困難得多。