前言
一、EPT概述
其实也就相当于r0与r3,在r3层的地址并不是真正对应到内存里的物理地址,而是虚拟地址,需要通过内核里对应的页表来查找才能得到真正的物理地址,但如果加载了VT,在r0层查出来的物理地址也变成了虚拟的,也需要通过一个页表来查得真正的物理地址,也就是EPT,有了EPT机制,就能在一台电脑里运行多个操作系统,就像一个操作系统里运行多个应用程序一样,这里推荐看一下看雪大佬写的文章:
【科普下EPT】
二、构建EPT
1.思路
首先根据这张图算一下:
每个PML4E,PDPTE,PDE,PTE都是占8个字节
每个PML4T,PDPT,PDT,PT分配一页内存占4k
所以每个表有4k/8=512项,一个PTE对应一页物理内存,一个PT可以管理512 x 4k=2M内存,一个PDT可以管理512 x 2M=1G内存
以此类推一个PDPT可以管理512G内存,我的电脑是16G