<!--
{
  "documentType" : "article",
  "framework" : "Virtualization",
  "identifier" : "/documentation/Virtualization/virtualize-macos-on-a-mac",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Virtualize macOS on a Mac"
}
-->

# Virtualize macOS on a Mac

Configure and run macOS guests on Apple silicon.

## Discussion

Use the [`VZVirtualMachineConfiguration`](/documentation/Virtualization/VZVirtualMachineConfiguration) to create a [`VZMacPlatformConfiguration`](/documentation/Virtualization/VZMacPlatformConfiguration) that represents a specific macOS platform configuration ([`VZMacHardwareModel`](/documentation/Virtualization/VZMacHardwareModel), number of virtual CPUs, RAM, devices, and so on) that you want to run on your Apple silicon Mac.

The Virtualization framework provides everything you need to macOS on a VM using macOS installation images you download from Apple. Use the [`latestSupported`](/documentation/Virtualization/VZMacOSRestoreImage/latestSupported) method of [`VZMacOSRestoreImage`](/documentation/Virtualization/VZMacOSRestoreImage) to obtain the URL for the installation media used to install the latest version of macOS. Alternatively, if you’ve already downloaded a macOS release, you can construct a `VZMacOSRestoreImage` object using that file. The `mostFeaturefulSupportedConfiguration` property of a `VZMacOSRestoreImage` object specifies the requirements and recommendations that you use to configure a [`VZVirtualMachineDelegate`](/documentation/Virtualization/VZVirtualMachineDelegate) to complete this installation. After creating a `VZVirtualMachine`, use [`VZMacOSInstaller`](/documentation/Virtualization/VZMacOSInstaller) to install macOS on that virtual machine. You then use this configuration to create a bootable image that, along with a [`VZMacOSBootLoader`](/documentation/Virtualization/VZMacOSBootLoader), runs in a [`VZVirtualMachine`](/documentation/Virtualization/VZVirtualMachine) that you can control.

For more information on running macOS as a guest, see `Creating and Running a macOS Virtual Machine`.

## Topics

### Platform components

Configure macOS guests with specific hardware capabilities and unique hardware identifiers.

[`VZVirtualMachineConfiguration`](/documentation/Virtualization/VZVirtualMachineConfiguration)

The environment attributes and list of devices to use during the configuration of macOS or Linux VMs.

[`VZMacOSVirtualMachineStartOptions`](/documentation/Virtualization/VZMacOSVirtualMachineStartOptions)

A class that describes start options for macOS VMs.

[`VZMacPlatformConfiguration`](/documentation/Virtualization/VZMacPlatformConfiguration)

The platform configuration for booting macOS on Apple silicon.

[`VZPlatformConfiguration`](/documentation/Virtualization/VZPlatformConfiguration)

The base class for a platform configuration.

[`VZMacHardwareModel`](/documentation/Virtualization/VZMacHardwareModel)

A specification for the hardware elements and configurations present in a particular Mac hardware model.

[`VZMacMachineIdentifier`](/documentation/Virtualization/VZMacMachineIdentifier)

A unique identifier for a VM.

[`VZMacAuxiliaryStorage`](/documentation/Virtualization/VZMacAuxiliaryStorage)

An object that contains information the boot loader needs for booting macOS as a guest operating system.

### Boot images

Create macOS boot loaders for running macOS on Apple silicon.

[`VZMacOSBootLoader`](/documentation/Virtualization/VZMacOSBootLoader)

An object that loads and configures a boot loader for running macOS on Apple silicon as a guest system of your VM.

[`VZBootLoader`](/documentation/Virtualization/VZBootLoader)

The base class that defines the management of the initial process of the guest system.

### Installers

Create macOS installation and restoration images.

[`VZMacOSInstaller`](/documentation/Virtualization/VZMacOSInstaller)

An object you use to install macOS on the specified virtual machine.

[`VZMacOSRestoreImage`](/documentation/Virtualization/VZMacOSRestoreImage)

An object that describes a version of macOS to install on to a virtual machine.

[`VZMacOSConfigurationRequirements`](/documentation/Virtualization/VZMacOSConfigurationRequirements)

An object that describes the parameter constraints required by a specific configuration of macOS.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)