A program designated to control and allocate hardware among several operating systems.

Kernel Technologies
Types

Type-1
Bare-metal hypervisors. There is no software between it and the hardware. Used primarily in servers.
Type-2
Hypervisors that run on top of an OS