How to use UTM to run almost any version of macOS — even very old ones

By Chip Loder

UTM is a cross-platform emulator that allows you to run macOS, Windows, or Linux. Here's how to use it to run very old versions of Apple's Mac operating system.

UTM emulator

There are a variety of emulators and virtualization apps for macOS which allow you to run other operating systems on your Mac. The most well known of these are Oracle's VirtualBox, Parallels Desktop, and Broadcom's VMWare.

But there's another great free OS emulator for macOS called UTM.

UTM lets you run virtually any version of macOS, Microsoft Windows, Linux, and more on your Mac. All with a minimum of fuss and hassle.

Free and open source

UTM is a free and open-source virtualize and emulator which lets you run other operating systems on your Mac. It can do so in either native or emulated mode.

There's also a version for running iOS and iPadOS that supports over thirty CPU architectures including x86, ARM64, RISC-V, PowerPC, SPARC, and more.

UTM has a GitHub page for the sources, but there's also a higher-end paid version on the Mac App Store ($9.99).

UTM for iPadOS.

Based on QEMU

UTM uses several open-source emulation frameworks internally from the QEMU app, but UTM is much easier to use and provides a slicker interface. QEMU is also open source.

QEMU has been around for a while but is slightly more complex and harder to install and configure than UTM.

More features

UTM also offers additional features making it an even more attractive emulation choice:

    SPICE display support

    Java JIT and TCG compilation

    iOS 11+ support

    Run headless servers from Terminal

    Run UTM servers from your Mac to iOS

    Shared file and clipboard support

    Supports most input devices including Apple Pencil

SPICE and Java

UTM uses the SPICE graphics display technology from Linux vendor Red Hat. SPICE provides high-performance graphics both locally and across networks.

SPICE also provides GTK cross-platform widgets (spice-gtk) which can be embedded in other windows and apps if the app supports the GTK+ C-language framework.

Additional GTK libraries such as GTK Scene Graph Kit and GDK are used by UTM.

By supporting GTK+, UTM is able to provide maximum compatibility with other operating systems and other networked windowing systems. This includes Wayland or even the now mostly defunct X11 UNIX windowing system from the 1980s.

Oracle/Sun's Solaris OS uses the X Window systen, for example.

UTM can even run older versions of Solaris based on the SPARC CPU architecture in emulation.

SPICE is very performant and allows fast rendering of emulated windows and displays on many operating systems and graphics devices. GTK and GTK+ have been around for decades and many popular apps use them, such as Google Earth.

UTM also supports the Java language and uses a Just-In-Time (JIT) compiler called TCG (Tiny Code Generator) which QEMU uses.

Java has been around for decades and works via its own Java Virtual Machine (JVM) which allows Java to work on any computer which can run a JVM. Java is a quasi-interpreted language that can run both uncompiled and compiled Java code.

The advantage of Java is that code can be loaded and compiled on the fly at runtime. This makes it compatible with many CPU architectures, as opposed to compiled code which runs on only one CPU architecture.

One downside with Java is tha JIT code runs slightly slower due to the fact that it has to be compiled at runtime when an app is launched.

Nevertheless, you won't notice much of a delay on modern hardware with most OSes running in UTM.

UTM Server

UTM also supports a server mode in which you can run emulated OS'es from the command line on a remote machine. You can then connect to the server and use the emulated OS on a client computer.

In these cases, UTM can actually be faster because the server can be run on much higher-end hardware for performance.

UTM Server also allows you to broadcast emulators running on your Mac in UTM to the companion UTM Remote app on an iOS or iPadOS device using Apple's Bonjour network discovery protocol.

UMT's server mode window.

In theory, you could run UTM on performant cloud services such as AWS or Google Cloud (which have better hardware than you do) and then connect to them from your (relatively lower-end) Mac - and still get good performance.

In the server use case, the only real bottlenecks are network latency and graphics rendering. Keep in mind it takes more bandwidth to transport rendered frames over a network than it does to render them locally.

UTM Gallery

The UTM website also has a Gallery page with numerous preconfigured OSes from various vendors as pre-built virtual machines (whose file extensions are .utm). You can download a preconfigured OS and run it with little effort in UTM.

If you can't find a prebuilt .utm file to run, you can make a new virtual machine in UTM and use an .iso DVD or CD installer image to install an OS into the virtual machine.

UTM Gallery includes pre-built .utm files for several flavors of Linux, Microsoft Windows XP, 7, 10, and 11. There are also images for the Windows 95-like ReactOS and Oracle/Sun Solaris images.

For Windows 10 and 11, UTM can download the installers or images for you directly from the emulator setup window.

Running ReactOS in UTM.

Installing and running UTM

To download and install UTM, either download the free version from the UTM site, or get the $9.99 paid version from the Mac App Store. Once downloaded, run the UTM app.

You'll be presented with an overview/release notes window initially. Click Continue to dismiss the welcome screen and get to the main UTM window:

The main Mac UTM app window.

From here you can visit the UTM documentation on the web, browse the Gallery on the web, go to the support page, or create/import a new VM.

Adding Virtual Machines

To add or create a new Virtual Machine (VM) in UTM, in the main window click the Create a New Virtual Machine button. You can also add a downloaded .utm file by double-clicking it in the Finder.

Once you click the Create a New Virtual Machine button, you'll be presented with a selection window that offers Virtualize and Emulate buttons.

The main Virtualize or Emulate sheet in UTM.

Virtualize

is for running OSes that have the same native CPU architecture as the computer you're running on, while Emulate allows you to run OSes built for other CPU architectures.

For obvious reasons, the Virtualize option is faster since the OS you select will run natively on your Mac. Emulated operating systems have to first be translated to the CPU's instruction set for the machine you're running UTM on.

While Emulation is a little slower, it's still pretty impressive since UTM supports over thirty different CPU types. Some emulated OS'es will run faster than others in UTM.

You can also click the Open button to open an existing .utm file just as if you had double-clicked it in the Finder.

If you click the Download prebuilt from UTM Gallery button, you're taken to the UTM Gallery page on the web.

Select a .utm file to open.

Chose your (OS) weapon

If you're running on an Apple Silicon Mac and want to virtualize a version of macOS, Windows, or Linux, click Virtualize. You'll be prompted to select the OS.

If you're using Apple Silicon and want to run a version of Microsoft Windows, or Linux in emulation, click Emulate.

Select which OS you want to use.

In the case of Microsoft Windows, if you want Windows 10 or later, UTM knows how to download and install it. You can also import an existing Windows/Connectix VHDX disk image by checking the Import VHDX image checkbox.

In either the Virtualize or Emulate setup, you can alternately select a Windows boot .iso image by clicking the Browse button and selecting your own image.

If you uncheck the Install Windows 10 or higher checkbox then you must select your own Windows .iso image using the Browse button.

For Linux, if you click Emulate->Linux you must provide either a Linux Kernel .iso or a full Linux .iso OS file.

If you click Virtualize->Linux and are running a later version of macOS on your Mac, you can use Apple's built-in virtualization technology to run Linux. Or you can uncheck Use Apple Virtualization to use the default QEMU instead to run Linux.

From the Emulate->Linux option you can always still use a kernel image or a bootable .iso Linux file in either case.

Use Apple Virtualization option.

Running macOS or Mac OS X

To run any version of macOS 12 or later in UTM, click the Virtualize->macOS 12+ button. You'll need to have an Apple recovery IPSW install image for the version of macOS you want to use, then click the Browse button and select it.

IPSW files started as iPhone/iPad OS files, but Apple now uses them for the macOS Recovery feature too. When you use an IPSW file for macOS, you're downloading the same file a Mac's Recovery software uses.

From the Browse button you can run the IPSW file. If you don't have or don't select an IPSW file, then UTM will automatically download the latest version of macOS when you click the Continue button.

If you want to run a version of macOS from an .iso file, click Virtualize->Other and select a CD/DVD .iso image file. This forces UTM to boot the emulator from the macOS installer CD/DVD image.

Note some older versions of macOS and Mac OS X were sold at retail only, and are still copyrighted. Legally you must own a copy of macOS/Mac OS X before you can install it from a CD/DVD image.

If you want to run an ancient version of Mac OS 9 in UTM, then you must select Emulate->Other and select a Mac OS 9 image from either a bootable .iso image or from an OS 9 installer CD/DVD image. In this case, also check the Legacy Hardware checkbox.

Mac OS 9 ran on older PowerPC-based Macs in the 1990s and is only possible in UTM because QEMU supports PowerPC processors from that era.

For more info on running Mac OS 9 in UTM, see this page.

Some early versions of Mac OS X also ran on PowerPC Macs.

Changing or removing virtual machines

Once you've got your virtualized machine or emulator installed and set up, you can change, update, copy, or delete it from the left side of UTM's main window by Control-clicking on it in the list.

These options include:

    Show in Finder

    Edit

    Run

    Run without saving changes

    Share

    Clone

    New from template

    Remove

To run the selected VM or emulator, simply click the Play button in either the list or in the pane on the right for the emulator selected in the list.

The Edit option when Control-clicking an emulator in the list is interesting and provides an even further set of customizations.

Control-click on an installed emulator on the left to see options.

These include setting a custom icon, a notes field, specific system hardware settings (including CPU and core settings), QEMU options, plus display, network, and storage settings.

UTM SE

UTM SE

is the iOS and iPadOS version of UTM and it works in the same way as UTM on the Mac. In fact, the UI in UTM SE is nearly identical, and you can even download the .utm files from the Gallery directly to your iPhone or iPad and run them there.

Some OS architectures aren't supported in UTM SE.

Performance

It's clear UTM is fast and virtualized and emulated OS'es run fast in it. Most OSes added to UTM launch in just a few seconds, and for virtualized OSes which don't require instruction set translation, they run really fast.

Of course, overall performance will depend on what kind of Mac/RAM configuration you're running. But surprisingly, UTM runs fast even on a low-end Mac such as an M2 Mac mini with only 8GB of RAM.

Performance also depends on other factors such as original OS display code, how well any graphics frameworks used by older software translate, and how easily older instruction sets can be converted to your Mac's native set.

If you're running UTM server, network issues also come into play as mentioned above.

Overall, UTM is a really great app and it's fun to use. It's similar to VirtualBox, but even easier and has a less cluttered UI than VirtualBox does.

It also seems to be more reliable. UTM installation and setup is easier than QEMU, even though it relies on QEMU.

A simple, easy-to-use interface, great documentation, and hassle-free installation all mean that f you want to run other OSes on your Mac, UTM is a must.