マシンエミュレータであり、プロセッサバーチャライザーでもあるQEMUは、他の仮想化ソフトウェアと違ってCPU等環境の異なるマシン間でOSやOS上で動作可能なプログラムを実行可能で、その仕組み上、他の仕組みの仮想マシンソフトウェアに比し、オーバーヘッドが大きく、ホストマシンには、より高性能なスペックが要求されます。
ここでは、QEMUで作成した仮想マシンにBSD/UNIX/Linuxをインストールしたり、LiveCD(イメージ)を実行してみます。
一例としてIntel デュアルコア1.8GHz、メモリ1GB、OSがWindows Vistaというホストマシン上のQEMUでLinux/BSD/UNIXを実行する場合、どういったOSをインストールし、起動、実行できるのかを確認してみるものとします。
VirtualBoxやVMware Playerと比し、ゲスト・ターゲットとして実用的に利用可能なOS(の動作要件)は、自ずと限定されるので、これらで検証確認したLinux/BSD/UNIX系OSの中から任意に候補を抽出し、QEMUで検証してみるものとします。
また、FreeBSDとOpenBSD、公式サポートされているのでホスト環境に原因があるのかもしれませんが、何故かVirtualBoxではデバッガが起動し、上手くいかなかったものの、VBoxSDLコマンドを使うとインストール及び起動できたNetBSDもインストール及び起動してみることにします。
QEMUは、異なるCPU間でCPUを丸ごとエミュレートできるわけですが、ここでは実質、x86 CPU対応版OS(Windows)上におけるx86 CPU対応版PC-UNIX/BSD/Linuxのインストール・起動のみに限定するものとします。
QEMUは、各種アーキテクチャ対応マシンのOS上はもちろん、Windows上のCygwinやMinGWやGUIフロントエンドでも仮想マシンの作成・実行が可能でフリーソフトウェアで仮想マシン作成も可能なQEMU on Windowsや開発は終了しているようですが、GUI操作でより簡単なQtEmuなどもあり、様々な実行環境があります。
また、ホストが耐え得るゲストOSを試す場合に限りますが、Windows上で既存のISOディスクイメージをQEMUで実行確認したいだけならqemu.exe上にisoディスクイメージをドラッグ&ドロップしたり、例えば、マルチセッションCD作成用のフリーソフトウェアであるXBootの作成イメージ確認用機能であるQEMU実行環境にISOディスクイメージをドラッグ&ドロップするだけで起動できたりします。
但し、qemu.exeのダブルクリックは厳禁、やってしまうとホストマシンがパニックを起こしてブルーバック画面を表示した後、まるで一気に力が抜けていくかのようにシャットダウンしてしまいます。
QEMUの仮想マシン作成・実行環境については、http://wiki.qemu.org/Linksにいろいろ情報があるのでお好みのものを選ぶとよいでしょう。
このホスト環境においてQEMUで実行し、実用に耐えるPC-UNIX、BSDやLinuxの一例としては、デスクトップなら超軽量クラスDSL/Damn Small Linux、35MB未満で動作することを目指すSliTaz、CUIでは、FreeBSD、FreeBSDベースのFrenzy、NetBSD、OpenBSD、Gentoo、Plop Linux等々ならサクサク動作します。
また、DSL主要開発者の1人がプロジェクトを立ち上げ、やはり、超軽量を目指したTiny Core Linuxの内、CUIのCore(5.1)はサクサク作動、ウィンドウマネージャにOpenboxを使ったTinyCore(4.5.2日本語版/5.1オリジナル版)は、ほんの少し、より充実したCorePlus(4.5.2日本語版/5.1オリジナル版)は、その読み込みにかかる分、それにプラスアルファして起動が、やや時間がかかる程度、起動後は、何れも、若干動作遅延を感じなくもないものの、実用に耐えないほどでもありません。
一方、起動だけでいっぱいいっぱいなのは、Plop Linuxの内、軽量デスクトップ環境(Fluxbox/GNOME-Tiny)、Puppy(Lupu-528JP)です。
VirtualBoxでは問題ないのにブータブルCD(イメージ)からの起動早々にエラーとなるのが、Arch Linux、ArchBang、他方、VirtualBoxでも同様に結構、スムースに起動開始したものの、GUI起動のところで、断念したのがGUI版Slaxです(が、Slaxは、VMware Player 3.1.6でやってみたところ起動できました)。
ホストマシンのOSが、よりCPUやメモリ消費量の少ないものであれば、もう少し、ゲストとして起動できるOSの幅も広がるでしょうし、もちろん、マルチコアでも、より高スペック、更にはクアッドコア。。。メモリも2GB、4GB、8GB。。。となれば、この限りではなく、メモリが2GBあれば、少なくとも起動までなら、たいていのLinux/BSD/UNIXの検証は可能でしょうし、そもそもCPUアーキテクチャーを越えて検証できるという点からも、その数は相当数にのぼるでしょう。
ちなみにメモリ4GBは、PAE付き32bitか64bitでないと4GBめいっぱい利用することはできず、6GB、8GBとなると必然的に64bitである必要があり、32bitマシンでは対応がバラバラですが、近年の64bitマシンならIntel VTやAMD-Vなどのハードウェア仮想化支援機能がほぼ標準搭載されているはずなのでQEMUでとは言わなくとも64bitマシンをゲストとすることもできるので更に検証できる幅が広がります。
それなりに情報が増えたので別途QEMUでNetBSDの起動とインストールページを作りました。
NetBSDでOpenboxにConkyを入れた際に気づいたのですが、QEMU(QtEmu)で作成した仮想マシンに指定したRAMよりも数MB少ないものとして動作していました。
RAM量に注目していくつかのRAM量で確認してみたところ、今回利用したQtEmu 1.0.5で作成した仮想マシン上のNetBSDでは、指定値とConky表示を比較すると約14MBの差がありました。
ただ、NetBSDでは、スワップ領域も作成しており、それなりにスワップも消費、その際利用したOpenbox起動直後にスワップがゼロとなったのは、今回の検証においては、仮想マシン指定RAM容量96MB、Conky表示RAM総容量81.3MBの時でした。
今更ながらRAM量が重要な場合には、興味深い点となるのではないでしょうか。