= Virtual machine
A <virtual machine> presents a specified machine interface implemented using another system. A system <virtual machine> supplies virtual processors, memory and devices to a <operating system>[guest operating system]. A <hypervisor> mediates access to the underlying resources; execution can combine hardware assistance and software emulation.<Introduction to System Emulation in the QEMU documentation>[system emulation and virtualisation accelerators]{ref}
For example, a guest can maintain its own <kernel (operating system)>[kernel] and filesystem view while a host schedules several guests on one <computer>[physical machine]. A <Java virtual machine> instead exposes a <bytecode> execution model to <computer programs>[programs], illustrating a different level of abstraction. A <software container>[container] usually shares the host <kernel (operating system)>[kernel] rather than supplying a separate full guest <kernel (operating system)>[kernel]. The interface being virtualized determines which compatibility and isolation properties a particular <virtual machine> provides.
Back to article page