QEMU(キューエミュ、キューエム)は、Fabrice Bellardが中心となって開発しているオープンソースのTYPEⅡハイパーバイザ(パーソナルコンピュータ用仮想マシン)である。

概要

QEMUは機械全体をエミュレーションするシステムエミュレーションと呼ばれる環境と、Linuxのユーザーランドをエミュレーションするユーザーエミュレーションと呼ばれる環境がある。

ユーザーエミュレーション環境は、非特権モードのエミュレーションおよび、Linuxのシステムコール命令をネイティブのシステムコールに変換する。この環境は、組み込み機器のクロスコンパイルや非x86環境でWineを動かすために使用可能である。

システムエミュレーション環境は主にWindowsやLinuxなどのオペレーティングシステム (OS) を動かすことを目的に利用されており、OSの動作確認用としてQEMUを同梱する事がある。携帯電話用プラットフォームAndroidのSDKにも利用されている。同様のプロジェクトにはBochsやPearPCなどがあるがQEMUの特徴として、中間コードを介して動的コンパイルを行うことにより、x86、PowerPC、SPARC、ARMなど多くのホストCPUに対して多くのターゲットCPUを高速にエミュレーション可能である事が挙げられる。x86システムエミュレーション環境に於いてはBIOSの動作環境はBochsと互換である。

かつては、アクセラレータとして、kqemuが用意されていた。バージョン 0.11 で廃止になり、これはKVMになった。kqemuは、QEMUをより速く動作させるモジュールとして提供されていた。kqemuは、x86又はx64(64ビットCPU)をサポートしており、カーネルモードの仮想化モニタとして動作する。これを使用するときには、同様のソフトウエアであるVMware同様、ホストCPUの実行できないコードをターゲットに於いて実行することは出来ない。Linux 2.4及び2.6上にて提供されている。FreeBSD並びにWindows NT/2000/2003/XPにおいては、実験的な提供がなされている。この部分はHALを使って書かれたバイナリオブジェクトとサポートされているプラットフォーム用のHALのソースとして提供されており、商業的な配布には制限がある。

QEMUはCPUだけではなく、各種の周辺ハードウェアもエミュレートしている。以下にQEMUが実装しているPC(PC/AT互換機)ハードウェアを示す。 Intel 440FX host PCI bridge and PIIX3 PCI to ISA bridge Intel Q35 and ICH9 Chipset Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes). Red Hat QXL VGA or VirtIO GPU Simulated VMware SVGA II(Include Bug) PS/2のマウスとキーボード 2 PCI IDE interfaces with hard disk and CD-ROM support SATA Controller SCSI Controller SAS Controller Floppy disk ISA network adapters Intel E1000 Network Adapter Realtek 8139 Network Adapter VirtIO Block Storage/SCSI/Network シリアルポート Creative Sound Blaster 16 サウンドカード ENSONIQ AudioPCI ES1370 sound card Adlib(OPL2) - Yamaha YM3812 compatible chip Intel 82801AA AC97互換サウンドカード HD Audioサウンドカード CS4231A compatible sound card PCI UHCI USB controller and a virtual USB hub.

また、QEMUは-sオプションを指定すればtunデバイスを介してホスト上のGDBと接続、仮想マシンの動作状況を監視できるなど、インサーキット・エミュレータ (ICE) のような使い方も可能である。そのほかに、QEMUは、VNCやSPICEサーバの機能が組み込まれており、この機能により、リモートマシンの制御が可能である。

対応する仮想化支援機能が少なく、VMware、VirtualBoxよりも低速とされる。

macOS向けには、UTM Virtual MachinesというGPU仮想化支援機能までも備えた高速な実装がある。

脚注

関連項目

バーチャルマシン x86仮想化 Microsoft Virtual PC Q VirtualBox VMware

外部リンク