2018.01.16
OSの深層部分、知れば知るほど奥深い、macOSの仕組みを解き明かす。
macOSと仮想マシン
仮想化ソフトとは、コンピュータの上にまた別の「仮想の」コンピュータの上を作成、別のOSを実行するソフトウェアです。ネイティブのOSでは動作しないソフトを実行させたり、複数台のコンピュータがなければできないことを1台のハードウェアで実現できます。
Mac用の仮想化ソフトとしては、商用製品の「VMウェア・フュージョン(VMware Fusion)」、「パラレルス・デスクトップ(Parallels Desktop)」、フリーソフトの「バーチャルボックス(VirtualBox)」が有名です。これらの製品の主な目的は、もちろんMac上でウィンドウズを動作させ、ウィンドウズソフトとMacソフトを一緒に動かすためですが、macOSも仮想マシンの上で実行できます。パラレルスなどでは新規仮想マシンのリストにmacOSが用意されているほどです。これでMac上でバーチャルなMacを使えるわけですが、macOSを仮想マシン上で動作させるにはライセンス上の問題と、技術的な問題があります。
まず、macOSはライセンス上「Macコンピュータ」でしか実行が許諾されていません。つまり、アップル製ではないコンピュータでmacOSを実行するのはライセンス違反となります。仮想マシンはアップル製コンピュータではないので、macOSの仮想化はライセンス違反ではないかと指摘されていました。しかしこれは、10・7ライオン以降で仮想化に関する記述が利用許諾に追記され、最大2つの追加コピーを実行可能、つまりmacOSをインストールした仮想マシンを使うことが公式に許可されたのです。
EFIがOSを読み込む
さて、少々前置きが長くなりましたが、ここでmacOSハイ・シエラで登場したAPFSが仮想マシンで使えないという問題が起きています。仮想マシンを作ってもmacOS拡張フォーマットのままになってしまうのです。これはどういうことなのか、仮想マシンの起動プロセスを理解することでわかってくるので解説しましょう。
仮想マシンは実際のPCをソフトウェアで再現するものですから、起動についても実際のコンピュータと同じように振る舞います。たとえばフュージョンの場合は、実際のPCでも使われていた「PhoenixBIOS」が採用されいるなど、仮想マシンにもBIOSがありPCと同じ手順でOSを起動するため、ウィンドウズやリナックスなどのOSは特に変更なく利用できます。
しかし、MacではPCでいうところのBIOSがなく、代わりにEFIとも呼ばれるファームウェアが使われています。macOSはEFIが読み込んで起動しているので、macOSをインストールするにはこのEFIをサポートしなければなりません。