そもそも、コンピュータの仮想化とはどういうことなのか...?
我々もキャッチコピーで使っている「Mac で Windows を実行する最適な環境」。極めて端的で、わかりやすい表現ですよね...。
だから、このトピックはもしかしたら、多くの人にとっては意味のない話なのかもしれない。
それでもあえて書こうと思うのは、「Mac はコンピュータである」と思うからである。
よく聞かれる質問の一つに「Boot camp とどう違うのか?」という問いがある。
この序章においては、まずその点を切り口に、仮想化について解説したい。
Apple 社は Boot camp というものを用意して、Mac で Windows を動かせる環境を提供している。しかし、Boot camp の仕組みはエミュレータであり、Mac という "1個のマシン全体" を擬似的に PC に見せかけるものだ。だから、Windows OS から見れば、そこにあるのは Mac ではなく、Windows PC そのものである。Boot camp に Windows OS をインストールして起動することは、PC に Windows OS をインストールして起動するのと、何ら変わらない。
それは、ただ一個の PC が目の前にあるだけだ。ならば、純然たる Windows マシンを使った方が、キー配列の点からも使いやすいし、Blu-ray なども難なく再生できるといった利点がある。また、Mac と Windows とを切り替えたい時にいちいち再起動しなければならないのもこのためである。
一方、VMware 社が提供している VMware FUSION は「エミュレータ」ではなく、「仮想環境」である。「コンピュータの仮想化」というものは、決して最近のトレンドではなく、歴史は深い。そのあたりのことは Wiki にとてもきれいにまとめられているので参照されたい。(これをとりまとめられた方に敬意を表します)
仮想化(Wikipedia)
それぞれのマシンはそれぞれの OS とその上で各種のサービスプログラムやアプリケーションが稼働している。それぞれが単体で1個のマシンとして稼働していたわけだ。この場合、ハードウェアとソフトウェアの関係は 1 対 1 である。稼働率 10% 程度などというハードウェアの稼働率ロスを減らすために、これを「 1 対 多」にしようと試みがなされた。そうすることによって、少ないハードウェアで同一の目的を達成しようと。
そのためには、ソフトウェアから見た場合、そこに 1 個のハードウェアマシンがあるのではなく、自身をインストールできる環境があればよい。ゆえに、CPU やメモリ、ハードディスク、ネットワークアダプタなどを、論理的に提供できれば、「 1 対 多」の実現が見えてくる。
こうして OS をインストールする環境を論理的に創り( = 環境化)「仮想マシン」が実現された。この環境は本来インストールされているホスト OS の上で稼働しており、言わば 1 個のアプリケーションと同等の位置付けにあった。だから、この時点で 「 1 対 多」、つまり、1 個のハードウェア上で複数の仮想マシンが現実のものになった。
あとは、対応できる OS の種類やバージョンを拡張していけばよい。
こうして、初期の仮想環境と仮想マシンは実現され、その有効性が実証されて市場が拡がり、サーバを仮想化することはほとんど常識となった。(今日ではホスト OS さえ不要になっているがそれについては後日解説したい)
これが仮想マシンの背景と仕組みの原点である。私は、この、仮想マシンの着想と実現は、コンピュータ自体の発明と同等の価値とインパクトがあると思う。
さて、こうしてサーバの効率化のために開発された仮想マシンの技術は、その効率性と利便性から、クライアントマシンにおいても使われるようになった。それはまず開発環境から始まった。開発の現場では何台ものクライアントマシンを要求される。様々なテスト環境が必要だからだ。
さて、こうしてサーバの効率化のために開発された仮想マシンの技術は、その効率性と利便性から、クライアントマシンにおいても使われるようになった。それはまず開発環境から始まった。開発の現場では何台ものクライアントマシンを要求される。様々なテスト環境が必要だからだ。
Windows の世界では、もうずいぶん以前から VMware Player という仮想マシン実行環境が提供されており、私の仕事仲間にも利用者は多い。
仮想マシンというものは、サーバからクライアントまで、こうした非常に大きな、 Computing の手法の変革だったわけである。そうした避けられない大きな流れの中に Mac OS も取り込まれていった。そして登場したのが VMware FUSION である。
VMware FUSION は、Mac OS をホスト OS (基盤となる OS)とした仮想環境である。Boot camp が 1 台の Mac を擬似的に PC に見せかけるのとは、根底から違う。
こうした仮想化の背景と概要がわかれば、VMware FUSION をインストールしさえすれば、Mac と Windows を同時に使い、また瞬時に切り替えられる理由が理解できると思う。
この事実は、まさに、ハードウェアの制約から解放されたソフトウェアのあり方を示している。この良し悪しは、しかし、賛否分かれるところかもしれない。なぜなら、Mac はハードウェアとソフトウェアとが一体化となって開発されているがゆえに、統一され、整合性のとれた最高のマシンに仕上がっているからだ。
この事実は、まさに、ハードウェアの制約から解放されたソフトウェアのあり方を示している。この良し悪しは、しかし、賛否分かれるところかもしれない。なぜなら、Mac はハードウェアとソフトウェアとが一体化となって開発されているがゆえに、統一され、整合性のとれた最高のマシンに仕上がっているからだ。
しかし、そのことと、仮想化とは別の話。
コンピュータとして完成度の高い Mac において仮想化環境を構築し、複数の異なった OS を自在に操る。そこにコンピュータを「使う」面白さを発見できるはずだ。コンピュータに「使われる」のではなく。
他にも仮想化の、そして VMware FUSION のメリットはいろいろありますが、それらは順を追って解説しようと思います。この物語はあまりにも先が長い...
今回は、仮想化の基本的な背景と、Boot campとVMware FUSION の根本的な違いをご理解頂けたら幸いです。
最後に、仮想化の歴史は VMware の歴史と言っても過言ではなく、その創設者の叡智に心から敬意を表しつつ、このシリーズ最初のトピックを締めたいと思います。
つたない文章を最後まで読んでくださって、ありがとうございました。
みなさま、どうぞ、良いお年をお迎えくださいますように。
また、来る 2013 年も倍旧のご愛顧賜りますよう、なにとぞよろしくお願い申しあげます。
2012.12.28
解説:よくわかる VMware FUSION
連載・実践 VMware FUSION をまとめて読む