Pełna wirtualizacja to proces, w którym cały system komputerowy jest przekształcany w konstrukcję oprogramowania. Ta konstrukcja działa jak oryginalny sprzęt pod każdym względem. Oprogramowanie zaprojektowane dla tego sprzętu zostanie zainstalowane na konstrukcie tak, jakby był to rzeczywisty komputer, a następnie uruchomi się z niewielkim lub żadnym spowolnieniem. Korzystanie z pełnej wirtualizacji ma kilka zastosowań, takich jak testowanie oprogramowania w środowisku wirtualnym lub rozszerzanie użyteczności pojedynczego komputera lub serwera poprzez wirtualne systemy operacyjne. Chociaż częściowa wirtualizacja jest bardzo powszechna, pełna wirtualizacja jest stosunkowo rzadka.
Aby być pełną wirtualizacją, cały system sprzętowy musi zostać przekształcony w oprogramowanie. Każda akcja i niuans oryginalnego sprzętu musi zostać przeniesiona do systemu wirtualnego. Ponieważ jest to tak duże przedsięwzięcie, a niektórzy producenci systemów podejmują kroki, aby go zniechęcić, pełna wirtualizacja jest dość rzadka. Znacznie częściej spotyka się częściową wirtualizację, w której obecne są wszystkie niezbędne bity systemowe, ale fizyczny system sprzętowy obsługuje większość obliczeń i funkcji niskiego poziomu.
Na maszynie pełnej wirtualizacji oprogramowanie emuluje oryginalną maszynę tak ściśle, że każdy program zostanie zainstalowany w oprogramowaniu bez konwersji lub dodatkowych kroków. Interfejs wirtualny naśladuje zestaw sprzętowy do tego stopnia, że oprogramowanie będzie działać dokładnie tak samo, jak w systemie naturalnym. W przypadku częściowej wirtualizacji prawie zawsze występuje opóźnienie w zainstalowanych programach, ponieważ polecenia są przenoszone między emulowanym a rzeczywistym sprzętem.
Istnieje kilka powodów, dla których pełna wirtualizacja jest głównym celem obliczeniowym. Gdy maszyna i jej system operacyjny są w pełni zwirtualizowane, możliwe jest udostępnianie jej indywidualnym użytkownikom jako pełne środowisko pulpitu. Użytkownicy mogą z niego korzystać dokładnie tak, jak chcą, modyfikując dowolne ustawienia lub instalując dowolny program. W przypadku pojawienia się problemu administratorzy mogą po prostu usunąć określony wirtualny segment użytkownika, a następnie nadać mu nowy, czysty.
W tym samym duchu wyizolowany system sprzętowo-programowy w środowisku pełnej wirtualizacji jest całkowicie oddzielony od rzeczywistego sprzętu komputerowego. Oznacza to, że użytkownik, niezależnie od tego, co zrobi, nigdy nie będzie wchodzić w interakcję z fizycznym sprzętem. Oznacza to, że destrukcyjne działania użytkownika, celowe lub przypadkowe, są mniej szkodliwe dla rzeczywistego systemu.
Ostatni wspólny cel jest najbardziej techniczny. Ponieważ system oprogramowania nie jest ograniczony przez rzeczywisty sprzęt obecny w systemie, sprzęt wirtualny może zostać zmodyfikowany, aby poprawić wydajność w porównaniu z oryginalną maszyną. Zbędny lub niepotrzebny sprzęt może zostać usunięty. Istniejący sprzęt może mieć zmienione parametry, aby działał w sposób, który był niemożliwy dla oryginalnego sprzętu. Dzięki temu system może działać z najwyższą wydajnością, co jest prawie niemożliwe dla rzeczywistego systemu sprzętowego.