The virtualization software layer managing hardware requests from a guest OS, simulating answers from a real hardware. A program that allows running several virtual machines, potentially running several different operating systems. It controls the CPU as well as all hardware resources, providing every operating system with the required resources.