QEMU

更新时间:2023-10-14 11:38

QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件,在GNU/Linux平台上使用广泛。BochsPearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度。

运作模式

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

增加了模拟速度,某些程序甚至可以实时运行

可以在其他平台上运行Linux的程序

可以储存及还原运行状态(如运行中的程序)

可以虚拟网络

软件缺点

微软Windows及某些主机操作系统的不完善支持(某些模拟的系统仅能运行)

对不常用的架构的支持并不完善

除非使用kqemuKVM加速器,否则其模拟速度仍不及其他虚拟软件,如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 指向BIOSVGA BIOS所在目录

-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作为硬盘0/1/2/3镜像。

-cdrom “文件名” 使用“文件名”作为光盘镜像(文件应该是ISO类型)。

Windows 下的使用者,可以透过下列指令使用实体光盘:

-cdrom //./x: -> x 代表光盘名称/位置

-fda/-fdb “文件名” 使用“文件名”作为磁盘0/1镜像。

-boot [a|d|c] 使用磁盘,光盘,或者硬盘启动。

-m容量指定内存的大小,单位是MB

-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的移植版本。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}