QEMU是一套由法布里斯·貝拉(Fabrice Bellard)所編寫(xiě)的以GPL許可證分發(fā)源碼的模擬處理器軟件,在GNU/Linux平臺(tái)上使用廣泛。Bochs,PearPC等與其類似,但不具備其許多特性,比如高速度及跨平臺(tái)的特性,通過(guò)KQEMU這個(gè)閉源的加速器,QEMU能模擬至接近真實(shí)電腦的速度。
0.9.1及之前版本的qemu可以使用kqemu加速器。在qemu1.0之后的版本,都無(wú)法使用kqemu,主要利用qemu-kvm加速模塊,并且加速效果以及穩(wěn)定性明顯比kqemu好。
QEMU有兩種主要運(yùn)作模式:
* User mode模擬模式,亦即是用戶模式。QEMU能啟動(dòng)那些為不同中央處理器編譯的Linux程序。而Wine及Dosemu是其主要目標(biāo)。
* System mode模擬模式,亦即是系統(tǒng)模式。QEMU能模擬整個(gè)電腦系統(tǒng),包括中央處理器及其他周邊設(shè)備。它使得為跨平臺(tái)編寫(xiě)的程序進(jìn)行測(cè)試及除錯(cuò)工作變得容易。其亦能用來(lái)在一部主機(jī)上虛擬數(shù)部不同虛擬電腦。
QEMU的主體部份是在LGPL下發(fā)布的,而其系統(tǒng)模式模擬則是在GPL下發(fā)布;而kqemu這個(gè)加速器則是在免費(fèi)但閉源的條件下發(fā)布的。使用kqemu可使QEMU能模擬至接近實(shí)機(jī)速度,但其在虛擬的操作系統(tǒng)是Microsoft Windows 98或以下的情況下是無(wú)用的。
-L dir 指向BIOS和VGA BIOS所在目錄
-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作為硬盤(pán)0/1/2/3鏡像。
-cdrom “文件名” 使用“文件名”作為光盤(pán)鏡像(文件應(yīng)該是ISO類型)。
Windows 下的使用者,可以透過(guò)下列指令使用實(shí)體光盤(pán):
-cdrom //./x: -> x 代表光盤(pán)名稱/位置
例如:-cdrom //./e: -> 使用 E: 為光盤(pán)
-fda/-fdb “文件名” 使用“文件名”作為磁盤(pán)0/1鏡像。
-boot [a|d|c] 使用磁盤(pán),光盤(pán)
-m容量指定內(nèi)存的大小,單位是MB。
-soundhw c1,... 使用聲卡設(shè)備。
-soundhw ? 列出所有可使用的聲卡
-soundhw all 使用全部聲卡
-usb 允許使用usb設(shè)備。
-usbdevice 名字 添加一個(gè)usb設(shè)備“名字”。
-net nic 創(chuàng)建一塊新的網(wǎng)卡。
The QEMU 加速模組(kqemu)
kqemu這個(gè)加速模組是Fabrice Bellard專為L(zhǎng)inux核心而設(shè)計(jì)的閉源附加程序,目的是為了加速Q(mào)EMU的子系統(tǒng)運(yùn)行速度。在x86硬件上模擬x86的操作系統(tǒng)可達(dá)到主機(jī)速度。
QEMU 加速模組-使用者限制條件
QEMU加速模組,kqemu,是一套閉源商業(yè)產(chǎn)品??勺鱾€(gè)人使用而不受限制。但如果想使用光碟,ISO映像或附加套件等方法分發(fā)QEMU加速模組,則必須聯(lián)絡(luò)作者并取得其同意后方可進(jìn)行。
QVM86
現(xiàn)時(shí)除了以上的kqemu這個(gè)閉源的QEMU加速模組外,亦有一個(gè)在GPL下發(fā)布的QEMU加速模組。
KVM
KVM(基于內(nèi)核的虛擬機(jī))是FreeBSD和Linux的內(nèi)核模塊,它允許用戶空間程序運(yùn)用各種處理器的虛擬化硬件特性,這個(gè)特點(diǎn)使得QEMU可以為x86, PPC 440, PPC 970, S/390, ARM (Cortex A15, AArch64)以及MIPS32主機(jī)提供虛擬化支持。當(dāng)目標(biāo)體系結(jié)構(gòu)與宿主機(jī)相同時(shí),QEMU可以使用KVM進(jìn)行加速。
HAXM
HAXM是一個(gè)開(kāi)源、跨平臺(tái)的硬件輔助虛擬化引擎(hypervisor),由intel推出并廣泛用作android模擬器和QEMU的加速。HAXM在宿主機(jī)上作為一個(gè)內(nèi)核驅(qū)動(dòng)運(yùn)行,并提供一個(gè)類似KVM的用戶空間接口,使得像QEMU這樣的模擬軟件能夠使用Intel CPU提供的硬件虛擬化功能為虛擬機(jī)加速。使用需要硬件支持Intel VT-x虛擬化以及EPT功能,軟件支持windows和mac操作系統(tǒng),也已經(jīng)有Linux和FreeBSD的移植版本。
默認(rèn)支持多種架構(gòu)。可以模擬IA-32(x86)個(gè)人電腦,AMD 64個(gè)人電腦,MIPS R4000,升陽(yáng)的SPARCsun3與PowerPC(PReP及Power Macintosh)架構(gòu)
可擴(kuò)展,可自定義新的指令集
開(kāi)源,可移植,仿真速度快
在支持硬件虛擬化的x86構(gòu)架上可以使用KVM加速配合內(nèi)核ksm大頁(yè)面?zhèn)浞輧?nèi)存,速度穩(wěn)定遠(yuǎn)超過(guò)VMware ESX
增加了模擬速度,某些程序甚至可以實(shí)時(shí)運(yùn)行
可以在其他平臺(tái)上運(yùn)行Linux的程序
可以儲(chǔ)存及還原運(yùn)行狀態(tài)(如運(yùn)行中的程序)
可以虛擬網(wǎng)絡(luò)卡
對(duì)微軟Windows及某些主機(jī)操作系統(tǒng)的不完善支持(某些模擬的系統(tǒng)僅能運(yùn)行)
對(duì)不常用的架構(gòu)的支持并不完善
除非使用kqemu或KVM加速器,否則其模擬速度仍不及其他虛擬軟件,如VMware
比其他模擬軟件難安裝及使用
以下的指令可以建立一個(gè)500MB大小的"qcow"格式的硬盤(pán)映像。
qemu-img create -f qcow c.img 500M
而以下的指令會(huì)使虛擬機(jī)器在128MB內(nèi)存,使用c.img這個(gè)用以上介紹的指令所建立的硬盤(pán)映像及以linux.iso為光盤(pán)映像的情況下運(yùn)行。注意,如果使用物理光驅(qū),請(qǐng)將-cdrom linux.iso這個(gè)參數(shù)變?yōu)?cdrom /dev/cdrom或物理光驅(qū)路徑。
qemu -clock dynticks -rtc-td-hack -localtime -hda c.img -cdrom linux.iso -boot d -m 128 -enable-audio -localtime
如果想缺省使用全螢?zāi)粏?dòng)子操作系統(tǒng),可作以上指令后再加上"-full-screen"這個(gè)參數(shù),如想在運(yùn)行時(shí)離開(kāi)全螢?zāi)?,?qǐng)使用組合鍵Ctrl-Alt-F便可。