KVM虛擬化有兩個核心模塊:
KVM內核模塊:
主要包括KVM虛擬化核心模塊KVM.ko,以及硬件相關的KVM_intel或KVM_AMD模塊;負責CPU與內存虛擬化,包括VM創建,內存分配與管理、vCPU執行模式切換等。
QEMU設備模擬:
實現IO虛擬化與各設備模擬(磁盤、網卡、顯卡、聲卡等),通過IOCTL系統調用與KVM內核交互。KVM僅支持基于硬件輔助的虛擬化(如Intel-VT與AMD-V),在內核加載時,KVM先初始化內部數據結構,打開CPU控制寄存器CR4里面的虛擬化模式開關,執行VMXON指令將Host OS設置為root模式,并創建的特殊設備文件/dev/kvm等待來自用戶空間的命令,然后由KVM內核與QEMU相互配合實現VM的管理。KVM會復用部分Linux內核的能力,如進程管理調度、設備驅動,內存管理等。
回答所涉及的環境:聯想天逸510S、Windows 10。
KVM虛擬化有兩個核心模塊:
KVM內核模塊:
主要包括KVM虛擬化核心模塊KVM.ko,以及硬件相關的KVM_intel或KVM_AMD模塊;負責CPU與內存虛擬化,包括VM創建,內存分配與管理、vCPU執行模式切換等。
QEMU設備模擬:
實現IO虛擬化與各設備模擬(磁盤、網卡、顯卡、聲卡等),通過IOCTL系統調用與KVM內核交互。KVM僅支持基于硬件輔助的虛擬化(如Intel-VT與AMD-V),在內核加載時,KVM先初始化內部數據結構,打開CPU控制寄存器CR4里面的虛擬化模式開關,執行VMXON指令將Host OS設置為root模式,并創建的特殊設備文件/dev/kvm等待來自用戶空間的命令,然后由KVM內核與QEMU相互配合實現VM的管理。KVM會復用部分Linux內核的能力,如進程管理調度、設備驅動,內存管理等。
回答所涉及的環境:聯想天逸510S、Windows 10。