Virtualization即虚拟化技术虚拟化是一个广义的术语在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行虚拟化技术可以扩大硬件的容量简化软件的重新配置过程CPU的虚拟化技术可以单CPU模拟多CPU并行允许一个平台同时运行多个操作系统并且应用程序都可以在相互独立的空间内运行而互不影响从而显着提高计算机的工作效率 特点 虚拟化技术与多任务以及超线程技术是完全不同的多任务是指在一个操作系统中多个程序同时并行运行而在虚拟化技术中则可以同时运行多个操作系统而且每一个操作系统中都有多个程序运行每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上;而超线程技术只是单CPU模拟双CPU来平衡程序运行性能这两个模拟出来的CPU是不能分离的只能协同工作 虚拟化技术也与目前VMware Workstation等同样能达到虚拟效果的软件不同是一个巨大的技术进步具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面 功能介绍 纯软件虚拟化解决方案存在很多限制“客户”操作系统很多情况下是通过VMM(Virtual MachineMonitor虚拟机监视器)来与硬件进行通信由VMM来决定其对系统上所有虚拟机的访问在纯软件虚拟化解决方案中VMM在软件套件中的位置是传统意义上操作系统所处的位置而操作系统的位置是传统意义上应用程序所处的位置这一额外的通信层需要进行二进制转换以通过提供到物理资源(如处理器内存存储显卡和网卡等)的接口模拟硬件环境这种转换必然会增加系统的复杂性此外客户操作系统的支持受到虚拟机环境的能力限制这会阻碍特定技术的部署如位客户操作系统在纯软件解决方案中软件堆栈增加的复杂性意味着这些环境难于管理因而会加大确保系统可靠性和安全性的困难 而CPU的虚拟化技术是一种硬件方案支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程通过这些指令集VMM会很容易提高性能相比软件的虚拟实现方式会很大程度上提高性能虚拟化技术可提供基于芯片的功能借助兼容VMM软件能够改进纯软件解决方案由于虚拟化硬件可提供全新的架构支持操作系统直接在上面运行从而无需进行二进制转换减少了相关的性能开销极大简化了VMM设计进而使VMM能够按通用标准进行编写性能更加强大另外在纯软件VMM中目前缺少对位客户操作系统的支持而随着位处理器的不断普及这一严重缺点也日益突出而CPU的虚拟化技术除支持广泛的传统操作系统之外还支持位客户操作系统 |