UTM

UTM is software “for running other operating systems on your iPhone or iPad. It is not for running iOS on other systems. This allows you, among other things, to run Windows or Linux on your iOS device at a usable speed.”

Demonstrations of UTM have been posted on YouTube showing an iPad Pro running Mac OS X and Windows 95 on an iPad Pro.

As noted in a UTM FAQ, the software is based on QEMU and is still under development (especially the “fairly buggy/incomplete” iOS user interface, though the emulator “back-end” is apparently more solid).

UTM is freely downloadable open-source software for iOS 11 and later but requires “side loading”, since it hasn’t been (and probably won’t be) accepted in Apple’s App Store.

How do I sideload an app?
Sideloading allows you to load unofficial apps on your iOS device. If you have a free Apple account, you must re-sign the app every 7 days. If you have a paid ($99/year) Apple developer account, you must re-sign the app every year. For more information and other options, search for “ios sideloading” and you can find resources online.

How does UTM work?
The majority of the work is done by qemu. Because iOS devices lack hardware virtualization support, we cannot use the KVM accelerator and instead use the TCG accelerator which does dynamic code translation and JIT compilation. UTM also includes a SPICE client written for Metal. This connects with the SPICE server in qemu and allows for some para-virtualization as the QXL graphics driver running on the guest OS can send low-level draw commands directly to Metal APIs.