qemu
qemu
是乙個模擬器,它向
guest os
模擬cpu
和其他硬體,
guest os
認為自己和硬體直接打交道,其實是同
qemu
模擬出來的硬體打交道,
qemu
將這些指令轉譯給真正的硬體。
由於所有的指令都要從
qemu
裡面過一手,因而效能較差
kvm是linux核心的模組,它需要cpu的支援,採用硬體輔助虛擬化技術
intel-vt
,amd-v
,記憶體的相關如intel的ept和amd的rvi技術,
guest os
的cpu
指令不用再經過
qemu
轉譯,直接執行,大大提高了速度
,kvm
通過/dev/kvm
暴露介面,使用者態程式可以通過
ioctl
函式來訪問這個介面。見如下偽**:
1
2
3
4
5
6
7
8
9
10
open(
"/dev/kvm"
)
ioctl(kvm_create_vm)
ioctl(kvm_create_vcpu)
for
(;;)
}
kvm核心模組本身只能提供cpu和記憶體的虛擬化,所以它必須結合qemu才能構成乙個完成的虛擬化技術,這就是下面要說的qemu-kvm。
qemu-kvm
qemu
將kvm
整合進來,通過
ioctl
呼叫/dev/kvm
介面,將有關
cpu指令的部分交由核心模組來做。
kvm負責
cpu虛擬化
+記憶體虛擬化
,實現了
cpu和記憶體的虛擬化,但
kvm不能模擬其他裝置。
qemu
模擬io
裝置(網絡卡,磁碟等)
,kvm
加上qemu
之後就能實現真正意義上伺服器虛擬化。因為用到了上面兩個東西,所以稱之為
qemu-kvm。
qemu
模擬其他的硬體,如
network, disk
,同樣會影響這些裝置的效能,於是又產生了
pass through
半虛擬化裝置
virtio_blk, virtio_net
,提高裝置效能。
是目前使用最為廣泛的對kvm
虛擬機器進行管理的工具和
api。
libvirtd
是乙個daemon
程序,可以被本地的
virsh
呼叫,也可以被遠端的
virsh
呼叫,libvirtd
呼叫qemu-kvm
操作虛擬機器。
KVM Qemu Libvirt三者之間的關係
原始出處 作者資訊和本宣告。否則將追究法律責任。qemu qemu 是乙個模擬器,它向 guest os 模擬cpu 和其他硬體,guest os 認為自己和硬體直接打交道,其實是同 qemu 模擬出來的硬體打交道,qemu 將這些指令轉譯給真正的硬體。由於所有的指令都要從 qemu 裡面過一手,因...
KVM Qemu Libvirt三者之間的關係
在所謂的kvm技術中,應用到的其實有2個東西 qemu kvm kvm負責cpu虛擬化 記憶體虛擬化,實現了cpu和記憶體的虛擬化,但kvm不能模擬其他裝置 qemu是模擬io裝置 網絡卡,磁碟 kvm加上qemu之後就能實現真正意義上伺服器虛擬化。因為用到了上面兩個東西,所以一般都稱之為qemu ...
三消遊戲(三)
後面一些更改就是實現下落下標更改的方法。這個方法要在一開始檢測三色的時候呼叫 with3arr this.filterdelsame with3arr,return with3arrupdatecellfalldownnum function cell 還要刪除陣列裡的相同元素 filterdels...