qemu基础介绍

2009-05-13 15:14:51来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在 Free Software 的世界中, 除了 Bochs 之外,還有一個以速度號稱的 x86 模擬器 -
[url=javascript:;]QEMU[/url]

QEMU 的模擬速度約為實機的 25%; 約為 Bochs 的 60 倍。
Plex86、User-Mode-Linux、VMware 和 Virtual PC 則比 QEMU 快一點,但 Bochs 需要特定的 Kernel Patch;User-Mode-Linux 的 Guest System 必須為 Linux;
VMware 和 Virtual PC 則需要在 Guest System 上安裝特定的 Driver,且它們是針對作業系統而進行模擬,並不能說是完整的模擬器。
所以 QEMU 仍不失為極優秀的 x86 模擬器。
QEMU 所模擬的硬體列表
* i440FX host PCI bridge and PIIX3 PCI to ISA bridge
* Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes).
* PS/2 mouse and keyboard
* 2 PCI IDE interfaces with hard disk and CD-ROM support
* Floppy disk
* NE2000 PCI network adapters
* Serial port
* Soundblaster 16 card
QEMU 所採用的 PC BIOS 乃取自 Bochs 及 Plex86/Bochs 的 LGPL VGA BIOS。
事前準備
和 Bochs 類似的,在 QEMU 裡,是利用 Image File 來模擬硬碟的;也就是 QEMU 是將一個大大的檔案模擬成一顆硬碟。
我們可以利用 qemu-mkcow 指令來製作這些 Image File,例:
代碼: qemu-mkcow Sarge.cow 2048
這時就會產生一個名為 Sarge.bin 的 COW 檔案。
qemu-mkcow 所產生出來的檔案為取自 User-Mode-Linux 的 Copy On Write (COW) 檔案。 這種檔案的特性是:它只儲存修改過的磁區,所以它是一種會 Growing 的檔案格式。
但它只能存放在 ext2、ext3 之類,有支援 holes 的檔案系統之中。
在使用 ls -l 來檢視 COW 檔案時,
您會發現它的檔案容量就是您所指定的大小;(在上例中,就是 2048 MB) 而只有在使用 ls -ls 來檢視時才會出現它真正所佔用的磁碟空間。
注意:在執行 qemu-mkcow 指令時, 若所指定的檔案已經存在了,或是發生任何問題, qemu-mkcow 幾乎並不會輸出任何的錯誤訊息。使用時請注意。
執行 QEMU
QEMU 並不使用任何的設定檔,它只能以命令列參數來執行; 但是把這些參數寫成一個小小的 script 是輕而易舉的事,所以並不會造成任何的不便。
例: 代碼:
qemu -fda Boot.img -hda Windows95.cow -hdb Source.cow -cdrom CWindows95.iso -boot a -m 64 -enable-audio -localtime -user-net
一般參數(節錄)
-fda file / -fdb file:
   
指定軟碟機。可在此指定 Image 檔案。
-hda file / -hdb file / -hdc file / -hdd file:
指定硬碟 Image 檔案。請勿指定為光碟 ISO 檔案。
-cdrom file: 指定光碟機。可在此指定 ISO 檔案。它將固定使用 hdc 這個位置,
所以 -hdc 不能和 -cdrom 同時使用。
-boot [a|c|d]:
指定開機磁碟。a 為 floppy,c 為硬碟,d 為 CD-ROM。
-m megs:
指定記憶體大小;單位為 MB。預設為 128 MB。
-enable-audio:
啟用音效卡。預設是關閉的。
-localtime:
使用真實時間。建議使用於 MS Windows / DOS 系統。預設上是使用 UTC 時間。
網路設定參數(節錄)
在 QEMU 裡,有三種網路模式可供選擇:
TUN/TAP 模式(預設模式)
在 Linux 系統中,使用 TUN/TAP 介面來模擬網路界面是很標準的做法。
若要使用 TUN/TAP 介面,請切換至 /dev 目錄中,執行 代碼:
MAKEDEV tun 來建立 tun 之裝置檔。之後,在執行 QEMU 時,QEMU 便會自行載入 tun 模組並產生一個名為 tun0 的網路介面;之後 Guest System 便能夠藉由這個 tun0 介面和外部連線了。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:apache mod_rewrite - URL Rewriting

下一篇:postfixadmin添加任何域都提示已经存在的解决办法