Az emulátor egy olyan számítógépes program vagy hardver, ami más programoknak vagy eszközöknek a környezetét (vagy annak részét) „szimulálja”, vagyis lehetővé teszik az adott rendszerrel nem kompatibilis programok (vagy operációs rendszerek) vagy számítógépek futtatását. Természetesen (a szükséges átalakítások miatt) az emulátorok néhaEmulációra gyakran a számítógép hardverének elöregedése miatt van szükség, mivel az újabb gyártású, és mellesleg nyilván gyorsabb számítógépeken nem futtatható a régi operációs rendszer és a szoftver. Ilyen esetben az emuláció is leggyakrabban jóval gyorsabban fut. lassabban működnek, mint az eredeti környezet. Tesztelésre is ideálisak lehetnek az emulátorok, mivel hiba esetén csak az álkörnyezet fagy le és nem kell újraindítani a teljes rendszert.

A számítástechnikában az emulátor egy olyan hardver, szoftver vagy mindkettő, amely lemásolja ill. utánozza (emulálja) egy kiinduló számítástechnikai rendszer funkcióit egy második, eltérő számítógépes rendszeren, úgy, hogy a második rendszer viselkedése minél jobban megközelítse a kiinduló rendszer viselkedését. A hangsúly a külső viselkedés pontos visszaadásán van, ellentétben a szimulációval, amelyben egy rendszer absztrakt modelljét állítják elő. Emiatt például egy hurrikán vagy kémiai reakció szimulációja nem emuláció.

Az emulátor leggyakrabban tehát egy olyan program, amely más rendszereket vagy konkrét gépeket "utánoz", például játékkonzolokat. Az emulátorok megpróbálják értelmezni vagy végrehajtani az eredeti szoftver kódját az adott rendszeren. A kártyával (cartridge) működő játékkonzolok játékai úgynevezett ROM fájlokban, míg a lemezes adattárolást használó játékkonzolok (pl. Nintendo GameCube, PlayStation) szoftverei lemezképfájlokban vannak eltárolva.

Néhány tipikus alkalmazás

Más operációs rendszer alá írt programok futtatása (pl. Linux alatti wine Windows-os programok futtatásához) Az új operációs rendszer alatt egyes régebbi programok használatára is szükség van (pl. Windows vagy Linux alatti DOS emulátor) A hardver fejlődése miatt egyes régi gépeken működő operációs rendszer és szoftver már nem működik az új számítógépeken (pl. Solaris 10 alatt un. branded zóna létesíthető régebbi változatok (Solaris 8 és 9) számára) Virtualizáció (pl. vmware, vagy Solaris 10 alatti zónák, amikben egy gépen több solaris 10-es rendszer futhat, mintha külön számítógépek lennének)

Emulátorok a számítástechnikában

Az emuláció azt jelenti, hogy egy adott számítógépen futó program képes egy másik programkódot végrehajtani vagy egy másik eszköz működését pontosan visszaadni, utánozni. Például sok nyomtató a Hewlett-Packard LaserJet nyomtató viselkedését emulálja, a HP nyomtatókhoz írt nagy mennyiségű szoftver miatt. Amikor egy nem-HP nyomtató egy HP nyomtatót emulál, az összes valódi HP nyomtatókra írt program működni fog az emulált környezetben és ugyanazt a nyomtatási eredményt állítja elő.

A hardver-emulátor (hardware emulator) egy hardvereszközzel megvalósított emulátor. Ilyen emulátorok például a régi DOS-kompatibilis Macintosh gépekbe (pl. Centris 610 vagy Performa 630) épített DOS bővítőkártyák, amelyek lehetővé tették PC (DOS) környezetre készült programok futtatását ezeken a gépeken; vagy újabban az FPGA-kkal felépített hardveremulátorok.

Elméleti értelemben a Church–Turing-tézisből következik, hogy bármilyen operációs környezetben emulálható bármely másik operációs környezet. A gyakorlatban azonban ezt elég nehéz lehet megvalósítani, különösen akkor, ha az emulálni szándékozott rendszer nincs kellően dokumentálva és a működését visszafejtéssel kell kikövetkeztetni. Az állítás semmit sem mond az időbeli viselkedésről; ha az emulátor működése lassabb az eredeti hardveren működő rendszernél, akkor az emulált szoftver is lassabban fut az eredetinél, így az időzítések gyakran eltérnek attól, ami teljesítménybeli vagy működési hibákat okozhat.

Az emuláció szerepe a digitális megőrzésben

Az emuláció a digitális megőrzés egyik módszere a technikai elavulás elleni küzdelemben. Az emuláció az eredeti számítástechnikai környezet újraalkotására helyezi a hangsúlyt, ami gyakran időigényes és nehezen elérhető cél, azonban igen értékes, mert ez a technika sokkal közelebbi ill. szorosabb kapcsolatot biztosít az eredeti digitális objektumokhoz.

Az emuláció a digitális objektum eredeti hardver- és szoftverkörnyezetét célozza és építi fel újra egy aktuális, újabb számítógépen.van der Hoeven, Jeffrey, Bram Lohman, and Remco Verdegem. "Emulation for Digital Preservation in Practice: The Results." The International Journal of Digital Curation 2.2 (2007): 123–132. Az emulátor használata esetén a felhasználó használhatja az aktuális (jelenlegi, modern) számítástechnikai platformon elérhető operációs rendszert vagy bármely alkalmazást, miközben az emulált szoftver az eredeti környezetében megszokott módon működik.Muira, Gregory. „Pushing the Boundaries of Traditional Heritage Policy: maintaining long-term access to multimedia content.” IFLA Journal 33 (2007): 323–326.

Jeffery Rothenberg, a digitális megőrzési stratégia korai előterjesztőjének állítása szerint „az ideális megközelítés egyetlen kiterjeszthető és hosszútávú megoldást ad, amelyet csak egyszer kell megtervezni, és egységesen, automatikusan és kellő időben (pl. minden frissítési ciklusban) alkalmazható az összes dokumentum- és médiatípusra.” Továbbá kijelenti, hogy ez a módszer nem csak a kiöregedő rendszerek esetében használható, hanem működik a jövőbeli ismeretlen rendszerek irányában is.Rothenberg, Jeffrey. "The Emulation Solution." Avoiding Technological Quicksand: Finding a Viable Technical Foundation for Digital Preservation. Washington, DC: Council on Library and Information Resources, 1998. Council on Library and Information Resources. 2008. 28 Mar. 2008 http://www.clir.org/pubs/reports/rothenberg/contents.html A gyakorlatban ez azt jelenti, hogy egy adott alkalmazás új verziójának megjelenésekor a korábbi változat által létrehozott digitális objektumok kompatibilitási és migrációs kérdéseinek megoldása helyett létrehozható az alkalmazás egy emulátora, amely lehetővé teszi a hozzáférést a szóban forgó digitális objektumokhoz.

Előnyök Az emulátorok fenntartják a digitális objektumok eredeti kinézetét és viselkedését, amely éppen olyan fontos, mint maga a digitális adat.Muira, Gregory. "Pushing the Boundaries of Traditional Heritage Policy: maintaining long-term access to multimedia content.", IFLA Journal 33 (2007): 323–326. Egy emulátor kifejlesztése költséges, hosszú időt tekintve mégis ez a legkifizetődőbb megoldás.Granger, Stewart. Digital Preservation & Emulation: from theory to practice. Proc. of the ichim01 Meeting, vol. 2, 3 -7 Sept. 2001. Milano, Italy. Toronto: Archives and Museum Informatics, University of Toronto, 2001. 28 Mar. 2008 http://www.leeds.ac.uk/cedars/pubconf/papers/ichim01SG.html A módszer csökkenti a digitális objektumok kezelésére fordított munkát, mivel megszünteti a folyamatos konvertálást: egy adott emulátorban realizált technológia folyamatosan alkalmazható az emulált platform összes dokumentumára. Sok emulátor készült és érhető el szabad szoftverként, GNU General Public License hatálya alatt, ami lehetővé teszi a széles körű együttműködést a fejlesztésben és felhasználásban. Az emulátorok lehetővé teszik a kizárólag egyetlen rendszerre írt videójátékok használatát más rendszereken is. Például egy kizárólag PlayStation 2 videójáték emulátor használatával (elméletileg) játszhatóvá válik PC vagy Xbox 360 gépeken. Akadályok Szellemi tulajdon – Több technológiaszállító alkalmaz nem szabványos, egyedi megoldásokat a programfejlesztés során, a piaci jelenlét megszerzése vagy növelése érdekében, miközben folyamatos frissítéseket bocsát ki a versenyképesség fenntartása miatt. Ez jó hatással lehet a technológia fejlődésére és a szállító piaci részesedésére, azonban a felhasználók számára rémálommá válik az adatok megőrzése, miközben a hardver és szoftver védett jellege miatt kevés a támogató dokumentáció.Granger, Stewart. "Emulation as a Digital Preservation Strategy." D-Lib Magazine 6.19 (2000). 29 Mar 2008 http://www.dlib.org/dlib/october00/granger/10granger.html Szerzői jog – Az egyedi fejlesztésű szoftver- és hardverspecifikációk és dokumentáció megőrzése egy emulátor-modulban nem esnek a szerzői jog hatálya alá.Rothenberg, Jeffrey. "The Emulation Solution." Avoiding Technological Quicksand: Finding a Viable Technical Foundation for Digital Preservation. Washington, DC: Council on Library and Information Resources, 1998. Council on Library and Information Resources. 2008. 28 Mar. 2008

Emulátorok az új médiaművészetben Az új médiaművészet (new media art) elsősorban digitális formátumokat alkalmaz, emiatt erősen támaszkodik az emulációra mint megőrzési stratégiára. Cory Arcangel és hasonló művészek elavult technológiák feltámasztását alkalmazzák műveikben és kiállnak a digitális művészet decentralizált és nem-intézményesített módon való megőrzésének fontossága mellett.

Az új médiaművészetben az emulációt leginkább a digitális médium megőrzése céljából alkalmazzák, hogy az korlátlanul elmenthető és hibamentesen reprodukálható legyen, tehát ne támaszkodjon valamilyen adott fizikai hordozóra vagy hardverre, ami idővel tönkremehet vagy elavulhat. Érdekes ellentmondás, hogy az alkalmazott emulációnak és emulátoroknak jövőbeli számítógépeken kell működniük, tehát jelenleg még nemlétező gépekre kell el/felkészülniük.

Emuláció a jövőbeli rendszerek tervezésében Új rendszerek tervezése és fejlesztése alatt gyakran használnak emulációs technikákat. Ez megkönnyíti a fejlesztési folyamatot, mivel lehetővé teszi a tervezési hibák korai felismerését és azok kijavítását még az adott rendszer elkészülése előtt. Ez különösen hasznos a többmagos rendszerek tervezésénél, ahol nehezen detektálható konkurenciahibák jelentkezhetnek, amelyeket igen nehéz lehet javítani a virtuális hardver által biztosított kontrollált környezet nélkül. Az emuláció lehetővé teszi a szoftverfejlesztést is a tervezés alatt álló, tehát fizikailag nemlétező hardverre, ami segítséget nyújthat a tervezési döntések értékelésében is.

Az emulátorok fajtáiról

A legtöbb emulátor csak a hardveres architektúrát (hardverfelépítést) emulálja – ha a futtatni kívánt szoftverhez operációs rendszer, firmware vagy egyéb további szoftver szükséges, akkor azt külön biztosítani kell, és azok is emulálhatók. Mind az operációs rendszert, mind a szoftvert az emulátor értelmezi (értelmező segítségével futtatja), mivel ekkor a kód nem a natív hardveren fut. Az emulált bináris gépi nyelv értelmezője (interpretere) mellett szükség van egyéb hardverelemek, pl. be- és kimeneti eszközök, jelenlétére is virtuális formában. Például ha egy adott memóriahely írása befolyásolja a megjelenő képet, akkor ezt a kapcsolatot is emulálni kell.

Bár az emuláció szélsőséges esetben elérheti a legalsó elemi szintet, tehát kiszámítható az eredeti hardver áramköreinek működése és az emulátor által mutatott működés alapulhat ezen az alacsony szintű szimuláción is, ez a gyakorlatban egy nagyon szokatlan megoldás lenne. Az emulátorok általában a csak a dokumentált hardverspecifikációk és a digitális logika szintjéig mennek el a szimulációban. Bizonyos hardverplatformok megfelelő emulációja rendkívüli pontosságot igényel, gyakran szükség lehet akár a különálló órajelciklusok, a nem dokumentált tulajdonságok, kiszámíthatatlan analóg elemek és a végrehajtási hibák pontos visszaadására is. Pontosan ez a helyzet a klasszikus otthoni számítógépek esetén; erre példa, hogy a Commodore 64 gépre írt programok működése gyakran az intuitív játék- és demo-programozók által feltalált rendkívül kifinomult alacsony szintű programozási trükköktől függ.