1. A collection of resources that emulates the behaviour of an actual machine. The virtual machine concept originated in Cambridge, Mass., in the late 1960s as an extension of the virtual memory system of the Manchester Atlas computer.
A process is defined in its totality by the contents of the workspace to which it has access. Provided that the behaviour of the workspace is consistent with the expected behaviour, there is no means by which a process can determine whether a resource that it manipulates is realized by a physical resource of that type, or by the cooperative actions of other resources that jointly present the same changes in the contents of the process’ workspace. As an example, a process cannot determine whether its output is passed directly to a printer or is sent via some form of spooling system. Similarly it cannot determine whether it has sole use of a processor or is multiprogramming with other processes. In a virtual machine environment no particular process has sole use of any system resource, and all system resources are regarded as being potentially sharable. In addition, use of virtual machines provides isolation between multiple users of a single physical computer system, giving some level of computer security.
The virtual machine approach forms the basis of a number of commercially produced operating systems, especially of IBM’s VM/CMS and of Digital’s VAX/VM products; it is also increasingly used to allow users to run several different operating systems simultaneously on one computer.
2. A platform that has no physical existence. Programs written for such a platform are executed by another program, which emulates the virtual machine on a real computer. In the context of cloud computing, a virtual machine can be used to allow users to set up and configure their own virtual computing platform See also intermediate code.