Virtual Machines abstract operating systems from the underlying server or PC hardware. They provide software implementations of standard components such as network interfaces, storage controllers, display adapters, and more, that are generic and allow the virtual machines to be moved to any physical hardware that implements a virtualization layer that converts these generic interface into specific hardware based instructions. Examples of virtualization solutions that provide the ability to run virtual machines include VMware vSphere, Microsoft Hyper-V, and Citrix Xen Server.