Rengeteg előnye lehet egy virtuális számítógépnek, kezdve a régi programok megfelelő futtatásától az új operációs rendszerek kényelmes kipróbálásáig. Két fő, merőben eltérő típus létezik azonban, ezeket szeretném pár mondatban bemutatni, ugyanis a tapasztalat azt mutatja, hogy sokat vagy nem is tudnak a két változatról, vagy keverik őket.

Rendszer szintű virtualizáció
Az összetettebb változat a rendszer szintű virtualizáció, mellyel komplett számítógépek emulálhatók, operációs rendszerrel együtt.
Előnyei közé tartozik, hogy több operációs rendszer futtatható közvetlen az ún. gazdarendszerből, valamint az elszigeteltségéből adódó biztonságos szoftvertesztelés. (Példaként említhető a különböző kártékony kódok, vírusok tesztelése)
Főbb hátrányai közé sorolható a magas erőforrásigény és a viszonylagos megbízhatatlansága a közvetlenül hardverekkel való kommunikáció terén.

Folyamat szintű virtualizáció
A másik változat a folyamat szintű virtualizáció, ezzel egyetlen program, egyetlen folyamat futtatható. Ezek közvetlenül a gazdarendszerből futnak. A virtuális környezet a folyamat indításakor jön létre, és a folyamat befejeződésekor szűnik meg. Célja, hogy platformfüggetlen környezetet teremtsen, megkönnyítendő a programozók dolgát. Az egyik legismertebb ilyen környezet a Java Virtual Machine.