1.4 用虚拟机技术学习Linux
在20世纪60年代出现了虚拟机技术,这一技术在System370系列中逐渐流行起来。这些机器通过一种叫虚拟机监控器的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机实例。
1.4.1 虚拟机技术
随着近年计算机技术的进步,无论是服务器市场、桌面市场,还是嵌入式市场,处理器的频率和核心数目都出现了巨大的进步,从而带来了处理能力的迅速增长,使得虚拟化技术再次迅速发展起来,并从最初的裸机虚拟化技术开始,演化出主机虚拟化、混合虚拟化等更复杂的虚拟化模型,并在此基础上发展出了当下最热门的云虚拟化技术,极大地降低了计算机成本,增强了系统的安全性、可靠性和扩展性。
在计算机领域,虚拟化是指对计算机资源的抽象,虚拟机技术是虚拟化技术的一种。虚拟机最初被Popek和Goldberg定义为物理机器的一个或多个隔离的有效复制。之后被具体化地定义为虚拟机是通过在物理平台上添加的软件给出的一个或多个不同的平台。一个虚拟机可以有一个操作系统和指令集,或者两者都有。
虚拟化技术的本质在于对计算机系统软硬件资源的划分和抽象。计算机系统的高度复杂性是通过各种层次的抽象来控制,每一层都通过层与层之间的接口对底层进行抽象,隐藏底层具体实现而向上层提供较简单的接口。
1.虚拟化技术层次
计算机系统包括5个抽象层:硬件抽象层、指令集架构层、操作系统层、库函数层和应用程序层,如图1-10所示。
图1-10 虚拟化技术的层次
相应的虚拟化可以在每个抽象层来实现。无论是在哪个抽象层实现,本质都一样,使用某些手段来管理分配底层资源,并将底层资源反映给上层。操作系统上传统的进程模型就利用了虚拟化的思想,操作系统通过对物理内存的划分和抽象,给每个进程呈现出远超出物理内存空间的4GB空间,并且使得每个进程实现了有效的隔离,从而一个进程的崩溃不会影响到其他进程的正常运行。
虚拟化平台是操作系统层虚拟化的实现。在系统虚拟化中,虚拟机(VM)是在一个硬件平台上模拟一个或者多个独立的和实际底层硬件相同的执行环境。每个虚拟的执行环境里面可以运行不同的操作系统,即客户机操作系统(Guest OS)。Guest OS通过虚拟机监控器提供的抽象层来实现对物理资源的访问和操作。目前存在各种各样的虚拟机,但基本上所有虚拟机都基于“计算机硬件+虚拟机监视器(VMM)+客户机操作系统(Guest OS)”的模型,如图1-11所示。
图1-11 虚拟机模型
虚拟机监控器是计算机硬件和Guest OS之间的一个抽象层,它运行在最高特权级中,负责将底层硬件资源加以抽象,提供给上层运行的多个虚拟机使用,并且为上层的虚拟机提供多个隔离的执行环境,使得每个虚拟机都以为自己在独占整个计算机资源。虚拟机监控器可以将运行在不同物理机器上的操作系统和应用程序合并到同一台物理机器上运行,减少了管理成本和能源损耗,并且便于系统的迁移。
2.虚拟机监视器(VMM)模型
根据虚拟机监视器在虚拟化平台中的位置,可以将其分为以下3种模型:
(1)裸机虚拟化模型(Hypervisor Model)。裸机虚拟化模型,也称为Type-I型虚拟化模型、独立监控模型。该模型中,虚拟机监控器直接运行在没有操作系统的裸机上,具有最高特权级,管理底层所有的硬件资源。所有的Guest OS都运行在较低的特权级中,所有Guest OS对底层资源的访问都被虚拟机监控器拦截,由虚拟机监控器代为操作并返回操作结果,从而实现系统的隔离性,达到对系统资源的绝对控制。作为底层硬件的管理者,虚拟机监控器中有所有的硬件驱动。这种模型又称为Type-I型虚拟机监控器。
裸机虚拟化模型如图1-12所示。
图1-12 裸机虚拟化模型
(2)宿主机虚拟化模型(Host-based Model)。宿主机虚拟化模型,也称为Type-Ⅱ型虚拟化模型。该模型中,虚拟机监控器作为一个应用程序运行在宿主机操作系统(Host OS)上,而Guest OS运行于虚拟机监控器之上。Guest OS对底层硬件资源的访问要被虚拟机监控器拦截,虚拟机监控器再转交给Host OS进行处理。在模型中,Guest OS对底层资源的访问路径更长,故而性能相对独立监控模型有所损失。但优点是,虚拟机监控器可以利用宿主机操作系统的大部分功能,而无须重复实现对底层资源的管理和分配,也无须重写硬件驱动。
宿主机虚拟化模型,如图1-13所示。
图1-13 宿主机虚拟化模型
(3)混合模型(Hybrid Model)。在混合模型中,虚拟机监控器直接运行在物理机器上,具有最高的特权级,所有虚拟机都运行在虚拟机监控器之上。与Type-I型虚拟化模型不同的是,这种模型中虚拟机监控器不需要实现硬件驱动甚至虚拟机调度器等部分虚拟机管理功能,而把对外部设备访问、虚拟机调度等功能交给一个特权级虚拟机(RootOS、Domain 0、根操作系统等)来处理。特权级虚拟机可以管理其他虚拟机和直接访问硬件设备,只有与虚拟化相关的部分,例如虚拟机的创建/删除和外设的分配/控制等功能才交由虚拟机监视控制。
混合模型,如图1-14所示。
图1-14 混合模型
1.4.2 虚拟机技术的优点
如果要在一台计算机上装多个操作系统,不使用虚拟机,有如下两个办法:
(1)装多个硬盘,每个硬盘装一个操作系统,这个方法比较昂贵。
(2)在一个硬盘上装多个操作系统,这个方法不够安全。
而使用虚拟机软件既省钱又安全,对想学Linux和UNIX的读者来说是很方便的。具体来说,虚拟机技术有如下两个优点:
(1)虚拟机可以在一台机器上同时运行几个操作系统。
(2)利用虚拟机还可以进行软件测试。
1.4.3 虚拟机的运行环境和硬件需求
1.运行环境
VMWare可运行在Windows和Linux操作系统上。
Virtaul PC可运行在Windows和MacOS上。
运行虚拟机软件的操作系统叫作Host OS,在虚拟机里运行的操作系统叫作Guest OS。
2.硬件需求
(1)CPU必须支持虚拟化。
(2)主板必须已开启CPU的虚拟化功能。
(3)RAM至少有2GB。
(4)ROM至少有20GB。
(5)系统最好是XP或更高。
1.4.4 安装虚拟机注意事项
在虚拟机中安装操作系统和在真实的计算机中安装没有区别,但在虚拟机中安装操作系统,可以直接使用并保存在主机上的安装光盘镜像(或者软盘镜像)作为虚拟机的光驱(或者软驱)。具体安装方式有如下几种:
(1)使用虚拟机安装。打开虚拟机进入虚拟机页面,选择“编辑虚拟机设置”选项,如图1-15所示。
图1-15 选择“编辑虚拟机设置”选项
进入虚拟机设置页面,选择“CD/DVD(IDE)”选项,然后浏览选择安装光盘镜像文件(ISO格式),如图1-16所示。
图1-16 选择安装光盘镜像文件
(2)使用光盘安装。如果使用安装光盘,则选择Use physical drive并选择安装光盘所在光驱。选择光驱完成后,然后单击工具栏上的“播放”按钮,打开虚拟机的电源,用鼠标箭头在虚拟机工作窗口中单击进入虚拟机。
(3)如果想从虚拟机窗口中切换回主机,需要按Ctrl+Alt快捷键。
(4)安装VMware Tools。VMware Tools相当于VMware虚拟机的主板芯片组驱动和显卡驱动、鼠标驱动,在安装VMware Tools后,可以极大地提高虚拟机的性能,并且可以让虚拟机分辨率以任意大小进行设置,还可以借助鼠标箭头从虚拟机窗口中直接切换到主机中来。