课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
1分钟

基于硬件的 CPU 虚拟化

上面的这种截获再模拟的纯软件的虚拟化方式,势必是性能非常低的。那怎么样提高性能呢,有一种改进

的方式是修改 Guest OS 中关于特权指令的相关操作,将其改为一种函数调用的方式,让 VMM 直接执

行,而不是截获和模拟,这样就能在一定程度上提高性能。

但这种方式并不通用,要去改 Guest OS 的代码,只能看作是一种定制。为了能够通用,又能够提高性

能,就只能从硬件上去做文章了。所以,后来,以 Intel 的 VT-x 和 AMD 的 AMD-V 为主的硬件辅助的

CPU 虚拟化就被提出来(Intel VT 包括 VT-x (支持 CPU 虚拟化)、EPT(支持内存虚拟化)和 VT-

d(支持 I/O 虚拟化)。

CPU 硬件辅助虚拟化在 Ring 模式的基础上引入了一种新的模式,叫 VMX 模式。它包括根操作模式

(VMX Root Operation)和非根操作模式(VMX Non-Root Operation)。

这两种模式都有 Ring 0 – Ring 3 的特权级。所以,在描述某个应用程序时,除了描述其属于哪个特权级,

还要指明其处于根模式还是非根模式。

引入这种模式的好处就在于,Guest OS 运行在 Ring 0 上,就意味着它的核心指令可以直接下达到硬件层

去执行,而特权指令等敏感指令的执行则是由硬件辅助,直接切换到 VMM 执行,这是自动执行的,应用

程序是感知不到的,性能自然就提高了。

KVM 是一种硬件辅助的虚拟化技术,支持 Intel VT-x 和 AMD-v 技术。