アサヒのアップルの新チップ上でのLinux計画は、クパチーノがiOSの起動で原点に戻ったことを示している。

Table of Contents

アサヒのアップルの新チップ上でのLinux計画は、クパチーノがiOSの起動で原点に戻ったことを示している。

Asahi Linux プロジェクトは、Linux を Apple Silicon プラットフォームに移植する取り組みの詳細を記した最初の進捗レポートを公開しました。

この長文のブログ記事では、Apple の自社開発の独自チップが基本的なレベルでどのように動作するのかを理解する上でプロジェクトが直面した課題や、サードパーティのオペレーティング システムの起動を制限するさまざまな非標準の癖を回避する上での課題について詳細に説明しています。

カーネルハッカーであり、Asahi Linuxの共同創設者でもあるヘクター・マーティン氏が執筆したこのレポートは、残念ながら、完全に動作するLinuxディストリビューションへのリンクを最後に示していません。しかし、Apple SiliconベースのMacが、一般的に見られる標準からどれほど大きく乖離しているかを示しています。

たとえば、ブート プロセスは、従来の ARM64 システムで見られるものではなく、むしろ iOS の初期に由来する「特注の Apple メカニズム」であり、New World ROM Mac に見られる Open Firmware 仕様から派生した設計要素を備えています。

このため、Asahi LinuxプロジェクトはApple Siliconマシン向けにm1n1と呼ばれる特注ブートローダーを開発せざるを得なくなり、可能な限り多くの「Appleらしさ」に対応することを目指しています。しかし、その狙いはそれだけではありません。

m1n1の起源は、Martin氏が任天堂Wiiのジェイルブレイク(脱獄)研究の一環として作成したプロジェクト「mini」にあります。サードパーティ製コードのブートをサポートするだけでなく、研究者が開発用コンピューターからマシンをリアルタイムで制御することも可能です。対話型シェルを使用したり、簡単なPythonスクリプトを記述したりすることで、Apple Siliconプロセッサが低レベルのベアメタルレベルでどのように動作するかを列挙できます。

これにより、Asahi Linux チームは、Rosetta で x86 コードを実行するときにパフォーマンスを向上させるように設計された構成ビットなど、Apple Silicon M1 プロセッサに特有の機能を特定できるようになりました。

「m1n1を使用して、AppleのカスタムArm命令、Apple固有のシステムレジスタ、Apple割り込みコントローラなどのハードウェアなどを文書化することに熱心に取り組んできました」とマーティン氏は書いている。

旭化成Linuxロゴ

クラウドファンディングによるAsahiプロジェクトは、Apple Silicon上で「洗練された」Linux体験を提供することを目指している

続きを読む

この列挙が役立ったのは、前述の通り、Apple Silicon は完全に独自のシステムであるためです。その動作に関するドキュメントはほとんど存在せず、その動作は他の ARM64 チップとは大きく異なります。

マーティン氏は、チップがアイドル状態のときに「パワーゲート」を選択する可能性があると指摘しています。これは、CPUの一部をオフにして消費電力を削減するものです。これには、スタックポインタとプログラムカウンタを除くレジスタの内容が消去されるという厄介な副作用があり、Linuxがクラッシュする原因となります。

幸いなことに、Asahi Linuxチームは、Apple独自のハードウェアレジスタに特定の値を設定することで、この特定の機能を無効にする方法を見つけ出し、開発を続行することができました。他にも、例外処理やシステムタイマーに対する独自のアプローチなど、Apple特有の仕様が問題となりました。

このレポートを読んで、Apple Siliconプラットフォームに関して最も驚くべき点は、その系譜がいかに古い製品から派生しているかということです。前述の通り、ブートプロセスはiOSで初めて使用されたものから派生しています。シリアル通信に使用されるUARTチップはSamsung製で、Martin氏によると、同社は初代iPhoneのSoCを供給した企業です。I2Cハードウェアは、現在Apple傘下となっているPA Semi社によって設計され、AmigaOne X1000にも使用されているPWRficientチップをベースに設計されています。

その結果、1980年代後半に人気がピークに達したOSの派生版を実行する2010年のAmigaクローンが、最新のMacの内部機構を文書化する役割を果たすという異例の状況が生まれました。

Asahi Linuxプロジェクトは、綿密な調査作業を経て、Apple Silicon M1プラットフォームに限定的なLinux環境を実現することに成功しました。しかし、これは実用的な本格的なシステムとは程遠いものです。例えば、このプロジェクトでは、ファームウェアが提供する基本的なフレームバッファを使用しているため、実際のディスプレイドライバは存在しません。

「これは適切なディスプレイドライバーではないため、解像度の変更、ディスプレイのホットプラグ、さらにはディスプレイのスリープ機能すら利用できません。開発やデモには十分ですが、いずれ適切なディスプレイコントローラードライバーを開発する必要があります」とマーティン氏は記している。一方、GPUは依然としてブラックボックスであり、リバースエンジニアリング作業は依然として進行中である。

Apple M1にLinuxを導入する取り組みはAsahi Linuxプロジェクトだけではありません。Corelliumは、最新鋭のMac miniでUbuntuの移植版を起動することに成功しました。これもまだ初期段階であり、グラフィックアクセラレーションとネットワークのサポートが著しく不足しています。®

Discover More