Mastodon
Le 1er site en français consacré à l'histoire des jeux vidéo
Les Origines de l'Emulation
Phénomène incontournable aujourd'hui, l'émulation trouve sa source à une époque reculée de l'histoire des ordinateurs. Explications.
Par Laurent (20 avril 2001)

Vous savez tous ce qu'est l'émulation, mais l'origine de cette technologie, ainsi que l'explication de ce mot à l'étymologie incertaine, et même inexacte, est floue. En effet, l'émulation représente systématiquement un retour en arrière pour un ordinateur, une habile manipulation logicielle et/ou matérielle visant à le transformer en l'un de ses ancêtres plus ou moins éloignés dans le temps et dans leur architecture. Alors pourquoi parler d'émulation ? On va voir qu'une fois de plus, une technologie informatique qui nous semble si moderne va s'avérer remonter à une époque bien lointaine.

De la fin de la deuxième guerre mondiale aux débuts des années 80, il est un fait qu'IBM (International Business Machines, compagnie fondée en 1911) a régné sur le monde des ordinateurs. Dans les années 50/60, des appareils tels que l'IBM 1401 font figure de référence absolue, même si des compagnies comme Digital, Sperry-Rand, Burroughs ou Honeywell proposent d'autres produits qui sont parfois plus performants, mais ne peuvent se prévaloir du label "Big Blue". Conscients que cette suprématie repose plus sur une réputation que sur les performances réelles de leurs machines, les dirigeants d'IBM initient alors une étude connue aujourd'hui sous le nom de SPREAD Report, qui a pour but d'aboutir à la conception d'un produit totalement nouveau, apte à distancer durablement la concurrence. On vit alors une époque où les ordinateurs sont conçus comme des machines totalement indépendantes les une des autres. Il n'est question ni de composants partagés, ni de compatibilité. Chaque système nécessite donc ses propres données logicielles, son propre hardware adapté à l'usage que l'on veut en faire, et les responsables de la recherche d'IBM voient là une piste à explorer.

En 1962, un rapport circule chez IBM selon lequel un "utilisateur anonyme" est parvenu à modifier le hardware d'un IBM 705 afin qu'il puisse exécuter des programmes écrits pour IBM 1401, modèle plus ancien. Ce rapport va définitivement indiquer aux chercheurs de la compagnie la voie à suivre : la compatibilité descendante, à savoir la compatibilité de tout nouveau modèle IBM avec les précédents sortis. On est à l'époque où l'entreprise s'apprête à lancer sa NPL (New Product Line), série d'ordinateurs révolutionnaires, fruit d'un considérable effort de développement technologique. On connaît aujourd'hui, notamment grâce aux systèmes d'exploitation Microsoft (tous basés, jusqu'à Windows NT et 2000 sur l'inévitable MS/DOS pour les rendre compatibles), les répercussions d'une telle politique sur les ventes d'ordinateurs d'une même marque, et la fidélisation de la clientèle qu'elle permet (même si le principe a aussi des inconvénients, voir toujours l'exemple de Microsoft et du DOS). Il n'y a ainsi plus besoin d'accompagner la sortie d'un nouvel ordinateur d'une batterie de logiciels puisqu'il peut se contenter de ceux de ses prédécesseurs en attendant de disposer d'une logithèque conséquente.

Fin septembre 1963, IBM confie à un des ses centres de recherche situé en France à La Gaude (près de Nice), la mission de développer une série de programmes de simulation ayant pour but d'imiter le comportement de ses 7 ordinateurs les plus populaires, et d'établir une compatibilité descendante entre eux, le tout de manière purement logicielle. Les premiers résultats sont décourageants. La simulation a un fonctionnement deux fois moins rapide que les ordinateurs en question, donc inutilisable dans un cadre professionnel. La compatibilité descendante ne peut donc pas simplement être le fait d'un programme intermédiaire, elle doit faire partie intégrante du fonctionnement des ordinateurs. Pendant un an, les chercheurs d'IBM vont développer les ordinateurs de la NPL dans ce sens. Un ingénieur nommé Stuart Tucker est nommé responsable de la compatibilité descendante.

L'IBM 7070

Pendant ce temps, les concurrents d'IBM ne se sont pas endormis. Honeywell sort le H-200, ordinateur capable de faire fonctionner des programmes IBM, un évènement qui met un peu plus la pression sur Big Blue. Il n'est plus seulement question de compatibilité descendante au sein d'une ligne d'ordinateurs d'un même fabricant, mais carrément de compatibilité avec d'autres systèmes, d'autres marques. John Haanstra, un autre ingénieur chez IBM peu favorable aux projets de Tucker et à la NPL, propose alors une solution hardware, qui va aboutir à l'IBM 1410S, une machine permettant à IBM de rattraper temporairement son retard technologique sur Honeywell, mais qui ne préfigure aucune ligne d'ordinateurs tous compatibles entre eux et ouverts sur les autres systèmes. L'équipe de Tucker, basée à Poughkeepsie, New Jersey, comprend un jeune talent très prometteur : Larry Moss. Sa théorie est que pour qu'un ordinateur puisse être compatible avec un autre, le hardware des deux machines doit être le plus similaire possible tout en permettant à la fois l'exécution des programmes pour lesquels ils sont conçus et le lancement d'un programme de simulation tel que celui sur lequel l'équipe française de La Gaude à déjà travaillé. Il se lance donc dans l'étude d'une solution de compatibilité mixant les approches matérielle et logicielle qui ont opposé Tucker et Haanstra. Il parvient à mettre au point une extension pour les ordinateurs NPL les rendant capable d'exécuter des programmes prévus pour IBM 7070, le plus sophistiqué des ordinateurs IBM d'alors (en passe bien sûr d'être surpassé par les produits de la NPL).

Les travaux de Moss aboutissent à un fonctionnement parfait de ces programmes, ne trahissant aucune perte de performances. Il décide, pour montrer la supériorité de son projet sur la "simulation" développée à La Gaude, de lui conférer l'appellation d'"émulation", déformation du mot initial qui introduit l'idée d'amélioration, de progrès, et l'excitation qui va avec. Tucker approuve le projet, qui aboutit le 7 avril 1964 à la sortie de la famille d'ordinateurs IBM System/360 et de l'émulateur Moss, connu aussi sous le nom de 7070 Emulator, dont Joe Brown et Larry Moss sont les pères. L'appareil va connaître un franc succès, les possesseurs de System/360 étant ravis de continuer à utiliser leurs anciens programmes pour 7070, et sa commercialisation durera jusqu'au début des années 70.

L'IBM System/360

La suite de l'histoire n'est qu'une longue série de projets d'émulateurs utilisant ou non des extensions matérielles et rendant potentiellement compatibles des machines plus ou moins différentes les unes des autres. Aujourd'hui, le terme a retrouvé son sens premier, puisque c'est une véritable course que se livrent les petits génies de la programmation et du décorticage électronique (retro-engineering). De nouveaux émulateurs sortent chaque mois, et certaines machines font l'objet d'une multitude de projets d'émulation dont le fonctionnement tend vers la perfection, assurant la pérénité du patrimoine logiciel des ordinateurs (ou consoles de jeux), et ce bien au delà de la vie commerciale de leur système d'origine. Il peut aussi arriver que les spécialistes, un peu trop pressés, se tournent vers des ordinateurs, jeux d'arcades ou consoles qui sont encore sur le marché. L'émulation pose dans ce cas d'épineuses questions d'éthique et de légalité, surtout si les logiciels ne peuvent lus sur leur support d'origine et nécessitent d'être débarrassés de leurs protections contre la copie. Mais si certains utilisateurs de l'émulation recherchent effectivement un moyen de s'affranchir de l'achat de certains logiciels, les développeurs d'émulateurs sont, eux, avant tout motivés par la passion, le plaisir de venir à bout des difficultés rencontrées et l'idée de préservation d'un patrimoine.

Laurent
(20 avril 2001)