qemu-kvm内存虚拟化原理

Guest Physical Address, GPA  客户机物理地址
Guest Virtual  Address, GVA  客户机虚拟地址
Host  Physical Address, HPA  宿主机物理地址
Host  Virtual  Address, HVA  宿主机虚拟地址

kvm 内存虚拟化结构:(有点类似 vmalloc 原理)客户机里面使用的物理地址(从0开始连续的一段地址),在宿主机里面看来却不是连续的,而是有各个地址空间映射为连续的;

客户机物理地址(pb 表示 物理地址区间)
pb0 | pb1 | pb2 | .... | pbn

vb0 | vb1 | vb2 | .... | vbn
宿主机虚拟机地址(vb 表示 虚拟机地址区间)
上面的映射一定不是 pb0 == vb0 , pb1 == vb1 ..... pbn == vbn;他们之间有些是错开映射的;

kvm 内存虚拟化的重点就是:GVA->HPA,客户机虚拟机地址到宿主机物理地址的转换;

由于在访问内存地址时,要进过MMU的映射,物理地址映射为总线上的地址(可以理解为内存卡上地址);客户机里的物理地址不能直接进行MMU映射使用,所以就必须把客户机的物理地址映射为宿主机的物理地址,然后MMU访问总线内存地址;

KVM 用一个 kvm_memory_slot 数据结构来记录每一个地址区间的映射关系,此数据结构包含了对应此映射区间的起始客户机页帧号 (Guest Frame Number, GFN
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值