Index: > A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Business Industries Finance Tax

Home > Virtual machine


First Prev [ 1 2 ] Next Last

In general terms, a virtual machine in computer science is software that creates an environment between the computer platform and the end user in which the end user can operate software.

Specifically, the term virtual machine has several distinct meanings:

1 Definitions

1.1 Original meaning

The original meaning of virtual machine is the creation of a number of different identical execution environments on a single computer, each of which exactly emulates the host computer. This provides each user with the illusion of having an entire computer, but one that is their "private" machine, isolated from other users, all on a single physical machine. The host software which provides this capability is often referred to as a virtual machine monitor or hypervisor.

1.2 Application virtual machine

The second, and now more common, meaning of virtual machine is a piece of computer software that isolates the application being used by the user from the computer. Because versions of the virtual machine are written for various computer platforms, any application written for the virtual machine can be operated on any of the platforms, instead of having to produce separate versions of the application for each computer and operating system. The application is run on the computer using an interpreter or Just In Time compilation.

1.3 Operating system virtual machine

The term virtual machine is now also used to refer to the environment created by an emulator, where software is used to emulate an operating system for the end user, while the computer runs its own native operating system.

1.4 Parallel virtual machine

More recently, the term virtual machine is also used to refer to a Parallel Virtual Machine (PVM). In this case, the virtual machine software allows a single environment to be created spanning multiple computers, so that the end user appears to be using only one computer rather than several.

2 Techniques

2.1 Emulation of the underlying raw hardware

Since each user can run whatever operating system they want, this type of virtual machine allows users to do things like run two different operating systems (sometimes referred to as "guests") on their "private" virtual computers. Also, experimental new versions of operating systems can be run at the same time as older, more stable, versions, each in a separate virtual machine. The process can even be recursive; IBM debugged new versions of its virtual machine operating system, VM, in a virtual machine running under an older version of VM.

One early user of this concept was the IBM VM/CMS time-sharingAlternate uses: see Timesharing Time-sharing is an approach to interactive computing in which a single computer is used to provide apparently simultaneous interactive general-purpose computing to multiple users by sharing processor time. Because early mai product, which used a relatively simple interactive computing single-user operating system, CMSThe Conversational Monitor System CMS is a relatively simple interactive computing single-user operating system which was for many years IBM's principal time-sharing product. CMS runs primarily on IBM mainframe computers on top of the VM virtual machine o, which ran on top of VM. In that way, CMS could be written simply, as if it were running alone, and the VM operating system quietly provided multitasking and resource management services behind the scenes.

Not all VM users had to run CMS, though; some preferred to run some form of OS/360OS/360 was a batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964. OS/360 was amongst the earliest operating systems to make direct access storage devices a prerequisite for its operation. (or eventually MVSMVS M ultiple V irtual S torage was the most commonly used operating system on the System/370 and System/390 IBM mainframe computers. It is unrelated to IBM's other mainframe operating system called VM/CMS. First released in 1974, MVS was later renamed by) in one or more virtual machines, to provide traditional batch processing services to those users who wanted that. VM is still used today on IBM mainframes, and in some which are used as Web servers, the operating system run in each of many virtual machines is Linux.

The plex86 and VMware packages do the same thing on modern PCs, trapping all hardware accesses and simulating all of a motherboard except for the processor.

The x86 processor architecture as used in modern PCs does not actually meet the Popek and Goldberg virtualization requirements. As a result, VMware and similar virtualization software for the x86 must employ very sophisticated techniques to trap and virtualize the execution of certain instructions. These techniques incur some performance overhead as compared to a VM running on a natively virtualizable architecture such as the IBM System/370 or Motorola MC68020. Intel and AMD have each announced plans to add x86 virtualization capabilities to future x86 processors.





Non User