Emulaattori

DOSBox-emulaattori

Emulaattori tarkoittaa tietokonejärjestelmää, joka on suunniteltu käyttäytymään kuten toinen järjestelmä.[1] Emulaattori on tietokoneohjelma, tietokonelaitteisto tai näiden kahden yhdistelmä, joka mahdollistaa ohjelmien suorittamisen toisella alustalla.[2] Termi on lähtöisin IBM:ltä 1960-luvulla, jolloin mikro-ohjelman avulla voitiin emuloida aiempia IBM:n tietokoneita.[3]

Muunlaisella alustalla voi olla erilainen suoritin, tietokone tai käyttöjärjestelmä kuin mille ne ohjelma on alun perin tarkoitettu. Yleensä emulaattori-ohjelma matkii emuloitavan tietokoneen tai pelikonsolin prosessorin ja muiden osien toimintaa ja tarvitsee käytettävät ohjelmat erillisinä tiedostoina. Emulaattoreita varten on tehty erikseen tiedostotyyppejä, joihin voidaan tallentaa emuloitavan laitteen käyttämien levykkeiden, ROM-moduulien tai CD-levyjen sisällöt yhteen tiedostoon, joita voidaan ajaa tiedostoja kätevästi emulaattori-ohjelmassa. Tyypillisintä emulaattoreiden käyttöä on jo markkinoilta poistuneiden tietokoneiden ja pelikonsoleiden pelien pelaaminen nykyisillä tietokoneilla. Emulaattoria voi käyttää myös esimerkiksi ajamaan Apple Macintosh-koneissa IBM PC -yhteensopivien käyttöjärjestelmiä ja ohjelmia.

Useimmat emulaattorit ovat ohjelmallisia ja emuloivat kokonaista tietokonelaitetta suorittimineen, näytönohjaimineen ja muine osineen. Esimerkiksi klassisia kotitietokoneita ja pelikonsoleita emuloivat ohjelmat ovat tällaisia. Joissakin tapauksissa vanhojen tietokoneiden tai konsolien musiikkia toistetaan erikseen ohjelmilla, jotka emuloivat vieraan äänipiirin ja prosessorin toimintaa (esimerkiksi Commodore 64:n musiikkia sisältävien SID-tiedostojen toisto muulla tietokoneella). Tämä eroaa huomattavasti tavanomaisesta äänitiedoston soittamisesta.

Vieraiden käyttöjärjestelmien ohjelmien ajamiseen ei useinkaan tarvita täydellistä laitteistoemulaattoria ja vieraan käyttöjärjestelmän ajamista siinä, vaan pelkkä käyttöjärjestelmä- tai ohjelmistorajapinnan toteutus riittää. Esimerkiksi Wine ja Cygwin eivät ole varsinaisia emulaattoreita vaan lähinnä yhteensopivuusrajapintoja. On myös suoritinemulaattoreita, joilla esimerkiksi x86-arkkitehtuurille käännettyjä Linux-ohjelmia voi ajaa muunlaista suoritinta käyttävissä Linux-koneissa.

Monissa käyttöjärjestelmissä on itsessään jonkinlainen emulaattori tai rajapinta, joka mahdollistaa vanhempien ohjelmien käytön uudella järjestelmällä. Esimerkiksi Windowsit pystyvät jonkintasoiseen DOS-emulaatioon ja klassinen Mac OS pystyy ajamaan PowerPC-koneilla vanhoja Motorola 68000 -sarjalle tehtyjä ohjelmia. Lisäksi Intel-pohjaisissa Macintosheissa voi ajaa emulaatiorajapinnan avulla PowerPC-arkkitehtuurille suunniteltuja ohjelmia. ARM-arkkitehtuuria käyttävät Macintoshit sisältävät päivitetyn "Rosetta 2" -version Rosetta-emulaattoriohjelmasta.[4]

Emulaattorit on suunniteltu suorittamaan eri suorittimelle tehtyjä ohjelmia toisella laitteistoalustalla, kun taas virtualisointi voi käyttää laitteen omaa käskykantaa.[5]

Uuden laitteiston kehitysvaiheessa voidaan käyttää simulointia, jolloin suoritus voidaan pysäyttää halutussa kohdassa debuggausta varten.[6]

  1. emulator dictionary.cambridge.org. Viitattu 11.10.2022. (englanniksi)
  2. emulator pcmag.com. Viitattu 11.10.2022. (englanniksi)
  3. Emerson W. Pugh: Building IBM: Shaping an Industry and Its Technology, s. 274. MIT Press, 1995. ISBN 0-262-16147-8 Teoksen verkkoversio. (englanniksi)
  4. This is Apple’s roadmap for moving the first Macs away from Intel arstechnica.com. 22.6.2020. Viitattu 23.6.2020. (englanniksi) 
  5. Chapter 1. Introduction to Bochs bochs.sourceforge.net. Viitattu 20.1.2020. (englanniksi)
  6. Bochs, PC Bootstrap, and GCC Calling Conventions cs.princeton.edu. Viitattu 11.10.2022. (englanniksi)

Developed by StudentB