KVM 的 基於核心的虛擬機器 是什麼意思?

時間 2021-05-05 19:27:46

1樓:雲天明

高票說的對啊,

hypervisor分type 1和type 2兩種,type 1是原生hypervisor,在任何核心啟動之前就開了vmx指令的,從開機自己就是ring 0,最著名的的type 1應該是vmware esx吧。

type 2是在host啟動之後啟動的,屬於後入式,需要使用執行特權指令開vmx,需要host配合。

那麼問題來了,kvm到底是不是type 1 hypervisor啊?

顯然,kvm是在linux核心之後執行的,是type 2。

不過呢如果我們把linux整體當做乙個hypervisor的話,這個hypervisor就可以認為是type 1了,所以這樣才叫kvm的吧。

所以hv server是type 1還是type 2呢……

2樓:石磊

kvm是linux核心裡的乙個模組,它實現了cpu的虛擬化(這個是在處理器輔助下新增了一層level0實現的),記憶體的虛擬化(不過記憶體管理的一套還是直接使用的linux系統本身的記憶體管理),然後檔案系統,驅動啥的也都是使用的linux的那一套。不過I/O使用的qemu代為處理的。這是我的理解。

kvm失去了linux就沒有虛擬出乙個虛擬機器的能力了。

3樓:

實際使用上,沒多大差別。全虛擬化效率低,但是不需要修改guest系統;半虛擬化效率高,但是要定製guest系統。

kvm原來也一直專注於全虛擬化,但是為了提高i/o效率,也引進了virtio模組。

所以,不用糾結,基於核心的虛擬化,還是其他的虛擬化。全虛擬化和辦虛擬化只要管理好了,都能起到提高生產效率的作用。如果安裝執行起來,就不管了,就。。。

Android 的 Dalvik 虛擬機器和 Linux shell 及 Linux kernel,三者之間是和關係?

1 從作業系統的角度來看,DVM JVM 都是乙個普通的程序,和 Bash 也好 Python 也好 Notepad 也好沒有本質區別。2 DVM 和 JVM 的區別主要在於位元組碼指令方面。乙個位元組碼的設計是通過模擬暫存器進行計算操作的,另一種是模擬 load store 進行記憶體操作的。3 ...

Go 語言的設計為什麼沒有虛擬機器?

Davie 如果Golang還是要設計乙個類似JVM的虛擬機器,就變成了比著別的語言來做乙個新語種,名字叫Golang了。那麼Golang還有必要被發明嗎,學起來還需要付出時間成本,得不償失。正確的理解應該是 Golang的創造者在Google內部創造出這門語言來是,就是衝著極簡原則來的,省略一切繁...

虛擬機器中的病毒是如何逃逸的?

可以,可以通過各類漏洞來逃逸,這也是為什麼硬體漏洞最為致命。當然容器和虛擬機器的漏洞就更容易利用了。並且檢查虛擬機器環境從而尋找針對性的逃逸措施也不是非常難的事情 在不進行刻意偽裝的情況下 韓楊 不算利用網路的話,出現虛擬機器逃逸的都是利用虛擬軟體本身的漏洞。如果虛擬軟體本身有漏洞就可以實現,vm ...