Virtualization allows sharing of hardware resources across multiple virtual machines. There are two main types of hypervisors - native/bare-metal hypervisors that run directly on hardware and hosted hypervisors that run as an application on a conventional OS. Virtualization can be applied at the hardware level through full or para virtualization, or at the application level. Popular virtualization products include VMware Workstation, Microsoft Hyper-V, and VMware ESX Server.