Emulacja

Emulator

Emulator duplikuje funkcje jednego systemu w innym, dzięki czemu ów drugi system zachowuje się tak jak pierwszy. Mówimy wtedy, że drugi system jest emulowany przez pierwszy. Jedną z form emulatorów są programy, które umożliwiają uruchamianie aplikacji na komputerze i/lub systemie operacyjnym innym niż ten na który zostały napisane (np. emulatory Amigi, Atari, ZX Spectrum).

Emulacja

Emulacja polega na odczytywaniu każdej instrukcji kodu, wykonywaniu jej w pewien szczególny sposób i ustawianiu stanu maszyny wirtualnej odpowiedniego do tego, w jakim znajdowałaby się oryginalna maszyna. Nie zawsze konieczna jest emulacja każdej części środowiska, w którym mają wykonywać się programy. Zwykle jakaś część oprogramowania lub sprzętu już istnieje i nie wymaga emulacji.

Sposób działania

Opis działania emulatorów i efekty tych działań można zgrupować w następujące punkty

  • pełne wymodelowanie za pomocą oprogramowania architektury systemu
  • modelowanie sprzętu: procesora, urządzeń, pamięci, chipów systemowych (timery, DMA, kontroler przerwań, kontroler szyny)
  • modelowanie podsystemów (I/O, audio, video)
  • konieczne w przypadku, gdy architektura platformy sprzętowej różni się od architektury systemu czy aplikacji jakie chcemy na niej uruchomić
  • zaletą rozwiązania jest łatwa przenaszalność
  • stworzenie pełnego modelu sytemu jest pracochłonne
  • duży narzut czasowy

Strategia emulacji wykorzystywana między innymi przez projekt http://www.bochs.com