设为首页收藏本站language 语言切换
查看: 3206|回复: 1
收起左侧

[分享] KVM 内存虚拟化及其实现 (1)

[复制链接]
发表于 2012-11-2 18:12:07 | 显示全部楼层 |阅读模式
为保证客户机操作系统在虚拟环境下观察到的内存空间布局与在实际物理机环境下相同,就必须对内存进行虚拟化。
对于内存虚拟化,目前主要有两种实现方法,其一是利用传统的影子页表进行虚拟化,其二就是通过硬件辅助进行实现。本文主要阐述了这两种内存虚拟化方法在 KVM 上的具体实现。
KVM(KernelVirtual Machine) , 作为开源的内核虚拟机,越来越受到 IBM,Redhat,HP,Intel 等各大公司的大力支持,基于 KVM 的开源虚拟化生态系统也日益完善。而实现 KVM 虚拟化,使客户机高效地、安全地使用宿主机的内存资源,就必须实现内存的虚拟化。
客户机物理地址空间
为了实现内存虚拟化,让客户机使用一个隔离的、从零开始且具有连续的内存空间,KVM 引入一层新的地址空间,即客户机物理地址空间 (Guest PhysicalAddress, GPA),这个地址空间并不是真正的物理地址空间,它只是宿主机虚拟地址空间在客户机地址空间的一个映射。对客户机来说,客户机物理地址空间都是从零开始的连续地址空间,但对于宿主机来说,客户机的物理地址空间并不一定是连续的,客户机物理地址空间有可能映射在若干个不连续的宿主机地址区间,如下图所示:
客户机物理地址到宿主机虚拟地址的转换

 楼主| 发表于 2012-11-5 10:20:29 | 显示全部楼层
谢谢喽
沙发 2012-11-5 10:20:29 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-2-9 10:53 , Processed in 0.059407 second(s), 13 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表