Emulatore
Da Wikipedia, l'enciclopedia libera.
Un emulatore nel senso più generale possibile duplica le funzioni di un determinato sistema su un secondo sistema differente dal primo.
Indice |
[modifica] Emulatori software
Un software d'emulazione o più comunemente un emulatore è un programma che permette l'esecuzione di software scritto per un ambiente (hardware o software) diverso da quello sul quale l'emulatore viene eseguito.
Un programma scritto per computer con sistema operativo Windows ad esempio non funziona (in gergo gira) su un computer con sistema operativo differente come Macintosh o Linux. In questi casi si crea sulla macchina ospitante un emulatore che riproduce virtualmente l'ambiente che è stato usato per creare quel programma. Un esempio di emulatore è il WINE che permette di utilizzare programmi Windows su sistemi Unix.
Esistono varie categorie di emulatori, così come esistono diversi metodi per emulare una piattaforma. È possibile emulare completamente un ambiente sia hardware che software oppure soltanto uno dei 2. Emulare un ambiente software è tecnicamente meno complicato poiché può essere sufficiente un semplice traduttore di istruzioni che renda comprensibile all'ambiente sul quale l'emulatore gira le istruzioni del programma emulato (come nel caso di WINE). Nel caso invece dell'emulazione hardware invece sarà necessario simulare la circuiteria e il comportamento fisico del sistema come avviene ad esempio nel MAME.
Un uso popolare degli emulatori è quello che permette di utilizzare videogiochi scritti per computer o console non più in vendita o di difficile reperibilità, come i computer della serie Amiga, il Commodore 64, lo ZX Spectrum, il BBC Micro o l'MSX.
[modifica] "Emulatori", "Simulatori" e "Virtual Machine"
Esiste una linea di pensiero che tende a distinguere gli emulatori di un sistema dai simulatori di quel sistema, ed entrambi dalle cosiddette virtual machine o macchine virtuali. Sebbene il risultato finale possa considerarsi (dagli utenti finali) lo stesso, la differenza tra i tre è fondamentale.
Un emulatore necessita sempre del software di quel sistema (ottenuto con un processo detto spesso dumping), limitandosi quindi ad emulare l'hardware, in modo da poter interpretare correttamente i file contenenti i dump del software (che rimane scritto in un linguaggio comprensibile soltanto al sistema emulato e non al sistema emulante, o sistema host).
Un simulatore, invece, si prefigge di arrivare allo stesso risultato, riscrivendo però (in tutto o in parte) le routine del programma da simulare, in modo da renderlo comprensibile alla macchina su cui gira.
Non essendoci alcuna emulazione dell'hardware (cosa che prende diversi cicli-macchina), un simulatore è per forza di cose più veloce, tuttavia è spesso poco preciso nel riproporre fedelmente il software simulato ed inoltre la maggioranza delle volte il suo codice sorgente non è disponibile (mentre per buona parte degli emulatori non è così).
Per tali motivi, se i simulatori hanno dalla loro una notevole velocità di esecuzione, gli emulatori hanno l'accuratezza (che comprende, ovviamente, anche eventuali bugs del software e/o della macchina originale).
Uno dei tanti esempi di simulatori in questo senso sono le raccolte "Microsoft Returns of Arcades" prodotti dalla Microsoft per PC nella seconda metà degli anni 90, che ripropongono alcuni coin-op storici.
Le virtual machine, infine, si possono considerare un "PC nel PC". Ossia, mediante una virtual machine è possibile installare un secondo sistema operativo in una macchina virtuale e farci girare software in un ambiente considerato più "protetto" che non la macchina host vera e propria. Come si può immaginare, al di là della lentezza (comunque relativa e proporzionale alla potenza della macchina host), non vi è alcun limite. Questi sistemi a volte emulano anche parti di hardware, e altre volte si limitano a replicare l'hardware della macchina host. Tuttavia, non emulano mai macchine con architettura completamente diversa (a partire dalla CPU) e quindi, per alcuni puristi, non sono considerati emulatori nel senso stretto del termine.
[modifica] Voci correlate
- MAME, il principale e più noto emulatore di piattaforme arcade
- VICE, emulatore dei computer a 8 bit prodotti dalla Commodore
- PCSX2, emulatore di PS2
- Dosbox, emulatore di MS-DOS