Virtualization allows multiple operating systems and applications to run on the same hardware at the same time by simulating virtual hardware. There are two main types of virtualization architectures: hosted, where a hypervisor runs on a conventional operating system; and bare-metal, where the hypervisor runs directly on the hardware. Virtualization can be applied to desktops, servers, networks, storage and applications. It provides benefits such as reduced costs, simplified management, and the ability to run multiple systems on one physical machine.