この記事は3つの仮想マシンソフトを触った感想をまとめたものです。その後仮想マシンで3Dのゲームが動くのかを実測した回で、同じ「仮想マシン」でも絵を描いている場所がまったく違うことが分かりました。感想だけでは見えていなかった部分なので、章として足しています。あわせて、アカウントを失いかねない注意点も追記しました。
Macで仮想マシンを使いたくなった理由
組み込み系エンジニアをしていると、「Windows環境でしか動かないツールを試したい」「Linuxでビルド環境を整えたい」という場面がちょくちょくあります。そのたびにWindowsマシンを引っ張り出すのも手間だし、デュアルブートは怖い……ということで、Mac上に仮想マシンを構築することにしました😊
今回はいくつかのソフトを実際に試してみたので、それぞれの特徴と正直な感想をまとめてみます。
仮想マシンソフト3種類の概要
Macで使える主要な仮想マシンソフトとして、今回は以下の3つを試しました。
| ソフト名 | 価格 | 特徴 | 対応チップ |
|---|---|---|---|
| Parallels Desktop | 有料(年額サブスク) | 操作が簡単・パフォーマンス良好 | Apple Silicon / Intel |
| VMware Fusion | 個人利用は無料 | 老舗・安定性が高い | Apple Silicon / Intel |
| UTM | 無料(App Storeは有料) | オープンソース・柔軟な設定 | Apple Silicon / Intel |
どれも一長一短があって、用途によって向き不向きが結構違いました。以下で順番に紹介していきます。
各ソフトの詳細と使ってみた感想
Parallels Desktop
仮想マシンソフトの中でもっともユーザーフレンドリーな印象を受けました。インストールウィザードに従っていくだけでWindowsが使える状態になるので、とにかく手軽です。パフォーマンスも3種の中でもっとも良く、日常的な作業なら全然ストレスなく使えました。
ただし有料(年額約1万円〜)なのがネック。無料トライアルが14日間あるので、まずはそこから試してみるのがおすすめです。
VMware Fusion
個人利用であれば無料で使えるようになったのが嬉しいポイント。以前は有料でしたが、Broadcomによる買収後にライセンス形態が変わりました。
安定性はかなり高く、長時間起動していても落ちることはほぼありませんでした。ただし無料版では仮想マシンに割り当てられるメモリ容量やCPUコア数に制限があります。重い開発環境を動かしたい場合は注意が必要です。
UTM
完全無料(GitHubからダウンロードすれば)で使えるオープンソースソフトです。App Storeからインストールすると数百円かかりますが、それはUTM開発者への支援という位置づけ。機能自体は変わりません。
設定の自由度が高い反面、初期設定がやや難しく感じました。特にLinuxを入れるときは、ISOイメージの選択やネットワーク設定でハマることがありました😅 こちらも割り当てリソースの上限が設定できるので、ホストマシンへの影響を抑えながら使えます。
Apple SiliconはARMなのでOSもARM版になる
M1・M2・M3チップ搭載のMacで仮想マシンを動かす場合、インストールされるOSはデフォルトでARM版(aarch64)になります。これはどのソフトを使っても同じです。
WindowsならWindows 11 on ARMが入りますし、UbuntuもARM版のイメージが使われます。ARM版のOSは基本的に動作が軽快で、Apple Siliconとの相性も良いです。
一方で、「どうしてもx86_64(Intel向け)のOSを動かしたい」という場面もあります。UTMはQEMUを使ってx86_64エミュレーションができるのですが……
# UTMでx86_64のUbuntuを起動する設定例(Architecture指定)
Architecture: x86_64
System: Standard PC (Q35 + ICH9, 2009)
Memory: 4096 MB
CPU Cores: 2
設定自体はできるのですが、実際に起動してみると GUIがとにかく重い。マウスを動かしてもカクカクで、まともに操作できるレベルではありませんでした。エミュレーション処理のオーバーヘッドが大きすぎるようです。
CLIだけで作業できるなら何とか使えなくもないですが、GUIアプリを動かすのは正直厳しいです。x86_64のソフトを使いたいなら、素直にIntel Macか実機のWindowsマシンを用意した方がいいと思いました。
リソース割り当ての注意点
仮想マシンにどれくらいのリソースを割り当てるかは重要なポイントです。割り当てすぎるとホストのMacが重くなりますし、少なすぎるとゲストOSがまともに動きません。
| 用途 | 推奨メモリ | 推奨CPUコア数 |
|---|---|---|
| 軽いCLI作業(Linux) | 2GB | 2コア |
| Windows GUIアプリ使用 | 4〜8GB | 4コア |
| 開発環境(Docker等含む) | 8〜16GB | 4〜6コア |
無料版のVMware FusionやUTMでは、割り当て上限が設定されているケースがあります。大量のメモリを必要とする作業をする場合は、有料版のParallels Desktopが選択肢に入ってきます。
# UTMでリソースを確認するCLIコマンド(macOS側)
# 仮想マシン起動中のCPU・メモリ使用状況を確認
top -pid $(pgrep -f "qemu-system")
【その後】VMware と UTM は、絵を描いている場所が違う
本文では「x86_64エミュレーションはGUIが重い」と書きました。これは正しいのですが、ARM版どうしで比べても、ソフトによって3Dの扱いがまったく違うことが後から分かりました。
ゲスト側のWindowsで dxdiag(DirectXの診断ツール)を実行して、GPUとして何が見えているかを比べた結果です。
| 項目 | VMware Fusion | UTM (QEMU) |
|---|---|---|
| デバイスの種別 | Full Device | Display-Only Device |
| Vendor ID | 0x15AD(VMware) | 0x1414(Microsoft) |
| 実際に描いているもの | ホストのMetal | WARP(CPUで描画) |
| 3Dのゲーム | 動いた | 実用にならない |
ホスト側のログ(vmware.log)を見ると、VMwareは MTLRenderer ——つまりMetalを使っていることが書かれていました。ゲストのDirectXの命令を、Macの描画の仕組みへ渡している形です。
一方のUTMは、Vendor ID が 0x1414=Microsoft になっていました。これは「画面を出すだけで、描画の仕組みを持っていない」種別で、この場合Windowsは WARP という仕組みに切り替わります。WARPはCPUだけで絵を描くため、絵は出ますが速度は桁違いに落ちます。
ここがいちばん驚いた点です。診断ツールに出る数字はUTMのほうが全部上でした(DDIのバージョンも、対応している機能の世代も)。ところが実際に描いているのはCPUです。「ソフトウェアで実装した」場合も、同じ表記になってしまうため、数字だけを見ると判断を誤ります。見るべきはデバイスの種別と Vendor ID でした。
くわしい手順と実際の画面は 仮想マシンでWindowsのゲームは動くのか にあります。
【その後】⚠ 仮想マシンで起動してはいけないソフトがある
これは本文を書いた時点では気づいていなかった、いちばん重い注意点です。
アンチチート(不正防止の仕組み)が入ったゲームを、仮想マシンで起動してはいけません。アカウントが停止されることがあります。
アンチチートは「ふつうではない環境で動いていないか」を監視しています。仮想マシンで動いていること自体を、その対象として扱うものがあり、不正をしていなくても検知されます。実際にこれで1つ、アカウントが長期の停止処分になりました。
1つ目は収益化してよいか(広告のあるサイトで扱ってよいか)。 2つ目は仮想化環境で実行してよいか。
この2つは別々に書かれているため、片方だけ確認して進めると足をすくわれます。 「無料だから安全」でもありません。
逆に言えば、アンチチートが入っていないソフト——開発ツール、ビルド環境、CLIの作業——であれば、仮想マシンは今でも安心して使えます。もともと本文で挙げた「Linuxの作業環境を手軽に立ち上げる」という用途は、まったく問題ありません。
【追記】つまずいたところ(あとから足したもの)
その後たくさん触るなかで、毎回引っかかった細かい点をまとめておきます。
ホストのIPアドレスがソフトごとに違う
ゲストからホスト(Mac本体)へ通信したいとき、宛先がソフトによって違います。
| ソフト | ホスト側のIP | 備考 |
|---|---|---|
| VMware Fusion | 172.16.229.1 | NAT用の仮想ネットワーク |
| UTM | 192.168.64.1 |
ゲストで作ったファイルをMacに戻すとき、共有フォルダの設定でつまずくくらいなら、ホスト側で小さなHTTPサーバを立てて、ゲストから送りつけるほうが速いです。共有フォルダもゲスト用の追加ツールも要りません。
Windows 11 のVMはパスワードを聞かれる
Windows 11 の仮想マシンは暗号化が必要になるため、コマンドライン(vmrun)から起動しようとするとパスワードを求められます。自動化しようとすると止まるので、素直に画面から起動するほうが早いです。
最初のクリックは吸われる
ゲストの画面を操作するとき、1回目のクリックはウィンドウを前に出すために使われます。座標がずれていると思って調整を始めると遠回りになるので、最初に1回空クリックしておくと確実です。
まとめ:用途別おすすめはこれ
3つの仮想マシンソフトを使ってみた結論として、私のおすすめはこんな感じです。
- 気軽に始めたい・Windows GUIをメインで使いたい → Parallels Desktop(有料だが快適さは最高)
- 無料でWindows/Linuxを使いたい・安定性重視 → VMware Fusion(個人利用は無料)
- とにかく無料・設定の柔軟さが欲しい → UTM(慣れれば使いやすい)
x86_64エミュレーションについては、どのソフトを使ってもGUIは実用的ではないので、ARM版で代替できるか検討するのが現実的だと思います。
仮想マシンはうまく活用すると開発環境の幅がぐっと広がりますね。特にLinuxのCLI環境を手軽に立ち上げられるのは、組み込み開発をしている身として本当に助かっています😊 今後も色々試していきたいと思います!