気の向くままに辿るIT/ICT/IoT
システム開発

QEMU

ホーム前へ次へ
QEMUとは?

QEMU

QEMU

 QEMUは、フランス生まれのFabrice Bellard氏が開発したPCなどマシンを仮想化するマシンエミュレータであり、CPUを仮想化するプロセッサバーチャライザーでオープンソースとして公開されています。

 マシンエミュレータ(仮想化ソフトウェア)として使用する場合、CPU等環境の異なるホスト上でゲストOSやゲストOS上で動作可能なプログラムを実行可能です。

 つまり、x86間はもとより、x86/IA-32マシン上でARMタブレット用OSやアプリケーションを実行したり、x86でないマシンにおけるLinux上で(x86上の)Windows代替環境であるWineを実行する為にQEMUを使うこともできたりします。

 プロセッサバーチャライザーとして使用する場合、LinuxにおいてXenハイパーバイザ上での実行やKVMカーネルモジュールとして仮想化をサポートしており、更にKVMを使う場合には、QEMUは、x86、サーバー及び組み込みのPowerPC、S390ゲストを仮想化することも可能となっています。

 マシンエミュレータとしてのQEMUは、動的に翻訳することでパフォーマンスの向上を図り、プロセッサバーチャライザーとしてのQEMUは、ホストCPU上でゲストCPUのコードを直接実行することでゲストのネイティブ環境に限りなく近いパフォーマンスを発揮するように作られているとの事です。

 尚、VirtualBoxでも特殊なケースに限定されるものの、ソフトウェアエミュレーションを行うに当たり、QEMUベースの再コンパイラを採用しているとVirtualBoxマニュアルにあります。

QEMUの実行

 起動オプションが非常に多く柔軟なQEMUは、CLIベースとして開発されていますが、必ずしも全てのオプションを網羅しているわけではないものの、http://wiki.qemu.org/Linksにもあるように非公式ながらGUIフロントエンドツールもあります。

 例えば、Linux/Windows用でQt4ベースのQtEmuは、設定項目も少なく、利用が容易なQEMUのエミュレータ用GUIフロントエンド、その他、Mac OS X用"Q"や比較的詳細に設定可能でQEMUのみならず、KVMのエミュレータとしても機能するLinux用でQt4ベースのAQEMU、同じくLinux用KVMとQEMUのエミュレータでブラウザ上で起動できるQemudoといったものも掲載されています。

備考

 ちなみにQEMUと同じような仕組みでx86アーキテクチャに特化したBochsというものもあります。

参考サイト

ホーム前へ次へ