Virtualization lets you create and run virtual machines on Apple silicon and Intel Macs. You assemble a machine from configuration objects, choosing a boot loader such as VZEFIBootLoader and assembling storage, network, audio, console, graphics, and other devices through types like VZDiskImageStorageDeviceAttachment, VZBridgedNetworkDeviceAttachment, VZAudioDeviceConfiguration, VZConsoleDeviceConfiguration, and VZGraphicsDeviceConfiguration. The framework also supports directory sharing, entropy devices, and custom Virtio devices via VZDirectorySharingDevice, VZEntropyDeviceConfiguration, and VZCustomVirtioDevice, with errors surfaced through VZError. It runs on macOS.
Virtual Machines 7
Configure, instantiate, run, and observe a virtual machine and present its display.
- ClVZVirtualMachinemacOS 11.0+@abstract VZVirtualMachine represents the entire state of a single virtual machine.
- ClVZVirtualMachineConfigurationmacOS 11.0+@abstract Virtual machine configuration.
- PrVZVirtualMachineDelegatemacOS 11.0+@abstract A class conforming to the VZVirtualMachineDelegate protocol can provide methods for tracking the virtual machine state.
- ClVZVirtualMachineStartOptionsmacOS 13.0+@abstract Base class for virtual machine start options.
- ClVZMacOSVirtualMachineStartOptionsmacOS 13.0+Options that control startup behavior of a virtual machine using the macOS boot loader.
- ClVZVirtualMachineViewmacOS 12.0+@abstract A view that allows user interaction with a virtual machine.
- StVZVirtualMachineViewAdaptormacOS 27.0+A sendable wrapper that connects a ``VZVirtualMachineView`` to a virtual machine.
Boot Loaders 8
Choose how the guest operating system boots, from EFI firmware to a Linux kernel or macOS.
- ClVZBootLoadermacOS 11.0+@abstract Base class of boot loader configuration.
- ClVZEFIBootLoadermacOS 13.0+@abstract Boot loader configuration for booting guest operating systems expecting an EFI ROM.
- ClVZLinuxBootLoadermacOS 11.0+@abstract Boot loader configuration for a Linux kernel.
- ClVZMacOSBootLoadermacOS 12.0+@abstract Boot loader configuration for booting macOS on Apple Silicon.
- ClVZEFIVariableStoremacOS 13.0+The Extensible Firmware Interface (EFI) variable store.
- ClVZEFISignatureDatabaseConfigurationmacOS 27.0+A container for Unified Extensible Firmware Interface (UEFI) Secure Boot signature lists.
- ClVZEFISignatureListmacOS 27.0+A class that represents a Unified Extensible Firmware Interface (UEFI) signature list.
- EnVZEFISignaturemacOS 27.0+Constants that identify EFI signature types used in secure boot.
Platform Configuration 7
Define the hardware platform and identity of the virtual machine for generic guests and macOS guests.
- ClVZPlatformConfigurationmacOS 12.0+@abstract Base class for a platform configuration.
- ClVZGenericPlatformConfigurationmacOS 12.0+@abstract The platform configuration for a generic Intel or ARM virtual machine.
- ClVZGenericMachineIdentifiermacOS 13.0+@abstract An identifier to make a virtual machine unique.
- ClVZMacPlatformConfigurationmacOS 12.0+@abstract The platform configuration for booting macOS on Apple Silicon.
- ClVZMacMachineIdentifiermacOS 12.0+@abstract An identifier to make a virtual machine unique.
- ClVZMacHardwareModelmacOS 12.0+@abstract Describes a specific virtual Mac hardware model.
- ClVZMacAuxiliaryStoragemacOS 12.0+@abstract Mac auxiliary storage.
macOS Installation and Provisioning 5
Restore, install, and provision a macOS guest on Apple silicon.
- ClVZMacOSRestoreImagemacOS 12.0+@abstract VZMacOSRestoreImage describes a version of macOS to be installed to a virtual machine.
- ClVZMacOSInstallermacOS 12.0+@abstract VZMacOSInstaller is used to install macOS on the specified virtual machine.
- ClVZMacOSConfigurationRequirementsmacOS 12.0+@abstract VZMacOSConfigurationRequirements describes the parameter constraints required by a specific configuration of macOS.
- ClVZGuestProvisioningOptionsmacOS 27.0+The base class for guest provisioning options.
- ClVZMacGuestProvisioningOptionsmacOS 27.0+The configuration for guest setup during macOS virtual machine startup.
Storage Devices 14
Attach disk images, block devices, and USB mass storage to the virtual machine.
- ClVZStorageDevicemacOS 15.0+@abstract Class representing a storage device in a virtual machine.
- ClVZStorageDeviceConfigurationmacOS 11.0+@abstract Base class for a storage device configuration.
- ClVZStorageDeviceAttachmentmacOS 11.0+@abstract Base class for a storage device attachment.
- ClVZDiskImageStorageDeviceAttachmentmacOS 11.0+@abstract Storage device attachment using a disk image to implement the storage.
- ClVZDiskBlockDeviceStorageDeviceAttachmentmacOS 14.0+@abstract Storage device attachment using a disk block device to store data.
- ClVZNetworkBlockDeviceStorageDeviceAttachmentmacOS 14.0+@abstract Storage device attachment backed by a Network Block Device (NBD) client.
- PrVZNetworkBlockDeviceStorageDeviceAttachmentDelegatemacOS 14.0+@abstract A class conforming to VZNetworkBlockDeviceStorageDeviceAttachmentDelegate can provide
- ClVZVirtioBlockDeviceConfigurationmacOS 11.0+@abstract Configuration of a paravirtualized storage device of type Virtio Block Device.
- ClVZNVMExpressControllerDeviceConfigurationmacOS 14.0+@abstract Configuration of an NVM Express Controller storage device.
- ClVZUSBMassStorageDevicemacOS 15.0+@abstract Class representing a hot-pluggable USB Mass Storage device.
- ClVZUSBMassStorageDeviceConfigurationmacOS 13.0+@abstract Configuration of a USB Mass Storage storage device.
- EnVZDiskImageCachingModemacOS 12.0+@enum VZDiskImageCachingMode
- EnVZDiskImageSynchronizationModemacOS 12.0+Constants that specify how disk image writes are synchronized to storage.
- EnVZDiskSynchronizationModemacOS 14.0+Constants that specify how disk writes are synchronized to the backing store.
Network Devices 10
Add network interfaces and connect them to the host through NAT, bridged, vmnet, or file-handle attachments.
- ClVZNetworkDevicemacOS 12.0+@abstract Class representing a network device in a virtual machine.
- ClVZNetworkDeviceConfigurationmacOS 11.0+@abstract Base class for a network adapter configuration.
- ClVZNetworkDeviceAttachmentmacOS 11.0+@abstract Base class for a network device attachment.
- ClVZVirtioNetworkDeviceConfigurationmacOS 11.0+@abstract Configuration of a paravirtualized network device of type Virtio Network Device.
- ClVZNATNetworkDeviceAttachmentmacOS 11.0+@abstract Network device attachment using network address translation (NAT) with outside networks.
- ClVZBridgedNetworkDeviceAttachmentmacOS 11.0+@abstract Network device attachment bridging a host physical interface with a virtual network device.
- ClVZBridgedNetworkInterfacemacOS 11.0+@abstract Define a network interface that bridges a physical interface with a virtual machine.
- ClVZVmnetNetworkDeviceAttachmentmacOS 26.0+@abstract Network device attachment that allows custom network topology.
- ClVZFileHandleNetworkDeviceAttachmentmacOS 11.0+@abstract Network device attachment sending raw network packets over a file handle.
- ClVZMACAddressmacOS 11.0+@abstract VZMACAddress represents a media access control address (MAC address), the 48-bit ethernet address.
Graphics and Display 13
Configure graphics devices and displays for both Virtio and Mac graphics stacks.
- ClVZGraphicsDevicemacOS 14.0+@abstract Class representing a graphics device in a virtual machine.
- ClVZGraphicsDeviceConfigurationmacOS 12.0+An abstract base class that configures a graphics device for a virtual machine.
- ClVZGraphicsDisplaymacOS 14.0+@abstract Class representing a graphics display in a virtual machine.
- ClVZGraphicsDisplayConfigurationmacOS 14.0+@abstract Base class for a graphics display configuration.
- PrVZGraphicsDisplayObservermacOS 14.0+@abstract VZGraphicsDisplayObserver observes a VZGraphicsDisplay for state changes.
- ClVZVirtioGraphicsDevicemacOS 14.0+@abstract A Virtio graphics device.
- ClVZVirtioGraphicsDeviceConfigurationmacOS 13.0+@abstract Configuration for a Virtio graphics device.
- ClVZVirtioGraphicsScanoutmacOS 14.0+@abstract Class representing a Virtio graphics device scanout.
- ClVZVirtioGraphicsScanoutConfigurationmacOS 13.0+@abstract Configuration for a scanout attached to a Virtio graphics device.
- ClVZMacGraphicsDevicemacOS 14.0+@abstract A Mac graphics device.
- ClVZMacGraphicsDeviceConfigurationmacOS 12.0+@abstract Configuration for a Mac graphics device.
- ClVZMacGraphicsDisplaymacOS 14.0+@abstract Class representing a virtual Mac graphics display.
- ClVZMacGraphicsDisplayConfigurationmacOS 12.0+@abstract Configuration for a display attached to a Mac graphics device.
Input Devices 6
Add keyboard, pointing, and trackpad input devices for the virtual machine.
- ClVZKeyboardConfigurationmacOS 12.0+@abstract Base class for a keyboard configuration.
- ClVZUSBKeyboardConfigurationmacOS 12.0+@abstract Configuration for a USB keyboard.
- ClVZMacKeyboardConfigurationmacOS 14.0+@abstract Configuration for a Mac keyboard.
- ClVZPointingDeviceConfigurationmacOS 12.0+@abstract Base class for a pointing device configuration.
- ClVZUSBScreenCoordinatePointingDeviceConfigurationmacOS 12.0+@abstract Configuration for a USB pointing device that reports absolute coordinates.
- ClVZMacTrackpadConfigurationmacOS 13.0+@abstract Configuration for a Mac trackpad.
Audio Devices 9
Configure sound devices with host-backed input and output stream sources and sinks.
- ClVZAudioDeviceConfigurationmacOS 12.0+@abstract Base class for an audio device configuration.
- ClVZVirtioSoundDeviceConfigurationmacOS 12.0+@abstract Virtio Sound Device Configuration.
- ClVZVirtioSoundDeviceStreamConfigurationmacOS 12.0+@abstract Virtio Sound Device Stream Configuration.
- ClVZVirtioSoundDeviceInputStreamConfigurationmacOS 12.0+@abstract Virtio Sound Device Input Stream Configuration.
- ClVZVirtioSoundDeviceOutputStreamConfigurationmacOS 12.0+@abstract Virtio Sound Device Output Stream Configuration.
- ClVZAudioInputStreamSourcemacOS 12.0+@abstract Base class for an audio input stream source.
- ClVZAudioOutputStreamSinkmacOS 12.0+@abstract Base class for an audio output stream sink.
- ClVZHostAudioInputStreamSourcemacOS 12.0+@abstract Host audio input stream source provides audio from the host system's default input device.
- ClVZHostAudioOutputStreamSinkmacOS 12.0+@abstract Host audio output stream sink plays audio to the host system's default output device.
Console and Serial Ports 16
Attach console and serial port devices backed by files, file handles, or the SPICE agent.
- ClVZConsoleDevicemacOS 13.0+@abstract Class representing a console device in a virtual machine.
- ClVZConsoleDeviceConfigurationmacOS 13.0+@abstract Base class for a console device configuration.
- ClVZConsolePortConfigurationmacOS 13.0+@abstract Base class for a console port configuration.
- ClVZVirtioConsoleDevicemacOS 13.0+@abstract Class representing a Virtio console device in a virtual machine.
- ClVZVirtioConsoleDeviceConfigurationmacOS 13.0+@abstract Virtio Console Device
- PrVZVirtioConsoleDeviceDelegatemacOS 13.0+@abstract Delegate object for VZVirtioConsoleDevice.
- ClVZVirtioConsoleDeviceSerialPortConfigurationmacOS 11.0+@abstract Virtio Console Serial Port Device
- ClVZVirtioConsolePortmacOS 13.0+@abstract Class representing a Virtio console port in a virtual machine.
- ClVZVirtioConsolePortArraymacOS 13.0+@abstract Virtio Console Port Array
- ClVZVirtioConsolePortConfigurationmacOS 13.0+@abstract Virtio Console Port
- ClVZVirtioConsolePortConfigurationArraymacOS 13.0+@abstract Virtio Console Port Configuration Array
- ClVZSerialPortConfigurationmacOS 11.0+@abstract Base class for a serial port configuration.
- ClVZSerialPortAttachmentmacOS 11.0+@abstract Base class for a serial port attachment.
- ClVZFileSerialPortAttachmentmacOS 11.0+@abstract File serial port attachment.
- ClVZFileHandleSerialPortAttachmentmacOS 11.0+@abstract File handle serial port attachment.
- ClVZSpiceAgentPortAttachmentmacOS 13.0+A console port attachment that connects to the SPICE agent for clipboard and other integration.
Directory Sharing 10
Share host directories with the guest through Virtio file system devices, including Rosetta support.
- ClVZDirectorySharingDevicemacOS 12.0+@abstract Base class representing a directory sharing device in a virtual machine.
- ClVZDirectorySharingDeviceConfigurationmacOS 12.0+@abstract Base class for a directory sharing device configuration.
- ClVZVirtioFileSystemDevicemacOS 12.0+@abstract Virtio File System Device
- ClVZVirtioFileSystemDeviceConfigurationmacOS 12.0+@abstract Configuration of a Virtio file system device.
- ClVZDirectorySharemacOS 12.0+@abstract Base class for a directory share.
- ClVZSingleDirectorySharemacOS 12.0+@abstract Directory share for a single directory.
- ClVZMultipleDirectorySharemacOS 12.0+@abstract Directory share for multiple directories.
- ClVZSharedDirectorymacOS 12.0+@abstract A directory on the host that can be exposed to a guest.
- ClVZLinuxRosettaDirectorySharemacOS 13.0+@abstract Directory share to enable Rosetta support for Linux binaries.
- EnVZLinuxRosettaAvailabilitymacOS 13.0+@abstract Availability of Rosetta support for Linux binaries.
USB Controllers and Devices 8
Configure USB controllers and attach or pass through USB devices.
- ClVZUSBControllermacOS 15.0+@abstract Class representing a USB controller in a virtual machine.
- ClVZUSBControllerConfigurationmacOS 15.0+@abstract Base class for a USB Controller configuration.
- ClVZXHCIControllermacOS 15.0+@abstract Class representing a USB XHCI controller in a virtual machine.
- ClVZXHCIControllerConfigurationmacOS 15.0+@abstract Configuration for the USB XHCI controller.
- PrVZUSBDevicemacOS 15.0+@abstract Protocol representing a USB Device in a virtual machine.
- PrVZUSBDeviceConfigurationmacOS 15.0+@abstract Protocol for USB Device configuration.
- ClVZUSBPassthroughDevicemacOS 27.0+@abstract Class representing a USB passthrough device.
- ClVZUSBPassthroughDeviceConfigurationmacOS 27.0+@abstract Configuration of a VZUSBPassthroughDevice.
Memory, Sockets, and Entropy 14
Add memory balloon, Virtio socket, and entropy devices for guest resource management and communication.
- ClVZMemoryBalloonDevicemacOS 11.0+@abstract Base class representing a memory balloon device in a virtual machine.
- ClVZMemoryBalloonDeviceConfigurationmacOS 11.0+@abstract Base class for a memory balloon device configuration.
- ClVZVirtioTraditionalMemoryBalloonDevicemacOS 11.0+@abstract Virtio Traditional Memory Balloon Device
- ClVZVirtioTraditionalMemoryBalloonDeviceConfigurationmacOS 11.0+@abstract Configuration of the Virtio traditional memory balloon device.
- ClVZGuestMemoryMappingmacOS 27.0+An object that represents a chunk of the guest operating system's dynamic random access memory (DRAM).
- ClVZSocketDevicemacOS 11.0+@abstract Base class representing a socket device in a virtual machine.
- ClVZSocketDeviceConfigurationmacOS 11.0+@abstract Base class for a socket device configuration.
- ClVZVirtioSocketDevicemacOS 11.0+@abstract Virtio Socket Device
- ClVZVirtioSocketDeviceConfigurationmacOS 11.0+@abstract Configuration of the Virtio socket device.
- ClVZVirtioSocketConnectionmacOS 11.0+@abstract The VZVirtioSocketConnection object represents a Virtio socket device's connection.
- ClVZVirtioSocketListenermacOS 11.0+@abstract The VZVirtioSocketListener object represents a listener for the Virtio socket device.
- PrVZVirtioSocketListenerDelegatemacOS 11.0+@abstract Delegate object for VZVirtioSocketListener.
- ClVZEntropyDeviceConfigurationmacOS 11.0+@abstract Base class for an entropy device configuration.
- ClVZVirtioEntropyDeviceConfigurationmacOS 11.0+@abstract Virtio Entropy Device
Custom Virtio Devices 13
Implement and provide custom Virtio devices with their queues, features, and shared memory regions.
- ClVZCustomVirtioDevicemacOS 27.0+An interface that represents a custom Virtio device that you provide the implementation for.
- ClVZCustomVirtioDeviceConfigurationmacOS 27.0+An object that defines a custom Virtio Device configuration.
- ClVZCustomVirtioDeviceProvidermacOS 27.0+A base class that describes the provider of a custom Virtio device.
- ClVZCustomVirtioDeviceDelegateProvidermacOS 27.0+A custom Virtio Device provider for devices that implement a custom Virtio device configuration delegate.
- PrVZCustomVirtioDeviceConfigurationDelegatemacOS 27.0+A class that conforms to the custom Virtio device configuration delegate protocol that can provide methods
- PrVZCustomVirtioDeviceDelegatemacOS 27.0+A delegate protocol that defines the methods you implement to respond to the life cycle events of a custom Virtio device.
- ClVZVirtioDeviceSpecificConfigurationmacOS 27.0+The device-specific configuration for a Virtio device
- ClVZVirtioQueuemacOS 27.0+A Virtio queue.
- ClVZVirtioQueueElementmacOS 27.0+A unit of work on a Virtio queue, also known as a descriptor chain.
- ClVZVirtioFeatureSetmacOS 27.0+Values that represent a set of Virtio feature bits.
- ClVZNegotiatedVirtioFeatureSetmacOS 27.0+Values that represent a set of negotiated Virtio feature bits.
- ClVZVirtioSharedMemoryRegionmacOS 27.0+A class that represents a Virtio shared memory region for a custom Virtio device in a virtual machine.
- ClVZVirtioSharedMemoryRegionConfigurationmacOS 27.0+The configuration of a Virtio shared memory region.
Errors 1
Errors reported by the Virtualization framework.
- StVZErrormacOS 11.0+An error reported by the Virtualization framework.