0%

cpu虚拟化技术

2019年4月21日 下午5:11

需要虚拟化的原因:

虚拟化的发展历程和实现方式 - 又是火星人 - 博客园

全虚拟化中的特权解除+陷入模拟:

具体三种虚拟化的方式没有深入的理解,只是大致的理解了一下思路:

CPU纯软件全虚拟化技术 - 又是火星人 - 博客园

  1. 在没有CPU硬件辅助虚拟化技术之前,对于X86架构的CPU就采用陷入模拟二进制翻译的技术对CPU进行虚拟化实现,但是模拟的方式存在固有缺陷,并不完全虚拟化了x86的CPU架构。
  2. 二进制翻译技术则采用完全不同的思路实现了x86架构的CPU虚拟化
  3. 其实对于x86的CPU虚拟化,其难点就在于对其特权指令和敏感指令的虚拟化实现

CPU纯软件半虚拟化技术 - 又是火星人 - 博客园

  1. 半虚拟化的思想就是,让客户操作系统知道自己是在虚拟机上跑的,工作在非ring0状态,那么它原先在物理机上执行的一些特权指令,就会修改成其他方式,这种方式是可以和VMM约定好的
  2. 这就相当于,通过修改代码把操作系统移植到一种新的架构上来,就像是定制化。
  3. 所以XEN这种半虚拟化技术,客户机操作系统都是有一个专门的定制内核版本,和x86、mips、arm这些内核版本。这样以来,就不会有捕获异常、翻译、模拟的过程了,性能损耗非常低。这就是XEN这种半虚拟化架构的优势。这也是为什么XEN半虚拟化只支持虚拟化Linux,无法虚拟化windows原因,微软不修改代码无法实现半虚拟化。

CPU硬件辅助虚拟化技术 - 又是火星人 - 博客园

  1. 硬件辅助虚拟化引入了根模式(root operation)和非根模式(none-root operation),每种模式都有ring0-3的四级特权级别
  2. 所以,在硬件辅助虚拟化中,陷入的概念实际上被VM-EXIT操作取代了,它代表从非根模式退出到根模式,而从根模式切换到非根模式是VM-Entry操作