OS/8

OS/8 : le système d’exploitation du PDP-8 de DEC

Au milieu des années 1960, programmer un PDP-8 signifie encore souvent manipuler des rubans perforés, charger des programmes auxiliaires et travailler au plus près du matériel.
Quelques années plus tard, avec OS/8, l’utilisateur retrouve des fichiers nommés, un éditeur, un assembleur, des langages de programmation et une invite de commande. Le PDP-8 n’est plus seulement une machine sur laquelle on charge un programme : il devient un environnement dans lequel on travaille.
Cette évolution ne se produit pourtant pas brutalement avec OS/8. Elle commence avec les premiers moniteurs sur disque et DECtape, puis surtout avec PS/8 en 1970. Lorsque celui-ci devient OS/8 au début des années 1970, une grande partie des principes essentiels est déjà en place.

Avant OS/8 : programmer avec des rubans perforés

Le PDP-8, commercialisé par Digital Equipment Corporation à partir de 1965, est un ordinateur 12 bits remarquablement compact pour son époque. Mais les premières configurations disposent de très peu de mémoire et n’ont généralement aucun système d’exploitation comparable à ceux que nous connaissons aujourd’hui.

Pour introduire un programme dans la machine, l’utilisateur peut d’abord saisir le RIM Loader depuis le panneau frontal. Celui-ci permet ensuite de charger le BIN Loader, utilisé pour lire les programmes enregistrés sur ruban perforé.

Les outils eux-mêmes peuvent se présenter sous cette forme. Le Symbolic Editor de DEC, par exemple, permet de lire un programme source depuis un ruban, de le modifier en mémoire puis d’en perforer une nouvelle version.


DECtape et les disques changent la façon de travailler

L’arrivée de supports à accès direct comme le DECtape et les premiers disques modifie progressivement cette organisation.

DEC développe plusieurs systèmes appelés Monitor Systems. Ils permettent de conserver des programmes et des outils sur un support magnétique et d’enchaîner plus facilement édition, assemblage, chargement et exécution.

Mais ces systèmes restent encore limités. Chez DEC, une équipe va chercher à aller plus loin.


Richard Lary veut mettre l’expérience du PDP-10 sur une petite machine

L’un des principaux acteurs de cette évolution est Richard « Richie » Lary.

Avant de rejoindre DEC, il avait déjà travaillé avec un PDP-8 au Polytechnic Institute of Brooklyn. Les contraintes des rubans perforés l’avaient conduit à développer un petit moniteur permettant notamment de conserver des outils sur DECtape.

Chez Digital, Lary et ses collègues développent leurs logiciels sur un ordinateur beaucoup plus puissant : le PDP-10.

Le contraste est saisissant. Sur le PDP-10, le programmeur dispose d’un système de fichiers, d’outils de développement et d’un terminal interactif. Sur un petit PDP-8 autonome, le travail reste beaucoup plus rudimentaire.

Lary poursuit alors une idée simple : faire en sorte qu’un utilisateur installé devant son PDP-8 retrouve une expérience de travail ressemblant à celle d’un terminal connecté à une grosse machine en temps partagé.

Il veut notamment trois choses : un vrai système de fichiers, une manière standard de gérer différents périphériques et un environnement de commande interactif.


1970 : PS/8 pose les bases d’OS/8

Le résultat apparaît sous le nom de PS/8, pour Programming System/8.

Le manuel DEC publié en octobre 1970 décrit déjà un environnement étonnamment complet pour une machine de cette taille.

PS/8 comprend notamment :

  • un Keyboard Monitor pour dialoguer avec le système ;
  • un système de fichiers ;
  • l’éditeur EDIT ;
  • l’assembleur PAL8 ;
  • l’utilitaire de fichiers PIP ;
  • le chargeur ABSLDR ;
  • le débogueur ODT ;
  • des outils permettant d’utiliser FORTRAN.

Une grande partie de ce que l’on associera ensuite à OS/8 est donc déjà présente.

OS/8 ne surgit pas de nulle part : il constitue la continuation et la maturation de PS/8.


1971 : PS/8 devient OS/8

En 1971, PS/8 prend le nom d’OS/8.

Le changement de nom peut donner l’impression qu’un nouveau système d’exploitation vient d’être créé. Techniquement, la continuité est pourtant très forte.

Les manuels ultérieurs d’OS/8 reprennent la même architecture générale : Keyboard Monitor, fichiers, éditeur, assembleur, chargeurs, débogueur et pilotes de périphériques.

Selon Richard Lary et plusieurs témoignages issus de la communauté DEC, le changement de nom aurait également répondu à des considérations commerciales. Cette explication est plausible et largement reprise par les anciens de DEC, mais elle doit être considérée comme un témoignage historique plutôt que comme une décision documentée par une note interne connue.

L’essentiel est ailleurs : sous le nom OS/8, cet environnement devient l’un des logiciels emblématiques de la famille PDP-8.


Un système qui tient presque entièrement hors de la mémoire

OS/8 doit fonctionner sur des machines disposant de quantités de mémoire minuscules selon nos critères actuels.

PS/8 est conçu pour fonctionner à partir de 8 K mots de mémoire. Un mot du PDP-8 contient 12 bits.

La partie du système qui reste en permanence en mémoire n’occupe pourtant que 256 mots.

Ce chiffre ne signifie pas qu’OS/8 entier tient dans 256 mots. Au contraire : une grande partie du système reste sur le périphérique de stockage et n’est chargée que lorsqu’elle devient nécessaire.

Des composants comme les User Service Routines, le Keyboard Monitor ou le Command Decoder peuvent ainsi être amenés temporairement en mémoire, utilisés, puis laisser de nouveau la place au programme de l’utilisateur.

C’est une solution directement imposée par la rareté de la mémoire : le système doit fournir de nombreux services sans les conserver tous simultanément dans la machine.


Des fichiers au lieu de rouleaux de papier

L’un des changements les plus visibles est le système de fichiers.

Le programmeur peut désormais travailler avec des fichiers possédant un nom et une extension. Un source assembleur peut par exemple porter l’extension .PA, tandis qu’un programme sauvegardé peut utiliser .SV.

On passe progressivement de :

ruban source
→ éditeur
→ nouveau ruban
→ assembleur
→ ruban binaire
→ chargement

à une organisation beaucoup plus familière :

fichier source
→ édition
→ assemblage
→ exécution
→ correction

Pour le programmeur, le gain n’est pas simplement une question de vitesse. Il change complètement la manière de penser son travail.


OS/8 sépare le programme du périphérique physique

Une autre idée importante apparaît dès PS/8 et reste centrale dans OS/8 : l’indépendance vis-à-vis des périphériques.

Au lieu d’obliger chaque programme à connaître précisément le matériel utilisé, le système fournit des device handlers, c’est-à-dire des gestionnaires de périphériques.

L’utilisateur rencontre ainsi des noms comme :

  • SYS: pour le périphérique système ;
  • DTA0: ou DTA1: pour des unités DECtape ;
  • TTY: pour le télétype ;
  • PTR: pour le lecteur de ruban perforé ;
  • PTP: pour le perforateur.

Le programme peut travailler avec une interface connue sans devoir être réécrit pour chaque configuration matérielle.

Cette abstraction paraît aujourd’hui naturelle. Sur un PDP-8, elle représente une étape importante : le logiciel commence à masquer une partie de la complexité du matériel.


Le point : une petite invite qui change beaucoup de choses

Lorsque le Keyboard Monitor attend une commande, OS/8 affiche une invite particulièrement minimaliste :

.

Depuis cette invite, l’utilisateur peut lancer un programme, manipuler des fichiers ou appeler un outil de développement.

Les versions d’OS/8 proposent notamment des commandes comme RUN, GET, SAVE, START ou ASSIGN.

Ce simple dialogue au télétype rapproche le PDP-8 d’une manière d’utiliser l’ordinateur devenue familière : on se trouve devant un environnement persistant et l’on demande au système d’exécuter les tâches souhaitées.


Un véritable atelier de programmation

OS/8 n’est pas seulement chargé d’amorcer la machine. Il fournit un ensemble cohérent d’outils permettant de développer des programmes.

Le programmeur peut écrire son source avec EDIT, l’assembler avec PAL8, le charger, le tester avec ODT, puis revenir à l’éditeur.

Des environnements et langages comme BASIC et FORTRAN complètent progressivement cet ensemble.

La véritable nouveauté réside donc dans le cycle de travail :

écrire → enregistrer → assembler ou compiler → exécuter → corriger

Tout cela peut désormais être réalisé sur la même machine et autour du même système de fichiers.


Quand 129 mots peuvent devenir un problème

Les contraintes du PDP-8 influencent jusque dans la manière dont OS/8 est programmé.

L’architecture du processeur organise notamment l’adressage en pages de 128 mots. Une routine qui tient dans une seule page est donc beaucoup plus simple à manipuler qu’une routine qui doit accéder à une autre page.

Richard Lary raconte que lorsqu’un module dépassait légèrement cette limite — par exemple 132 mots — plusieurs programmeurs pouvaient reprendre successivement le code afin de le ramener à 128 mots.

Cette contrainte encourage naturellement la création de petites routines indépendantes.

Ce que nous appellerions aujourd’hui une certaine forme de modularité naît ici autant de la nécessité que d’un principe théorique de génie logiciel.


OS/8 est-il vraiment un système d’exploitation ?

Le nom peut être trompeur si on le compare directement à Unix, Windows ou Linux.

OS/8 est essentiellement un environnement mono-utilisateur. Il n’a pas vocation à partager simultanément le processeur entre plusieurs utilisateurs et il ne propose pas le modèle de processus que l’on associe aux systèmes d’exploitation modernes.

Richard Lary lui-même le décrira rétrospectivement davantage comme un système de développement de programmes que comme un système d’exploitation complet.

Sur les PDP-8, d’autres systèmes répondent à d’autres besoins. TSS/8, par exemple, est conçu pour le temps partagé et plusieurs utilisateurs.

L’importance d’OS/8 se situe ailleurs : il fournit à un utilisateur unique un environnement stable permettant de conserver ses fichiers, lancer ses programmes et utiliser ses outils sans repartir de zéro à chaque opération.


OS/8 accompagne une nouvelle génération de PDP-8

L’apparition d’OS/8 coïncide avec une évolution importante de la famille PDP-8.

Le PDP-8/E, livré à partir de 1971, utilise le bus OMNIBUS et rend la machine plus facilement extensible. Les systèmes à disque, notamment autour des unités RK, offrent davantage de capacité et de rapidité que les configurations reposant uniquement sur ruban.

Matériel et logiciel évoluent donc ensemble.

Avec un PDP-8 correctement équipé, l’utilisateur dispose désormais d’un petit système de développement autonome qui aurait été difficilement imaginable sur les premières configurations de 1965.


OS/8 survit au PDP-8 classique

OS/8 continue d’évoluer pendant les années 1970.

Les versions ultérieures ajoutent ou améliorent des outils comme BASIC, TECO, BATCH, FORTRAN IV ou le Concise Command Language.

Le système accompagne également les évolutions matérielles de la famille 12 bits. À la fin des années 1970 apparaissent notamment OS/78, destiné au VT78, puis des variantes adaptées aux machines qui prolongent l’architecture du PDP-8.

En 1979 et 1980, alors que le PDP-11 et le VAX occupent déjà une place majeure chez DEC, les groupes d’utilisateurs continuent encore d’échanger logiciels, périphériques et informations autour d’OS/8.

La longévité du système reflète celle de l’architecture PDP-8 elle-même.


Pourquoi OS/8 compte dans l’histoire de l’informatique

OS/8 n’a pas inventé le système de fichiers, l’invite de commande ou l’indépendance vis-à-vis des périphériques. Les grands ordinateurs et les systèmes en temps partagé disposaient déjà de concepts beaucoup plus avancés.

Son intérêt historique est différent.

Avec PS/8 puis OS/8, DEC parvient à apporter une partie de cette manière de travailler sur un petit ordinateur autonome disposant de seulement quelques milliers de mots de mémoire.

Le contraste avec les premiers PDP-8 est considérable. En quelques années, on passe d’une machine où l’utilisateur peut encore devoir saisir un bootstrap au panneau frontal et manipuler des rubans perforés à un environnement dans lequel il ouvre des fichiers, lance un éditeur, assemble un programme et le sauvegarde sur disque ou DECtape.

OS/8 raconte donc une évolution plus générale de l’informatique : la machine devient progressivement moins visible derrière les services fournis par le logiciel.

C’est peut-être là son apport le plus important.


Repères chronologiques

  • 1965 : commercialisation du PDP-8.
  • Années 1960 : loaders, outils sur ruban perforé et premiers systèmes Monitor accompagnent la famille PDP-8.
  • 1970 : DEC publie le guide utilisateur de PS/8, déjà organisé autour d’un système de fichiers et d’outils de développement.
  • 1971 : PS/8 évolue sous le nom OS/8 ; le PDP-8/E commence également à être livré.
  • 1973 : DEC publie le OS/8 System Reference Manual.
  • 1974 : publication du volumineux OS/8 Handbook.
  • Fin des années 1970 : OS/8 continue d’évoluer et donne naissance à des variantes comme OS/78.

Sources et documentation

  • Digital Equipment Corporation, PS/8 8K Programming System User’s Guide, octobre 1970.
  • Digital Equipment Corporation, OS/8 System Reference Manual, octobre 1973.
  • Digital Equipment Corporation, OS/8 Handbook, avril 1974.
  • Digital Equipment Corporation, OS/8 Software Support Manual, 1974.
  • Computer History Museum, entretien avec Richard « Richie » Lary, 2015.
  • DECUS 12-Bit Special Interest Group, bulletins consacrés à l’histoire et à l’évolution des logiciels PDP-8.

Publications similaires

  • TOPS-10

    TOPS-10, pour Timesharing / Total Operating System-10, est le principal système d’exploitation développé par Digital Equipment Corporation (DEC) pour ses grands ordinateurs 36 bits de la famille PDP-10, puis DECsystem-10. Issu d’un système plus ancien conçu pour le PDP-6, il devient l’un des environnements emblématiques de l’informatique en temps partagé des années 1960 et 1970….