12 | 内存虚拟化:云原生时代的奠基者
海纳
你好,我是海纳。
今天的这节课呢,是软件篇中的最后一节课了,在前面的课程里,我们整体介绍了单机系统上内存管理的基础知识。这节课,我们就结合前面学习的内容,一起来探讨下,虚拟化中的内存管理,因为我们前面讲过了内存知识,在这个基础上,你再来学习虚拟化中的内存管理,就会简单多了。
当前,云计算已经成为各种网络服务的主流形式,但云计算不是一蹴而就的,它的发展也经过了长期的探索和演变。在演变的过程中,扮演核心角色的就是主机虚拟化技术。它经历了虚拟机和容器两大阶段,其中虚拟机以 VMWare 和 KVM 等为代表,容器以 Docker 为代表。
虽然现在 Docker 技术非常火爆,甚至某种程度上,人们在讨论云化的时候往往就是指容器化,但是虚拟机技术在长期的发展中,也留下了非常宝贵的技术积累,这些积累在各种特定的场景里还在发挥着重要作用。
举一个我曾经遇到过的一个真实案例:在 Windows 上快速预览 Android 游戏。这个操作听起来很神奇是吧,那如何才能打破架构上的壁垒,达到快速执行的目的呢?这就需要对虚拟化的基本原理掌握得比较好,从而在虚拟机层面做很多优化。所以掌握虚拟化技术绝不仅仅只应用于云服务的场景,它可能会在各种意想不到的场景中发挥奇效。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
虚拟化技术在云原生时代扮演着重要角色,确保多用户隔离和虚拟机用户的隐私与安全。文章介绍了内存虚拟化的基本原理和内存管理,重点讨论了保护模式下Guest的访存和硬件支持的EPT机制。在保护模式下,内存转换更加复杂,需要使用影子页表来完成GVA到HPA的映射。影子页表的构建和切换效率低下,为解决这一问题,硬件厂商提供了EPT机制,通过硬件支持的两层地址翻译提高了虚拟化效率。EPT负责GPA到HPA的地址转换,减少了上下文切换的开销。总体而言,文章深入探讨了虚拟化技术中内存管理的复杂性和硬件支持的重要性,为读者提供了深入了解虚拟化技术的基础知识。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《编程高手必学的内存知识》,新⼈⾸单¥59
《编程高手必学的内存知识》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- keepgoing当 Guest 的内核代码在 Host 的 CPU 上执行的时候,Guest 没有办法区分“安全”指令和“非安全”指令 老师这里为什么是Guest去进行区分,真正执行代码的是Host,应该Host去区分吗
作者回复: 是这样的,为了执行效率,Host把CPU的控制权完全地交给了Guest了,所以CPU上执行的是Guest代码。我这句话的意思是,在Guest代码执行的时候,没有人能知道什么是不安全指令,什么是安全指令。
2021-11-262 - 梅侯Guest 可以在 root 模式下正常执行指令,就如同在执行物理机的指令一样。 这里写错了?应该是non-root模式?
作者回复: 已经修改。谢谢。
2021-11-193 - i Love 3🍀保留HPA的目的是不能绕过host的MMU机制吗?防止其他guest映射同样的HPA,这样访问host的物理内存就会出问题。2021-12-211
- 大鑫仔Yeah沙发2021-11-19
收起评论