
licenza generica Creative Commons Attribution-Share Alike 2.5 .

Fotografato da Adrian Pingstone
Rilasciato al pubblico dominio nel 1988
Cos’è un emulatore?
Il concetto di emulazione è molto più complesso di quello che si possa pensare. Si parla di emulazione quando un software, scritto per una specifica architettura hardware e software, riproduce totalmente un’architettura differente permettendo così l’esecuzione di programmi scritti per ambienti diversi da quello sul quale viene eseguito.
Tra gli emulatori più famosi possiamo citare quello del Commodore Amiga, Commodore 64, ZX Spectrum, MSX e molti altri vecchi computer del passato.
È molto importante non confondere un “emulatore” con una “macchina virtuale” perché quest’ultima permette l’esecuzione di un sistema dentro l’altro (una sorta di scatola cinese) ma, sempre mantenendo l’architettura hardware identica. A volte vengono emulate installazioni ideali di schede per permettere una maggiore compatibilità e stabilità dei software eseguiti ma, l’esecuzione dei processi virtuali e sempre e solo eseguita dal processore reale senza interpretazioni varie. Esistono parecchie macchine virtuali, alcune anche molto potenti, come VIRTUAL BOX della Oracle, VMWare, ecc.
Occorre anche non confondere “emulazione” con “simulazione”. La simulazione è la ricostruzione totale di un processo per un nuovo sistema, originariamente scritto per un altra piattaforma, cercando di mantenere il più possibile la fedeltà dell’originale. In questo caso nulla viene emulato perché in realtà il software viene ricostruito in modo più simile possibile all’originale.
Altra confusione può venire fatta tra “emulatore” ed “interprete”. L’interprete è una sorta di piccolo programma che parla 2 lingue: quella del processore e quella del programmatore, permettendo così la stesura di programmi in modo molto più semplice. Nei vecchi PC il più famoso linguaggio che aveva bisogno di essere interpretato è stato il “linguaggio BASIC”. Nei PC moderni i famosi “drivers” sono, in realtà, dei piccoli interpreti tra “sistema operativo” e componenti hardware aggiuntivi come schede video, audio, lan, o periferiche esterne come scanner, stampanti, ecc. Anche il software scritto in linguaggio JAVA, necessario in tutti i sistemi moderni, viene eseguito in tempo reale dalla “java virtual machine” ovvero l’interprete JAVA. Anche la visualizzazione di un documento .pdf deve essere interpretato per funzionare.
Per le macchine attuali, molto potenti, sono stati realizzati i più svariati emulatori. E’ così possibile, con un po’ di pazienza, rivedere pressoché fedelmente tutte le consolle e game da Bar del passato e tutti i computer con il loro infinito software realizzato. Un oceano di bit e milioni di linee di codice in più di cinquantanni di evoluzione informatica ed elettronica.