Macで仮想化環境を作るには?

2008年9月4日(木)
masuidrive

ネーティブ仮想化の利点と欠点

 OS XでWindowsのアプリケーションを動かすために使える仮想化環境は、ネーティブ仮想化とAPIエミュレーションがあることを説明しましたが、それぞれの利点と欠点をまとめます。

 ネーティブ仮想化の最大の利点は精度の高さです。OS自体は通常のものを使うので、ほとんどのアプリケーションが確実に動きます。ただし、ハードウエアに依存するようなアプリケーションは動かないことが多々あります。2ページ目で上げた仮想化環境でも、ゲームなど、3Dビデオカードの必要なアプリケーションは動かない場合があります。

 一方、速度の面では、PC1台をまるまるソフトウエアで実現するので、元のPCの速度に比べて劣ります。またメモリも多く消費します。

 しかし、最近のCPUはネーティブ仮想化支援の仕組みを搭載しているので、速度の低下は非常に少なくなってきています。

APIエミュレーションの利点と欠点

 APIエミュレーションは、どのAPIをエミュレーションするかに非常に依存します。例えば、Windows APIでもたくさんのAPIがあるので、どの部分をエミュレーションするかで、動くアプリケーションの幅が変わります。

 APIエミュレーションは、OSの機能を新たに実装しているので、メモリやCPUなどが遅くなるといった障害が少ないという利点があります。またホストOSに親和性の高いユーザーインタフェースが提供できます。

 ただし、APIエミュレーションでは、対応していないOSのアプリケーションを動かすことはできません。例えば、Windows APIエミュレーションの場合、Linuxのアプリケーションを動かすことはできません。複数のOSのアプリケーションを動かしたい場合、そのOSの分だけAPIエミュレーションが必要になります。ネーティブ仮想化は、1つあれば複数のOSに対応できますが、API仮想化ではOSごとに必要になります。

 現在、FreeBSD上でもLinuxのアプリケーションを動かすためのパッケージがありますが、これもFreeBSD上のLinux APIエミュレーションの1つです。

 またOSのアップデートのたびにAPIも変更する必要があり、最近のアプリケーションや機能がすぐには使えない可能性が高いという問題があります。

 CPUが遅い時代には、ネーティブ仮想化の速度低下が大きく、APIエミュレーションに優位性がありましたが、昨今のCPUは非常に速い上に、CPU自体に仮想化の支援機能が導入されている場合があります。このように時代はネーティブ仮想化に優位になっています。

PukiWikiなどのオープンソース活動を経て、2005年からRuby on Railsに的を絞り、WEB2.0社 PingKingやニフティ アバウトミーの開発に関わる。これまでのフリー活動から転身し、2007年は1年だけ会社員として働いた後、起業のため渡米。2008年4月にBig Canvas Inc.設立。現在、米ベルビュー在住。http://bigcanvasinc.com/http://blog.masuidrive.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています