天天看點

說說KVM的API

都知道,KVM在虛拟化的時候提供給使用者空間的就是/dev/kvm。我們用ioctl進行操作的時候就是操作虛拟化。

KVM提供的API有三種類型,系統指令,VM指令,Vcpu指令。

下面一一說明:

系統指令:這個是針對于控制KVM運作的參數,包括全局性和虛拟機建立等工作。如:

KVM_GET_API_VERSION

KVM_CREATE_VM

KVM_CHECK_EXTENSION

等等指令。

VM指令:  實作虛拟機的控制,這裡的層次低了一些。系統指令操作的是kvm,而VM操作的是虛拟機。

KVM_CREATE_VCPU

KVM_GET_IRQCHIP

KVM_RUN

Vcpu指令:具體操作的對象是對每一個虛拟機的cpu來進行配置。包括寄存器,中斷,記憶體設定,調試開關等。

KVM_GET_REGS

KVM_GET_CPU

KVM_GET_XCRS

KVM_INTERRUPT

另外還包括了一些記憶體的設定函數。

以上就是我們使用KVM的API,其實也就是QEMU的在使用者态排程這些API實作代碼。