Go to file
osy 2e54e955e0 github: reduce number of CPUs for TCI build again due to timeout issues 2024-03-04 08:56:21 -08:00
.github github: reduce number of CPUs for TCI build again due to timeout issues 2024-03-04 08:56:21 -08:00
Configuration config(qemu): fix invalid GPU remapping for remote 2024-02-25 00:16:27 -08:00
Documentation docs: update release instructions 2024-02-27 16:46:52 -08:00
Icons Use current Fedora logo 2023-06-21 13:38:29 -04:00
JailbreakInterposer interposer: disable for simulator builds 2021-05-17 21:19:01 -07:00
Platform project: update iOS launch screen 2024-03-03 16:14:20 -08:00
QEMUHelper Add Italian localization 2024-02-26 19:58:13 -08:00
QEMULauncher swtpm: add support for SWTPM 2023-07-12 23:18:36 -07:00
Remote vm(remote): keep existing VM object when refreshing list 2024-02-25 00:16:28 -08:00
Renderer project: refactored CocoaSpice into package 2022-02-08 14:41:17 -08:00
Scripting utmctl: implement USB commands 2023-09-04 20:49:43 -07:00
Services process: disable macOS code from iOS builds 2024-03-03 16:13:46 -08:00
UTM.xcodeproj Merge pull request #5971 from MMP0/patch-3 2024-02-26 19:59:34 -08:00
patches build: update ANGLE 2024-02-25 21:30:55 -08:00
scripts build: fix ANGLE build for App Store submission 2024-03-03 16:14:20 -08:00
utmctl utmctl: implement USB commands 2023-09-04 20:49:43 -07:00
zh-HK.lproj Import localization for zh-hk 2023-09-12 08:52:50 +08:00
zh-Hans.lproj Add more translations for zh-hans 2023-09-12 09:04:13 +08:00
zh-Hant.lproj l10n: zh-TW: update translation 2023-08-10 17:23:00 +08:00
.gitignore project: move code signing config to external file 2021-04-26 20:15:41 -07:00
Build.xcconfig project: bumped version 2024-02-27 16:48:10 -08:00
CodeSigning.xcconfig.sample build: make entitlement use configurable 2021-08-30 20:41:43 -07:00
LICENSE UTM: implemented main view and configuration views 2019-04-12 09:40:30 -07:00
README.cz.md readme: add README.cz.md (#5017) 2023-03-05 22:10:27 -08:00
README.es.md Minor proposals on README.md 2023-09-29 11:24:24 -03:00
README.fr.md project: update fr translation 2022-12-27 12:34:26 -08:00
README.ja.md Add README.md's Japanese translation. 2022-12-09 13:06:31 +09:00
README.ko.md docs: added README for korean 2023-10-14 20:39:51 +09:00
README.md readme: update license credits 2022-10-22 22:58:41 -07:00
README.pl-PL.md Update some more strings for 4.1 2022-11-23 18:03:12 +01:00
README.ru.md `README` in Russian 2023-08-18 01:05:32 +02:00
README.uk.md Create 2023-03-12 19:56:40 +02:00
README.zh-HK.md Update README.zh-HK.md 2024-01-10 15:04:56 +08:00
README.zh-Hans.md Improve Simplified Chinese Translation (#5550) 2023-08-20 11:51:38 -07:00
README.zh-Hant.md Fix/Update zh-Hant localization 2023-09-21 14:59:57 +08:00
screen.png Update screenshot in README.md 2022-06-23 12:45:27 +02:00
screenmac.png Add image of UTM running on macOS 2022-06-22 18:35:21 -06:00

README.md

UTM

Build

It is possible to invent a single machine which can be used to compute any computable sequence.

-- Alan Turing, 1936

UTM is a full featured system emulator and virtual machine host for iOS and macOS. It is based off of QEMU. In short, it allows you to run Windows, Linux, and more on your Mac, iPhone, and iPad. More information at https://getutm.app/ and https://mac.getutm.app/

UTM running on an iPhone
UTM running on a MacBook

Features

  • Full system emulation (MMU, devices, etc) using QEMU
  • 30+ processors supported including x86_64, ARM64, and RISC-V
  • VGA graphics mode using SPICE and QXL
  • Text terminal mode
  • USB devices
  • JIT based acceleration using QEMU TCG
  • Frontend designed from scratch for macOS 11 and iOS 11+ using the latest and greatest APIs
  • Create, manage, run VMs directly from your device

Additional macOS Features

  • Hardware accelerated virtualization using Hypervisor.framework and QEMU
  • Boot macOS guests with Virtualization.framework on macOS 12+

UTM SE

UTM/QEMU requires dynamic code generation (JIT) for maximum performance. JIT on iOS devices require either a jailbroken device, or one of the various workarounds found for specific versions of iOS (see "Install" for more details).

UTM SE ("slow edition") uses a threaded interpreter which performs better than a traditional interpreter but still slower than JIT. This technique is similar to what iSH does for dynamic execution. As a result, UTM SE does not require jailbreaking or any JIT workarounds and can be sideloaded as a regular app.

To optimize for size and build times, only the following architectures are included in UTM SE: ARM, PPC, RISC-V, and x86 (all with both 32-bit and 64-bit variants).

Install

UTM (SE) for iOS: https://getutm.app/install/

UTM is also available for macOS: https://mac.getutm.app/

Development

macOS Development

iOS Development

  • iSH: emulates a usermode Linux terminal interface for running x86 Linux applications on iOS
  • a-shell: packages common Unix commands and utilities built natively for iOS and accessible through a terminal interface

License

UTM is distributed under the permissive Apache 2.0 license. However, it uses several (L)GPL components. Most are dynamically linked but the gstreamer plugins are statically linked and parts of the code are taken from qemu. Please be aware of this if you intend on redistributing this application.

Some icons made by Freepik from www.flaticon.com.

Additionally, UTM frontend depends on the following MIT/BSD License components:

Continuous integration hosting is provided by MacStadium

MacStadium logo