Si je comprends bien les émulateurs (d'une manière simple), ils traduisent ou substituent les appels de fonction d'un programme utilisant les fonctions du système X en fonctions utilisées par le système Y dans lequel le programme est exécuté. Le projet Wine affirme que Wine n'est pas un émulateur, car:
Au lieu de simuler la logique interne de Windows comme une machine virtuelle ou un émulateur, Wine traduit les appels de l'API Windows en appels POSIX à la volée, éliminant les performances et les pénalités de mémoire d'autres méthodes et vous permettant d'intégrer proprement les applications Windows dans votre bureau.
Eh bien, comment les émulateurs et les machines virtuelles simulent la logique Windows interne sur les systèmes hôtes non Windows? N'est-ce pas en traduisant les appels système Windows dans les appels respectifs de l'hôte? La différence entre les émulateurs et les non-émulateurs (comme Wine) est que les émulateurs émulent tout un système d'exploitation, puis l'application utilise les API de ce système sans savoir qu'elle parle à un émulateur, tandis que les non-émulateurs traduisent directement les appels de l'application dans l'hôte ( et l'application peut également ne pas le savoir)? Le niveau supplémentaire d'indirection est-il le seul différent entre les émulateurs et Wine?