Virtualization allows multiple operating systems to run on a single computer by dividing the physical host's resources between virtual environments. It uses a hypervisor or virtual machine manager to simulate separate computer systems that each run their own operating systems and applications. There are different types of virtualization including desktop, server, network, storage, and application virtualization.