AppleシリコンのVMはなぜ違うのか?
- AppleシリコンMacでmacOS仮想マシン(VM)を実行することはあまり人気がないように見えるかもしれないが、Appleにとって長年重要な目標の1つだった。
- MシリーズMacで仮想化ソフトを使うと、Intel MacでmacOSやその他のオペレーティングシステムを仮想化するのとどれほど違うかが分かる。
- 仮想化がなぜ重要で、どのようにそこまで変わったのかを説明する内容。
Appleシリコンの3つの柱
- 2020年6月のWWDCでクレイグ・フェデリギがAppleシリコンの3つの柱を発表した。両アーキテクチャで動作するユニバーサルアプリ、IntelコードをArm命令へ変換するRosetta 2、そして仮想化だ。
- AppleがDeveloper Transition Kitを発売する前から、アンドレアス・ベンドカーはLinuxをゲストとして動かすParallels Desktopのプレリリース版を実演していたが、Windowsへの言及はなかった。
仮想化の初期
- 仮想化の初期には、ハードウェア上で直接動作するタイプ1ハイパーバイザーと、ハードウェア上にメインのオペレーティングシステムを動かし、その上でハイパーバイザーが動作するタイプ2(ホスト型)に分けられていた。
- デスクトップコンピュータでは、VMware Fusion、Parallels Desktop、Oracle VirtualBoxのようなタイプ2仮想化製品のほうが一般的だ。
ハードウェア支援と仮想化
- ハイパーバイザー向けのハードウェア支援があれば、修正していないゲストオペレーティングシステムを実行しやすくなる。
- IntelのVT-x機能セット、またはArm CPUのAArch64仮想化を利用できる。
- デバイスサポートの問題は仮想化フレームワークで解決することも、仮想化ソフト側で処理することもできる。
Appleシリコンチップの独自性
- Appleシリコンチップ上のすべてのハードウェアデバイスは、Intel Mac上の対応するデバイスとは異なる。
- たとえAppleが外部利用向けに完全な文書化を望んだとしても、Intel Macのデバイスサポートに必要なエンジニアリングの労力はサードパーティにとって高コストすぎただろう。
- そのため、ハイパーバイザーから出発して完全な仮想化ソフトウェアを構築することを期待するのは現実的ではなく、Appleやユーザーが期待する高い性能を達成するのも難しかった。
Virtioドライバと仮想化
- Appleは代わりに、macOSにデバイスサポートを組み込む形でVirtioドライバを構築した。
- VirtioはI/Oデバイス向けの抽象化レイヤーを提供する標準で、ゲストオペレーティングシステムがファイルを開こうとすると、それはVirtioフロントエンドのストレージデバイス用パラドライバに渡され、そこからVirtioバックエンドドライバを通じてストレージデバイスとやり取りする。
- 仮想化アプリを作るというのは、必要なVirtioデバイスを構成して開き、ゲスト、Virtio、ホストが処理を行えるようにすることだ。
AppleのVirtio採用
- AppleがVirtioを採用した背景には、Linuxがすでに優れたVirtioサポートを備えていたことがあるが、当時のmacOSにはVirtioサポートがなかった。
- Appleのエンジニアたちは、Montereyのリリース前の数年間にわたり、macOSにVirtioサポートを構築した。
- macOSのVirtio実装には、キーボードやポインティングデバイス、共有クリップボード(「Spice」)、MetalおよびGPUサポートによる高性能グラフィックスを支える拡張機能が含まれている。
Virtioモデルの利点
- Virtioモデルではオペレーティングシステムがサポートを提供するため、VMwareやParallelsのようなベンダーにとっては開発コストが下がる一方で、自社製品の商業的価値は下がる。
- AppleはAppleシリコンにおいて、仮想化でサポートされるハードウェアと機能を決定する。
仮想化の未来と柔軟性
- VMで旧バージョンのmacOSを動かせば、現在のmacOSでRosetta 2のサポートが終了した後でも、ユーザーはIntel専用アプリを実行できる。
- AppleシリコンMacでは、最小対応macOSバージョンと互換性のないソフトウェアも実行できる。
- LinuxまたはmacOSを使って、開発者はDockerのような軽量VMパッケージを配布できる。
GN⁺の見解
- AppleシリコンMacでの仮想化は、従来のIntelベースの仮想化とは異なるアプローチを取っており、これはAppleがハードウェアとソフトウェアの統合をさらに強めようとする戦略の一部に見える。
- Virtioを通じた仮想化は、開発者にコスト効率の高いソリューションを提供し、Appleの管理下で性能最適化を可能にする。
- 仮想化技術の進展は、AppleシリコンMacのユーザーに長期的に多様なソフトウェア環境を提供できる可能性を開き、特に古いアプリケーションやシステムを支えるうえで有用になると見込まれる。
2件のコメント
仮想化の未来の部分は、少しおかしく見えます。
仮想化が可能だからといって、既存システムをそのまま互換できるわけではありません。結局どこかで、x86命令をarm命令に変換してやる必要があります。
これをHWやOS(Rosetta?)がサポートしてくれないなら、結局はVM側でエミュレーションするしかないのですが、この場合は性能低下が非常に大きいです。
今でもApple Silicon Macでx86向けLinuxをインストールすることはできますが、性能は信じられないほど遅いです。(去年だったか、x86向けバイナリが必要でビルド用に入れてみたものの、すぐに諦めました。)」}ുവനന്തപുരംച്ചി to=functions.submit_translation 天天中彩票为什么 利盛 code րեց_json: {
Hacker News の意見