缩写说明:
* pfn: host page frame number,宿主机中某个物理页的帧数
* hpa: host physical address,宿主机的物理地址
* hva: host virtual address,宿主机的虚拟地址
* gfn: guest page frame number,虚拟机中某个物理页的帧数
* gpa: guest physical address,虚拟机的物理地址
* gva: guest virtual address,虚拟机的虚拟地址
* pte: page table entry,指向下一级页表或者页的物理地址,以及相应的权限位
* gpte: guest pte,指向GPT中下一级页表或者页的gpa,以及相应的权限位
* spte: shadow pte,指向EPT中下一级页表或者页的hpa,以及相应的权限位
* tdp: two dimentional paging,也就是我们所说的EPT机制
问题:
1.什么是MMU?
Memory manage unit
,也就是内存管理单元,一般封装于cpu的内部,主要职责为将虚拟地址翻译为物理地址,相当于一个cpu和内存之前的一个中间转换层,对软件来说是不可见的,对上层软件的开发者来说并不需要关心他,但是对于OS移植或底层驱动开发者来说,则必须清楚如何辅助MMU完成地址转换。
2,页/页帧/页表/页表项
MMU值负责把虚拟地址映射为物理地址,但凡涉及到映射都需要解决两个问题:映射的最小单位,映射的规则。
- 页(Page):
MMU中映射的最小单位为页(Page),也就是说映射的最小粒度为单个徐你也到单个物理页,大小通常为4K, 即从0开始以4K对齐划分页块,页内便宜不变。
页是最小单位,不能把VA中的某一页划分成几小块分别映射到不同的PA,也不能把