当前位置:网站首页 > 技术博客 > 正文

kvm虚拟化技术:实战与原理解析



原文链接

虚拟化(技术)是一种资源管理技术,是将计算机的各种实体资源(CPU、内存、磁盘空间、网络适配器等),予以抽象、转换后呈现出来并可供分割、组合为一个或多个电脑配置环境。

  • :程序在本地计算机执行和在虚拟机中执行应该表现出一样的结果(不包括执行时间的差异)
  • :虚拟机彼此隔离,与宿主计算机隔离
  • :绝大多数情况下虚拟机中的代码指令应该直接在物理CPU中执行,少部分特殊指令可由VMM参与。

I型虚拟化

image.png

II型虚拟化


图中的VMM意为Virtual Machine Monitor,虚拟机监控程序,或者用另一个更专业的名词:

HyperVisor

从图中可以清楚的看到两种虚拟化方案的区别:


Type I: 直接凌驾于硬件之上,构建出多个隔离的操作系统环境


Type II: 依赖于宿主操作系统,在其上构建出多个隔离的操作系统环境


我们熟知的VMware事实上有两个产品线,一个是VMware ESXi,直接安装在裸金属之上,不需要额外的操作系统,属于第一类虚拟化。另一个是我们普通用户更加熟知的VMware WorkStation,属于第二类虚拟化。


如何实现上述的虚拟化方案呢?


一个典型的做法是——

技术


什么意思?

简单来说就是正常情况下直接把虚拟机中的代码指令放到物理的CPU上去执行,一旦执行到一些敏感指令,就触发异常,控制流程交给VMM,由VMM来进行对应的处理,以此来营造出一个虚拟的计算机环境。

不过这一经典的虚拟化方案在Intel x86架构上却遇到了问题。


  • 能访问的内存空间
  • 能执行的特权指令


































  • 上一篇: jsf 菜鸟教程
  • 下一篇: android zxing详解
  • 版权声明


    相关文章:

  • jsf 菜鸟教程2025-08-22 22:30:07
  • 大端和小端字节顺序的区别2025-08-22 22:30:07
  • getchar在c语言中怎么用2025-08-22 22:30:07
  • 软件测试的面试题及答案2025-08-22 22:30:07
  • fstream file()2025-08-22 22:30:07
  • android zxing详解2025-08-22 22:30:07
  • python jinja2模板2025-08-22 22:30:07
  • 选项组控件2025-08-22 22:30:07
  • 大小端的区别以及各自的优点,哪种时候用2025-08-22 22:30:07
  • qssqc2025-08-22 22:30:07