Las máquinas virtuales simulan una computadora completa y pueden ejecutar programas como si fuera una computadora real. Existen dos tipos principales: máquinas virtuales del sistema que permiten ejecutar múltiples sistemas operativos en una sola computadora física, y máquinas virtuales de proceso que ejecutan un solo proceso de forma aislada. Aunque agregan complejidad, las máquinas virtuales proveen un entorno de ejecución independiente de hardware y sistema operativo.