The UNIX Virtual Machine Model
The concept of using and designing Virtual Machines has been a successful method of creating interchangeable and robust Virtual devices that solve many of the problems facing computer engineers. The Virtual Machine concept has been incorporated to the Unix operating systems process model to a very refined level. The Unix operating system is one of the most successful and respected operating systems in used with modern computers. The wide spread use of Unix demands that its virtual machine attributes be fully explored and categorized as true virtual machines. The Unix operating system uses a series of independent processes to accomplish user commands by creating processes that can be arranged and configured to pass and manipulate data. The Unix processes can be viewed conceptually as a virtual machine because it can posses many of the virtual machine attributes organic to the other three Virtual Machine models. The Unix Virtual Machine has characteristics that emulate the IBM Virtual Machine model by using identical user shells, which act like the Virtual machines of the IBM VM system. The Unix user shells can be considered independent Virtual Machines because each user interface is an independent entity with a complete set of hardware resources available. The users shells act as master coordinators by spawning new processes and directing data from one process to another in order to accomplish the commands presented to the user shell by the user. The shells are constrained by memory limitations and some shared resource coordination limits to eliminate contention for critical hardware devices. However, the principle of the IBM model is retained in the isolation and separation of the user shell from its neighbor user shells.
The Unix process also possesses a feature of the Java Virtual machine because it utilizes the uniform platform library functions presented by the layered design of the operating system. The Unix operating system is constructed to provide a uniform set of distinct library services to user processes in execution. The Unix operating system is built in layers with each layer providing services and functions to the layer above. This standardization enables users to execute programs on different platforms using a standard set of functions. This is possible in Unix using the POSIX standard published by the
IEEE POSIX project "Information Technology Portable Operating System Interface (POSIX®) Ñ Part 2: Shell and Utilities" which specifies the standard for UNIX shell and utility routines. While the program code for particular program must still be compiled for each platform used, the program code is truly portable in that each compliant Unix platform supports the same set of functions.
The ISO Virtual Machine model is also expressed in the Unix user shell through the basic construction of the Unix Operating System. The extension of the hardware by the Unix Operating system is a basic feature of Unix. For example, an array of separate storage disks may be used by hardware to provide a large file system. These separate disks will appear to a user a single disk, while the layer of instruction sets will provide the ability to transfer the commands from the user level to the hardware and back up the user level.
The attributes of all tree previous types of Virtual Machine models are used by the nix Virtual Machine model to produce a very reliable and versatile method of using Unix processes to act as Virtual Machines by creating other processes and directing process output to accomplish user tasks. The Unix user process accepts user input and creates a series of virtual machine with the output of one machine being directed to the input of the next.
The end result of data manipulation and redirection of output is the completion of the user specified task.