Przenośność Aby uruchomić emulator pod innym systemem wystarczy przekompilować kod emulatora i być może inaczej zorganizować tłumaczenie urządzeń wejścia-wyjścia. |
|
Możliwość uruchomienia w trybie nieuprzywilejowanym. |
|
Niezależność od systemu operacyjnego, który będzie uruchamiany Emulacja to pełna symulacja sprzętu - dlatego uruchamiane systemy operacyjne nie mają szans na zorientowanie się, że coś jest nie tak. |
|
Duża możliwość manipulacji sprzętem (maszyny wirtualnej) |
|
Nieograniczony dostęp do stanu maszyny Można zapisać w pliku stan maszyny, czyli stan pamięci, rejestry wirtualnego procesora, dyski, zegar itp. Taki zrzut można później odtworzyć, a oprogramowanie się nie zorientuje, dlatego że nawet czas jest symulowany. Bardzo przydatne przy debugowaniu systemów operacyjnych i w przechodzeniu trudnych gier zręcznościowych. |
|
Determinizm Skoro możemy zapisać cały stan maszyny, to mając ciąg zdarzeń zewnętrznych możemy odtworzyć dokładnie akcję maszyny krok po kroku. Przydatne przy śledzeniu włamań i badaniu narzędzi włamywacza. |