Linux折騰記(十九):虛擬機體驗之QEMU篇
說起虛擬機,大家都不陌生。需要使用虛擬機的場景也非常的多,比如有志于寫操作系統(tǒng)的同志,往往需要一個虛擬機來運行和調試他寫的系統(tǒng);再比如喜歡研究網(wǎng)絡體系結構的朋友,需要在自己的電腦上虛擬出N個系統(tǒng)組成各種各樣的網(wǎng)絡。(這個需要電腦的配置夠強大才行,幸好本人的電腦夠。)還比如用Windows的想玩Linux,用Linux想玩Windows,這樣用虛擬機玩起來也比較方便;最后比如有人想研究一下目前最流行的大數(shù)據(jù)啊、云計算啊,想試一試Hadoop、Spark、OpenStack什么的,沒有虛擬機怎么搭建實驗環(huán)境。我自己也經(jīng)常用虛擬機,在Windows中用的是VMWare,感覺它功能強大、使用方便,運行效率也非常的高。我的博客中有不少內容都是在虛擬機中折騰出來的,你們能分得出來嗎?在Linux系統(tǒng)下,我也用虛擬機。比如在我的這一篇《使用GCC和GNU Binutils編寫能在x86實模式運行的16位代碼》中,我就使用QEMU來運行一個FreeDOS系統(tǒng),用來調試我的16位代碼。其實我自己也是一個喜歡研究操作系統(tǒng)的主,結識QEMU就是從《自己動手寫操作系統(tǒng)》這本書開始的。
虛擬機的分類很復雜。什么全虛擬、半虛擬什么的搞得人頭暈。我用過的虛擬機也不少了,也總是分不清這些概念。而且桌面用戶和企業(yè)級用戶對虛擬機的期望值是不一樣的。比如說,我可能期望這樣一個虛擬機:
1.它能模擬出完整的個人電腦,我可以給它安裝任何我想安裝的操作系統(tǒng);
2.它要有比較好用的圖形界面,模擬出的電腦也要能無障礙運行Windows或Gnome這樣的圖形系統(tǒng),能打游戲最好;
3.客戶操作系統(tǒng)所用的硬盤就是宿主操作系統(tǒng)中的一個鏡像文件,隨時可復制粘貼,隨時可打包帶走;
4.最好能模擬出一些本身不存在的硬件,比如多個網(wǎng)卡什么的。
很顯然,VMWare Workstation就是這樣一個可以完美滿足我要求的桌面用戶最滿意的虛擬機。我經(jīng)常使用它來折騰各個Linux發(fā)行版,而且運行流暢。當然,在Linux這個開源的世界我們是不該去使用破解版這樣的東西的。不過不用擔心,在Linux江湖中,還有VirtualBox、QEMU這樣的虛擬機軟件可用。
而企業(yè)級用戶呢,他們期望的虛擬機可能是這樣的:
1.它不一定要能模擬出完整的電腦,重點是CPU、內存、磁盤和網(wǎng)卡,重點是能當服務器使用;
2.它性能一定要好,虛擬的CPU性能一定要接近物理CPU,一定要充分利用物理CPU的所有特性,為了性能,甚至只能安裝經(jīng)過修改過內核的操作系統(tǒng);(所謂的半虛擬化技術。)
3.它隔離性一定要好,它的目的是把一臺機器分成N臺機器用,而管理這N臺虛擬機的宿主機要越不占用資源越好,客戶機是主,宿主機是次;(正如Xen這樣。)
4.由于企業(yè)級用戶對性能的追求,所以客戶機所用的硬盤可能真是一個物理硬盤、磁盤陣列、網(wǎng)絡文件系統(tǒng)什么的,而不僅僅只是宿主機上的一個鏡像文件;
5.它不一定需要有圖形界面,因為使用命令行界面更容易管理,比如自動化啊、遠程化啊、批量化啊什么的;
6.更多的企業(yè)級高可用性需求,比如什么熱備份啊、動態(tài)遷移啊什么的。
從上面這些期望值可以看出,虛擬機領域水很深,市場前景也比較廣闊。各個虛擬機廠家把自家產(chǎn)品吹得天花亂墜那也是很常見的,因為每一個用戶期望的點都可以大做文章嘛。所謂臨淵羨魚,不如退而結網(wǎng),各種虛擬機看得再過癮,也不如自己嘗試一下。
今天我介紹的是QEMU。還是老規(guī)矩,我的博文并不是該軟件的使用手冊,所以,它的學習資料還請參考QEMU的官網(wǎng):
http://wiki.qemu.org/Main_Page
或者,在自己的系統(tǒng)中輸入如下命令:
man qemu-system-i386
man qemu-img
等等...
QEMU本身是一個非常強大的虛擬機,甚至在Xen、KVM這些虛擬機產(chǎn)品中都少不了QEMU的身影。在QEMU的官方文檔中也提到,QEMU可以利用Xen、KVM等技術來加速。為什么需要加速呢,那是因為如果單純使用QEMU的時候,它自己模擬出了一個完整的個人電腦,它里面的CPU啊什么的都是模擬出來的,它甚至可以模擬不同架構的CPU,比如說在使用Intel X86的CPU的電腦中模擬出一個ARM的電腦或MIPS的電腦,這樣模擬出的CPU的運行速度肯定趕不上物理CPU。使用加速以后呢,可以把客戶操作系統(tǒng)的CPU指令直接轉發(fā)到物理CPU,自然運行效率大增。
QEMU同時也是一個非常簡單的虛擬機,給它一個硬盤鏡像就可以啟動一個虛擬機,如果想定制這個虛擬機的配置,比如用什么樣的CPU啊、什么樣的顯卡啊、什么樣的網(wǎng)絡配置啊,指定相應的命令行參數(shù)就可以了。它支持許多格式的磁盤鏡像,包括VirtualBox創(chuàng)建的磁盤鏡像文件。它同時也提供一個創(chuàng)建和管理磁盤鏡像的工具qemu-img。QEMU及其工具所使用的命令行參數(shù),直接查看其文檔即可。
下面開始體驗。先看看Ubuntu軟件源中和QEMU有關的包有哪些:


我的電腦是Intel的CPU,而我想虛擬的也是個人電腦,所以我安裝的自然是qemu-system-x86,另外一個有用的是qemu-utils。查看QEMU軟件包中的工具及文檔:

使用qemu-img創(chuàng)建磁盤映像文件,使用qemu-system-i386啟動虛擬機,并安裝操作系統(tǒng):

WinXP估計是目前全網(wǎng)絡上最好下載的操作系統(tǒng)了。運行以上命令后,彈出熟悉的系統(tǒng)安裝界面。安裝過程我就不啰嗦了。下圖是安裝完WinXP操作系統(tǒng)之后的效果。可以給qemu-system-i386指定更多的參數(shù),在再一次啟動WinXP的時候,我除了給它分配了2G內存,我還使用-smp 2參數(shù)為它分配了兩個CPU,還使用-vga vmware為它指定和VMWare虛擬顯卡一樣的顯卡。雖然指定兩個CPU,但是性能仍較差。隨便拖動一下窗口CPU使用率就飆升到100%。

而且從上圖中可以看到,虛擬機中的CPU雖然顯示為3.5GHz,但是很顯然是QEMU模擬出來的,和物理CPU有顯著差別。事實上我的電腦配置相當強悍,Core i7-4770K的四核八線程CPU,請看lshw的輸出結果:

結論:
Intel Core i7-4770K的CPU,虛擬出的XP也分配了2G的內存和兩個CPU,但是流暢度仍較差。說明單純使用QEMU還是不能滿足我們桌面用戶的需要。配合Xen或者KVM呢?性能是否會有質的飛躍?敬請期待下篇。
相關文章

集成系統(tǒng)級Claw模式! Deepin 官宣發(fā)布 25.1 版本
deepin操作系統(tǒng)發(fā)布了最新的 25.1 版本更新,該版本基于 deepin 25 正式版積累的多輪內測成果,在 AI 能力、內核版本、桌面環(huán)境、文件管理器以及系統(tǒng)安全等方面進行了更新2026-04-13
又一代老硬件退場! Linux 內核正式放棄Intel 486 CPU
在過去的幾十年間,CPU 的架構已經(jīng)經(jīng)歷了飛速發(fā)展,x86 系列就是其中之一,而 i486 則屬于該系列中的一個,當前,i486 的CPU處理器已經(jīng)夠老,從 Linux 7.1 開始將不再有對2026-04-09
我把 Linux 中最常用、最實用、最常被問到的命令按照實際使用場景分類整理,方便你快速查閱和記憶,內容覆蓋日常運維、開發(fā)調試、性能分析、文件處理、網(wǎng)絡、安全、系統(tǒng)管2026-04-08
一分鐘內檢查Linux服務器性能? 9個性能檢測常用的基本命令
今天我們來看看Linux系統(tǒng)中用于性能監(jiān)控的一系列命令,這些命令可以快速查看機器的負載情況,詳細請看下文介紹2026-03-18
從零基礎到精通! 適合高級用戶的15款Linux發(fā)行版推薦
Linux作為操作系統(tǒng)領域靈活性和可定制性的基石,提供了大量滿足不同用戶需求的發(fā)行版,今天分享適合高級用戶的15款Linux發(fā)行版2026-03-10
開箱即用? 這4個高手級Linux發(fā)行版遠沒你想象的那么安全易用
如果你正在糾結用哪個發(fā)行版?零基礎新手別被“高端”“極客”“聲明式”這些詞沖昏頭腦,先用好用的,再慢慢進階2026-03-10
這幾款SSH工具真的夠用了! Linux好用的ssh工具推薦
在Linux上使用SSH,您需要安裝一個SSH客戶端,今天整理找到的8 款 SSH / 終端工具,從免費開源到企業(yè)級商用,從輕量化命令行到一站式工具箱,每款都做了介紹與對比,希望能2026-03-09
在Linux系統(tǒng)下有兩種用戶,即高級用戶root,普通用戶,高級用戶root可以在系統(tǒng)中做任何事情,普通用戶僅可在Linux系統(tǒng)中做有限的事情,下面我們就來看看切換方法2026-02-28
揭秘當前登錄用戶的身份! Linux中使用logname命令的技巧
logname命令就是這樣一個簡單但強大的工具,它能幫助我們輕松獲取當前登錄用戶的用戶名,今天,我們就來深入探索一下這個命令的工作原理、使用方法和最佳實踐2026-02-26
在 Linux 系統(tǒng)中,DNS 緩存是一種將域名和 IP 地址映射關系緩存在本地的機制,可以加快域名解析速度,并減輕 DNS 服務器的負載2026-02-26



