A virtual machine (VM) is a computer system emulation that behaves like a computer but does not need its own separate hardware in order to function. A VM is referred to as a guest of the computing environment where it is installed, which is known as the host. It has its own window that is accessible to a user, and it can run its own applications and programs as if it were a free-standing machine. It works like a computer within a computer, whose contents are safely sequestered from the rest of the system. This makes it ideal for testing beta software, backing up data for disaster recovery, accessing data that may be infected, and running different operation systems (OSes) on the same computer. A single host server can run several guest VMs at the same time using software called a hypervisor to manage them.
There are two distinct kinds of VMs: System VMs and Process VMs. A System VM is a substitute for a real machine, providing all the functionality that needed to run a full OS, and the hypervisor shares and manages the hardware and keeps all of the guests that are sharing the same machine isolated from each other. By contrast, a Process VM does not try to provide a full OS, but instead abstracts or masks all of the details of the underlying hardware and OS. This allows a program to execute the same way no matter which platform is the host and provides a platform-independent programming environment.
System VMs are widely used in most modern data centers, as they are easy to manage, make good use of existing IT infrastructure, and support core business needs like application provisioning, disaster recovery, and server consolidation. However, fully virtualized workloads will run more slowly because of the extra time required to emulate the system resources. Paravirtualization can improve performance dramatically by allowing the OS and the hypervisor to work together directly, but not all major OSes (including Windows) have been modified to support it. However, drivers are available that can supply paravirtualization benefits for unmodified OSes. For example, the SUSE Linux Enterprise Virtual Machine Driver Pack provides paravirtualized disk, network and balloon drivers that let you run fully-virtualized Windows workloads on SUSE Linux Enterprise Server with near-native performance.