Emulacja
Emulacja polega na zaprogramowaniu jednego systemu komputerowego tak, aby naśladował inną platformę komputerową. Aplikacje nazywane emulatorami umożliwiają uruchamianie oprogramowania napisanego dla określonej platformy sprzętowej w całości w symulowanym środowisku na innej platformie.
Jeden z typowych rodzajów emulatorów symuluje starą lub przestarzałą platformę komputerową na nowoczesnym urządzeniu. Na przykład emulator komputera Macintosh z procesorem Motorola 680x0 może odtworzyć klasycznego Maca wewnątrz programu uruchomionego w oknie na innym komputerze. Takie emulatory umożliwiają uruchamianie oprogramowania, w tym niezbędnego systemu operacyjnego, które nie jest dostępne dla nowoczesnych komputerów lub nie jest z nimi zgodne. Tego typu emulatory są popularne wśród historyków informatyki i osób zajmujących się ochroną dziedzictwa cyfrowego.
Oprócz symulowania starych komputerów emulatory mogą naśladować także klasyczne konsole do gier. Dostępne są emulatory symulujące konsole takie jak Super Nintendo czy Sega Genesis, dzięki którym można grać w klasyczne gry bez oryginalnego sprzętu. Te emulatory otwierają gry zapisane w plikach .ROM, które przechowują dokładną kopię danych z oryginalnego kartridża lub dysku z grą.
Oprogramowanie emulacyjne może również symulować określone elementy sprzętu zamiast całej platformy. Najczęstszym zastosowaniem tego rodzaju emulacji jest emulator napędu dysków, który umożliwia zamontowanie pliku obrazu dysku na przykład pliku .ISO w systemie (Windows lub pliku .DMG w systemie macOS) tak, jakby podłączało się zewnętrzny dysk lub wkładało go do napędu optycznego. Deweloperzy oprogramowania często używają takich plików do rozpowszechniania instalatorów oprogramowania. Użytkownicy komputerów mogą także tworzyć kopie zapasowe swoich dysków na wypadek uszkodzeń fizycznych.
W porównaniu z wirtualizacją
Emulacja przypomina wirtualizację — oba rodzaje technologii umożliwiają komputerowi hosta uruchamianie systemu operacyjnego i aplikacji innej platformy w środowisku programowym. Wirtualizację można jednak łatwiej zrealizować.
Wirtualizacja wymaga, aby sprzęt leżący u podstaw środowiska hosta i środowiska gościa był taki sam, ponieważ oprogramowanie do wirtualizacji przekazuje wywołania sprzętowe z maszyny wirtualnej do fizycznego sprzętu. W emulowanym środowisku emulator musi zamiast tego tłumaczyć te wywołania sprzętowe z formatu oczekiwanego przez platformę gościa na format, który może zapewnić host. Aby osiągnąć taki sam poziom wydajności, komputer hosta musi być więc znacznie wydajniejszy od emulowanego systemu gościa.
Sprawdź swoją wiedzę