可用qemu的命令來模擬硬碟等,可以安裝OS,現在一般是QEMU KVM結合,他們兩者的區別?如何增強虛擬化功能的?

時間 2021-05-31 07:45:05

1樓:Amos

目前KVM已經完全合併到qemu中, -enable-kvm選項技能開啟kvm加速。

kvm主要是呼叫硬體虛擬化,記憶體虛擬化,還有iO加速都放到了核心裡。

2樓:Bruce Wayne

Qemu可以模擬CPU - 通過二進位制翻譯將乙個指令集翻譯成另一種指令集;可以模擬MMU - 管理使用者os,或者使用者程序(取決於qemu是工作在系統態還是使用者態);可以模擬IO - 抽象實際的物理裝置。以上三點都是軟體模擬,強大但是效率較低。

KVM是核心模組,載入啟動後kernel就變成了VMM。依賴於硬體虛擬化技術(指令)充分提高虛擬化效能。具體一點,硬體虛擬化提供的指令維護了主機os和客戶os的指令空間和上下文,上下文切換由硬體完成,MMU也有硬體完成。

如此效率自然提高。

但是當使用者os依賴的指令集不同於主機os,比如x64上執行arm的os,那就還是得依賴於qemu的cpu指令集翻譯。另外,硬體虛擬化不提供的IO虛擬化也有qemu模擬。

3樓:felonwan

我想問下,在X86的CPU上模擬ARM的,或者相反的在ARM的CPU上模擬X86的CPU,kvm有用麼?只說指令執行這塊。似乎得看它們的指令重疊部分有多少?

4樓:rxf1986

在網上搜了一下,看到有人這樣說:

qemu是一套虛擬機器管理系統,kqemu是qemu的加速器,可以認為是qemu的乙個外掛程式;qemu可以虛擬出不同架構的虛擬機器,如在x86平台上可以虛擬出power機器;

kvm是另外的一套虛擬機器管理系統,包括核心虛擬構架和處理器相關模組,其借用了 quem 其它一些元件,kvm的非核心部分是由qemu實現的;載入了模組後,才能進一步通過其他工具建立虛擬機器。但僅有 KVM 模組是遠遠不夠的,因為使用者無法直接控制核心模組去做事情,還必須有乙個使用者空間的工具

qemu-kvm:kvm是linux的乙個模組,管理和建立完整的虛擬機器需要相應的一些管理工具,由於kvm是在qemu的基礎上開發的,KVM 使用了 QEMU 的基於 x86 的部分,並稍加改造,形成可控制 KVM 核心模組的使用者空間工具QEMU-KVM。

在所謂的kvm技術中,應用到的其實有2個東西:qemu+kvm

kvm負責cpu虛擬化+記憶體虛擬化,實現了cpu和記憶體的虛擬化,但kvm不能模擬其他裝置;

qemu是模擬IO裝置(網絡卡,磁碟),kvm加上qemu之後就能實現真正意義上伺服器虛擬化。

因為用到了上面兩個東西,所以一般都稱之為qemu-kvm。

不知道上面的回答是否有所欠缺???

是不是qemu可以建立虛擬機器,但是作業系統需要額外的映象載入,而kvm可以實現核心作業系統的虛擬化?

使用top命令,free命令看到的記憶體占用和實際占用為什麼不符合,看到不是真實的?

南盼 很正常,top命令對程序資源的統計方式有問題。如下圖,是在一台32核128G記憶體伺服器上擷取的資料。可以看到我的樣例程式a.out的cpu使用率為1001 記憶體使用率為152 這是因為我的程式是乙個16執行緒的程式,且每個執行緒都對同乙個大約12G的共享記憶體進行了對映。可以看出,top在...

這裡的what可用as替換嗎?

MellowKayKay to B,A is what C is to D 用 as,恐怕所謂的語法上不是一樣的結構,雖然我早已忘記什麼表語狀語補語的了。簡言之國內考試的標準,保險起見不要替換。日常的話,很確定聽人用過as,這裡指英語為母語的人,至於在哪聽誰說的不記得了,記得是因為只聽到過那麼一次,...

關於linux sudo命令的問題?

長軍 在這個使用者下執行 alias 可能sudo 命令被修改了,每次執行都會在後台執行logger,儲存使用記錄。另外我的系統內的 logger沒有 r 選項,應該是報錯的原因。logger help Usage logger options Enter messages into the sys...