近日,一位 Linux 開發者吐槽瞭將系統移植到 Apple Silicon Mac 上的難度實在太大。相比之下,為 M1 Mac 開發原生軟件就沒有那麼復雜瞭。據悉,不同於其它 64-bit ARM 系統,蘋果使用瞭高度定制的過程來實現 Mac 硬件的引導。而為瞭順利向 M1 Mac 遷移軟件,該公司至少為開發者提供瞭完善的 x86 軟件適配方案。

相比軟件遷移 Apple Silicon Mac的Linux系統移植工作更困難

Asahi Linux 項目團隊在博客文章中寫道,他們嘗試瞭在 Apple Silicon 系統上設置備用啟動內核。雖然已實現大多數功能,但還是缺乏對安裝非蘋果內核的命令支持。

Apple Insider指出,主要障礙在於 Apple Silicon 的啟動方式與 PC 存在很大的不同。與常見的計算機相比,它更像是一個嵌入式平臺(類似 Android / iOS)。

深入分析發現,蘋果有努力讓 Apple Silicon 平臺的啟動過程更接近於 Intel Mac,但兩者仍存在著一些差異、尤其是某些量身定制的運行機制。

這些差異會導致某些意外的行為,比如對於從外部存儲進行啟動的處理方式、引導加載程序未能呈現圖形用戶界面(GUI)。

此外啟動項選擇器(Boot Picker)隻是一款全屏顯示的 macOS 應用程序,而不是引導加載程序的一部分。

基於此,開發者認為 Apple Silicon Mac 的啟動過程不基於任何現有標準,而是沿用瞭自 iOS 早期逐漸發展起來的蘋果定制運行機制。

相比軟件遷移 Apple Silicon Mac的Linux系統移植工作更困難

(來自: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 的第三方系統移植工作還是要困難得多。

創作者介紹
創作者 3C王者 的頭像
3C王者宇晨

3C王者

3C王者宇晨 發表在 痞客邦 留言(0) 人氣( 12 )