虚拟化的理论-CPU虚拟化

二进制翻译(Binary Translation)是一种直接翻译可执行二进制程序的技术,能够把一种处理器上的二进制程序翻译到另外一种处理器上执行.它使得不同处理器之间的二进制程序可以很容易地相互移植,扩大了硬件/软件的适用范围,有助于打破前面提到的处理器和支持软件之间互相掣肘影响创新的局面.

---来自百度百科

基于二进制翻译技术的完全虚拟化,主要是解决一些敏感指令的翻译。翻译过程如下:

Guest OS运行在Ring1级别,VMM运行在Ring 0级别完全掌控系统资源对资源进行控制,对于一些非特权指令可以直接执行。对于一些特权指令则将其替换成陷入指令,通过VMM来捕获并模拟其指令的执行。

半虚拟化的执行过程如下:

对于半虚拟来说Guest OS和VMM都是运行在Ring 0上,Guest OS的普通指令是可以执行执行的,而对于一些特权指令来说因为Guest OS知道其运行在虚拟环境下,所以对于一些特权指令Guest OS是直接调用VMM提供的Hypercalls来执行的。

下面来介绍下硬件辅助虚拟化,其过程如下:

对于硬件辅助虚拟化来说,又引入了一个Root mode Privilege Levels,Guest OS是运行在普通模式下Ring 0特权级别处于受控模式,是要受到Root mode的控制,而VMM此时是运行在一个Root mode级别下,对于Guest OS执行的所有特权指令一些敏感指令都将会全部陷入Root mode,VMM就可以方便的捕获到全部指令,这就解决了部分非特权的敏感指令问题。并且对于模式的切换和恢复都是由硬件来完成所以性能上也很好。

虚拟化的理论-CPU虚拟化

时间: 2024-11-06 21:32:02

虚拟化的理论-CPU虚拟化的相关文章

CPU虚拟化技术(留坑)

留坑~~~ 不知道这个是这么实现的 CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚拟化技术与多任务以及超线程技术是完全不同的.多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上:而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出

虚拟化的理论-内存和IO虚拟化

这部分只要介绍下虚拟化技术中的内存虚拟化和IO虚拟化两个部分 内存虚拟化: 上图中的做伴部分是正常情况下内存的使用情况,线性地址到物理地址的一个转换,通常应用程序使用的内存地址是线性地址,需要通过MMU地址转换的一个硬件来实现线性地址到物理地址的一个转换.上图的有半部分是虚拟化情况下内存是如何实现线性地址到物理地址的转换,虚拟机中的OS获得是有Host OS分配的线性地址,Guest OS中的应用程序获取的是相对于Guest os来说的线性地址,那么对于这个线性地址来说最终只能转换成线性地址,无

虚拟化的理论

虚拟化技术的分类:1.平台虚拟化,针对计算机和操作系统的虚拟化2.资源虚拟化,针对特定的系统资源的虚拟化,比如内存,存储,网络资源等3.应用程序虚拟化 包括仿真,模拟,解释等技术 平台虚拟化分类:1.全虚拟化    全虚拟化简而言之就是VMM提供了一整套模拟出来的硬件,使得可以像在正常的硬件上安装操作系统一样在虚拟出来的硬件上安装操作系统,安装应用程序等等,然而对于虚拟机中执行的一些特权指令是需要经过VMM处理才可以执行的.通常的操作系统在用户空间是无法执行特权指令的,特权指令的执行是通过陷入内

烂泥:查看服务器的BIOS是否开启CPU虚拟化

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 有关CPU是否支持虚拟化,我们可以通过相关的命令和软件进行查看. 在windows系统下,我们可以使用CPU-Z这个软件,如下图: 在linux系统下,我们可以通过查看/proc/cpuinfo文件,如下图: 今天我们在此谈论是在CPU支持虚拟化的前提下,主板的BIOS是否开启CPU的虚拟化. 在windows系统下,我们需要安装微软的一个工具havdetectiontool.exe来实现.该工具下载地址:http://www.microsoft.

CPU虚拟化

1. 为什么需要 CPU 虚拟化 X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件.x86 架构提供四个特权级别给操作系统和应用程序来访问硬件.  Ring 是指 CPU 的运行级别,Ring 0是最高级别,Ring1次之,Ring2更次之-- 就 Linux+x86 来说, 操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别  Ring0上,这样它可以使用特权指令,控制中断.修改页表.访问设备等等. 应用程序的代码运行在最低运行级

[虚拟化] CPU虚拟化技术 - Introduction

虚拟化技术的分类主要有服务器虚拟化.存储虚拟化.网络虚拟化.应用虚拟化. 服务器虚拟化技术按照虚拟对象来分,可分为:CPU虚拟化.内存虚拟化.I/O虚拟化: 按照虚拟化程度可分为:全虚拟化.半虚拟化.硬件辅助虚拟化. 将不同的虚拟化对象和程度组合,可得出 9种 不同的服务器虚拟化技术. 首先详细介绍下服务器虚拟化之CPU虚拟化,后续讲解中再详细介绍内存虚拟化及I/O虚拟化. 二.CPU虚拟化 ·CPU全虚拟化技术 主要采用优先级压缩技术(Ring Compression)和 二进制代码翻译技术(

全虚拟化和半虚拟化的区别 cpu的ring0~ring3又是什么概念?

ring0是指CPU的运行级别,ring0是最高级别,ring1次之,ring2更次之-- 拿Linux+x86来说, 操作系统(内核)的代码运行在最高运行级别ring0上,可以使用特权指令,控制中断.修改页表.访问设备等等. 应用程序的代码运行在最低运行级别上ring3上,不能做受控操作.如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问

全虚拟化和半虚拟化的区别 cpu的ring0 ring1又是什么概念?

ring0是指CPU的运行级别,ring0是最高级别,ring1次之,ring2更次之…… 拿Linux+x86来说, 操作系统(内核)的代码运行在最高运行级别ring0上,可以使用特权指令,控制中断.修改页表.访问设备等等. 应用程序的代码运行在最低运行级别上ring3上,不能做受控操作.如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问

基于GPU虚拟化的Xendesktop 桌面虚拟化浅析

市面上的桌面虚拟化解决方案至少有4种以上,我了解的有 citrix的xendesktop,vmware 的view,Microsoft 桌面虚拟化,此外还有大家可能比较陌生的quest  vworkspace,当然还有redhat 的桌面虚拟化解决方案. 其实就目前来说最有实力,业界体验最好的应该是citrix的xendesktop,其次是vmware view,微软的再次之,其他的不是非常主流,就不详细描述,本次文章主要是基于GPU虚拟化的Xendesktop 桌面虚拟化浅析. 对于GPU虚拟