虚拟化及地址空间转换(page translation table)
(全)虚拟化技术解决的问题:如何让在虚拟硬件环境中运行的guest系统的代码在真实CPU上运行?a. 无硬件虚拟化支持(软触发)将guest系统中需要触发硬件的指令保存并替换成异常指令,以便陷入进而转入VMM进行处理b. 有硬件虚拟化支持(硬触发)将所有影响系统级配置(host系统有可能因为它们的改动而down掉)的操作作上虚拟化标记 VT-x地址空间转换(page translation table)对于没有ept硬件支持的,需要维护如下几个表:1. 真实页表:寄存器GDTR所指向的真实GDT表,完成guest读写内存时从线性地址到真实物理地址的转换,转换过程和普通情况一样,由硬件自动完成;2. 虚拟页表:VMCS(virtual-machine control structure)中存储的GDTR的一份读拷贝(read shadow)所指向的GDT表,它是给guest系统“看”的(欺骗guest系统),每当guest需要读写page translation table(一级、二级映射表)时,首先会读取GDTR这个索引,再依次读取pdt、pt表项,读取GDTR时,CPU将返回VMC
...