It is possible to invent a single machine which can be used to compute any computable sequence.
-- Alan Turing, 1936
UTMは、QEMUベースのiOSとmacOSのためのフル機能システムエミュレータと仮想マシンホストです。Mac、iPhone及びiPad上でWindows、Linuxなどを実行することができます。詳細については、https://getutm.app/ および https://mac.getutm.app/ をご覧ください。
- QEMUによるフルシステムのエミュレーション(MMU、デバイスなど)
- x86_64、ARM64、RISC-Vを含む30以上のプロセッサをサポート
- SPICEとQXLを用いたVGAグラフィックスモード
- ターミナルモード
- USBデバイス
- QEMU TCGを用いたJITベースのアクセラレーション
- フロントエンドは、最新かつ最高のAPIを使用して、macOS 11およびiOS 11+用にゼロから設計
- デバイスから直接VMの作成、管理、実行が可能
- Hypervisor.frameworkとQEMUによるハードウェアアクセラレーション仮想化
- macOS 12+でVirtualization.frameworkを使用してmacOSゲストを起動
UTM/QEMU は、パフォーマンスを最大化するために動的コード生成(JIT)を必要とします。iOS デバイスでの JIT は、ジェイルブレイクしたデバイスか、特定のバージョンの iOS で利用できるさまざまな回避策のいずれかが必要です(詳細については、「インストール」を参照してください)。
UTM SE ("slow edition") は従来のインタープリタよりは性能が良いですが、JITよりは遅い threaded interpreter を使用します。この手法は、iSHが動的実行のために行っているものと同様です。それによって、UTM SEは、ジェルブレイクやJITの回避策を必要とせず、通常のアプリとしてサイドロードすることができます。
サイズとビルド時間の最適化のため、UTM SE には以下のアーキテクチャのみが含まれています:ARM、PPC、RISC-V、x86(すべてのアーキテクチャには32bitと64bitの両方のバリエーションがあります)
iOSのためのUTM (SE): https://getutm.app/install/
macOSのためのUTM: https://mac.getutm.app/
- iSH: iOS上でx86Linuxアプリケーションを実行するためのusermode Linuxターミナルインターフェイスをエミュレートします
- a-shell: iOS用にネイティブにビルドされ、ターミナル・インターフェースからアクセスできる一般的なUnixコマンドとユーティリティのパッケージ
UTMは、寛容なApache 2.0ライセンスで配布されています。しかし、いくつかの (L)GPL コンポーネントを使用しています。ほとんどは動的にリンクされていますが、gstreamerプラグインは静的にリンクされており、コードの一部はqemuから取得されています。このアプリケーションを再配布するつもりであれば、このことに注意してください。
いくつかのアイコンはwww.flaticon.comからのFreepikによって作られたものです
さらに、UTMフロントエンドは、以下のMIT/BSDライセンスのコンポーネントに依存しています:
MacStadiumによって継続的インテグレーションのホスティングが提供されています