A WikiWord for a virtual hardware machine like VmWare, MsVirtualPc, VirtualBox, or CoLinux. This is different from the VirtualMachine WikiWord which has been used to refer to ByteCode VirtualMachine''''''s like the JavaVirtualMachine and the CommonLanguageRuntime. There are several different ways of persuading a single computer to operate as a host computer that contains or controls a VirtualComputer. Each method has is advantages and its disadvantages - typically a balance between realism in the emulation of hardware, the extent to which host and guest systems have to be modified, the degree to which each system can appear to be completely autonomous, and the resources consumed by each VirtualComputer. The task can be rendered easier if the hardware has been designed so that it is intended to support virtualization. * virtual hardware by emulation of one kind or another - the software tries by one means or another to create an environment in which you can run unmodified software as though in a separate machine. Free software examples include qemu (http://fabrice.bellard.free.fr/qemu/) from the author of the TinyCeeCompiler, and basilisk (http://basilisk.cebix.net/). In these cases, the VirtualComputer may be a completely different architecture from the host computer - eg Mac in PC as in basilisk. You may still need a proprietary ROM image in the VirtualComputer. * virtual hardware emulation by paravirtualization - the host system and the guest operating systems are subjected to some minimal modifications so that they can collaborate with each other at the system level. A mix of different operating systems can run each in its own separate VirtualComputer within the same physical machine. The Xen system is a free software example of this approach (http://www.cl.cam.ac.uk/Research/SRG/netos/xen/). In Xen, all systems are known as domains, and all run on top of a thin layer called a hypervisor, with a system of privileges to determine which domains have direct access to hardware and/or control over other domains. Unprivileged domains do not have direct access to hardware, but only to virtualized interfaces. The CoLinux system is in some ways similar, but has to operate within constraints imposed by MicrosoftWindows. * the appearance of a virtual machine can be created by modifying a host operating system and its guests so that the guest system runs in UserSpace. UserModeLinux is an example of this kind of VirtualComputer. The guest system typically runs the same operating system as the host (but possibly a different version). The performance hit is generally higher than for paravirtualized systems, and there may be a question about the degree to which separate instances can be prevented from interfering with each other and with the host system. * the appearance of a virtual machine can be created by multiplexing a single operating system instance so that applications in UserSpace operate as though they were in their own instance of the underlying system. This approach can be made efficient, as there is less duplication of resource requirements. Similar concerns about security apply as in the case of a guest operating system in UserSpace. ---- CategoryVirtualComputer