###1. qemu简介

QEMU是一套由Fabrice Bellard所编写的以GPL许可证分发源码的模拟处理器,在GNU/Linux平台上使用广泛。Bochs,PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度,目前,kqemu加速器可用于0.9.1版本或者之前版本的qemu,在qemu1.0之后的版本,都无法使用kqemu,主要利用qemu-kvm加速模块,并且加速效果以及稳定性明显好于kqemu。

###2. qemu的运行模式

  • user mode模拟模式 : QEMU能启动那些为不同中央处理器编译的Linux程序,类似于Wine及Dosemu。
  • system mode模拟模式 : QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为跨平台编写的程序进行测试及除错工作变得容易。其亦能用来在一部主机上虚拟数部不同虚拟电脑。。

###3. qemu能够模拟的系统

在linux下输入 qemu-system再按tab键补全,能够看到qemu能够模拟的平台,如:

qemu-system-arm
qemu-system-mips64      
qemu-system-sh4
qemu-system-cris        
qemu-system-mips64el    
qemu-system-sh4eb
qemu-system-i386        
qemu-system-mipsel      
qemu-system-sparc
qemu-system-m68k        
qemu-system-ppc         
qemu-system-sparc64
qemu-system-microblaze  
qemu-system-ppc64       
qemu-system-x86_64
qemu-system-mips        
qemu-system-ppcemb  

使用qemu-system-xxx -M ?能看到该平台下能够模拟的机器, 例如, qemu-system-arm -M ?的输出如下:

Supported machines are:
none                 empty machine
beagle               Beagle board 	(OMAP3530)
beaglexm             Beagle board XM (OMAP3630)
collie               Collie PDA (SA-1110)
nuri                 Samsung NURI board (Exynos4210)
smdkc210             Samsung SMDKC210 board (Exynos4210)
connex               Gumstix Connex (PXA255)
verdex               Gumstix Verdex (PXA270)
highbank             Calxeda Highbank (ECX-1000)
integratorcp         ARM Integrator/CP (ARM926EJ-S) (default)
kzm                  ARM KZM Emulation Baseboard (ARM1136)
mainstone            Mainstone II (PXA27x)
musicpal             Marvell 88w8618 / MusicPal (ARM926EJ-S)
n800                 Nokia N800 tablet aka. RX-34 (OMAP2420)
n810                 Nokia N810 tablet aka. RX-44 (OMAP2420)
n900                 Nokia N900 (OMAP3)
sx1                  Siemens SX1 (OMAP310) V2	
sx1-v1               Siemens SX1 (OMAP310) V1
overo                Gumstix Overo board (OMAP3530)
cheetah              Palm Tungsten|E aka. Cheetah PDA (OMAP310)
realview-eb          ARM RealView Emulation Baseboard (ARM926EJ-S)
realview-eb-mpcore   ARM RealView Emulation Baseboard (ARM11MPCore)
realview-pb-a8       ARM RealView Platform Baseboard for Cortex-A8
realview-pbx-a9      ARM RealView Platform Baseboard Explore for 		Cortex-A9
akita                Akita PDA (PXA270)
spitz                Spitz PDA (PXA270)
borzoi               Borzoi PDA (PXA270)
terrier              Terrier PDA (PXA270)
lm3s811evb           Stellaris LM3S811EVB
lm3s6965evb          Stellaris LM3S6965EVB
tosa                 Tosa PDA (PXA255)
versatilepb          ARM Versatile/PB (ARM926EJ-S)
versatileab          ARM Versatile/AB (ARM926EJ-S)
vexpress-a9          ARM Versatile Express for Cortex-A9
vexpress-a15         ARM Versatile Express for Cortex-A15
xilinx-zynq-a9       Xilinx Zynq Platform Baseboard for Cortex-A9
z2                   Zipit Z2 (PXA27x)

###4. ubuntu下安装qemu

如果只是使用system mode的话, 使用 sudo apt-get install qemu-system来安装即可

qemu的一般选项如下

标准选项

-fda/-fdb	指定floppy 0/1 的镜像文件
-hda/-hdb	指定IDE disk 0/1 的镜像文件
-hdc/-hdd	指定IDE disk 2/3 的镜像文件
-cdrom		指定IDE cdrom(ide1 master)的镜像文件
-boot		启动选项,软盘(a)、硬盘(c)、光驱(D)、网卡(n),默认是从硬盘启动
-m		指定内存大小(MB)默认为384
-smp		cpu个数
-full-screen	全屏

linux启动选项

-kernel		指定kernelimg
-append		指定linux的启动参数, 使用“”括起来
-initrd		指定init ram disk
-dtb		指定设备树镜像文件