1、cpu虛擬化
模擬:emulation 軟件方式實現,上層架構和底層可以不一樣;需要模擬環0,1,2,3
虛擬:virtulization 上層架構和底層要保持一致
完全虛擬化(full-virtulization):宿主機完全虛擬出一個完整的平臺,guest不清楚自己運行在虛擬話環境中;只需要模擬環0,假設各guest的內核運行在環1(實際上不可能運行在環1,因為環1沒有特權指令)
BT:二進制翻譯(軟件)
HVM:硬件輔助的虛擬化(硬件),模擬出環-1,host的內核運行在環-1,guest內核運行在環0上,此時環0上沒有特權指令,guest運行特權指令要經過host內核
半虛擬化(para-virtulization):各host知道自己運行在虛擬化環境中,當需要運行特權指令時,直接請求宿主機的內核
vm monitor=hypervisor 虛擬化監視器相當於內核
hypervisor運行在硬件平臺上,對底層硬件(cpu和內存不包括io)使用分配過程虛擬成hyper call(hyper 調用),虛擬機的內核運行特權指令時,調用hyper call
2、內存虛擬化
進程視角看內存:線性地址空間
內核視角看內存:物理地址空間
Tags: 虛擬機 二進制 監視器 hyper 技術
文章來源: