
2026/04/30 1:51
Apple Silicon を搭載した Mac における仮想化は、異なる仕様となります。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Apple は Apple Silicon に搭載された macOS に、ハイパーバイザーと Virtio ドライバーをネイティブに統合しており、VMware や Parallels などのサードパーティ製ソリューションなしで高パフォーマンスの仮想マシンを実行可能にしています。macOS Monterey(ホストおよびゲストともに)からのリリース以降、システムは Arm ハードウェア拡張機能と Metal を活用して効率的な I/O アブストラクションを実現し、ほぼホスト並みのパフォーマンスを達成しています:CPU のシングルコア性能については、VM 内での全体的なパフォーマンスがホストよりも約 9% 速く、マルチコア性能についてはやや低いものの依然として著しく向上しており、GPU Metal 性能についてはホストより約 8% 遅れています。特筆すべきは、ホストの効率化コア上で動作するタスクであっても VM 内ですらさらに高速に実行可能で、ハイブリッドプロセッシングアーキテクチャに対する大幅な最適化が示されています。Rosetta 2 は VM 内で機能し、macOS Catalina と互換性のある 64 ビット Intel アプリを翻訳しますが、それより古いものや 32 ビットアプリは対象外です。
主要機能は経時的に進化してきました:VM 内での iCloud および iCloud Drive のアクセスには、ホストもゲストも macOS 15.0(Sequoia)以降が必要であり、それ以前のアップグレード済み VM はこの機能をサポートしていません。ストレージの制限事項については、以前のバージョンではディスクイメージや共有フォルダのみが利用可能でしたが、Sequoia で全デバイスサポートにより解消されました。
これらの進歩にもかかわらず、日常的な使用には厳格な制約が残っています:App Store アプリの多くは VM 内で動作不能であり、App Store の認証情報をチェックする仕組みがあるため VM が提供できないからです。Wi‑Fi は非対応で、VM はイーサネット接続のみを提供します。オーディオについては部分的にサポートされています。macOS セクション 2B(iii) のライセンス条件に基づくと、商用目的でない個人使用、ソフトウェア開発、テスト、または macOS Server 用途では Mac 1 台あたり最大 2 つの VM が許可され、3 つ目はブロックされます(macOS Server は 2022 年 4 月に不支援となり、Monterey 以降はサポートされていません)。使用例としては、新しい M4/M5 Mac でレガシーアプリを動作させること、隔離されたマルウェア解析の実施、ベータ版 macOS のテスト、追加の iCloud アカウントへのアクセスなどが挙げられます。
本文
Apple シリコン搭載 Mac において仮想環境を利用する以前には、VMware や Parallels などのサードパーティ製の仮想化ソフトウェアを用いることで、macOS、Linux、Windows の異なるバージョンを実行することが可能でした。これらの製品は、マホシンの上で異なる OS を動作させる仮想マシン (VM) を構築することを可能にしました。Apple シリコンへの移行を備えるエンジニアリング準備の一環として、Apple は新しい Mac ハードウェア上で仮想化をサポートするための唯一の現実的な手段として、macOS 自体に仮想化機能を統合することに決めました。その目的は、旧バージョンの macOS および Linux や Windows for ARM など他の OS を、仮想マシン内で動作させることです。
これは、Intel プロセッサ向けの OS を Apple シリコン Mac 上で実行するというより複雑な課題とは大きく異なります。Rosetta 2 は Intel アプリケーションのコード変換が可能ですが、OS の変換には適用できません。OS はソフトウェアエミュレータを必要とし、その機能は UTM などのツールに委ねられています。
ハイパーバイザー
macOS といったホスト OS 上に動作する現代の仮想化製品の基本的要件は、ハイパーバイザーです。Apple はこれを 2014 年に搭載された OS X 10.10 で macOS に追加しました。Intel プロセッサと同様に、ARM CPU もハイパーバイザー向けのハードウェアサポートを提供しており、Apple シリコン搭載 Mac の仮想化実装における残りの大部分の作業はデバイスサポートの整備を中心に行われました。Intel Mac においては PC の標準的なハードウェア構成を主に採用していたため比較的手がゆかったのですが、新しい Apple Mac では事情が異なります。
Virtio ドライバー
Apple シリコン上のあらゆるハードウェアデバイスは、対応する Intel Mac(存在する場合)のものと異なるものです。仮に Apple が外部利用のためにすべてをドキュメント化する意図があったとしても、Intel Mac のデバイスサポートを合わせるためのエンジニアリングコストは、どのサードパーティ企業にとっても過度な負担となります。そのため、ハイパーバイザーだけを構築し、残りの部分を他者に任せ、完全な仮想化製品を提供することを期待することは現実的ではなく、Apple やユーザーが期待する高いパフォーマンスを得ることも困難でした。Apple が選択したのは、デバイスサポートを macOS 内に実装することです。これを Virtio ドライバーという形で提供しました。
Virtio は、Rusty Russell 氏によって開発された I/O デバイスへの抽象化層を提供するための規格です。ゲスト OS からファイルを開くなどのリクエストがあった場合、これはフロントエンドとなる Virtio ストレージデバイスパラメータドライバーに渡され、さらにストレージデバイスと相互作用するバックエンドの Virtio ドライバーへと伝達されます。従来の仮想化手法よりも非効率的に見えますが、実際の運用でははるかに効率的であることが証明されています。
最も顕著な利点として、仮想化アプリの開発に必要なことは、必要な Virtio デバイスを構成して開くこと、そしてゲスト OS、Virtio レイヤー、ホスト OS が各自の作業を行うことのみです。Apple の Virtualization Framework を用いるアプリが基本的に実行していることがまさにこれです。
Apple が Virtio を選択した理由の一つには、Linux においてすでに良質な Virtio サポートが存在していたという事実があります(当時の macOS は Virtio サポートを持っていませんでした)。Monterey リリースの数年前の数年間、Apple のエンジニアたちは macOS への Virtio サポート整備に取り組みました。これが、macOS の軽量な仮想化機能が Monterey およびそれ以降のホスト OS でのみ利用可能であり、かつゲスト OS も Monterey およびそれ以降である必要がある理由です。macOS (ゲストおよびホストの両方として)の実装においては、キーボードやポインティングデバイスのサポート、共有クリップボード、Metal と GPU を活用した高パフォーマンスなグラフィックスなどへの拡張機能も提供されています。
Virtio モデルでは、このようなサポート機能の実現は仮想化ソフトウェア(ヒパーバイザーなど)の役割ではなく、OS の役割となります。VMware や Parallels といったベンダーにとっては、開発コストだけでなく製品の商業的価値も低下します。両 OS 間で Virtio また是同値の機能を通じて提供される仕様のため、これらのベンダーはより良く、より高速なグラフィックスサポートをエンジニアリングする余地がないからです。その結果、Apple シリコン搭載 Mac における仮想化によってサポートされるハードウェアと機能が Apple の管轄下に入るようになりました。
パフォーマンス
他方で、VM 内でも最適のパフォーマンスを保証します。CPU と GPU のコードはホスト OS と同様にハードウェア上で直接実行され、Virtio デバイスはほぼホストと同様のパフォーマンスを提供します。macOS Monterey をゲストおよびホストとして動作させた際の Geekbench 6.3.0 のベンチマークデータは以下の通りです:
- CPU シングルコア: VM 3,643 | ホスト 3,892
- CPU マルチコア: VM 12,454 | ホスト 22,706(利用可能なコア数の制限により)
- GPU Metal: VM 102,282 | ホスト 110,960(VM は Apple パラバーチャライズデバイスとして動作)
その後の macOS バージョンではこれら以上のパフォーマンスが実現されています。VM に割り当てられる仮想コアは主にパフォーマンスコアであるため、通常効iciency コアで実行されるスレッドであっても、VM 内での実行速度はホスト上よりも著しく速くなります。当初は VM のプライマリーストレージ(ディスクイメージ)のパフォーマンスは良好ではありませんでしたが、最近では FileVault が有効化されている場合も含め、大幅に改善されています。
Rosetta 2
Rosetta 2 を用いてゲスト OS を翻訳することはできませんが、macOS VM 内部でも macOS 10.15 Catalina と互換性のある 64 ビット Intel コードを持つアプリにおいて、変換および実行に利用可能です。ただし、Apple シリコン上で動作する macOS のいずれのバージョンについても同じ制限事項が適用され、古いアプリケーションや 32 ビットアプリケーションを扱えない点が挙げられます。Apple が macOS 28 で Rosetta への完全なサポートを終了した以降、これが特に有用になります。macOS の旧バージョンを搭載した VM でも、ホスト OS では対応できないにもかかわらず、互換性のある 64 ビット Intel コードの変換および実行が可能となります。
主な制限事項
iCloud と iCloud Drive のアクセスに関するサポートは、VM での利用に Sequoia を搭載するまで提供されず、現在ではゲスト OS とホスト OS もともに macOS 15.0 以降のバージョンであることが必須条件となっています。これらの機能をサポートするための VM は構造が以前のものと異なるため、以前の macOS からアップグレードした VM でも iCloud や iCloud Drive のサポートを受けることはできません。
Apple シリコン搭載 Mac 上で macOS を仮想化する際の最大の残存制限事項は、App Store から配信される多くのアプリを実行できない点です。問題なく動作するものもありますが、App Store の認証情報をチェックするアプリケーションは一切動作せず、VM は App Store にログインできないためです。これは Apple の権限制限の結果であるように思われ、Apple がストアポリシーを再考・再設計しない限り変更される可能性は低そうです。
いくつかの次要的な機能においても問題点が残っています。例えば、VM からのネットワーク接続は常にイーサネットとして処理され、ホスト OS が Wi-Fi で接続できても VM では Wi-Fi としてのサポートがありません。オーディオも異質で、部分的にしかサポートされていないようです。Sequoia ではストレージデバイスのサポートが有効化されましたが、それ以前の macOS では VM のディスクイメージと共有フォルダに限られていました。
多くの方が unaware ですが、macOS のライセンス規約(第 2B(iii) 条)には、Mac で同時に動作させられる macOS VM の数は 2 つに制限されている旨の記載があります。これは macOS が強制しており、3 つ目の VM を起動しようとするとブロックされます。記録に残しておく必要があるのは、ライセンスが仮想化の目的も以下のように制限していることです:
- (a) ソフトウェア開発;
- (b) ソフトウェア開発中のテスト;
- (c) macOS Server の利用;
- (d) 個人向けの非商業的な利用。
Apple は 2022 年 4 月 21 日に macOS Server を不支援とし、Monterey より新しい macOS ではサポートが終了しています。
利用例
macOS VM を以下のような用途に活用できます:
- Sonoma と互換性があるが Sequoia と互換性がないアプリを、Sonoma が動作しない M4 や M5 Mac で実行する。
- カスタム環境(例えば、地域設定や言語設定を変えたものなど)でアプリを実行する。
- 緊密に制限された環境下で、潜在的に悪意のあるドキュメントまたはアプリを確認・アクセスする。
- macOS の複数のバージョンやローカライズ版との互換性をテストする。
- 高い機密性を持つデータを扱いやすくするために、隔離された環境で作業する。
- 異なる iCloud アカウントを同時にアクセスする。
- macOS 27 ベータ版を実行する。
まとめ
Apple シリコン搭載 Mac 上の macOS VM は以下のことができます:
- すべてのモデルで Monterey およびそれ以降のバージョンを実行可能ですが、Big Sur や Intel Mac の macOS は実行できません。
- 次のリリースにおける beta バージョンの多くを実行できます。
- Rosetta 2 を用いて Intel アプリを実行できます。
- CPU と GPU パフォーマンスはほぼ平常通りであり、FileVault もサポートします。
- iCloud および iCloud Drive にアクセスするには、ホストとゲストの両方が Sequoia またそれ以降である必要があります。
しかしながら、App Store から配信される多くのアプリは実行できません。