1、学习视频
2、知识点
虚拟化(Virtualization)技术最早出现在20世纪60年代的IBM大型机系统,在70年代的System 370系列中逐渐流行起来,这些机器通过一种叫做虚拟机监控器(Virtual Machine Monitor,VMM,一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件,也可叫做Hypervisor)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine)实例。
随着近年多核系统、集群、网格甚至云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现。对于桌面用户而言,利用虚拟化技术可以同时运行Windows和Linux操作系统。对于服务器而言,虚拟化技术能够创建虚拟服务器,虚拟服务器上可以运行多个操作系统及其应用程序。这样,10个或更多的物理服务器能够减少为一个运行10个或多个虚拟服务器的物理服务器,从而提高了服务器的利用率,节约大量成本。
而且,虚拟化技术支持托管多个操作系统,这些操作系统能够同时运行各种服务器应用程序,如Web服务器、电子邮件程序、数据库和其他有用的服务,各个操作系统之间都是相互独立的,一个操作系统中的故障不会影响另一个操作系统,从而增强了系统安全性和可靠性。
在计算机科学领域中,虚拟化不仅仅局限于虚拟机的概念,还代表着对计算资源的抽象。例如对物理内存的抽象,产生了虚拟内存技术,使得应用程序认为其自身拥有连续可用的地址空间(Address Space),而实际上,应用程序的代码和数据可能是被分隔成多个碎片页或段),甚至被交换到磁盘、闪存等外部存储器上,即使物理内存不足,应用程序也能顺利执行。
虚拟化技术对于开发人员来说也非常重要。Linux内核占据了一个单一的地址空间,这意味着内核或任何驱动程序的故障都会导致整个操作系统的崩溃。虚拟化技术意味着用户可以运行多个操作系统,如果其中一个系统由于某个故障而崩溃了,那么虚拟机监控器和其他操作系统都依然可以继续运行。这可以使内核的调试非常类似于用户空间应用程序的调试。
从商业角度来看,使用虚拟化技术的大部分原因都可以归结于服务器的巩固(server consolidation)。简单来说,如果对一个服务器上多个未经充分利用的系统进行虚拟化,由于服务器的数量少了,显然可以节省大量电力、空间、制冷和管理成本。
虚拟化技术支持动态迁移(Live migration)的技术,允许操作系统及其应用程序迁移到新的服务器上,从而实现在可用硬件上的负载均衡,改善服务器的利用情况。可以通过不同层次的抽象来实现相同的虚拟化的结果。其中Linux常用的3种虚拟化方法为硬件仿真、完全虚拟化(full virtualization)/超虚拟化(para virtualization)、以及操作系统级虚拟化。
3、课后习题

