Build virtualization solutions on top of a lightweight hypervisor, without the need for third-party kernel extensions.
Language
- Swift
- Objective-C
SDK
- macOS 10.10+
Overview
The Hypervisor framework provides C APIs for interacting with virtualization technologies in user-space, without the need for writing kernel extensions (KEXTs). As a result, apps created using this framework are suitable for distribution on the Mac App Store.
Hardware-facilitated virtual machines (VMs) and virtual processors (vCPUs) can be created and controlled by an entitled sandboxed user space process, the hypervisor client. The Hypervisor framework abstracts virtual machines as tasks and virtual processors as threads.
Requirements
The Hypervisor framework has the following requirements:
Entitlements
A sandboxed user space process must have the com
entitlement in order to use Hypervisor APIs.
Supported Hardware
Generally, machines with an Intel VT-x feature set that includes Extended Page Tables (EPT) and Unrestricted Mode are supported. You can determine the availability of Hypervisor APIs on a particular machine at runtime with the sysctl(8)
command, passing kern
as an argument.
Example VM Life Cycle
The following figure illustrates a simplified life cycle of creating and running a virtual machine with one or more virtual CPUs using the Hypervisor Framework API.