天天看点

半虚拟化和完全虚拟化的区别

为什么要使用虚拟化技术:

在计算机的初期,进程运行在硬件上,而不是运行在操作系统上,多个进程申请同时申请资源,就会出现资源争用。后来又了操作系统/内核,由内核分配资源。而在虚拟化技术中,xen就充当了操作系统的角色。

半虚拟化:

修改内核,通告被虚拟化出来的操作系统它是运行在虚拟化技术软件之上的,虚拟化出来的操作系统上执行的进程还是运行在真实硬件上,性能还是很好。

完全虚拟化:

xen的完全虚拟化与半虚拟化的区别是,完全虚拟化需要cpu支持硬件虚拟化,而半虚拟化不需要cpu支持硬件虚拟化。

也就是,cpu支持了硬件虚拟化,xen配置完成后就是完全虚拟化,cpu不支持就是半虚拟化。

三种实现技术:1、模拟软件 emulation 通过模拟器模拟所有的指令,不通知虚拟化出来的操作系统   它的运行环境。

2、虚拟化一部分特权指令或者使用二进制日志转换技术。

3、让cpu支持硬件虚拟化。

被虚拟化出来的操作系统上执行的指令,会运行在被虚拟化出来的硬件上,就是完全虚拟化。

kvm只支持完全虚拟化

xen安装时首先由操作系统,然后安装了xen的包,重新启动后xen直接自己运行在硬件上。

xensever安装时免去了xen的第一步,直接自己运行在硬件上和dom0一起安装。

硬件基础设备:

cpu:计算器,控制器

内存:存储器

io:输入输出设备

综合考虑:

看虚拟化技术是完全虚拟化还是半虚拟化,首先看虚拟化技术有没有修改内核,xen虚拟化技术需要修改内核,因此它有完全虚拟化和半虚拟化之分,kvm没有修改内核,因此,它只有完全虚拟化。

虚拟化是完全虚拟化还是半虚拟化,还是要看cpu是否支持硬件虚拟化,支持硬件虚拟化,就是完全虚拟化,不支持,就是半虚拟化。xen有两种选择,而kvm只有一种选择,所以,xen有完全虚拟化和半虚拟化之分,kvm只有完全虚拟化。

继续阅读