Linux折騰記(二十):虛擬機(jī)體驗(yàn)之KVM篇
在上一篇中,我展示了虛擬機(jī)軟件QEMU的使用、效果及其性能,同時(shí)也分析了不同用戶對(duì)虛擬機(jī)的不同追求。但是不管是桌面用戶還是企業(yè)級(jí)用戶,對(duì)虛擬機(jī)軟件的追求有一點(diǎn)是共同的,那就是性能。QEMU是一個(gè)強(qiáng)大的虛擬機(jī)軟件,它可以完全以軟件的形式模擬出完整的電腦所需的所有硬件,甚至是模擬出不同架構(gòu)的硬件,在這些虛擬的硬件之上,可以安裝完整的操作系統(tǒng)。QEMU的運(yùn)行模式如下圖:

很顯然,這種完全以軟件模擬硬件的形式雖然功能強(qiáng)大,但是性能難以滿足用戶的需要。模擬出的硬件的性能和物理硬件的性能相比,必然會(huì)大打折扣。為了提高虛擬機(jī)軟件的性能,開發(fā)者們各顯神通。其中,最常用的辦法就是在主操作系統(tǒng)中通過(guò)內(nèi)核模塊開一個(gè)洞,通過(guò)這個(gè)洞將虛擬機(jī)中的操作直接映射到物理硬件上,從而提高虛擬機(jī)中運(yùn)行的操作系統(tǒng)的性能。如下圖:

其中KVM就是這種加速模式的典型代表。在社區(qū)中,大家常把KVM和Xen相提并論,但是它們其實(shí)完全不一樣。從上圖可以看出,使用內(nèi)核模塊加速這種模式,主操作系統(tǒng)仍然占主導(dǎo)地位,內(nèi)核模塊只是在主操作系統(tǒng)中開一個(gè)洞,用來(lái)連接虛擬機(jī)和物理硬件,給虛擬機(jī)加速,但是虛擬機(jī)中的客戶操作系統(tǒng)仍然受到很大的限制。這種模式比較適合桌面用戶使用,主操作系統(tǒng)仍然是他們的主戰(zhàn)場(chǎng),不管是辦公還是打游戲,都通過(guò)主操作系統(tǒng)完成,客戶操作系統(tǒng)只是按需使用。至于Xen,則完全使用不同的理念,比較適合企業(yè)級(jí)用戶使用,桌面用戶就不要輕易去碰了,具體內(nèi)容下一篇我再講。
其實(shí)VirtualBox也是采取的這種內(nèi)核模塊加速的模式。我之所以這么說(shuō),是因?yàn)樵诎惭bVirtualBox時(shí),它會(huì)要求安裝DKMS。如下圖:

熟悉Linux的人知道,DKMS就是為了方便用戶管理內(nèi)核模塊而存在的,不熟悉DKMS的人Google一下也可以了解個(gè)大概。關(guān)于VirtualBox的具體使用方面的內(nèi)容,我下一篇再講。這一篇主要講KVM。
KVM和QEMU是相輔相成的,QEMU可以使用KVM內(nèi)核模塊加速,而KVM需要使用QEMU運(yùn)行虛擬機(jī)。從上圖可以看到,如果要使用Ubuntu的包管理軟件安裝KVM,其實(shí)安裝的就是qemu-kvm。而qemu-kvm并不是一個(gè)什么很復(fù)雜的軟件包,它只包含很少量幾個(gè)文件,如下圖:

用man命令查看一下它的文檔,發(fā)現(xiàn)qemu-kvm包不僅包含的文件很少,而且它的可執(zhí)行文件kvm也只是對(duì)qemu-system-x86_64命令的一個(gè)簡(jiǎn)單包裝,如下圖:

那么問(wèn)題來(lái)了,kvm內(nèi)核模塊究竟是由哪個(gè)包提供的呢?其實(shí),自從Linux 2.6開始,kvm就已經(jīng)被加入內(nèi)核了。如果非要找出kvm內(nèi)核模塊kvm.ko是由哪個(gè)包提供的,可以用如下命令考察一下:

寫到這里,已經(jīng)可以看出KVM的使用是很簡(jiǎn)單的了。下面,我使用KVM運(yùn)行一下上一篇中安裝的WinXP操作系統(tǒng),體驗(yàn)一下QEMU經(jīng)過(guò)KVM加速后的運(yùn)行效率。使用如下命令運(yùn)行使用KVM加速的QEMU:

可以看出,使用KVM加速后,虛擬機(jī)中的WinXP運(yùn)行速度提升了不少,開機(jī)只用了34秒。我將分辨率調(diào)整為1366*768,圖形界面運(yùn)行也很流暢,不管是打開IE瀏覽器還是Office辦公軟件都沒(méi)有問(wèn)題,再也沒(méi)有出現(xiàn)CPU使用率飆升到100%的情況。如果用 ps -ef | grep qemu 命令查看一下,發(fā)現(xiàn)kvm命令運(yùn)行的還是qemu-system-x86_64程序,只不過(guò)加上了-enable-kvm參數(shù),如下圖:

另外,對(duì)于桌面用戶來(lái)說(shuō),有一個(gè)好用的圖形化界面也是很重要的。雖然QEMU和KVM自身不帶圖形界面的虛擬機(jī)管理器,但是我們可以使用第3方軟件,比如virt-manager。只需要使用 sudo apt-get install virt-manager 即可安裝該軟件。該軟件依賴于libvirt,在安裝過(guò)程中也會(huì)自動(dòng)安裝。運(yùn)行virt-manager的效果如下圖,注意必須使用sudo運(yùn)行,因?yàn)樵撥浖枰?jí)用戶權(quán)限:

該軟件可自動(dòng)識(shí)別系統(tǒng)中的虛擬機(jī)環(huán)境是QEMU+KVM還是Xen。新建一個(gè)虛擬機(jī),由于之前安裝過(guò)一個(gè)WinXP系統(tǒng),所以選擇導(dǎo)入現(xiàn)有硬盤鏡像。點(diǎn)下一步后,出現(xiàn)如下界面:

這一步?jīng)]什么好說(shuō)的,再點(diǎn)下一步,如下圖:

這里可以設(shè)置網(wǎng)絡(luò)選項(xiàng)。如果勾選“在安裝前自定義配置”的話,還可以對(duì)硬件進(jìn)行進(jìn)一步的自定義,如下圖:

在上圖中,我們可以看到虛擬機(jī)支持的所有虛擬顯卡的類型,在這里,我當(dāng)然選擇的是VMVGA,因?yàn)槲乙郧敖?jīng)常用VMWare,知道這些操作系統(tǒng)在VMWare的虛擬顯卡設(shè)置下運(yùn)行得都沒(méi)有問(wèn)題。當(dāng)然,其它的選項(xiàng)都可以試一下,不過(guò)在虛擬的操作系統(tǒng)中需要安裝相應(yīng)的驅(qū)動(dòng)程序。
最后,虛擬機(jī)運(yùn)行的效果圖如下:

可以看到,該程序提供的界面有非常豐富的功能菜單,功能是非常強(qiáng)大的,甚至可以向虛擬機(jī)中的操作系統(tǒng)發(fā)送組合按鍵。
可以這么說(shuō),如果沒(méi)有VirtualBox的話,QEMU+KVM的組合應(yīng)該是桌面用戶的首選。下一篇我將嘗試VirtualBox,VirtualBox號(hào)稱是最強(qiáng)大的開源虛擬機(jī)系統(tǒng),敬請(qǐng)期待。
相關(guān)文章

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



