Virtual machine

From Computer History Wiki
Jump to: navigation, search

A virtual machine, or virtualization, refers to a technique in which hypervisor software on a particular machine, in cooperation with the machine's CPU, provides to the processes running on it the illusion that they are alone on a bare machine.

Operating systems which provide the capability are called 'virtual machine' (VM) OSs; if the VM OS is properly designed and implemented, it is usually possible to run another copy of the VM OS inside a process running in the same VM OS, but with the latter on the 'bare' hardware. This capability can be useful for testing new versions of the VM OS, etc.

Not all computers can be virtualized; it requires that the machine hardware be carefully designed so that any and all operations which are reserved to the operating system are not only preventing from happening when a user tries to perform them, but instead result in a trap to the OS, so that it may simulate that action.

Some machines merely ignore operations which could disrupt the overall operation of the machine (e.g. resetting all the I/O devices) when a user tries them, making it impossible for the operating system to simulate them for virtualization purposes.

Some actions, such as device I/O, are simulated in a restricted way; e.g. attempts to read and write disks may instead result in reads and writes to a file which has been configured (at the time the virtual machine was started) to represent the disk(s) attached to that virtual machine.