Virtualization.framework

Appleが提供する、macOS/Linuxの仮想マシンをまるごと作成・起動・管理できる高レベルな仮想化API。macOS 11以降で利用可能。Apple Silicon Mac・Intel Mac双方に対応する。

Hypervisor.frameworkとの違い

Hypervisor.frameworkがCPU・メモリの仮想化のみを扱う低レベルAPI(デバイスエミュレーションなし)であるのに対し、Virtualization.frameworkはデバイスモデル・ゲストOSのブートまで含めてVMを丸ごと構築できる高レベルAPI。VZVirtualMachineConfigurationでメモリ量・CPU数・デバイス構成を定義し、VZVirtualMachineオブジェクトでVMの起動・操作を行う、という2種類のオブジェクトで構成される。デバイスはvirtio(VIRTIO)仕様のネットワーク・ソケット・シリアルポート・ストレージ・entropy・memory-balloonデバイスをサポートする。

制約

  • 圧縮されたLinuxカーネルイメージを直接ブートすることができない。EFI zboot形式などで圧縮されたカーネルを使う場合、呼び出し側が事前に展開する必要がある
  • サードパーティアプリにはcom.apple.private.virtualizationエンタイトルメントが付与されないため、VM状態のスナップショット保存・復元機能は利用できない(APIの検証自体は通っても、実行時にVZErrorInternalで失敗する)
  • Objective-C/Swiftのオブジェクトが!Send + !Sync(スレッドセーフでない)扱いのため、VMに対する呼び出し・完了ハンドラは単一のシリアルDispatchQueue上で実行する必要がある

利用例

Hypemancracklingなど、Linux上のFirecracker/Cloud Hypervisor/QEMUとmacOS上のVirtualization.frameworkを統一APIで切り替えられるようにするマルチプラットフォームなVM実行基盤のmacOS側バックエンドとして採用されている。

出典

#virtualization #macos

作成日時: 2026-08-21 21:23 / 更新日時: 2026-08-21 21:23