Qemu KVM基本工作原理分析

2021-08-18 14:28:57 字數 1027 閱讀 5048

1、理解kvm與qemu的關係

我們都知道開源虛擬機器kvm,並且知道它總是跟qemu結合出現,那這兩者之間有什麼關係呢?

首先,qemu本身並不是kvm的一部分,而是一整套完整的虛擬化解決方案,它是純軟體實現的,包括處理器虛擬化、記憶體虛擬化以及各種虛擬裝置的模擬,但因為是純軟體模擬,所以效能相對比較低。

而廣義的kvm實際上包含兩部分,一部分是基於linux核心支援的kvm核心模組,另一部分就是經過簡化和修改qemu。

kvm核心模組模擬處理器和記憶體以支援虛擬機器的執行,qemu主要處理i/o以及為使用者提供乙個使用者空間工具來進行虛擬機器的管理。兩者相互結合,相輔相成,構成了乙個完整的虛擬化平台。

2、kvm執行時的三種模式

在虛擬機器執行時,有三種模式,分別是:

客戶模式:我們可以簡單理解成客戶機作業系統執行在的模式,它本身又分為自己的核心模式和使用者模式。

使用者模式:為使用者提供虛擬機器管理的使用者空間工具以及代表使用者執行i/o,qemu執行在這個模式之下。

核心模式:模擬cpu以及記憶體,實現客戶模式的切換,處理從客戶模式的退出。kvm核心模組執行在這個模式下。

三種模式的層次關係我們可以用圖簡單描述一下:

3、kvm工作原理

kvm的大致工作原理:使用者模式的qemu利用介面libkvm通過ioctl系統呼叫進入核心模式。kvmdriver為虛擬機器建立虛擬cpu和虛擬記憶體,然後執行vmlaunch指令進入客戶模式,裝載guest os並執行。guest os執行過程中如果發生中斷或者影子缺頁等異常,將暫停guest os的執行並儲存當前上下文退出到核心模式來處理這些異常。核心模式處理這些異常時如果不需要i/o則處理完成後重新進入客戶模式,如果需要i/o則進入到使用者模式,由qemu來處理i/o,處理完成後進入核心模式,再進入客戶模式。

kvm的工作原理如圖:

qemu kvm記憶體虛擬化原理

guest physical address,gpa 客戶機實體地址 guest virtual address,gva 客戶機虛擬位址 host physical address,hpa 宿主機實體地址 host virtual address,hva 宿主機虛擬位址 客戶機實體地址 pb 表示 ...

servlet工作原理分析

study servlet config helloworld config helloworld jp.co.xiehl.servlet.ch7.helloworldservlet driver aaaaaa 8 url127.1.1.1 30 hello count 簡單對這個servlet進行...

Shell 基本工作原理

shell 基本工作原理 shell 基本工作原理 linux系統提供給使用者的最重要的系統程式是shell命令語言解釋程式。它不屬於核心部分,而是在核心之外,以使用者態方式執行。其基本功能是解釋並執行使用者打入的各種命令,實現使用者與linux核心的介面。系統初啟後,核心為每個終端使用者建立乙個程...