Pourquoi les Mac ne peuvent-ils pas exécuter les milliers d’applications Windows ?


Comme la plupart des systèmes d'exploitation modernes, les logiciels qui s'exécutent sur eux dépendent d'une quantité considérable d'infrastructures et et de services que le système d'exploitation fournit.

OS X ne'exécute pas les applications Windows en mode natif pour la même raison que Linux ne le fait pas et que Windows n'exécute pas les applications OS X ou Linux : les frais généraux. Pour exécuter les applications étrangères, vous devez fournir toutes les bibliothèques et tous les services d'exploitation de la plate-forme étrangère. Cela nécessiterait des ressources supplémentaires en termes de stockage, de RAM et de CPU, ajouterait de la complexité et entraînerait d'énormes coûts d'ingénierie, le tout pour un produit qui n'exécuterait probablement qu'une partie du logiciel de la plate-forme étrangère. Dans le cas particulier de Windows, les bibliothèques du noyau du système d'exploitation sont si mal documentées et remplies de divers bogues que les applications Windows comptent sur le fait d'être justes, que ce serait une tâche énorme que de mettre en œuvre cette masse de spaghettis (par comparaison, Linux est entièrement open-source, et le noyau OS X et beaucoup de ses cadres sont également open-source).


Cela'ne veut pas dire qu'il n'y a pas eu d'effort. Le projet Wine vise à faire de la rétro-ingénierie des API WIN32 pour rendre possible l'exécution de binaires Windows sur d'autres plateformes. Ils travaillent assidûment à cette tâche depuis 1993. Vous pouvez le télécharger pour OS X ou obtenir une version joliment emballée pour OS X auprès de CodeWeavers. Le problème est qu'il n'est toujours pas complet et qu'il fait tourner de nombreux logiciels Windows. L'API WIN32 est et a toujours été un horrible gâchis - à tel point que l'une des plus grandes caractéristiques de Windows 8 est une dépréciation des API traditionnelles de la plateforme Windows en faveur de la nouvelle plateforme WinRT.


Les logiciels de machines virtuelles comme VirtualBox, Parallels Desktop et VMWare Fusion ne font'ment aucune tentative d'émuler ou de traduire des applications Windows dans l'environnement OS X, au lieu de cela ils font quelque chose qui'est techniquement beaucoup plus simple : ils simulent le matériel d'un ordinateur dans le logiciel. En fait, la simulation d'un ordinateur entier est une tâche beaucoup plus simple à réaliser, et elle vous permet d'installer n'importe quel logiciel que vous voulez dans l'ordinateur simulé, d'exécuter plusieurs simulations en même temps, de sauvegarder l'état de la simulation sur le disque, de la supprimer de la mémoire et de la rappeler à une date ultérieure - toutes sortes de choses intéressantes. C'est la façon la plus courante d'exécuter des applications Windows sur d'autres systèmes d'exploitation parce que, du point de vue de l'ingénierie, c'est beaucoup plus facile, fonctionne très bien et exécutera n'importe quel logiciel comme il le ferait sur du matériel physique.