QEMU

QEMU（キューエミュ、キューエム）は、Fabrice Bellardが中心となって開発しているオープンソースのプロセッサエミュレータである。

概要 

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

外部リンク 
 

エミュレーションソフトウェア
オープンソースソフトウェア
MacOSのソフトウェア
システムソフトウェア
仮想化