虚拟机总结
所有这四种虚拟机模型的基础都是组合指令去模拟设备或者机器。
虚拟机项目的主要目的是向有兴趣的读者介绍虚拟机的优点和应用。我们首先集中定义了当今正在使用的四种虚拟机概念模型,他们分别是:在IBM S/390上使用的IBM模型;在跨平台的Internet应用程序中使用的JAVA虚拟机模型;以及在现代操作系统中使用的扩展虚拟机模型。最后我们介绍了UNIX虚拟机模型,它以UNIX用户外壳的形式表现出来。所有这四种虚拟机模型的基础都是组合指令去模拟设备或者机器。每个类型的虚拟机都有其主要的特征,这些不同的特征解决了计算机和软件工程师所面临的完全不同的问题。
一个单一的计算机系统可以通过IBM模型来模拟多个装有不同操作系统的计算机。这使得用户可以在一个计算机上创建和管理多个不同的虚拟机拷贝。IBM模型的一个主要特征就是通过分割计算机资源和完全隔离程序来使程序共享同样的硬件。
JAVA虚拟机满足了程序在多个操作系统上运行的需求。JAVA虚拟机所提供的跨平台可移植性使得程序员不用再为了将程序移植到其他类型的操作系统上而重写程序了。JAVA虚拟机的最主要特征就是程序只要书写一次就可依托JAVA虚拟机在多个平台上执行。
OSI虚拟机模型解决的问题是:在操作系统级别上提供系统硬件不存在的服务和功能。扩展虚拟机通过组合指令来建立更复杂的指令集,以此向用户层提供虚拟设备或者服务。扩展机器的主要优点是利用软件建立虚拟设备和扩展计算机系统特性。三种虚拟机概念基本的共通之处就在于:将用户级指令映射到更低层的指令,然后再返回到用户级。这些动作流程对于用户来说是透明的。但是不要混淆“透明”和“虚拟”这两个词。一个透明的物体实际上是存在的,只是用户看不到而已。而相比较而言,一个虚拟的物体可以被用户看见,但是它并不实际存在。
UNIX虚拟机模型通过模块化方法来管理UNIX进程的加载和控制,这解决了一系列的计算机工程问题。UNIX的成功很大程度上源于UNIX进程的多功能性和可测量性。
虚拟机概念的强大和成功在于用户可以访问和利用仅仅通过指令集的组合就可以形成的功能和设备。为现代计算机系统的真实限制提供一种虚拟解决方案的能力是一个强大的工具,这一工具将会继续扩展现代计算机系统的能力。