Emulacja

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

 Osobny artykuł: 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

  1. ↑ Emulacja. Encyklopedia Internautica. [dostęp 2014-09-13].
  2. Sławomir Grzegorz Chyłek, Zastosowanie symulacji błędów do oceny i optymalizacji niezawodności systemów operacyjnych [online], Wydział Elektroniki i Technik Informacyjnych (WEiTI) Politechniki Warszawskiej, 23 września 2014 [dostęp 2026-09-01] (pol.), Rozprawa doktorska.
    1. ↑ s. 44
    2. ↑ s. 45
    3. ↑ s. 48
    4. ↑ s. 51
    5. ↑ s. 75
  3. ↑ Wirtualizacja - SO 2004/2005 [online], students.mimuw.edu.pl [dostęp 2026-09-01].
  4. ↑ Robert Pękala, Tadeusz Kwater, Dariusz Strzęciwilk, Paweł Dymora, Technologie wirtualizacji i emulacji w badaniu sieci komputerowych, Wydawnictwo Uniwersytetu Rzeszowskiego, 2016, DOI: 10.15584/eti.2016.4.49, ISSN 2080-9069 [dostęp 2026-09-01].
  5. ↑ Gynvael Coldwind, Mateusz Jurczyk, Zrozumieć programowanie, Wydanie 1, Warszawa: Wydawnictwo Naukowe PWN, 2015, s. 63, ISBN 978-83-01-18202-1.