QEMU是一套由
法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件,在
GNU/Linux平台上使用广泛。
Bochs,
PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过
KQEMU这个
闭源的加速器,QEMU能模拟至接近真实电脑的速度。
运作模式
* User mode模拟模式,亦即是用户模式。QEMU能启动那些为不同
中央处理器编译的
Linux程序。而Wine及
Dosemu是其主要目标。
* System mode模拟模式,亦即是系统模式。QEMU能模拟整个
电脑系统,包括中央处理器及其他
周边设备。它使得为
跨平台编写的程序进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。
QEMU的主体部份是在
LGPL下发布的,而其系统模式模拟则是在GPL下发布;而
kqemu这个加速器则是在免费但闭源的条件下发布的。使用
kqemu可使QEMU能模拟至接近实机速度,但其在虚拟的操作系统是 Microsoft Windows 98或以下的情况下是无用的。
软件优点
默认支持多种架构。可以模拟
IA-32 (
x86)
个人电脑,AMD 64个人电脑,MIPS R4000, 升阳的SPARCsun3 与
PowerPC(PReP 及 Power
Macintosh)架构
开源,可移植,仿真速度快
在支持
硬件虚拟化的
x86构架上可以使用
KVM加速配合内核ksm大页面备份内存,速度稳定远超过
VMware ESX增加了模拟速度,某些程序甚至可以实时运行
软件缺点
对
微软Windows及某些
主机操作系统的不完善支持(某些模拟的系统仅能运行)
对不常用的架构的支持并不完善
除非使用
kqemu或
KVM加速器,否则其模拟速度仍不及其他
虚拟软件,如
VMware比其他模拟软件难安装及使用
使用实例
qemu-img create -f qcow c.img 500M
而以下的指令会使
虚拟机器在128MB内存,使用c.img这个用以上介绍的指令所建立的硬盘映像及以linux.iso为光盘映像的情况下运行。注意,如果使用物理光驱,请将-cdrom linux.iso这个参数变为 -cdrom /dev/cdrom或物理光驱路径。
qemu -clock dynticks -rtc-td-hack -
localtime -hda c.img -cdrom linux.iso -boot d -m 128 -enable-audio -localtime
如果想缺省使用全萤幕启动
子操作系统运行时离开全萤幕,请使用
组合键Ctrl-
Alt-F便可。
参数简介
-L dir 指向
BIOS和
VGA BIOS所在目录
-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作为硬盘0/1/2/3镜像。
-cdrom “文件名” 使用“文件名”作为
光盘镜像(文件应该是ISO类型)。
Windows 下的使用者,可以透过下列指令使用实体光盘:
-cdrom //./x: -> x 代表光盘名称/位置
-fda/-fdb “文件名” 使用“文件名”作为磁盘0/1镜像。
-boot [a|d|c] 使用磁盘
,光盘,或者硬盘启动。-soundhw c1,... 使用声卡设备。
-soundhw ? 列出所有可使用的声卡
-soundhw all 使用全部声卡
-usb 允许使用usb设备。
-usbdevice 名字 添加一个usb设备“名字”。
-net nic 创建一块新的网卡。
加速模块
The QEMU 加速模组 (kqemu)
kqemu这个加速模组是Fabrice Bellard专为
Linux核心而设计的
闭源附加程序,目的是为了加速QEMU的
子系统运行速度。在
x86硬件上模拟
x86的操作系统可达到主机速度。
QEMU 加速模组 - 使用者限制条件
QEMU 加速模组,
kqemu,是一套闭源商业产品。可作
个人使用而不受限制。但如果想使用光碟, ISO 映像或附加套件等方法分发QEMU加速模组,则必须联络作者并取得其同意后方可进行。
QVM86
现时除了以上的
kqemu这个闭源的QEMU 加速模组外,亦有一个在GPL下发布的QEMU 加速模组。
KVM
KVM(基于内核的
虚拟机)是
FreeBSD和Linux的
内核模块,它允许
用户空间程序运用各种处理器的虚拟化硬件特性,这个特点使得QEMU可以为x86,
PPC 440, PPC 970, S/390,
ARM (Cortex A15, AArch64) 以及 MIPS32主机提供虚拟化支持。当目标
体系结构与宿主机相同时,QEMU可以使用KVM进行加速。
HAXM
HAXM是一个开源、
跨平台的硬件辅助虚拟化引擎(hypervisor),由
intel推出并广泛用作android模拟器和QEMU的加速。HAXM在宿主机上作为一个内核驱动运行,并提供一个类似KVM的用户空间接口,使得像QEMU这样的模拟软件能够使用Intel CPU提供的
硬件虚拟化功能为虚拟机加速。使用需要硬件支持
Intel VT-x 虚拟化以及EPT功能,软件支持
windows和mac操作系统,也已经有Linux和FreeBSD的移植版本。