---
title: Virtualization
framework: virtualization
role: collection
role_heading: Framework
platforms: [macOS 11.0+]
path: virtualization
---

# Virtualization

Create virtual machines and run macOS and Linux-based operating systems.

## Mentioned in

Creating and Running a Linux Virtual Machine

## Overview

Overview The Virtualization framework provides high-level APIs for creating and managing virtual machines (VM) on Apple silicon and Intel-based Mac computers. Use this framework to boot and run macOS or Linux-based operating systems in custom environments that you define. The framework supports the Virtual I/O Device (VIRTIO) specification, which defines standard interfaces for many device types, including network, socket, serial port, storage, entropy, and memory-balloon devices. To set up a VM, configure a VZVirtualMachineConfiguration. If you’re creating a macOS guest also configure a VZMacPlatformConfiguration, and then add the devices you want to expose to the guest operating system. Then, create a VZVirtualMachineConfiguration object with your configuration data, and use that VM object to start, pause, and resume the VM environment. To interact with the guest, you create a VZVirtualMachineView with the VZVirtualMachine object to display and interact with the graphical content in a window.

## Topics

### Essentials

- [Adding the Virtualization Entitlement to Your Project](virtualization/adding-the-virtualization-entitlement-to-your-project.md)
- [com.apple.security.virtualization](bundleresources/entitlements/com.apple.security.virtualization.md)
- [Using iCloud with macOS virtual machines](virtualization/using-icloud-with-macos-virtual-machines.md)

### Virtual machine setup

- [Running macOS in a virtual machine on Apple silicon](virtualization/running-macos-in-a-virtual-machine-on-apple-silicon.md)
- [Running Linux in a Virtual Machine](virtualization/running-linux-in-a-virtual-machine.md)
- [Running GUI Linux in a virtual machine on a Mac](virtualization/running-gui-linux-in-a-virtual-machine-on-a-mac.md)
- [Installing macOS on a Virtual Machine](virtualization/installing-macos-on-a-virtual-machine.md)
- [Creating and Running a Linux Virtual Machine](virtualization/creating-and-running-a-linux-virtual-machine.md)
- [Virtualize macOS on a Mac](virtualization/virtualize-macos-on-a-mac.md)
- [Virtualize Linux on a Mac](virtualization/virtualize-linux-on-a-mac.md)
- [Running Intel Binaries in Linux VMs](virtualization/running-intel-binaries-in-linux-vms.md)
- [Accelerating the performance of Rosetta](virtualization/accelerating-the-performance-of-rosetta.md)

### Runtime

- [VZVirtualMachine](virtualization/vzvirtualmachine.md)
- [VZVirtualMachineView](virtualization/vzvirtualmachineview.md)
- [VZLinuxRosettaDirectoryShare](virtualization/vzlinuxrosettadirectoryshare.md)

### Devices

- [Audio](virtualization/audio.md)
- [Graphics](virtualization/graphics.md)
- [Keyboards and pointing devices](virtualization/keyboards-and-pointing-devices.md)
- [Memory](virtualization/memory.md)
- [Network](virtualization/network.md)
- [Randomization](virtualization/randomization.md)
- [Serial ports](virtualization/serial-ports.md)
- [Shared directories](virtualization/shared-directories.md)
- [Sockets](virtualization/sockets.md)
- [Storage](virtualization/storage.md)
- [Consoles](virtualization/consoles.md)
- [Clipboard sharing](virtualization/clipboard-sharing.md)
- [USB Devices](virtualization/usb-devices.md)
- [Custom Virtio drivers](virtualization/custom-drivers.md)

### Enumerations

- [Virtualization enumerations](virtualization/virtualization-enumerations.md)

### Errors

- [VZErrorDomain](virtualization/vzerrordomain.md)
- [VZError](virtualization/vzerror.md)
