thumb|Emulacja w Linuxie ośmiobitowego komputera Commodore. Emulacja (ang. emulation) – programowa reprodukcja działania określonego oprogramowania lub platformy sprzętowej przez inny system lub na sprzęcie innego typu. Proces ten dokonywany jest za pomocą specjalnego programu nazywanego emulatorem.
Emulacja może odbywać się na różnych poziomach abstrakcji, w tym na poziomie układów cyfrowych, logicznego funkcjonowania urządzeń lub całego systemu operacyjnego. Tym samym emulacja może obejmować częściową funkcjonalność emulowanego oprogramowania lub sprzętu (w tym poszczególnych urządzeń peryferyjnych).
Współczesne emulatory oprogramowania pozwalają na częściową emulację konkretnych funkcjonalności na różnych warstwach abstrakcji. Najprostsza maszyna wirtualna (emulator) składa się zazwyczaj z czterech bazowych elementów: zestawu rejestrów, modułu pamięci, implementacji instrukcji oraz głównej pętli wykonującej.
Wirtualizacja
Szczególnym przypadkiem emulacji jest wirtualizacja, w której emulowane oprogramowanie jest przeznaczone dla tej samej architektura zestawu instrukcji (ISA) procesora co system emulujący. Emulacja tego typu jest najwydajniejszą jej formą ze względu na brak potrzeby interpretacji lub translacji instrukcji.
Wirtualizacja jest szczególnie istotnym narzędziem dla wielu aspektów testowania oprogramowania ze względu na łatwość we wstrzykiwanie błędów czy odtworzenie specyficznego stanu programu. Daje to możliwość wygodnej reprodukcji błędów oraz automatyzację procesu weryfikowania poprawności lub szukania defektu. Wadą tego rozwiązania jest wpływ na wydajność oprogramowania, co oddala przypadek testowy od faktycznego zachowania emulowanego programu.
Przypisy