explaingit

utmapp/utm

📈 Trending34,114SwiftAudience · developerComplexity · 4/5ActiveLicenseSetup · hard

TLDR

Run full operating systems like Windows and Linux on your Mac or iPad using a native app built on QEMU. No extra hardware needed.

Mindmap

mindmap
  root((UTM))
    What it does
      Run Windows on Mac
      Run Linux on iPad
      Emulate 30+ CPU types
      Full OS virtualization
    How it works
      Built on QEMU
      Hardware acceleration on Mac
      Native Swift interface
      JIT workarounds for iOS
    Use cases
      Test server configs
      Run Windows apps
      Learn operating systems
      Development environments
    Tech stack
      Swift
      QEMU
      Objective-C
      Hypervisor.framework

Things people build with this

USE CASE 1

Test Linux server configurations and deployments on your Mac without a separate machine.

USE CASE 2

Run Windows-only software and applications on macOS or iPad.

USE CASE 3

Learn and experiment with different operating systems without purchasing additional hardware.

USE CASE 4

Set up isolated development environments for testing code across multiple OS platforms.

Tech stack

SwiftQEMUObjective-CHypervisor.frameworkVirtualization.framework

Getting it running

Difficulty · hard Time to first run · 1day+

Requires building from source with Swift/Xcode, QEMU integration, and macOS-specific hypervisor frameworks; non-trivial compilation and OS image setup.

Use freely for any purpose including commercial. Keep the notice and disclose changes to the patent grant.

In plain English

UTM is a virtual machine and system emulator application for iPhones, iPads, and Macs that lets you run operating systems like Windows, Linux, and others directly on Apple hardware. Think of it as a way to have a full second computer running inside your existing device, you can run a Windows desktop on your Mac, or a Linux server on your iPad, without any separate physical machine. UTM is built on top of QEMU, a well-established open-source emulator that has been around for decades. QEMU handles the low-level simulation of hardware, it emulates CPUs, memory management, graphics cards, USB devices, and other components, while UTM provides a polished native user interface designed for macOS and iOS that makes creating, configuring, and running virtual machines as approachable as managing files. On Mac, UTM can take advantage of Apple's hardware virtualization frameworks (Hypervisor.framework and Virtualization.framework on macOS 12+), which allows it to run virtual machines at near-native speed rather than having to simulate every instruction in software. On iPhone and iPad, running a full emulator is more constrained because iOS normally prohibits apps from generating code at runtime (a technique called JIT compilation that is critical for emulator performance). UTM works around this through various methods depending on your iOS version, or via UTM SE, a slower but restriction-free variant that works on any device without jailbreaking. Over 30 CPU architectures are supported including x86_64 (standard PC), ARM64, and RISC-V. You would use UTM when you need to run software that requires a different operating system, testing Linux server configurations on your Mac, running Windows-only applications, or experimenting with operating systems without buying extra hardware. The app is written in Swift with an Objective-C backend and is free and open-source.

Copy-paste prompts

Prompt 1
How do I set up a Linux virtual machine on my Mac using UTM to test server configurations?
Prompt 2
What are the steps to install Windows on an iPad using UTM, and what are the performance limitations?
Prompt 3
Show me how to configure a UTM virtual machine with custom CPU and memory settings for optimal performance.
Prompt 4
How does UTM handle JIT compilation restrictions on iOS, and what's the difference between UTM and UTM SE?
Prompt 5
I want to run a specific Windows application on my Mac, walk me through creating and configuring a Windows VM in UTM.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.