「macOS Ventura」のVirtualizationフレームワークと「Rosetta 2」

世界開発者会議「WWDC 2022(Worldwide Developers Conference 2022)」における「Create macOS or Linux virtual machines」セッションでは、今秋にリリース予定とされる、Appleによる次世代デスクトップオペレーティングシステム「macOS Ventura(macOS 13)」の仮想化機能のアップデートについて詳細に語られていますので、その内容等を簡単に纏めてみたいと思います。

「Rosetta 2」を介して、Apple Silicon上のLinux(ARM)において、x86-64(Intel)のLinuxバイナリーを実行可能

「macOS Ventura(macOS 13)」のVirtualization.Frameworkも「macOS Bug Sur(macOS 11)」「macOS Monterey(macOS 12)」と同様に、Hypervisor.frameworkをバックエンドとした仮想化のためのAPIとして実装されます。

最も大きな機能強化として、Apple Silicon(Apple M1、Apple M2)アーキテクチャーで実行される「macOS Ventura(macOS 13)」のVirtualization.framework(そこで、ゲストOSとして実行されるLinux(ARM))では、ハイパーバイザーレベルでも、Intel Macとの互換に向けて構築されたバイナリートランスレーター「Rosetta 2」がサポートされます。

※「Rosetta 2」は、Apple Silicon(Apple M1、Apple M2)アーキテクチャーにおいて、x86-64インストラクションを含むアプリケーションをシームレスに実行可能とする翻訳プロセスです。

この「Rosetta 2」を介して、Apple SiliconでゲストOSとして実行されるLinux(ARM)において、Intelアーキテクチャーのバイナリー(x86-64 Linux binaries)を実行する事が可能となります。

IntelベースのOSを丸ごと動かせる訳ではない

前述のバイナリートランスレーター「Rosetta 2」では、Kernel Extension(カーネル拡張)、及びx86-64ベースの仮想マシン、仮想化ソフトウェアはサポートされない伝えられている事から、Apple SiliconベースのMacコンピューターでは、(「Rosetta 2」を介しても)IntelアーキテクチャーのLinuxディストリビューション(OS)のインストール、及びブートストラップはサポートされません。

つまり、エミュレーターとしての機能(命令セットのエミュレーション)が提供されない限り、Intel Macに向けた仮想化ソフトウェアにて作成されたx86-64ベースの仮想マシン(ゲストOS)は、Apple Siliconアーキテクチャーでは動作しない前提となります。