A piece of software that provides abstraction of all physical resources (such as central processing units, memory, network, and storage) and thus enables multiple computing stacks (consisting of an operating system, middleware and application programs) called virtual machines to be run on a single physical host.
Retrieved and adapted from NIST SP 800-125B. (2018). https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-125B.pdf