複製鏈接
請複製以下鏈接發送給好友

QEMU

鎖定
QEMU是一套由法布里斯·貝拉(Fabrice Bellard)所編寫的以GPL許可證分發源碼的模擬處理器軟件,在GNU/Linux平台上使用廣泛。BochsPearPC等與其類似,但不具備其許多特性,比如高速度及跨平台的特性,通過KQEMU這個閉源的加速器,QEMU能模擬至接近真實電腦的速度。
0.9.1及之前版本的qemu可以使用kqemu加速器。在qemu1.0之後的版本,都無法使用kqemu,主要利用qemu-kvm加速模塊,並且加速效果以及穩定性明顯比kqemu好。
軟件名稱
虛擬操作系統模擬器
用    途
模擬操作系統
研發者
Fabrice Bellard
外文名
QEMU(Quick EMUlator)

QEMU運作模式

QEMU有兩種主要運作模式
Qemu下 Win NT 5.0 Qemu下 Win NT 5.0
* User mode模擬模式,亦即是用户模式。QEMU能啓動那些為不同中央處理器編譯的Linux程序。而Wine及Dosemu是其主要目標。
* System mode模擬模式,亦即是系統模式。QEMU能模擬整個電腦系統,包括中央處理器及其他周邊設備。它使得為跨平台編寫的程序進行測試及除錯工作變得容易。其亦能用來在一部主機上虛擬數部不同虛擬電腦。
QEMU的主體部份是在LGPL下發布的,而其系統模式模擬則是在GPL下發布;而kqemu這個加速器則是在免費但閉源的條件下發布的。使用kqemu可使QEMU能模擬至接近實機速度,但其在虛擬的操作系統是 Microsoft Windows 98或以下的情況下是無用的。

QEMU軟件優點

默認支持多種架構。可以模擬 IA-32 (x86)個人電腦,AMD 64個人電腦,MIPS R4000, 昇陽的SPARCsun3 與PowerPC(PReP 及 Power Macintosh)架構
可擴展,可自定義新的指令集
開源,可移植,仿真速度快
在支持硬件虛擬化x86構架上可以使用KVM加速配合內核ksm大頁面備份內存,速度穩定遠超過VMware ESX
增加了模擬速度,某些程序甚至可以實時運行
可以在其他平台上運行Linux的程序
可以儲存及還原運行狀態(如運行中的程序)
可以虛擬網絡

QEMU軟件缺點

微軟Windows及某些主機操作系統的不完善支持(某些模擬的系統僅能運行)
對不常用的架構的支持並不完善
除非使用kqemuKVM加速器,否則其模擬速度仍不及其他虛擬軟件,如VMware
比其他模擬軟件難安裝及使用

QEMU使用實例

以下的指令可以建立一個500MB大小的"qcow"格式的硬盤映像。
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
如果想缺省使用全螢幕啓動子操作系統,可作以上指令後再加上"-full-screen"這個參數,如想在運行時離開全螢幕,請使用組合鍵Ctrl-Alt-F便可。

QEMU參數簡介

-L dir 指向BIOSVGA BIOS所在目錄
-hda/-hdb/-hdd/-hdc “文件名” 使用“文件名”作為硬盤0/1/2/3鏡像。
-cdrom “文件名” 使用“文件名”作為光盤鏡像(文件應該是ISO類型)。
Windows 下的使用者,可以透過下列指令使用實體光盤:
-cdrom //./x: -> x 代表光盤名稱/位置
例如:-cdrom //./e: -> 使用 E:\ 為光盤
-fda/-fdb “文件名” 使用“文件名”作為磁盤0/1鏡像。
-boot [a|d|c] 使用磁盤<a>,光盤<d>,或者硬盤<c>啓動。
-m容量指定內存的大小,單位是MB
-soundhw c1,... 使用聲卡設備。
-soundhw ? 列出所有可使用的聲卡
-soundhw all 使用全部聲卡
-usb 允許使用usb設備。
-usbdevice 名字 添加一個usb設備“名字”。
-net nic 創建一塊新的網卡。

QEMU加速模塊

The QEMU 加速模組 (kqemu)
kqemu這個加速模組是Fabrice Bellard專為Linux核心而設計的閉源附加程序,目的是為了加速QEMU的子系統運行速度。在x86硬件上模擬x86的操作系統可達到主機速度。
QEMU 加速模組 - 使用者限制條件
QEMU 加速模組,kqemu,是一套閉源商業產品。可作個人使用而不受限制。但如果想使用光碟, ISO 映像或附加套件等方法分發QEMU加速模組,則必須聯絡作者並取得其同意後方可進行。
QVM86
現時除了以上的kqemu這個閉源的QEMU 加速模組外,亦有一個在GPL下發布的QEMU 加速模組。
KVM [1] 
KVM(基於內核的虛擬機)是FreeBSD和Linux的內核模塊,它允許用户空間程序運用各種處理器的虛擬化硬件特性,這個特點使得QEMU可以為x86, PPC 440, PPC 970, S/390, ARM (Cortex A15, AArch64) 以及 MIPS32主機提供虛擬化支持。當目標體系結構與宿主機相同時,QEMU可以使用KVM進行加速。
HAXM [2-3] 
HAXM是一個開源、跨平台的硬件輔助虛擬化引擎(hypervisor),由intel推出並廣泛用作android模擬器和QEMU的加速。HAXM在宿主機上作為一個內核驅動運行,並提供一個類似KVM的用户空間接口,使得像QEMU這樣的模擬軟件能夠使用Intel CPU提供的硬件虛擬化功能為虛擬機加速。使用需要硬件支持Intel VT-x 虛擬化以及EPT功能,軟件支持windows和mac操作系統,也已經有Linux和FreeBSD的移植版本。
參考資料