UNIX虚拟机模型
使用和设计虚拟机的概念,成为建立可交互的、健壮的虚拟设备的有效方法。这种方法可用来解决计算机工程师所面临的许多问题。在UNIX操作系统中,虚拟机的概念和进程模型高度统一起来。UNIX操作系统是现代计算机使用的最成功、最受尊重的操作系统之一。UNIX的广泛使用,使得他的虚拟机特征被全部发掘,并归类为真正的虚拟机。UNIX操作系统使用一系列的独立进程来完成用户的指令。UNIX可以安排并配置它所创建的进程来传递和操纵数据。从概念上讲,UNIX的进程可以被看作一个虚拟机,因为它具备虚拟机的许多特征,这些特征是其他三种虚拟机模型的有机组成。UNIX虚拟机通过使用一致的用户外壳(User Shell)来获得和IBM虚拟机模型相似的特征,这些用户外壳完成和IBM虚拟机系统的虚拟机相类似的动作。UNIX用户外壳可以被认为是独立的虚拟机,因为每个用户接口都是一个具有完整硬件资源集的独立实体。用户外壳就像一个熟练的调度员,它生成新的进程,引导数据从一个进程流向另外一个进程,来完成用户提交给用户外壳的命令。外壳受到内存界限和一些共享资源坐标界限的限制,这样可以防止临界硬件设备的冲突。但是,用户外壳仍然保留了IBM模型中独立和分割的原理。
UNIX进程同时也具备JAVA虚拟机的一项特征,因为它利用了操作系统的分层设计所提供的统一平台库函数。UNIX操作系统为执行中的用户进程提供了一个统一的有不同库服务程序的集合。UNIX操作系统是分层设计,每一层为它的上一层提供服务和函数。这种标准化的设计使得用户可以使用一个标准的函数集在不同的平台上执行他们的程序。这在使用POSIX标准的UNIX上是可能的。这个标准由IEEE POSIX项目组在“信息技术可移植操作系统接口(POSIX?? 第二部分:外壳和功能程序)”中发表,它规定了UNIX外壳和应用例程的标准。尽管特定程序的代码仍然需要在每个平台上重新编译,但程序代码真正是可移植的,因为每个服从标准的UNIX平台都支持同样的函数集。
在UNIX操作系统的底层结构中,用户外壳也体现了OSI虚拟机模型的一些特色。UNIX操作系统对硬件的扩展是UNIX的基本特征之一。例如,硬件可能会用一个磁盘阵列来提供一个大型的文件系统。这些独立的磁盘对于用户来说,就是一个磁盘,而指令层将用户层命令传递给硬件,或者将硬件指令返回到用户层。
UNIX虚拟机模型集成了所有以上三种虚拟机模型的特点,生成了一个非常可靠和通用的方法——创建其它进程并传递进程输出来完成用户任务。通过这种方法,UNIX进程可以像虚拟机那样工作。UNIX用户进程获得用户输入,然后创建一系列的虚拟机。每一台虚拟机的输出,都将是下一台虚拟机的输入。
数据操纵和输出重定向的最终结果就是用户指定任务的完成。