为什么要使用虚拟化技术:
在计算机的初期,进程运行在硬件上,而不是运行在操作系统上,多个进程申请同时申请资源,就会出现资源争用。后来又了操作系统/内核,由内核分配资源。而在虚拟化技术中,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只有完全虚拟化。