Come capisco gli emulatori (in modo semplice), traducono o sostituiscono le chiamate di funzione di un programma usando le funzioni del sistema X in funzioni utilizzate dal sistema Y in cui il programma viene eseguito. Il progetto Wine afferma che Wine Is Not an Emulator, perché:
Invece di simulare la logica interna di Windows come una macchina virtuale o un emulatore, Wine converte le chiamate API di Windows in chiamate POSIX al volo, eliminando le penalità di prestazioni e memoria di altri metodi e consentendo di integrare in modo pulito le applicazioni Windows nel desktop.
Bene, in che modo gli emulatori e le macchine virtuali simulano la logica interna di Windows su sistemi host non Windows? Non è forse quello di tradurre le chiamate di sistema di Windows nelle rispettive chiamate dell'host? La differenza tra emulatori e non emulatori (come Wine) è che gli emulatori emulano un intero sistema operativo, quindi l'applicazione utilizza le API di quel sistema senza sapere che sta parlando con un emulatore, mentre i non emulatori traducono direttamente le chiamate dell'applicazione nell'host ( e l'applicazione potrebbe anche non saperlo)? Il livello extra di riferimento indiretto è l'unico diverso tra emulatori e Wine?