10. Émulation et machines virtuelles

Linux est beaucoup critiqué du fait de l'absence de la profusion de jeux présents sous d'autres plates-formes. Franchement, il y a assez de jeux pour moi, même s'il serait très chouette d'avoir certains des jeux du dernier cri et des classiques comme Half-life™ et Carmageddon™. Heureusement, il y a plus d'émulateurs que vous ne pouvez en tester. Bien que jouer à un jeu émulé n'est pas aussi amusant que de le jouer sur la machine originale, et que faire fonctionner correctement certains émulateurs peut s'avérer difficile, ils existent, et il y en a beaucoup !

10.1. Qu'est-ce qu'une machine virtuelle ?

Un « véritable ordinateur » fournit beaucoup de choses à un système d'exploitation : CPU, canaux d'entrée-sortie, mémoire, un BIOS pour fournir un accès de bas niveau à la carte mère et aux ressources d'entrée-sortie, et cætera. Quand un système d'exploitation veut écrire sur un disque dur, il communique par l'intermédiaire d'un pilote de périphérique qui fait l'interface directe avec le matériel.

Néanmoins, il est possible de donner à un programme toutes les ressources matérielles dont il a besoin. Quand il veut accéder à un disque dur, donnons-lui de la mémoire où écrire. Quand il veut attribuer une IRQ, donnons-lui l'impression d'avoir attribué une IRQ. Si vous faites ceci correctement alors, en principe, la pauvre application est incapable de savoir si elle accède réellement au matériel ou si on la trompe en lui donnant des ressources qui simulent le matériel. Une machine virtuelle est l'environnement qui trompe les applications en leur faisant croire qu'elles tournent sur une machine réelle. Elle fournit tous les services offerts par un véritable ordinateur.

Les machines virtuelles ont été à l'origine utilisées dans les années 1960 pour émuler les systèmes d'exploitation à temps partagé. De nos jours, nous les utilisons pour exécuter des logiciels qui ont été conçus pour des systèmes d'exploitation différents, ou plus communément, pour émuler un système d'exploitation entier. Du fait de la nature des machines virtuelles, le système d'exploitation étranger ne peut faire la différence entre fonctionnement à l'intérieur d'une machine virtuelle et fonctionnement dans une « vraie » machine.

10.2. Apple 8 bits

Tous les émulateurs Apple ][ 8 bits requièrent une copie de la ROM originale, quel que soit le système que vous voulez émuler, dans un fichier. Si vous cherchez suffisamment bien, vous pouvez trouver des copies des ROM pour les Apple ][, ][+, ][e, ][c et //gs. Ils sont toujours propriété de Apple, et vous ne pouvez les utiliser légalement que si vous possédez réellement un de ces ordinateurs.

10.2.1. KEGS

KEGS, de Kent Dickey , est un émulateur Apple II qui a été écrit à l'origine pour HP-UX, mais amélioré et taillé pour Linux. Il tourne sous X pour n'importe quel nombre de couleurs, et supporte des tailles de mémoire variables, les joysticks et le son. KEGS amorce toutes les variantes de Apple II, et prend en charge tous les modes graphiques des Apple ][. Je n'arrive pas à trouver de page d'accueil pour cette application.

10.2.2. apple2 et xapple2

apple2 basé sur SVGAlib et xapple2 utilisant X peuvent émuler n'importe quelle variante de Apple ][ sauf le //gs. L'interface est assez originale, mais utilisable. La configuration est aussi un peu étrange ; cet émulateur bénéficierait d'un outil de configuration basé sur SVGA ou X. Il supporte la partie non documentée du jeux d'instructions 6502 sur laquelle se basent certains jeux. apple2 est actuellement maintenu par Michael Deutschmann et semble être développé à une allure lente mais constante. Je ne pense pas que cette application ait une page d'accueil.

10.3. DOS

10.3.1. dosemu

dosemu est l'émulateur DOS canonique sous Linux. Quand vous pensez à DOS, ne pensez pas à des choses comme PROCOM PLUS OU D'AUTRES PROGRA~1 QUI ONT DES NOMS COURTS ET QUI SONT TOUS EN MAJUSCULES. Quelques classiques ont été écrits pour DOS comme Carmageddon™, Redneck Rampage™ et Tomb Raider™. dosemu peut les faire tourner. Malheureusement, il peut être malaisé de le faire fonctionner et, depuis janvier 2002, le code audio est quelque peu défectueux. Pas un gros problème si vous essayez d'exécuter Wordperfect™ ou une vieille application de base de données, mais ça empêche de jouer en pratique. Parvenir à faire fonctionner correctement dosemu n'est pas facile, mais c'est malheureusement le mieux qu'on puisse faire pour les jeux DOS. Bonne chance. Si vous utilisez avec succès dosemu, prévenez-moi.

10.4. Win16

10.4.1. Wabi

Wabi est un émulateur Win16 commercial, c.-à-d. qu'il exécute des applications Windows 16 bits prévues pour un environnement Windows 3.1, Windows 3.11 ou Windows for Workgroups 3.11. Wabi a été initialement créé par SCO Unix il y a longtemps et a été acheté par Caldera un beau jour vers la mi-2001.

Wabi est rapide et fait bien son boulot, même si j'ai entendu dire qu'il est plus stable sous Solaris que sous Linux. Il pourrait être utile pour jouer à de plus anciens jeux Win16, mais il y a trois problèmes :

  • vous devez posséder une copie légale de Windows 3.1/3.11 ou de Windows for Workgroups 3.11 ;

  • Wabi est affreusement cher pour ce qu'il fait ;

  • Wabi ne fonctionne pas en couleurs 24 ou 32 bits.

Wabi ne gère pas DOS par lui-même, mais il semble qu'il puisse utiliser un émulateur DOS comme dorsal pour exécuter des programmes DOS. On a parlé d'un Wabi 3.0 qui aurait effectué de l'émulation Win32, mais pour autant que je sache, ce projet est tombé aux oubliettes. Je pense que Wabi fonctionne sous Linux sur toutes les architectures (quelqu'un peut-il le vérifier ?).

10.5. Win32

10.5.1. wine

wine, qui porte l'acronyme GNUide de Wine Is Not An Emulator (Wine n'est pas un émulateur) est une implémentation non commerciale de l'API Win32. La raison pour laquelle ce n'est pas un émulateur est subtile et pas du plus grand intérêt pour la plupart des non-informaticiens, et nous parlerons donc d'émulateur ici (il s'agit en fait d'une traduction au moment de l'exécution des appels de l'API Win32 en appels POSIX/X11). wine a beaucoup évolué, et est capable d'émuler beaucoup de jeux importants, ce qui est une bonne nouvelle pour les utilisateurs Linux intéressés.

wine ne fournit pas d'API DOS, et vous ne pouvez donc pas l'utiliser pour exécuter des applications DOS. Pour cela, vous devriez jeter un œil à dosemu. wine n'a jamais très bien implémenté DirectX, bien que quelques jeux fonctionnent sous wine. Pour les jeux, vous devriez vous tourner vers winex.

En plus de la traduction au moment de l'exécution de l'API Win32 vers POSIX/X11 (il exécute des applications Windows sous Linux), wine effectue également une traduction au moment de la compilation de l'API Win32 vers POSIX/X11 (il compile le code source d'une application Windows sous Linux). Vu sous cet angle, wine est un utilitaire de portage Windows-vers-Linux. L'architecture x86 n'est pas requise, mais est recommandée car elle permet une exécution binaire x86 réelle ainsi qu'une utilisation directe des DLL.

Vous pouvez utiliser wine « avec Windows », ce qui signifie qu'il utilise des bibliothèques qui proviennent en réalité de Microsoft Windows lui-même. Cela n'est légal que si vous possédez une copie de Windows qui n'est pas actuellement utilisée sur un ordinateur. On dit que wine fonctionne le mieux quand il est exécuté avec Windows. Vous pouvez également utiliser wine sans Windows. Les gens de winehq écrivent leur propre jeu de bibliothèques appelé libwine qui implémente l'API Win32 sans aucun code provenant de Microsoft.

wine était à l'origine placé sous licence MIT/X11, et pouvait donc être utilisé à la fois à des fins commerciales et non commerciales. À la mi-2002, des parties de wine sont passées à la LGPL afin de ne plus pouvoir être utilisées à des fins commerciales. Cela pose un problème à des sociétés comme Transgaming (Section 10.5.3, « winex ») et a ouvert la voie à un nouveau projet issu de wine appelé ReWind.

10.5.2. rewind

rewind a été démarré par Éric Pouech (un développeur de wine) et Ove Kåven (un développeur de winex) en réponse au changement de licence de wine. Il a vu le jour comme un instantané de la dernière version de wine complètement placée sous la licence MIT/X11. Le but est que rewind demeure sous licence MIT/X11 afin que des sociétés comme Transgaming puissent offrir des produits dérivés de wine.

10.5.3. winex

winex est publié par une société appelée Transgaming. Ses développeurs utilisent wine et y ajoutent le support DirectX/DirectDraw. Bien que winex soit commercial, leur modèle économique est intéressant.

L'utilisateur final (vous) peut télécharger le code source gratuitement. Néanmoins, pour 5 $ US par mois, vous pouvez devenir un abonné de Transgaming, ce qui procure trois avantages principaux :

  • Les abonnés peuvent à tout moment télécharger des versions empaquetées de winex dans le format deb, rpm ou tar.gz (y compris les mises à jour). Elles sont également plus fonctionnelles que le source publiquement disponible : celui-ci est une version antérieure qui ne dispose pas de certaines des fonctionnalités les plus récentes, comme la prise en charge des programmes protégés contre la copie.

  • Les utilisateurs abonnés peuvent indiquer lors de sondages mensuels quels sont les points qu'il faut améliorer en priorité dans winex. Par exemple, ils peuvent voter pour des choses comme « Améliorer la prise en charge des programmes protégés contre la copie », « Meilleur support d'Installshield » ou « Améliorer la prise en charge de DirectX 8.0 ». Il me semble que les développeurs écoutent réellement les sondages.

  • Le site web de Transgaming comporte quelques forums d'assistance aux utilisateurs. D'un côté, ils utilisent le format le plus affreux, horrible, confus, dispendieux et idiot qu'il m'ait été donné de voir, et j'espère bien ne plus jamais revoir de forum ayant un format aussi mauvais que celui de Transgaming. D'un autre côté, vous pouvez demander de l'aide et les développeurs sont très bons pour trouver une réponse à votre question ; leur vigilance est assez impressionnante. Les non abonnés peuvent parcourir les forums, mais seuls les abonnés peuvent y écrire (et, par conséquent, y demander de l'aide).

Les développeurs de winex avaient l'intention de publier périodiquement leurs améliorations à Installshield, DirectX et DirectDraw dans wine. En contrepartie, au fur et à mesure de la maturation de wine, les développeurs de winex auraient pris les nouvelles versions de wine pour les utiliser dans winex. Néanmoins, depuis la naissance de Transgaming, des parties de wine sont passées à la licence plus restrictive GNU LGPL. Cela signifie en gros que les versions de wine publiées après la date du changement de licence ne peuvent plus être utilisées par winex. Par conséquent, winex sera à présent basé sur rewind.

10.5.4. Win4Lin

Win4Lin est un produit commercial de Netraverse. Comme vmware, il utilise l'approche de la machine virtuelle pour exécuter des applications Windows, et affiche donc une grande fenêtre depuis laquelle vous pouvez démarrer Windows et exécuter toutes sortes d'applications Windows. À la différence de vmware, Win4Lin ne prend en charge que Windows 95/98/ME, mais cela s'avère être mieux pour les joueurs. Puisque Win4Lin se concentre sur ces systèmes d'exploitation, on dit qu'il est plus rapide et exécute mieux les jeux sous ces systèmes d'exploitation que vmware. Il est également bien moins cher que ce dernier. Win4Lin, dont la version la plus récente au 30 juin 2003 est la 5.0, souffre néanmoins de certaines limitations :

  • Il ne prend pas en charge DirectX ou DirectDraw, alors que vmware a un support « limité » pour DirectX.

  • Il ne prend en charge que les périphériques série et parallèle. C'est important pour ceux qui utilisent des joysticks USB. Notez que vmware peut gérer jusqu'à 2 périphériques USB.

  • Au 30 juin 2003, comptez 89.99 $ sans documentation imprimée et 99.99 $ avec. De plus, il n'y a pas de copie d'évaluation disponible, bien qu'il y ait une garantie de remboursement sous 30 jours. Néanmoins, puisque c'est commercial, vous avez le support technique. vmware est beaucoup plus cher.

  • Comme pour vmware, vous devez posséder une copie autorisée de Win95 ou Win98. Win4Lin ne peut utiliser une installation existante de Windows à la manière de wine.

  • Il ne tourne que sur les architectures x86.

10.5.5. VMWare

VMWare est une machine virtuelle qui peut exécuter plusieurs systèmes d'exploitation simultanément sur un PC standard : les systèmes d'exploitation pris en charge comprennent ceux de Microsoft, Linux, Novell Netware et FreeBSD. Vous pouvez entre autres l'utiliser pour exécuter un système d'exploitation MS Windows et y lancer votre jeu favori. Vous pouvez même faire tourner Linux sous Linux ; utile par exemple si vous voulez tester une autre distribution. Stupéfiant ! Mais il y a des mauvais côtés. Vous devriez assurément disposer d'une bonne configuration pour l'utiliser ; le minimum annoncé est un CPU x86 500 Mhz avec 128 Mo de RAM, mais un processeur plus rapide avec au moins 256 Mo de RAM semble le minimum absolu si vous désirez des performances raisonnables. Toutes les distributions Linux ne sont pas prises en charge : les dernières RedHat, Mandrake et Suse le sont, mais c'est pas de chance si vous avez une autre version et/ou distribution (comme Debian). De plus, la prise en charge par vmware de DirectX est limitée, et vous pourriez ne pas pouvoir jouer à des jeux récents.

Voyez http://www.vmware.com pour plus d'informations. Ce n'est pas bon marché (environ 300 $ pour la version Workstation), mais vous pouvez obtenir une version d'évaluation limitée à 30 jours.

10.5.6. Que choisir ?

En premier lieu, vous devriez essayer un émulateur. Bien que certains jeux fonctionnent sous wine, vous aurez probablement le plus de succès avec winex : sa prise en charge de DirectX s'améliore constamment. Dans la version 3.1, la prise en charge de DirectX 8 est quasiment achevée, mais ce n'est pas forcément le cas des versions plus anciennes de DirectX (et donc des jeux plus anciens).

Vous pourriez également essayer une machine virtuelle comme Win4Lin ou VMWare au lieu d'un émulateur. Si votre but est d'exécuter des applications Win95/98/ME sous Linux, sans USB et sur l'architecture x86, le coût et le centrage sur les systèmes d'exploitation de type Win95 de Win4Lin en font un meilleur choix que vmware. Néanmoins, si vous devez avoir la prise en charge de l'USB ou exécuter Linux sur une plate-forme autre que x86, vmware est votre seule possibilité.

Maintenant, si votre but est d'exécuter des jeux pour des systèmes d'exploitation de type Win95 sous Linux, Win4Lin semble presque toujours meilleur que vmware. Le plus gros problème est que vmware a un support limité de DirectX alors que Win4Lin n'en a aucun. Ce fait seul rend tant Win4Lin que vmware inutilisables pour la plupart des jeux un tant soit peu évolués. Mais si vous voulez essayer, vous aurez probablement plus de succès avec vmware.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:17