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 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 en leur temps, 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, qui pourrait
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 modèles sortis. On est à
l’époque où IBM s’apprête à lancer sa NPL (New Product Line), série
d’ordinateurs révolutionnaires et fruit de son 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 d’avoir une logithèque conséquente.
Fin Septembre 1963, IBM confie à un des
ses laboratoires situé à La Gaude, en France, 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
au mieux deux fois moins rapide que les ordinateurs en question, et elle est 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, un 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 grâce à son adaptabilité
logicielle. 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 ordinateurs 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. 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 se tournent vers les ordinateurs,
jeux d’arcades ou consoles qui sont encore d’actualité. 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 et le plaisir de venir à bout des difficultés rencontrées.
Laurent