Virtualization allows multiple operating systems, called guest operating systems, to run concurrently on a single host machine. There are different types of virtualization including desktop, server, network, and storage virtualization. Virtualization software like VMware and Hyper-V use a hypervisor to allocate host resources dynamically among virtual machines. Server virtualization can be software-based or hardware-based using virtualization-aware hardware. Key VMware technologies allow live migration of running virtual machines between hosts without downtime.