UTM - iOSおよびmacOS向け仮想マシン
(github.com/utmapp)- UTMはiOSとmacOSで動作するシステムエミュレーター兼仮想マシンホストで、QEMUベースでWindows、LinuxなどをMac、iPhone、iPad上で実行可能
- QEMUを使用したフルシステムエミュレーションによりMMUやデバイスなどを扱い、x86_64、ARM64、RISC-Vを含む30種類以上のプロセッサをサポート
- VGAグラフィックモードはSPICEとQXLを使用し、テキストターミナルモード、USBデバイス、QEMU TCGベースのJITアクセラレーションをサポート
- macOS 11およびiOS 11+向けフロントエンドとして、デバイス上でVMの作成、管理、実行が可能
- macOSではHypervisor.frameworkとQEMUを使用したハードウェアアクセラレーション仮想化をサポートし、macOS 12+ではVirtualization.frameworkでmacOSゲストの起動が可能
- UTM SEは、脱獄やJIT回避なしでiOS上に通常のアプリのようにサイドロードできる“slow edition”で、threaded interpreterを使用することで従来のインタープリターより高速だが、JITよりは低速な方式
- UTM/QEMUは最大性能のために動的コード生成(JIT)が必要で、iOSデバイスでJITを使うには脱獄、または特定のiOSバージョン向け回避方法が必要
- UTM SEはサイズとビルド時間の最適化のため、ARM、PPC、RISC-V、x86アーキテクチャのみを含み、それぞれ32ビット版と64ビット版を提供
- iOS向けUTMおよびUTM SEのインストール案内は https://getutm.app/install/ で提供され、macOS向けUTMは https://mac.getutm.app/ で提供
- Apache 2.0ライセンスで配布されるが、複数の(L)GPLコンポーネントを使用しており、gstreamerプラグインは静的リンクされ、コードの一部はqemuから取り込まれている点を再配布時に考慮する必要がある
1件のコメント
Hacker News の意見
数週間前、macOS Ventura を入れた新しい M2 で Fusion の代替にしようと、Windows 11 ARM を UTM でインストールしてみたが、期待外れだった
仮想マシンとホスト間のコピー/ペーストやファイル共有のような統合ツールが動作せず、グラフィックは頻繁に崩れてはグレー画面に移行していた
復旧方法がなさそうで、仮想マシンを強制再起動するしかなく、ドライバー/補助ツールの日付も 2012 年になっていた
無料製品なので期待する権利はないし、実際に Fusion に戻ったが、オープンソースで商用の仮想マシンソリューションを置き換えてほしいと考えていた立場としては、まだ難しいと思う
https://docs.getutm.app/guest-support/windows/#windows-xp-an...
グラフィックの不具合も見たことはないが、ゲームをしようとしているわけではなく、基本的なデスクトップアプリだけを使っている
追記: Fusion 2023 Tech Preview [1] は完全な VMware Tools をインストールし、コピー/ペーストをサポートしている
UTM は素晴らしく、スナップショット機能が追加されれば [1] 定番のおすすめにすると思う。それまでは Parallels を使い続けるつもりだ
ちなみに非公式のスナップショットマネージャーがある [2]
1: https://github.com/utmapp/UTM/issues/5484
2: https://github.com/Metamogul/UTM-Snapshot-Manager
最もよくあった問題は、共有フォルダーがゲスト仮想マシンから突然消え、それを復活させるために回避策を頻繁に使わなければならなかったことだ
その後 VMWare Fusion でも同じ問題があり、Parallels は高すぎるように見えたので Lima に移行した
Lima を知ることができてよかった。これも QEMU ベースで、Linux 仮想マシンを簡単に立ち上げられ、ネットワーク共有を標準で提供している
今はすべての開発を Lima 仮想マシン内で行っており、問題はない。必要なら画面転送もできるだろうが、今は VSCode のおかげでヘッドレスインスタンスで十分だ
cp -cのように簡単かもしれないただ、本当にそうならすでに実装されていそうでもある
clonefileで限定的な形のスナップショットをうまく真似できたと言おうとしたが、進行中の実装がまさにその方式を使っていたUTM の最大の問題は、ある人には非常によく動作し、別の人にはひどく動作するという点だ
このページのスレッドを上下に見ると、「UTM を使いたいのに動作しない、または使い物にならないほど遅い」という発言と、「変だな、自分のところではうまくいっているのに」という返答が同時に多い
私の場合、UTM は文字どおり一度もまともに動作したことがない。M1 2021 Mac で標準的な Ubuntu ARM のインストールを https://docs.getutm.app/guides/ubuntu/ のガイドどおりに試したが失敗し、今は黒い画面に点滅するカーソルだけを見ている
残念ながら、うまくいっている人たちは、うまくいかない人たちに実質的な技術サポートをほとんど提供できない
Mac App Store で UTM に 10 ドルまで払ったが、技術サポートチャネルは Discord だけで、そこには「笑、自分は動いてるけど。腕の問題でしょ」のような反応が多かった
おすすめとしては、UTM は一度試してみる価値がある。気に入れば大きく節約できるし、私のようにまったく動かなければ、結局 Parallels に年 100 ドルを払うことになる。Parallels はおそらく普通に動く可能性が高い
Parallels が動かなければ、ライセンスを更新してもらうインセンティブのある会社と直接話せるし、成功するよう手助けする動機がある
起動用の仮想マシンディスクを一定以上のサイズに設定すると、それも非常に大きいサイズではなく 30GB〜100GB くらいだったと思うが、仮想マシンの起動が非常に遅くなる
十分大きくすると、まったく起動しない。どんなサイズでも 2 台目のドライブを追加することは、このバグを引き起こさない
会社から M1 MacBook Pro を支給されたが、開発はすべて Linux で行っている。90年代後半から Linux が好みの環境だった
MacBook Pro のハードウェアは良いが、macOS は鈍くて窮屈なので生産性が大きく落ちる
そこで UTM 上で Fedora aarch64 をフルスクリーンで実行している。かなり快適に動き、Mac の上にいることをしばしば忘れる
ただ、macOS が邪魔をせず、たまにフルスクリーンモードから弾き出さなければいいのにと思う
安定したバッテリー駆動時間を手放すのが惜しくて適応するようになった
どこかにはフルスクリーンモードを維持してくれる解決策があるのかもしれない
たまに慣れたコマンドライン引数をユーティリティがサポートしていないことはあるが、それは Mac/Linux の問題というよりバージョン差に近く、社内の別のマシンに移ったときにも何度も経験した
最大の悩みは大きくはないが、ARM と x86 の違いだ。たまに ARM でサポートされていないパッケージに出会うが、だんだん珍しくなっている
UTM はこの2年間、自分にとって安定した ハイパーバイザーで、その間にいくつもの素晴らしい機能改善も受けてきた
それでも UTM でいちばん気に入っている点は、Universal Turing Machine の略だということだ。仮想化製品の名前としてはほぼ最高だと思う
Parallels と VMWare で嫌いな点は、OS 間の統合を押し出しすぎることだ。たとえば macOS で Windows のウィンドウを開いたり、macOS の書類をそのまま Windows で開いたりするようなものだ
私は仮想マシンがメインの macOS から 隔離されているほうを好む。だから毎回設定を掘って、何をオフにすべきか探さなければならない
GitHub プロジェクト説明に「for iOS」とあるのは分かるが、かなり誤解を招く表現だと思う
iOS のインストール方法は基本的に脱獄か、最新の CPU/iOS バージョンでは不可能な方式、そうでなければ半テザリング状態で数日ごとにアプリを再読み込み/署名し直す必要がある
https://docs.getutm.app/installation/ios/#summary
アプリ自体を再インストールする必要はなく、署名証明書だけ更新すればよい
EEA でサイドロードが実装されればずっと簡単になるはずなので期待している
Apple は10億人以上に配布できるハードウェアをうまく作り上げ、そのうち多くの人が脱獄で得るものがあるにもかかわらず、誰も成し遂げられていない
その方式なしでも動作はするが、3つの実行方法のうち最も遅い
Mac で開発環境用の仮想マシンを動かすなら、欲しいのは OrbStack だ: https://orbstack.dev/
https://lima-vm.io/
https://github.com/abiosoft/colima
Lima を勧められたが、macOS 用の WSL2 に少し似ている: https://lima-vm.io
内部で何を使っているのかはよく分からないが、自分には非常によく動作した
colima は Lima の上に載ったレイヤーで、docker-machine/boot2docker 風に仮想マシンを簡単に設定してくれる
UTM は基本的な用途には素晴らしいが、性能があまりに悪く、日常作業の主力としてはあまり現実的ではなかった
Mac では Parallels に勝るものはなく、十分に価格に見合っている
仮想マシンが aarch64 なら性能は驚くほど良く、UTM を強く勧められる