Hypervisor.framework

Appleが提供するmacOS向けの低レベル仮想化API。サードパーティ製カーネル拡張(kext)なしに、CPU・メモリの仮想化機能をユーザー空間から利用できるようにする。KVMのmacOS版に相当する、仮想化スタックの最下層。 #virtualization #macos

API

  • hv_vm_createでVMを作成、hv_vm_mapでゲストにメモリを割り当て、hv_vcpu_create/hv_vcpu_runでvCPUを生成・実行するという、意図的にミニマルな一連のC API群
  • デバイスエミュレーションは一切提供しない。VMM実装者がvirtio等のデバイスモデルを自前で用意する必要がある
  • 利用にはcom.apple.security.hypervisorエンタイトルメントが必要
  • Intel Mac・Apple Silicon Mac双方に対応しており、Intel Mac時代のDocker Desktopなどの仮想化基盤としても使われてきた

KVMとの比較

KVMがioctl呼び出しでカーネルのデバイスファイルを操作する設計であるのに対し、Hypervisor.frameworkはクリーンなC関数群として提供される。低レベル・ミニマルという設計思想は共通しており、libkruncrosvmCloud Hypervisorなど、KVMベースのVMMをmacOSへ移植する際のバックエンドとしてよく使われる。

Virtualization.frameworkとの違い

Appleはより高レベルのAPIとしてVirtualization.frameworkも別途提供している。Hypervisor.frameworkがCPU/メモリ仮想化のみを扱う低レベルAPIであるのに対し、Virtualization.frameworkはデバイスモデルやゲストOSブートまで含めてmacOS/Linuxの仮想マシンを丸ごと作成できる高レベルAPI。libkrunのような軽量VMMは、デバイスモデルを自前で持つため低レベルなHypervisor.frameworkの方を土台として選ぶ。

出典

作成日時: 2026-08-17 20:26 / 更新日時: 2026-08-17 20:26