Multics
En 1961, CTSS montre qu’un même ordinateur peut être utilisé simultanément par plusieurs personnes depuis des terminaux. Quelques années plus tard, les chercheurs du MIT veulent aller beaucoup plus loin : faire de l’ordinateur un service disponible en permanence, capable de conserver les fichiers de chacun, de partager des programmes et de protéger les utilisateurs les uns des autres.
Le projet est baptisé Multics (Multiplexed Information and Computing Service). Son nom résume son ambition : proposer un service informatique partagé, accessible simultanément à de nombreux utilisateurs.
Développé à partir de 1964 par le MIT, General Electric et les Bell Laboratories, il devient l’un des projets de système d’exploitation les plus ambitieux de son époque. Mémoire virtuelle, fichiers hiérarchiques, contrôle des accès, liaison dynamique ou encore shell : beaucoup de ses idées semblent étonnamment modernes.
1964 : après CTSS, une ambition beaucoup plus grande
L’origine de Multics est directement liée à l’expérience de CTSS. Ce dernier avait démontré que le temps partagé pouvait transformer la relation entre l’utilisateur et l’ordinateur. Il était désormais possible de travailler de manière interactive au lieu de préparer un travail sur cartes perforées puis d’attendre son exécution.
Avec Multics, Fernando Corbató et ses collègues veulent dépasser cette expérimentation. Leur objectif est de construire une véritable infrastructure informatique partagée. Ils utilisent notamment l’idée de computer utility : une ressource informatique que l’on pourrait utiliser à la demande, presque comme l’électricité ou le téléphone.
Le système doit pouvoir fonctionner en permanence, accueillir de nombreux utilisateurs, conserver leurs fichiers et leurs programmes et permettre le partage des ressources sans compromettre leur sécurité.
Le 30 novembre 1965, Multics est présenté publiquement lors du Fall Joint Computer Conference à travers une série coordonnée de six communications. Réunies sous le titre A New Remote-Accessed Man-Machine System, elles décrivent la vision générale du projet, le futur GE-645, le superviseur, le système de fichiers, les communications et même les conséquences sociales d’un accès généralisé à l’informatique. Le système est encore en développement, mais ses grandes orientations sont désormais publiques.
Multics en quelques caractéristiques
| Nom | Multics |
| Signification | Multiplexed Information and Computing Service |
| Début du projet | 1964 |
| Présentation publique | 30 novembre 1965 |
| Principaux partenaires | MIT, General Electric et Bell Laboratories |
| Responsable principal au MIT | Fernando Corbató |
| Première machine | GE-645 |
| Langage principal | PL/I |
| Type | Système d’exploitation multi-utilisateur en temps partagé |
| Mise en service au MIT | 1969 |
| Dernier site Multics arrêté | 2000 |
Le GE-645 : un ordinateur adapté à Multics
Multics demande au matériel des fonctions que les ordinateurs généralistes de l’époque ne possèdent pas toujours. General Electric adapte donc son GE-635 pour créer le GE-645, une machine 36 bits spécialement modifiée pour répondre aux besoins du nouveau système.
Le processeur doit notamment faciliter la gestion de la mémoire, le partage des ressources et la protection entre programmes. Multics illustre ainsi une évolution importante : le système d’exploitation et le matériel sont pensés ensemble, certaines fonctions logicielles nécessitant désormais un support direct du processeur.
Segmentation et pagination
Sur une machine partagée par plusieurs personnes, la mémoire devient un problème essentiel. Plusieurs programmes peuvent fonctionner en même temps alors que la quantité de mémoire physique reste limitée.
Multics combine deux mécanismes : la segmentation et la pagination.
La segmentation découpe les programmes et les données en grandes parties organisées selon leur fonction, appelées segments. Un segment peut par exemple contenir le code d’un programme, ses données ou une bibliothèque de fonctions.
Chaque segment est ensuite découpé en petits blocs appelés pages. Multics charge en mémoire uniquement les pages nécessaires à un moment donné et peut en retirer d’autres pour libérer de la place.

Le programmeur n’a donc plus besoin de savoir où les informations se trouvent physiquement dans la mémoire. Il manipule des segments organisés de manière logique, tandis que Multics se charge automatiquement de leur placement et de leurs déplacements entre la mémoire principale et le stockage.
Multics n’invente cependant ni la mémoire virtuelle ni la pagination. Des machines antérieures, notamment Atlas à l’université de Manchester, avaient déjà exploré ces principes. Son originalité vient surtout de leur intégration poussée dans un système multi-utilisateur conçu pour le partage et la protection des ressources.
Les fichiers forment une arborescence
Multics développe également une organisation des fichiers devenue familière aujourd’hui : une hiérarchie de répertoires.
Au lieu de connaître l’emplacement physique d’une information sur un disque, l’utilisateur manipule des noms et des chemins organisés dans une arborescence. Le système décide ensuite de la manière dont les données sont réellement stockées.
Cette abstraction facilite également le partage. Un utilisateur peut rendre certaines informations accessibles à d’autres tout en conservant le reste de ses données privées.
L’idée semble aujourd’hui évidente, mais elle contribue alors à transformer profondément la manière d’utiliser un ordinateur.
Des programmes chargés à la demande
Multics pousse très loin un autre concept : la liaison dynamique.
Un programme n’a pas besoin de contenir dès le départ toutes les procédures qu’il pourra utiliser. Lorsqu’il appelle une procédure située dans un autre segment, Multics peut rechercher ce segment et établir automatiquement le lien avec lui.
On peut résumer ainsi :
Programme
│
└── appelle une procédure
│
▼
Multics recherche
le segment correspondant
│
▼
liaison dynamique
Le programme peut ainsi utiliser des composants seulement lorsqu’ils deviennent nécessaires, au lieu de tout réunir avant son lancement.
Ce principe se retrouve aujourd’hui, sous des formes plus modernes, dans les bibliothèques partagées et le chargement dynamique de code.
Un système largement écrit en PL/I
Multics se distingue aussi par le langage utilisé pour son développement. À une époque où les systèmes d’exploitation sont encore très souvent programmés principalement en assembleur, une grande partie de Multics est écrite en PL/I.
Dans leur bilan publié en 1972, Fernando Corbató, Jerry Saltzer et Charles Clingen indiquent qu’environ 1 250 des quelque 1 500 modules du système sont alors écrits dans un langage de haut niveau.
L’assembleur reste nécessaire pour certaines fonctions étroitement liées au matériel ou particulièrement sensibles aux performances, mais ce choix montre qu’un système d’exploitation complexe peut être développé majoritairement dans un langage plus abstrait.
Quelques années plus tard, cette approche prendra une importance considérable avec la réécriture d’Unix dans le langage C.
Du RUNCOM de CTSS au shell de Multics
L’histoire de Multics contient également l’une des origines du mot shell.
Sous CTSS, l’ingénieur français Louis Pouzin avait développé RUNCOM, un programme permettant de placer plusieurs commandes dans un fichier puis de les exécuter automatiquement. Il pouvait notamment remplacer certains paramètres et automatiser des suites d’opérations.
Lors des travaux préparatoires de Multics, Pouzin propose un programme plus général chargé d’interpréter les commandes de l’utilisateur et utilise pour le désigner le terme shell. Le premier shell Multics est ensuite développé dans ce contexte.
Le shell d’Unix ne sera pas une simple copie de celui de Multics, mais le terme et le principe d’un programme servant d’intermédiaire entre l’utilisateur et le système se diffuseront largement avec Unix puis Linux.
La sécurité devient une question centrale
Lorsque plusieurs utilisateurs travaillent sur la même machine, le système doit empêcher un programme d’accéder librement aux données des autres ou aux fonctions sensibles de l’ordinateur. Cette philosophie contraste avec une partie de la culture hacker qui se développe alors au MIT, où l’on valorise au contraire un accès très libre aux machines et le partage de l’information. Multics introduit donc une idée qui deviendra centrale dans les systèmes modernes : partager un ordinateur ne signifie pas que tout doit être accessible à tout le monde.
La protection fait donc partie de la conception même de Multics. Le système utilise notamment des mécanismes permettant de déterminer quels utilisateurs peuvent lire, modifier ou exécuter certaines ressources.
Multics développe également le principe des anneaux de protection. Toutes les parties du système ne disposent pas du même niveau de privilège : les fonctions les plus sensibles sont isolées des programmes ordinaires.
Anneau intérieur
Fonctions les plus privilégiées
│
▼
Anneaux intermédiaires
│
▼
Programmes utilisateur
Privilèges plus limités
Il faut cependant éviter un raccourci historique : la forme matérielle complète des anneaux de protection n’est pas présente dès le Multics de 1965. Elle se développe progressivement et sera notamment intégrée au Honeywell 6180 au début des années 1970.
Un projet beaucoup plus difficile que prévu
L’ambition exceptionnelle de Multics devient aussi sa principale difficulté. Le projet accumule les problèmes de développement, les retards matériels et les problèmes de performances.
Lorsque les différentes parties du système commencent à fonctionner ensemble, les équipes découvrent que certaines solutions pourtant élégantes sur le papier se révèlent trop coûteuses ou trop complexes. Des mécanismes doivent être simplifiés et plusieurs parties du logiciel sont réorganisées.
En avril 1969, les Bell Laboratories décident finalement de quitter le projet.
Multics n’est pourtant pas abandonné. Le MIT et General Electric poursuivent son développement et, en 1969, il devient suffisamment stable pour être utilisé comme véritable service informatique au MIT.
1969 : Unix apparaît aux Bell Labs
Le retrait de Bell Labs produit indirectement l’une des conséquences les plus importantes de l’histoire des systèmes d’exploitation.
Plusieurs chercheurs de Bell Labs avaient participé ou avaient été exposés au projet Multics. Parmi eux se trouvent Ken Thompson et Dennis Ritchie.
En 1969, Thompson commence sur un PDP-7 le développement d’un nouveau système beaucoup plus petit. Celui-ci deviendra progressivement Unix.
Il serait cependant trompeur de présenter Unix comme une simple version simplifiée de Multics. Les deux systèmes suivent des philosophies différentes. Multics cherche à construire une infrastructure extrêmement complète ; Unix privilégiera progressivement une architecture beaucoup plus compacte et une combinaison de petits outils spécialisés.
L’expérience de Multics fait néanmoins partie du contexte intellectuel dans lequel Unix apparaît. On retrouve notamment des concepts familiers : environnement multi-utilisateur, organisation hiérarchique des fichiers, commandes interactives et utilisation d’un shell.
Multics ne disparaît pas avec Unix
L’apparition d’Unix ne met pas fin à Multics. En 1970, Honeywell reprend les activités informatiques de General Electric et poursuit le développement du système.
Multics devient alors un véritable produit commercial. De nouvelles machines sont conçues pour l’exécuter et le système est installé dans des universités, des centres de recherche, des administrations et certaines entreprises.
Son succès commercial reste limité par rapport aux grands systèmes IBM ou à la diffusion ultérieure d’Unix, mais Multics dépasse largement le statut de simple expérience universitaire.
Une histoire française souvent oubliée
La carrière de Multics concerne également la France.
À travers Honeywell puis Honeywell Bull et Bull, plusieurs systèmes Multics sont installés dans des organismes français au cours des années 1970 et 1980. On les retrouve dans des centres de recherche, des universités, des administrations et de grandes organisations.
La France devient ainsi l’un des pays dans lesquels Multics connaît une véritable utilisation opérationnelle. Cette dimension européenne est souvent absente des récits qui réduisent son histoire au MIT et aux Bell Laboratories.
2000 : le dernier Multics est arrêté
La durée de vie de Multics est remarquable. Le système dont la conception avait commencé en 1964 reste utilisé pendant plusieurs décennies.
Le dernier site Multics opérationnel connu, exploité par le ministère canadien de la Défense à Halifax, est arrêté le 30 octobre 2000.
En 2007, Bull autorise ensuite la diffusion du code source de la dernière version commerciale de Multics, permettant aux historiens et aux passionnés d’étudier directement le système et de le faire fonctionner sur des émulateurs.
