Virtual machines are based on the host-guest paradigm. Each guest runs a virtual imitation of the hardware layer. This allows the guest operating system to run without modifications. Also, this allows other guests which use different operating system to be created.
Virtual machines uses a hypervisor to coordinate instructions to the CPU. The hypervisor, also known as the virtual machine monitor, validates CPU instructions issued by all the guests. Also, it manages executed code that requires addition privileges.
Server virtualization can be used to make more efficient use of server resources, to improve server availability, to assist in disaster recovery and finally to centralize server administration.