A hypervisor allows multiple virtual machines to run on a single host machine by allocating resources to the guest virtual machines. There are two main types of virtualization: full virtualization where the guest OS is unaware it is virtualized, and para-virtualization where the guest OS is aware it is a virtual guest. Xen is an open source hypervisor that allows multiple operating systems to run concurrently on the same hardware. VMware Workstation allows users to set up multiple virtual machines to run simultaneously with the host operating system.