首先kvm(kernel virtual machine)是linux的乙個核心驅動模組,它能夠讓linux主機成為乙個hypervisor(虛擬機器監控器)。在支援vmx(virtual machine extension)功能的x86處理器中,linux在原有的使用者模式和核心模式中新增加了客戶模式,並且客戶模式也擁有自己的核心模式和使用者模式,虛擬機器就是執行在客戶模式中。kvm模組的職責就是開啟並初始化vmx功能,提供相應的介面以支援虛擬機器的執行。
qemu(quick emulator)本身並不包含或依賴kvm模組,而是一套由fabrice bellard編寫的模擬計算機的自由軟體。qemu虛擬機器是乙個純軟體的實現,可以在沒有kvm模組的情況下獨立執行,但是效能比較低。qemu有整套的虛擬機器實現,包括處理器虛擬化、記憶體虛擬化以及i/o裝置的虛擬化。qemu是乙個使用者空間的程序,需要通過特定的介面才能呼叫到kvm模組提供的功能。從qemu角度來看,虛擬機器執行期間,qemu通過kvm模組提供的系統呼叫介面進行核心設定,由kvm模組負責將虛擬機器置於處理器的特殊模式執行。qemu使用了kvm模組的虛擬化功能,為自己的虛擬機器提供硬體虛擬化加速以提高虛擬機器的效能。
kvm只模擬cpu和記憶體,因此乙個客戶機作業系統可以在宿主機上跑起來,但是你看不到它,無法和它溝通。於是,有人修改了qemu**,把他模擬cpu、記憶體的**換成kvm,而網絡卡、顯示器等留著,因此qemu+kvm就成了乙個完整的虛擬化平台。
kvm只是核心模組,使用者並沒法直接跟核心模組互動,需要借助使用者空間的管理工具,而這個工具就是qemu。kvm和qemu相輔相成,qemu通過kvm達到了硬體虛擬化的速度,而kvm則通過qemu來模擬裝置。對於kvm來說,其匹配的使用者空間工具並不僅僅只有qemu,還有其他的,比如redhat開發的libvirt、virsh、virt-manager等,qemu並不是kvm的唯一選擇。
所以簡單直接的理解就是:qemu是個計算機模擬器,而kvm為計算機的模擬提供加速功能。
qemu建立vm和vcpu進入kvm的流程
kvm是乙個核心模組,它實現了乙個 dev kvm的字元裝置來與使用者進行互動,通過呼叫一系列ioctl函式可以實現qemu和kvm之間的切換。1 qemu發起kvm create vm的ioctl建立虛擬機器 qemu從vl.c main開始,通過configure accelerator根據當前...
QEMU虛擬化加速方案 KVM
qemu執行引擎除了預設tcg即時翻譯外,還支援硬體加速方案kvm 1 及haxm 2 硬體加速方案對作業系統 硬體體系結構的要求總結 linux intel vt d amd v cortex a15 可採用kvm windows 7及以後 intel vt d 可採用haxm 其他windows...
數字kvm和模擬kvm區別
數字kvm和模擬kvm最主要的區別是 數字kvm可以通過網路遠端進行管理 操控pc或者伺服器 模擬kvm只能在本地管理 操控pc或者伺服器 1 數字kvm裝置優點 通過ip具有集中遠端控管能力 借助網路,簡化連線線纜,擴容簡單 系統維護也比較簡單,具有非常高的投入回 值 產品成熟,具有廣泛使用者群。...