IBM CP-40
L’histoire des machines virtuelles commence dans les laboratoires du MIT, où Fernando Corbató et son équipe travaillent sur le Compatible Time-Sharing System. Ce système modifie l’usage des ordinateurs en introduisant le partage temporel, mais sa mise en œuvre nécessite des modifications matérielles délicates. IBM, fournisseur des machines du MIT, maintient sur place un bureau de liaison pour accompagner ces adaptations techniques.
L’année 1964, IBM dévoile sa nouvelle gamme System/360, censée unifier l’informatique d’entreprise. Pourtant, les clients du MIT découvrent avec amertume l’absence de capacités de translation d’adresses dans ces nouvelles machines. Cette fonction leur paraît indispensable pour développer leurs systèmes de partage temporel. Face à cette déception, IBM réagit en créant le Cambridge Scientific Center sous la houlette de Norm Rasmussen. L’objectif était de rattraper le retard en matière de partage temporel.
Robert Creasy, ancien du projet CTSS, prend la tête du nouveau projet CP-40. Avec Les Comeau, il imagine à la fin de 1964 une approche radicalement différente : simuler plusieurs machines System/360 indépendantes sur un seul ordinateur physique. Cette idée séduit par sa simplicité conceptuelle. Chaque utilisateur dispose de sa propre machine virtuelle, totalement isolée des autres. Fini les risques d’interférence entre programmes.
La réalisation de ce concept exige des prouesses techniques. L’équipe du CSC modifie un IBM System/360 modèle 40 en lui greffant un dispositif baptisé Cambridge Address Translator. Bruce Lindquist et Rex Seeber conçoivent ce mécanisme autour d’une mémoire associative de 64 mots. Le défi consiste à traduire les adresses sans ralentir l’exécution des programmes. Pari tenu : la translation s’effectue sans perte de performances notable.
L’architecture du système CP-40 repose sur une séparation nette entre deux composants. D’un côté, le Control Program gère la création et l’administration des machines virtuelles. De l’autre, le Cambridge Monitor System fournit un environnement d’exploitation simple pour ces machines virtuelles. Cette division du travail constitue une innovation architecturale remarquable. John Harmon dirige le développement de CMS avec son équipe comprenant Lyndalee Korn et Ron Brennan. Ils s’inspirent largement de l’interface de CTSS pour créer un système convivial. Paradoxalement, CMS est mono-utilisateur et toute la complexité du partage des ressources incombe au Control Program.
Janvier 1967 voit la mise en production de CP-40 et CMS. Le système démontre immédiatement sa capacité à faire tourner OS/360 dans une machine virtuelle. Cette compatibilité ascendante se révélera décisive pour l’adoption future de la technologie. L’équipe découvre aussi les écueils de la mémoire virtuelle. Le phénomène de thrashing les surprend : quand la pagination est excessive, les performances s’effondrent brutalement.
Le succès de CP-40 ouvre la voie à CP-67, adapté au System/360 modèle 67 qui intègre nativement la translation d’adresses. Dick Bayles, Dick Meyer et Harit Nanavati mènent cette évolution. CP-67 apporte des améliorations substantielles comme la gestion dynamique de la mémoire et la flexibilité dans la configuration des machines virtuelles.
Mai 1968 marque la première distribution de CP-67 vers huit sites pilotes. En juin, le système est disponible comme programme de Type III, statut réservé aux contributions d’employés IBM. Le succès dépasse toutes les attentes. D’anciens employés créent deux entreprises commerciales qui vendent des services de partage temporel basés sur la plateforme CP/CMS : National CSS et Interactive Data Corporation.
La polyvalence du concept de machine virtuelle séduit différentes communautés. Les développeurs de systèmes d’exploitation y trouvent un environnement de test sécurisé. Les utilisateurs finaux apprécient la coexistence de systèmes d’exploitation différents sur une même machine. Les centres informatiques exploitent cette capacité pour faciliter leurs migrations technologiques.
Août 1972 voit naître VM/370 dans le cadre des Advanced Functions du System/370. L’équipe de Burlington, enrichie de Dick Newson, Carl Young et Dave Tuttle, pousse plus loin l’innovation. VM/370 introduit la capacité d’exécuter VM sous lui-même, simplification considérable pour le développement et les tests.
La séparation entre gestion matérielle et services système structure encore nos hyperviseurs contemporains. L’interface matérielle comme frontière d’isolation est un paradigme central. Cette simulation transparente des ressources matérielles s’épanouit aujourd’hui dans le cloud computing.