Appleシリコン / Apple Silicon(製品・サービス)

Appleシリコン「M1」MacでLinux直接起動を目指す「Asahi Linux」、独自ブートローダーm1n1開発

次の記事

FortniteなどのPvP対戦ゲームで相手を叩きのめす自分の能力に賭けてお金を稼げる1v1Me

Appleシリコン「M1」MacでLinux直接起動を目指す「Asahi Linux」、独自ブートローダーm1n1開発

Kim Kulish/Corbis via Getty Images

アップル独自開発のM1チップ搭載Macは優れたパフォーマンスが開発者やユーザーから高評価を得ているものの、macOS以外のOSは公式にサポートされていません。そこでLinuxを移植して動かそうというプロジェクトの1つが「Asahi Linux」(Asahiはリンゴの品種名であるMacintoshの和名「旭」から)であり、クラウドファンディング等から資金を募って活動中です(Github)。

その主催者である個人開発者のHector Martin “marcanがブログで初めて進捗報告し、独特すぎるM1のしくみがプロジェクトをどれほど難しくしているかを説明しています。

まずAppleシリコン(M1をはじめアップル独自設計のプロセッサ)搭載Macの起動プロセスは、一般的なPCとは全く違うとのこと。どちらかというとAndroid携帯やiOS端末のような組み込みOSに近く、独自のしくみがいくつも織り込まれていると述べられています。

しかしアップルは起動プロセスを従来のインテル版Macに近づけようと色々な手段を講じており、そのために実際の動作はより複雑になっている模様です。

そのためAsahi Linuxプロジェクトは、「m1n1」なる特注ブートローダーの開発を余儀なくされました。その元になったのはニンテンドーWiiの脱獄研究の一環として作成された「mini」にあり、サードパーティ製コードを起動したり、あるいは開発用コンピュータからリアルタイムでマシンを制御できるしくみも継承されている趣旨が語られています。

そうしてm1n1を通じてアップル独自のシステムレジスタや割り込みコントローラなどハードウェアの文書化に懸命に取り組んできたとのこと。M1チップはArm64アーキテクチャではありますが、独自のシステム周りに関するドキュメントがほとんどなく、自前で分析して資料作りをすることを迫られたわけです。

興味深いのは、Appleシリコンプラットフォームに使われた技術が、どれほど古い製品に由来しているか解き明かされていることです。上記のように起動プロセスはiOS、シリアル通信に使われているUARTチップはサムスン製品、PWRficicentチップに基づくデザインはAmigaOne X1000(2010年に発売されたAmigaクローン。元々のAmigaは1985年発売)でも使われていたというぐあいです。

今後m1n1は強力な研究ツールとなるよう、機能が追加されていく予定と語られています。特に野心的な目標の1つは、その上でmacOSを起動できる非常に軽量なVM hypervisor(仮想マシンを動かすための制御プログラム)に変えて、ハードウェアへのアクセスをすべて傍受すること。これによりアップルのドライバーがどのように動作するか、1つずつ分解せずに調査できて分析が捗ると示唆されています。

このプロジェクトに先行するものとして、すでにM1 Mac上で仮想化なしに「完全に使える」CorelliumによるLinux移植もあります。が、こちらもGPUアクセラレーションは使えず、ネットワーク機能もUSB-Cドングルが必要など、まだまだ実用の域からは遠い感があります。

ほかM1 Mac向け非アップルOSとしては、Arm版Windows 10が挙げられるでしょう。仮想化アプリ上では一歩ずつ実用化に近づいている様子ですが、直接に起動できるBootCampは実現するのか、今後の展開を待ちたいところです。

(Source:Asahi Linux。via:The Register9to5MacEngadget日本版より転載)

関連記事
6.8型液晶ディスプレーも搭載、ラズパイ3対応キーボード一体型PC「DevTerm」が2021年4月発売
これからはchrootツールを使わなくてもChrome OSの上で正規にLinuxを動かせる
Microsoftが新しいIoTサービスのために独自のLinuxカーネルを作った
Apple、iOSとmacOSのARM版カーネルをオープンソース化

カテゴリー:ソフトウェア
タグ:Apple / アップル(企業)Apple M1(製品・サービス)Appleシリコン / Apple Silicon(製品・サービス)オープンソース / Open Source(用語)Linux(製品・サービス)