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

Posted:
in macOS

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.

Use UTM to run other OS'es on your Mac
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 and remote on iPad.
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.

Setup window for UTM server mode.
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.

ReactOS New Hardware Wizard 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:

UTM for macOS main app 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.

UTM's Virtualize or Emulate sheet.
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.

Selecting a .utm saved emulator file in UTM.
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.

You can use Mac, Windows, or a Linux OS.
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.

Apple virtualization and .iso boot options.
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.

UTM virtual machine manager showing ReactOS.
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.



Read on AppleInsider

Comments

  • Reply 1 of 1
    But can I run the emulator on an older Mac that is no longer supported by Apple, perhaps using the OpenCore Patcher so I can run the latest OS on the old HW and then the emulator so I can run Mac OS 9 or earlier. I think that might be worthy of an art project.

    I don't miss the crashes the old Mac OS used to have, like 6, 7, or 8. I think Mac OS 9 was great, but then X just was a heaping bowl of trash for years. At least the underpinnings were good with it, and I do love the OS today, and it was MUCH better than Windows and easier than Unix.
    edited September 18
Sign In or Register to comment.