Emulazione

1. L'emulazione, in un contesto software, è l'uso di un programma applicativo o di un dispositivo per imitare il comportamento di un altro programma o dispositivo.

Gli usi comuni dell'emulazione includono:

  • Esecuzione di un sistema operativo su una piattaforma hardware per la quale non è stato originariamente progettato.
  • Esecuzione di giochi arcade o basati su console su computer desktop.
  • Esecuzione di applicazioni legacy su dispositivi diversi da quelli per cui sono state sviluppate.
  • Esecuzione di programmi applicativi su sistemi operativi diversi da quelli per cui sono stati scritti originariamente.

Un esempio comune di quest'ultimo tipo di emulazione è l'esecuzione di applicazioni Windows su computer Linux. Virtual PC è un altro esempio di emulatore che consente ai Mac di eseguire Windows XP, sebbene l'aggiunta di Boot Camp ai Mac basati su Intel di nuova generazione abbia eliminato la necessità di tale applicazione nell'ambiente Macintosh in futuro.

2. Nella virtualizzazione del server, l'emulazione è sinonimo di ambiente virtuale. Un ambiente virtuale può anche essere definito partizione, guest, istanza o contenitore.

3. Nell'hardware, l'emulazione è l'uso dell'hardware per imitare la funzione di un altro dispositivo hardware allo scopo di connettere dispositivi tra loro o connettersi a un computer mainframe.

L'emulazione hardware può essere utile quando un dispositivo hardware o una periferica come una stampante, uno scanner o una fotocamera digitale diventa obsoleto. Un emulatore di stampante, ad esempio, si trova all'interno della ROM della stampante. In molte organizzazioni persistono applicazioni legacy che devono comunque comunicare con il dispositivo. A tal fine, l'emulazione di terminale consente a un terminale di computer di apparire e funzionare come un altro tipo di terminale, di solito più vecchio, in modo che un utente possa accedere ai programmi legacy.

Sebbene in teoria qualsiasi applicazione possa essere riscritta per funzionare su un altro dispositivo o architettura, in pratica tale ingegneria inversa è piuttosto difficile da realizzare con successo, con conseguenti significativi danni alle prestazioni o arresti anomali dovuti a errori di programmazione.