![]() | |
![]() | |
開発元 | Fabrice Bellard |
---|---|
最新版 |
9.0.0
/ 2024年4月23日 |
リポジトリ | |
対応OS | Linux、BSD、Microsoft Windows、macOSなど |
プラットフォーム | クロスプラットフォーム |
サポート状況 | 開発中 |
種別 | エミュレータ |
ライセンス | GNU GPL version 2 |
公式サイト |
qemu |
QEMU(キューエミュ、キューエム[1][2][3][4][5][6])は、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互換機)ハードウェアを示す。
また、QEMUは-sオプションを指定すればtunデバイスを介してホスト上のGDBと接続、仮想マシンの動作状況を監視できるなど、インサーキット・エミュレータ (ICE) のような使い方も可能である。そのほかに、QEMUは、VNCやSPICEサーバの機能が組み込まれており、この機能により、リモートマシンの制御が可能である。
対応する仮想化支援機能が少なく、VMware、VirtualBoxよりも低速とされる。
macOS向けには、UTM Virtual MachinesというGPU仮想化支援機能までも備えた高速な実装がある[7]。