Como entiendo los emuladores (de una manera simple), traducen o sustituyen las llamadas de función de un programa que utilizan funciones del sistema X en funciones utilizadas por el sistema Y en el que se ejecuta el programa. El proyecto Wine afirma que Wine no es un emulador porque:
En lugar de simular la lógica interna de Windows como una máquina virtual o un emulador, Wine traduce las llamadas API de Windows en llamadas POSIX sobre la marcha, eliminando el rendimiento y las penalizaciones de memoria de otros métodos y permitiéndole integrar limpiamente las aplicaciones de Windows en su escritorio.
Bueno, ¿cómo los emuladores y las máquinas virtuales simulan la lógica interna de Windows en sistemas host que no son Windows? ¿No es eso traduciendo las llamadas del sistema de Windows a las llamadas respectivas del host? La diferencia entre los emuladores y los no emuladores (como Wine) es que los emuladores emulan un sistema operativo completo, luego la aplicación usa las API del sistema sin saber que está hablando con un emulador, mientras que los no emuladores traducen directamente las llamadas de la aplicación al host ( y la aplicación también puede no saberlo) ¿El nivel extra de indirección es la única diferencia entre los emuladores y Wine?