Der Unterschied zwischen Virtualisierung und Emulation liegt in der Art der vorgegaukelten Hardware. Bei Emulation wird der komplette Befehlssatz eines völlig anderen Prozessors nachgebildet. Deshalb ist Emulation mit großen Performance-Einbußen verbunden. Dieser Fall liegt z.B. vor bei einem C64-Emulator auf dem PC oder einem virtuellen PC auf einem PowerPC-Mac.
Bei Virtualisierung wird die Hardware (ggf. mehrfach) nachgebildet, die auch tatsächlich vorhanden ist, also z.B. mehrere virtuelle PCs auf einem physikalischen PC. Die virtuelle Maschine muss nicht alle Befehle einzeln nachbilden sondern lediglich solche Befehle, die Konflikte zwischen den virtuellen Maschinen verursachen können. Das betrifft alle Befehle, die im sog. »Kernel Modus« ablaufen. In der Regel sind dies Zugriffe auf nur einmal vorhandene Hardware wie Timer, Memory Management Unit oder Interrupts. Aber auch die Verwaltung von I/O-Ressourcen wie Netzwerk-Schnittstellen oder Festplatten muss ein »Virtual Machine Monitor«, auch Hypervisor genannt, regeln. »Normale« Rechenbefehle, also das täglich Brot der meisten Anwendungsprogramme, werden direkt an die Hardware weitergereicht und mit »nativer« Performance abgearbeitet.