IntelからApple silicon(ARM)へ、macOSの仮想化事情

2020年から実施されたIntelからApple silicon(macOS for ARM)へのアーキテクチャーの移行に際して、多大な影響を受けた分野の一つとして仮想化が挙げられる。20世紀の終盤にVMware(現VMware by Broadcom)が切り開いたx86ベースの仮想化テクノロジーは、Intel Macのスタート時には既にナレッジが蓄積されており、2006年の1月に第1弾となる「Mac Book Pro」「iMac」がリリースされた3ヶ月後(Apple純正デュアルブート支援ツール「Boot Camp Beta」が公開された翌日)には、その草分けとなり現在もアップデートを継続している「Parallels Desktop for Mac」のBeta版(パブリックベータ)が公開された。

Parallelsに引き続き、VMware、InnoTek、Veertu等も後に続く

CPU仮想化支援「Intel VT-x(Intel Virtualization Technology)」によるアクセラレーションを追い風に、その後も「VMware Fusion」「InnoTek VirtualBox(現「Oracle VM VirtualBox」)」「Citrix XenClient」が追従してマーケット全体を底上げした後、ホストとなるmacOSが「OS X Yosemite(OS X 10.10)」において「hypervisor.framework」を実装し、これを利用する新興勢力として「Veertu Desktop」「xhyve」等も登場した。

「Guest Add-ons」をインストール
2010年台にリリースされていた「Veertu」は「hypervisor.framework」とサンドボックスモデルに対応し、「Mac App Store」を通じて提供されていた。「Windows 7 Enterprise Edition Service Pack 1(ゲストOS)」on「Veertu 2016 Business 1.1.6」on「macOS Sierra(macOS 10.12)」

また、「hypervisor.framework」上に構築された「HyperKit」は、依存関係を伴わすしてユーザー空間全体を制御可能なハイパーバイザーとして実装された。これによって、従来までは「Oracle VM VirtualBox」のハイパーバイザーにおいてコンテナランタイムを実行していた「Docker for Mac」は、その軸足をmacOSの「hypervisor.framework」と「HyperKit」に移行させている。

「macOS Big Sur(macOS 11)」で実装された「Virtualization.framework」

2020年11月にリリースされた「macOS Big Sur(macOS 11)」においては仮想化テクノロジーが更なる進化を遂げ、仮想マシンを作成可能な高レベルのAPIとして「Virtualization.framework」が実装された。

これによって、サードパーティベンダーは、開発コストと工数を要するハイパーバイザーの実装をmacOSに依存する事が可能となり、フロントエンドに相当するGUIクライアントの開発のみで仮想化ソフトウェアを提供する事が可能となった。この成果は、Apple Silicon(Apple M1、Apple M2)への移行後も「UTM Virtual machines for Mac」「virtualOS」「VirtualBuddy」等の仮想化ソフトウェアを生み出すに至っている他、「Parallels Desktop 17 for Mac」以降では、「Virtual Machine Configuration(仮想マシン構成)」において、Parallels製のハイパーバイザーの他にApple製のハイパーバイザーを指定する事も可能となっている。

尚、Apple Inc.とParallels International GmbHはハイパーバイザーの開発において密に連携しており、Parallelsのハイパーバイザーのコードは、将来的にはmacOSの「Virtualization.framework」にマージされる形で開発が進められているのではないかと推察されている。これは、2009年に「Parallels Desktop for Windows/Linux」の開発を終了してマルチプラットフォームへの対応を捨て、macOSに特化したハイパーバイザーの開発に尽力してきたParallelsならではの成果と言えるだろう。

そしてApple Silicon(Apple M1)へ

そして米国時間2021年4月15日、先鞭を付けたParallelsは「Parallels Desktop 16.5.0」においてApple Silicon(Apple M1)への対応を果たした。例年だと年次にアップグレードを行うParallelsだが、この年ばかりは冬場にBetaテストを開始して、4月にGA版をリリースするという変則的なスケジュールをとった。バージョン番号的にはアップデートに相当するが、実質的にはアップグレードに近いリリースと言え、サブスクリプションユーザーにとっては満足度の高い年であったと言える。

そこから遅れること2年半、米国時間2023年10月19日に「VMware Fusion 13.5.0」がリリースされ、Intel、Apple Silicon(Apple M1、Apple M2)の両アーキテクチャーにおいてネイティブ実行可能な「Universal Binary(Universal 2 Binary)」として提供された。

マルチプラットフォーム対応の「Oracle VM VirtualBox」は第一歩を踏み出す

一方で、単一のハイパーバイザーからGUIの切り分けによってマルチプラットフォーム化を実現している「Oracle VM VirtualBox」は事情が異なる。2007年から提供されているx86-64版は、プラットフォーム毎の行き過ぎた分岐を防ぐために、全ての版のハイパーバイザーが同一のソースコードからビルドされているが、アーキテクチャーの異なるmacOS(AArch64)ホストだけは、独立した別のブランチにて開発が行われている。

CPUエミュレーター「QEMU」をコードベースに含む「Oracle VM VirtualBox」ならではのアプローチとして、x86-64ベースのゲストOSを実行可能とするエミュレーションモードの実装も示唆されているが、開発リソースの不足もあってか苦戦を強いられていた。

しかしながら、米国時間2024年7月25日に「Oracle VM VirtualBox 7.1 Beta 1」を公開し、そこで「AArch64」に対応したバイナリーもリリースして第一歩を踏み出した形となった。

macOSホストは「Parallels Desktop for Mac」「VMware Fusion」のような「Universal 2 Binary」ではなく、各アーテクチャーに向けたバイナリー(OSX.dmg、macOSAArch64.dmg)が個別に提供されており、当該時点において実行可能なゲストOSはLinuxに限定されているが、大きな進捗を得る事ができたのは確かであろう。

「VirtualBox 7.1」のAboutスクリーン
「Oracle VM VirtualBox 7.1」のAboutスクリーン