Las máquinas virtuales pueden emular hardware diferente, permitiendo ejecutar aplicaciones y sistemas operativos diseñados para otras arquitecturas. Algunas máquinas virtuales emulan hardware que solo existe como especificación, como la máquina virtual P-Code para Pascal, la máquina virtual de Java, la máquina virtual de .NET y Open Firmware.