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

# Virtualize Linux on a Mac

Configure and run Linux guests on Apple silicon and Intel-based Mac computers.

## Discussion

Use [`VZVirtualMachineConfiguration`](/documentation/Virtualization/VZVirtualMachineConfiguration) to create a configuration that represents a specific Linux platform with the devices you want to use with your virtual machine (VM) — like [`VZVirtioSoundDeviceConfiguration`](/documentation/Virtualization/VZVirtioSoundDeviceConfiguration) or [`VZUSBKeyboardConfiguration`](/documentation/Virtualization/VZUSBKeyboardConfiguration).

You use this configuration to load a Linux kernel image from disk that — using [`VZLinuxBootLoader`](/documentation/Virtualization/VZLinuxBootLoader) — runs in a [`VZVirtualMachine`](/documentation/Virtualization/VZVirtualMachine) that you control.

For more information about running a Linux guest, including how to download kernel and RAM disk images, see [Creating and Running a Linux Virtual Machine](/documentation/Virtualization/creating-and-running-a-linux-virtual-machine). For more information about running GUI Linux virtual machines, see [Running GUI Linux in a virtual machine on a Mac](/documentation/Virtualization/running-gui-linux-in-a-virtual-machine-on-a-mac).

## Topics

### Configurations

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

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

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

The abstract class for VM start options.

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

The platform configuration for a generic Intel or ARM virtual machine.

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

The base class for a platform configuration.

### Boot loaders

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

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

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

An object that loads and configures a Linux kernel as the guest system of your VM.

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

The boot loader configuration the system uses to boot guest-operating systems that expect an Extensible Firmware Interface (EFI) ROM.

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

An object that represents the Extensible Firmware Interface (EFI) variable store that contains NVRAM variables the EFI exposes.



---

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)