Il est possible d’utiliser des applications programmées pour Windows sur des systèmes Linux ou MacOS. Et ceci grâce à un logiciel, Wine.
L’émulation
Il existe différentes possibilités de faire tourner des applications Windows sur des systèmes différents. Simuler le fonctionnement d’une machine, avec tous ses composants, est quelque chose de bien connu des amateurs de retro-gaming. Le lecteur CD de la première Playstation, la définition d’écran faiblarde, voire les bugs graphiques (distorsions de textures), sont des éléments qui peuvent être reproduits (ou corrigés) par un logiciel qui va simuler la console d’origine. Nous pouvons télécharger ou copier les CD originaux (images ISO) et les faire tourner sur des émulateurs (voire même utiliser notre propre lecteur CD pour faire tourner les jeux originaux).
Un émulateur prend beaucoup de ressources, et il est souvent compliqué de faire tourner des systèmes gourmands ou complexes (les dernières consoles à la mode).
La virtualisation
Une autre possibilité est la virtualisation. À l’instar de l’émulation, la machine virtuelle ainsi créée utilisera le matériel disponible, et passera par des partie émulées si le matériel n’est pas disponible en double sur la machine hôte (carte son, réseau, carte graphique…). Les machines virtuelles permettent de simuler un système complet, faisant croire à un autre système d’exploitation (ou OS) qu’il est bien dans une machine physique. La virtualisation demande beaucoup de mémoire RAM (puisqu’il ne peut la partager), mais est plus rapide que les émulateurs. Un bémol, l’accélération graphique de votre système est rarement prise en compte et les jeux gourmands en 3D ne sont pas bien pris en charge (ou avec de très faibles performances).
WINE n’est pas un émulateur
La dernière possibilité, c’est celle représentée par Wine (Wine Is Not an Emulator). Il s’agit de retranscrire les commandes d’un langage donné (et programmé pour un système) en un autre, compréhensible, par un autre système. Un exemple qui parle beaucoup aux joueurs est celui des instructions DirectX (exclusivement disponible sous Windows). Elles seront retranscrites par Wine en instructions OpenGL (compréhensibles par MacOS ou les distributions Linux). Wine reproduit aussi une architecture de dossiers et de fichiers avec des éléments natifs réutilisés par le programme. Potentiellement, Wine permet de faire tourner des applications très rapidement (entre 5 à 10% moins rapidement que leur système Windows en moyenne). Tout se fait de manière assez transparente, vous cliquez sur l’icône de l’application, elle se lance comme si elle était dans son environnement d’origine.
Wine aujourd’hui
Depuis le 24 janvier 2017, Wine est passé à la version 2.0. J’ai abordé les jeux, car c’est un exemple assez simple à expliquer, mais Wine peut très bien servir à faire tourner d’autres types d’applications. Photoshop, Microsoft Office, InDesign sont des applications qui manquent aux utilisateurs Linux et qui peuvent tourner grâce à Wine. À noter que le développement de Wine se fait grâce au projet commercial Codeweavers qui garanti le fonctionnement d’applications professionnelles avec Wine.
En 2017, la version 2.0 de Wine marque un tournant avec le support de nombreuses fonctionnalités héritées de DirectX 10 et 11. Cette version corrige quelques bugs et améliore le support des hautes résolutions. Sur MacOS, le support des applications 64 Bits est mis en avant. Tous les changements sont disponibles ici.
[Mise à jour 2022]
Depuis que Valve est entré dans le développement de Wine avec la surcouche maison Proton. De nombreux jeux tournent très bien sur Linux (près de 7000 en 2022 sur leur console SteamDeck !).