Maszyna wirtualna (ang. virtual machine, VM) – ogólna nazwa środowiska uruchomieniowego programów.
Maszyna wirtualna kontroluje wszystkie odwołania uruchamianego programu bezpośrednio do sprzętu lub systemu operacyjnego i zapewnia ich obsługę. Dzięki temu program uruchomiony na maszynie wirtualnej „myśli”, że działa na rzeczywistym sprzęcie, podczas gdy w istocie pracuje na sprzęcie wirtualnym, „udawanym” przez odpowiednie oprogramowanie (maszynę wirtualną).
Wykonywanym programem może być zarówno pojedyncza aplikacja, jak i cały system operacyjny lub nawet kolejna maszyna wirtualna. Są one zupełnie odizolowane przez maszynę wirtualną od maszyny fizycznej, w odróżnieniu od klasycznego systemu operacyjnego, który tylko zarządza uruchamianiem aplikacji na maszynie fizycznej.