Virtual machineIn 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:
\n Techniques\nEmulation of the underlying raw hardwareSince 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-sharing product, which used a relatively simple interactive computing single-user operating system, CMS, 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/360 (or eventually MVS) in one or more virtual machines, to provide traditional batch processing services to those users who wanted that.\nVM 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.Emulation of a non-native system\nSome of this class of virtual machines are emulators; these allow software written for one machine to run on another. Please note that emulation for computer systems can include emulation for both different machine architectures, and operating systems. Others produce behaviors and capabilities of a machine that doesn't necessarily exist as an actual piece of hardware but may only be a detailed specification. For example, the p-Code machine specification (one of the first, used for support of Pascal) was a description of a specific set of capabilities and behaviors that programmers could use to write programs that would run on any computer running virtual machine software that correctly implemented the specification. More modern examples include the specification of the Java virtual machine and the Common Language Infrastructure virtual machine at the heart of the Microsoft .NET initiative. These allow diverse computers all to run software written to that specification; the virtual machine software itself must be written separately for each type of computer on which it runs.List of virtual machines\n* Common Language Runtime (Microsoft .NET)\n* FAUmachine\n* Forth virtual machine\n* Java virtual machine (JVM)\n* MMIX\n* O-code machine\n* p-Code machine\n* Parrot a virtual machine designed for interpreted dynamic languages. Targeting Perl 6.\n* SECD machine\n* ScummVM\n* Smalltalk virtual machine\n* Squeak virtual machine\n* Warren Abstract Machine\n* Inferno\n* Ten15 virtual machine\n* TrueType virtual machine\n* User Mode Linux a virtual machine kernel module for Linux\n* Xeppmachine\n* Z-machineSee also\n*Computing\n*LLVMExternal link\n*Citations from CiteSeer Category:Computer terminology\n\n\n\n\n |
||||
"The right to swing my fist ends where the other man's nose begins." - Oliver Wendell Holmes (1841-1935) |
