<<

Cahiers d’histoire du Cnam vol. 7-8

Dossier La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II Coordonné par Camille Paloque-Berges et Loïc Petitgirard

2017 / Second semestre (nouvelle série)

Cahiers d’histoire du Cnam vol. 7-8

Dossier La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II Coordonné par Camille Paloque-Berges et Loïc Petitgirard

2017 / Second semestre (nouvelle série) Cahiers d’histoire du Cnam. Vol. 7-8, 2017 / 2 (nouvelle série). Dossier « La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II », coordonné par Camille Paloque-Berges et Loïc Petitgirard.

Direction de la publication Olivier Faron, administrateur général du Conservatoire national des arts et métiers Rédacteur en chef Loïc Petitgirard Comité de rédaction Marco Bertilorenzi, Soraya Boudia, Jean-Claude Bouly, Serge Chambaud, Lise Cloitre, Renaud d’Enfert, Claudine Fontanon, Virginie Fonteneau, Clotilde Ferroud, André Grelon, Alain Michel, Cédric Neumann, Loïc Petitgirard, Catherine Radtka, Laurent Rollet, Raphaëlle Renard-Foultier, Ferrucio Ricciardi, Jean-Claude Ruano-Borbalan, Henri Zimnovitch Comité de lecture du numéro Isabelle Astic, Michel Élie, Gérard Florin, Sacha Krakowiak, Sylvain Lenfle, Baptiste Mélès, Pierre-Éric Mounier-Kuhn, Philippe Picard, Benoit Sarazin, Valérie Schafer, Benjamin Thierry Un comité de lecture ad hoc est constitué à chaque numéro. La liste complète des lecteurs est publiée sur la page Web de la revue : http://technique-societe.cnam.fr/les-cahiers-d-histoire-du-cnam-696687.kjsp Secrétariat de rédaction Camille Paloque-Berges, assistée de Sofia Foughali Laboratoire HT2S-Cnam, Case 1LAB10, 2 rue Conté, 75 003 Paris Téléphone : 0033 (0)1 40 27 22 74 Mél : camille. [email protected] sofia. [email protected] Maquettage Françoise Derenne, sur un gabarit original créé par la Direction de la Communication du Cnam Impression Service de la reprographie du Cnam Crédits, mentions juridiques et dépôt légal : ©Cnam ISSN 1240-2745

Illustrations photographiques : Archives du Cnam ou tous droits réservés Fondateurs (première série, 1992) Claudine Fontanon, André Grelon Ce double volume a été réalisé grâce au soutien du Laboratoire d'Excellence HASTEC

Les 5 premiers numéros de l’ancienne série (1992-1996) sont disponibles intégralement sur le site Web du Conservatoire numérique du Cnam : http://cnum.cnam.fr Sommaire

Dossier La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II ...... 7

Introduction au second volume Éléments d’histoire des systèmes d’exploitation des années 1960 aux années 1990 Camille Paloque-Berges et Loïc Petitgirard...... 9 Qu'est-ce qu'un système d'exploitation ? Une approche historique Marteen Bullynck...... 19 La Saga des machines-langage et -système François Anceau...... 41 Émergence des systèmes d’exploitation comme discipline Claude Kaiser ...... 53 The History of in the History of Software Thomas Haigh...... 77 Unix : construire un environnement de développement de A à Z Warren Toomey...... 91 Unix: A View from the Field as We Played the Game Clement T. Cole...... 111 La conversion à Unix Un exemple de prophétisme informatique ? Laurent Bloch...... 129 Unix vu de province : 1982-1992 Jacques Talbot...... 145 Unix et les systèmes ouverts dans Bull, avant l’Internet Michel Élie et Philippe Picard...... 163

Dossier

La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II

Coordonné par Camille Paloque-Berges et Loïc Petitgirard

9

Introduction Éléments d’histoire des systèmes d’exploitation des années 1960 aux années 1990

Camille Paloque-Berges HT2S, Cnam. Loïc Petitgirard HT2S, Cnam.

Ce deuxième volume du double information-communication, informa- numéro consacré à la recherche sur les tique) pour réfléchir à la formation et à systèmes comme pivots dans l’histoire la légitimation institutionnelle de la disci- de l’informatique est le fruit de réflexions pline informatique ainsi qu’à la documen- développées lors de deux colloques orga- tation de son histoire. Ce numéro élargit nisés conjointement : par l’équipe du la perspective après une première focali- séminaire « Histoire de l’informatique et sation sur le cas du Conservatoire national du numérique » qui se déroule au Musée des arts et métiers. Ces travaux ont illus- des arts et métiers depuis de nombreuses tré la montée en recherche, à partir des années, avec pour focalisation les objets, années 1970, d’acteurs de l’informatique les périodes, et les lieux institutionnels au Cnam ayant accompagné le projet et industriels de l’histoire de l’informa- scientifique de la création du laboratoire tique, en particulier en France, et à partir le Centre d’Études et de Recherches en du point de vue privilégié des acteurs Informatique du Cnam (Cédric) à la fin techniques de cette histoire ; et par celle des années 19801. du programme « Hist.Pat.info.Cnam », qui a regroupé entre 2014 et 2017 sous L’histoire des systèmes d’exploi- l’égide du LabEx Histoire, Anthropologie­ tation est à la fois une problématique des Savoirs, Techniques et Croyances déjà posée et un terrain en friche au sein (HASTEC) des chercheurs interdiscipli- naires de plusieurs laboratoires (histoire, 1 Voir le premier volume de ce double numéro. de l’historiographie de l’informatique. sur ce moment de transition, il propose Celle-ci ne limite pas ses réflexions à également une réflexion sur l’évolution l’histoire des machines mais s’intéresse de la notion et celle du domaine des à l’évolution des concepts, processus systèmes en informatique en général. et applications logicielles ainsi qu’aux Par exemple, les systèmes de bases de pratiques, manières de faire, circula- données étaient, à leurs débuts, souvent tion et diffusion des savoirs vers les considérés comme des éléments des usages. Cette histoire se penche sur les systèmes d’exploitation, avant d’être logiciels (software), dont l’importance définitivement placés dans la catégorie est croissante depuis quinze ans pour « applications », catégorie à part entière. les historiens dès lors qu’ils sont plei­ nement considérés comme un artefact Durant les deux décennies pré- non seulement technique, mais aussi in- cédentes, la recherche sur les grands dustriel, commercial, voire culturel, re- systèmes a fait émerger d’abord des posant sur des efforts de développement « systèmes de contrôle », avec une considérables (Hashagen, 2002 ; Camp- grande variété d’implémentations chez bell-Kelly, 2003). En ce sens, toute la les constructeurs. Le texte de M. Bul- problématique du logiciel, de l’organi- lynck propose une synthèse de ces sation des communautés de pratiques développements sur la période 1954- jusqu’à la question de la brevetabilité du 1964, qui préparent les systèmes ulté- logiciel, traverse l’histoire des systèmes rieurs, leur dissémination et ce qui d’exploitation. bientôt s’appellera operating systems. De manière complémentaire, . Kaiser, Mais l’histoire des systèmes ne ancien professeur titulaire de la chaire saurait se dissoudre dans l’histoire gé- « Informatique-programmation » au nérale du logiciel, en ceci qu’elle suit Cnam2, offre le point de vue d’un acteur une dynamique qui lui est propre. De de cette histoire des systèmes, et montre fait, le système d’exploitation est un dans son texte le contexte technique, artefact central de la machine qui orga- industriel et académique dans lequel la nise et distribue les processus, alloue un question des systèmes d’exploitation temps et un espace à l’utilisateur pour devient une discipline à part entière à la ses opérations, assure l’interface entre fin des années 1960. l’humain et la machine. Les années 1970 sont une décennie d’accélération dans la Tirant parti des expériences des recherche et le développement de sys- années 1960, les mini-ordinateurs seront tèmes d’exploitation, transition entre les grands systèmes et mini-ordinateurs, 2 Claude Kaiser est un personnage central de l’histoire d’usages industriel et scientifique, et la racontée dans le premier volume de ce double numéro, auquel nous renvoyons, ainsi qu’à un entretien publié micro-informatique, d’usage général. Si dans la revue TSI (Neumann, Petitgirard, Paloque- ce numéro se concentre essentiellement Berges, 2016).

10 11 associés aux systèmes dits répartis, qui systèmes » intégrant des mécanismes de permettent de gérer des processus multi- systèmes dans leur matériel. utilisateurs en temps réel. L’ordinateur n’est plus un grand système qui n’est L’histoire des systèmes d’exploita- manipulable que par des utilisateurs très tion se matérialise dans les espaces de la spécialisés, les opérateurs, mais ras- recherche en informatique dans les labo- semble autour de lui une équipe de spé- ratoires scientifiques des universités et cialistes aux compétences diversifiées. des entreprises. Au-delà de ses espaces Dans les années 1970, les laboratoires de conception et de développement, le de R&D s’équipent systématiquement système d’exploitation s’ancre dans des de nouvelles machines mini-informa- « lieux cruciaux » (Mounier-Kuhn, 2010) tiques moins onéreuses, plus puissantes, où il est implémenté, expérimenté, mis en plus flexibles aussi bien pour des opéra- œuvre et approprié à l’aune d’usages et de tions de calcul scientifique, de program- besoins locaux en dialogue avec la circu- mation d’applications, que des usages lation transnationale des savoirs et savoir- plus généraux de traitement et transfert faire du domaine. Comme illustré dans le de données. premier volume de ce double numéro, le « Laboratoire d’informatique », centre de Le développement de langages de calcul du Cnam, rattaché en 1968 au dé- programmation (pour les systèmes et les partement Mathématiques-Informatique applications) joue un rôle déterminant créé dans l’établissement la même année, dans ces avancées, permettant de tra- est un de ces lieux. Point de rencontre et vailler à « haut niveau » sur la machine, d’expérimentation des membres fonda- c’est-à-dire à travers des langages sym- teurs du projet de recherche qui mènera boliques plus proches du langage naturel, à la création du laboratoire Cédric, il et non plus « à bas niveau » avec une pro- est aussi un point de conflit entre diffé- grammation par câblages ou par langage- rents services se disputant le recours aux machine, proches du codage binaire. Ces machines pour des usages pédagogiques, développements génèreront également scientifiques et administratifs. L’acqui- des expériences originales de machines sition et l’utilisation des machines et de informatiques cherchant à déplacer la leurs systèmes, il est vrai, fournissent la frontière entre matériel et logiciel au trame d’une histoire non pas seulement profit du matériel, espérant gagner en des techniques mais aussi des usages. performances. Dans ce dossier, un autre Fondé à l’origine sous le nom de « Labo- acteur et professeur au Cnam (ancien ratoire de calcul numérique », ce centre titulaire de la chaire de Physique des abrite d’abord des machines « sans sys- composants­ électroniques), F. Anceau, tèmes », les machines mécanographiques décrit précisément l’histoire des « ma- à cartes perforées du constructeur fran- chines-langages » (exécutant directement çais Bull, qui sont en priorité utilisées du langage évolué) et des « machines- par les élèves-ingénieurs de la chaire de Moteurs et font du calcul pour les dif- département Mathématiques-Informa- férents laboratoires3. Le premier calcu- tique. Les langages de programmation lateur électronique est équipé en 1963, deviennent un objet et un outil d’ensei- fonctionnant sur bandes perforées, à la gnement avec, dès le début de la dé- faveur d’un élargissement des fonctions cennie suivante, les travaux du groupe et des ambitions de ce « laboratoire de d’enseignement du CREEM (Centre de calcul » : il abrite alors des activités de Recherche et d’Expérimentation­ pour traitement de la paie de l’établissement, l’Enseignement des Mathématiques) ; et est mis à disposition d’enseignements ce dernier s’installe sur le 360/30 avec scientifiques, alors qu’est créé le cours de lequel le dialogue s’établit via des « Machines Mathématiques », chaire sur consoles alpha-numériques (IBM-241) laquelle sera élu Paul Namian en 1966. ainsi que sur une machine pédagogique L’emblématique ordinateur IBM 360/30 dédiée à l’enseignement par interface est installé dès 1968, consacrant l’arrivée interactive, la MITSI-2003 (Monitrice des machines à systèmes au Cnam – et d’Instruction Technique et Scientifique). l’on commence à parler de « salle ordina- Une deuxième salle des ordinateurs est teur ». La machine continue à traiter les installée en 1973 qui systématise l’usage données à partir de cartes perforées mais des mini-ordinateurs pour le traitement elle est à présent pourvue de mémoire des travaux, notamment à travers des et de périphériques (non seulement les réseaux locaux (liaisons des machines imprimantes, mais aussi des disques et avec des télétypes) et à distance (télé- bandes magnétiques). Le laboratoire traitement avec le grand Centre de calcul d’informatique, son nom à partir de d’Orsay, le CIRCÉ). Au même moment, 1969, resserre alors ses fonctions autour un ordinateur Modular One va permettre d’un service à l’usage prioritaire des in- de faire des expérimentations plus pous- formaticiens, actant le rattachement au sées de transferts de données en réseau entre des machines hétérogènes. La fin de la décennie voit arriver une nouvelle 3 La liste de machines citées ici a été largement génération de mini-ordinateurs qui vont documentée, et commentée par Daniel Lippmann sur accélérer l’usage d’ordinateurs à sys- une page web aujourd’hui disparue [URL d’origine : http///ww2.cnam.fr/smdc/indexlabo.html]. Une copie tèmes innovants, flexibles, répondant aux du site a été conservée par les auteurs. Nous lui sommes usages spécialisés d’une diversité d’utili- redevable d’un travail d’archives pionnier sur l’informatique au Cnam et tenons à le remercier ici. sateurs. En 1979, le laboratoire acquiert Cette rapide histoire des machines et systèmes du la machine PDP-11/70 du constructeur Laboratoire d’informatique du Cnam est à mettre en américain Digital Equipement (DEC), perspective avec au moins deux textes publiés dans le premier volume de ce double numéro : l’entretien avec non sans difficultés à un moment où la po- Gérard Florin, sous-directeur du Laboratoire litique protectionniste du gouvernement d’informatique entre 1974-1975 et 1984-1985 ; et l’article français en matière d’équipement infor- de Paloque-Berges et Petitgirard, « L’Équipe Systèmes (1975-1980) et la genèse de la recherche en informatique matique est encore en vigueur au crépus- au Cnam ». cule du Plan Calcul. Ce mini-ordinateur,

12 13 mythique dans l’histoire des systèmes et et Aspray, 1996). Mais la faveur donnée des réseaux est officiellement dédié à une à certaines machines est aussi le fait de cellule informatique de gestion, pour le choix spécifiques d’utilisateurs liés aux traitement de la paie et autres tâches de engagements et croyances des informa- l’administration centrale, mais est utilisé ticiens dans des cultures techniques et en perruque la nuit par les informaticiens scientifiques données, définies par des du Cnam pour leurs propres expérimenta- équipements et des styles de programma- tions. Alors que les « vieilles » machines, tion. La question des croyances idéolo- comme le Modular One et le IBM 360/30 giques autour de l’usage scientifique des sont abandonnées, des machines inno- machines est également en dialogue avec vantes et à la réputation internationale des problématiques épistémologiques : comme le PDP font leur apparition, en il n’est pas anodin que l’expression de particulier un autre ordinateur de DEC, « machines mathématiques » soit défini- le VAX-11/780. Équipés de terminaux tivement abandonnée en France dans le vidéo, elles permettent d’achever et de cours des années 1970, pour le terme de pérenniser les premières dynamiques « systèmes informatiques ». d’utilisation interactive des machines par les utilisateurs spécialisés. Le PDP et le Ces interrogations nous ont amenés VAX sont deux machines fondamen- à nous pencher sur un système symbo- tales dans la montée en recherche des lique de ces transformations techniques, informaticiens du Cnam, car elles sont scientifiques, politiques et culturelles de précisément celles sur lesquelles les pro- l’informatique dans les années 1970, le blématiques des systèmes pourront être système Unix, auquel une grande partie enseignées, traitées et expérimentées. de ce numéro est consacrée4. Unix est his-

Les machines, dans cette histoire, 4 On constatera que la graphie du terme varie au gré sont comme nous l’avons dit une des des articles : nous respectons le choix des auteurs en la matière, car il fait signe également vers l’histoire du trames de lecture possible d’une histoire nom du système. En minuscules, il désigne le système de l’informatique qui s’intéresse aux tel que conçu à l’origine par Ken Thompson et Dennis systèmes et applications logicielles tout Ritchie, et nommé par Brian Kernighan (d’abord sous la forme d’Unics) en référence au système sur lequel autant qu’aux acteurs humains et ins- ils travaillaient auparavant, Multics (genèse discutée titutionnels. En effet, privilégier tel ou dans plusieurs des articles du dossier, dont ceux de Warren Toomey et Thomas Haigh). Déposé comme tel équipement se fait dans le cadre de marque par AT&T (voir notamment l’article de Clement contraintes fortes sur le plan de politiques Cole qui évoque la question des contraintes juridiques européennes économiques en matière de et commerciales imposées au système par AT&T), il prend alors des majuscules, et il est souvent cité dans sciences et technologies, en dialogue la littérature des années 1980 avec sa mention et/ou en opposition avec la domination commerciale, UNIXtm, à la fois pour se protéger de industrielle américaine symbolisée par poursuites de l’entreprise et pour s’en moquer, alors que le système a été largement adopté par les milieux IBM (voir entre autres Paju et Haigh, de la programmation système, et a durablement influencé 2015 ; Cortada, 2002 ; Campbell-Kelly les communautés de logiciels libre et open source. toriquement associé aux développements tions Sun de micro-informatique avant et à la promotion de la recherche sur les de devenir plus largement compatible systèmes ouverts et les réseaux informa- avec le parc informatique, a été encou- tiques. Il se déploie dans cette décennie et ragé par ses qualités de système ouvert, la suivante à la croisée des mondes indus- multi-utilisateurs et multitâche favori- triel et académique. sant l’expérimentation logicielle. Dans ce dossier, C. Cole, un informaticien qui Unix est né en 1969 au sein des Bell a participé aux développements d’Unix Labs, laboratoire de R&D du géant des aux États-Unis depuis les années 1980, télécoms américain AT&T. Nous avons souligne à quel point ces caractéristiques traduit le texte de W. Toomey consacré à ont été décisives pour que s’organise une la genèse du système Unix (« de A à Z ») communauté Unix, qui a permis la proli- dans ce contexte, et les efforts récents en fération du système face aux efforts des archéologie logicielle pour retrouver les industriels de l’informatique d’imposer premières versions d’Unix sur la célèbre leurs systèmes propriétaires. machine DEC, le PDP-7. Focalisé­ sur l’implémentation pas à pas du système, Dans le contexte européen, en par- le texte circonstancie au mieux les re- ticulier en France, cette innovation amé- cherches de Ken Thompson et Dennis ricaine a été non seulement adoptée, Ritchie, ses concepteurs. Au-delà de mais aussi transposée et adaptée. Notre sa conception, c’est la circulation et dossier donne une place aux développe- l’évolution du système qui font date. Le ments orchestrés au sein du groupe Bull, système ne peut pas être commercialisé dans les années 1980 et au début de la par l’entreprise suite à un décret anti- décennie suivante. M. Élie et P. Picard, trust datant de 1956. Il est donc diffusé deux ingénieurs ayant fait une partie de dans les universités contre un faible coût leur carrière chez Bull et dans le domaine de distribution et de licence. Une équipe des systèmes ouverts, montrent dans d’informaticiens de Berkeley spéciali- quelles circonstances Bull est sorti de sés dans le logiciel et les systèmes s’en son schéma de systèmes propriétaires, empare (Berkeley Software Develop- pour élaborer une gamme de machines ment – ou BSD), initiant une suite de ver- Unix. De son côté J. Talbot retrace cette sions dont l’appropriation dans le milieu histoire du point de vue du groupe d’in- académique international fera date et formaticiens de Bull en charge des déve- constituera une étape fondamentale de loppements Unix à Grenoble entre 1982 la construction d’une culture des logi- et 1992 : ingénieur informaticien, il a été ciels « ouverts », partageant et modifiant membre actif de ce groupe et montre dans collectivement le code source des pro- son texte l’articulation entre ce contexte grammes informatiques (Kelty, 2008). local, la stratégie nationale d’ensemble Le succès d’Unix, d’abord implémenté du groupe Bull et les efforts de dévelop- sur les mini-ordinateurs, puis sur les sta- pement d’Unix à l’échelle internationale.

14 15

Dans les années 1970, alors que l’in- concernant les systèmes ouverts (normes formatique se diversifie et devient plus et standards) ; (3) au niveau des rela- accessible, émergent des communautés tions internationales voire géopolitiques d’intérêts et de pratiques nationales et et géostratégiques (relations entre utili- internationales relativement indépen- sateurs d’Unix et constructeurs d’ordi- dantes des constructeurs industriels ou nateurs en Europe et à l’international, des établissements où les acteurs tra- rôle des embargos américains dans la vaillent. Parmi eux, les groupes d’utilisa- diffusion du système et des machines qui teurs d’Unix, réseau international. Dans le supportent...). Ce jeu d’échelles est à le même article de C. Cole on en trou- replacer au sein de la diffusion phéno- vera d’ailleurs une illustration à travers ménale du système à travers les milieux la naissance et l’activité de l’association scientifiques et de la R&D. Les groupes Usenix. En proposant une contextuali- et clubs d’utilisateurs ont joué un rôle sation de l’apparition d’Unix selon une crucial dans l’émergence du dévelop- perspective nouvelle, T. Haigh en revient pement collaboratif autour de logiciels au rôle des pratiques et communautés du (Mounier-Kuhn, 2010 ; Haigh, 2002), développement du logiciel en amont des en tant que regroupements d’utilisateurs réseaux associatifs autour d’Unix : à la professionnels spécialisés dans un type fois en montrant que le courant de l’open de matériel ou de logiciel initiés par les source a en réalité une longue histoire constructeurs qui souhaitent former les dans le monde industriel (remontant aux ingénieurs et techniciens à l’utilisation efforts de structuration de la communau- d’une machine spécifique, et s’étant peu té SHARE au sein d’IBM notamment) ; à peu autonomisés de ces constructeurs. et en pointant que le développement En ceci, le rôle des utilisateurs spécia- para-académique (ou quasi-académique) listes, les développeurs et ingénieurs d’Unix est assez représentatif des pra- systèmes en particulier, a été détermi- tiques de développement logiciel des nant. Ils sont non seulement pionniers en années 1970, qui ont tenté, toujours selon matière de conception, expérimentation, la même ligne historique, de mettre en et développement, mais aussi ouvriers de commun des routines et des programmes la structuration d’un milieu de collabo- si laborieux à élaborer. ration par des tâches moins nobles mais tout aussi importantes dans le processus L’histoire d’Unix s’interroge ainsi d’innovation : l’implémentation, l’adap- à plusieurs échelles : (1) l’innovation, les tation, la mise à jour, la maintenance, la milieux et les pratiques innovantes des sécurisation, la réparation des matériels laboratoires de recherche et de dévelop- et logiciels formant un parc d’équipe- pement dans les universités et des entre- ment informatique international. prises ayant participé au développement ou à la diffusion d’Unix ; (2) celle des C’est sur quelques réflexions sur orientations scientifiques et politiques l’émergence et la consolidation d’un esprit Unix, compris comme l’une des Enfin, comme le montre le texte de L. expressions historiques d’une culture Bloch dans ce numéro, il faut insister technique construite autour des systèmes sur le poids des croyances, en interaction informatiques, que nous conclurons. Les avec les choix scientifiques et préférences réseaux d’informaticiens utilisateurs technologiques, dans la constitution de d’Unix, d’ailleurs présents au Cnam au la communauté unixienne. Observateur sein du laboratoire d’informatique, fé- et analyste des évolutions de l’informa- dèrent des solidarités socio-profession- tique, L. Bloch a été ingénieur système nelles qui ne sont pas tout à fait alignées et réseau, notamment au Cnam, à l’Insee avec les politiques de développement et à l’Institut ­Pasteur, et a participé aux scientifique et technique traditionnelles premières années d’Internet en France au des pays industrialisés – voire qui reven- tournant des années 1990. Il propose une diquent leur indépendance face à ces lecture des logiques d’appartenance, de fi- politiques, leur préférant des réseaux de délité, pointant une forme de prophétisme solidarité technique transnationaux. Or, informatique dans le développement ces réseaux se construisent et se déve- d’Unix. On retrouve ici une analogie loppent notamment à partir de références religieuse, qui fait écho à bien d’autres croisées qui peuvent être d’ordre idéo- phénomènes quasi-cultuels traversant logique, culturel, aussi bien que scienti- l’histoire des sciences et techniques. fique et technique. Se façonne alors un ethos de la communauté réunie autour d’Unix que les acteurs mêmes nomment La popularité d’Unix dans l’his- « philosophie Unix », dont les référents toire de l’informatique suppose l’appro- culturels relèvent d’un style de program- priation et la construction d’une culture mation (formulé en termes techniques et Unix non seulement consolidée préco- esthétiques) aussi bien que d’une éthique cement mais perdurant aussi jusqu’à revendiquée dans le rapport à l’informa- aujourd’hui. La mémoire des utilisateurs tique (autonomie, ouverture…) matériali- Unix est vive, portée très tôt par des en- sée dans les pratiques et choix techniques quêtes journalistiques dans les milieux de des utilisateurs. Il faut préciser aussi que la la recherche et du développement (Salus, diffusion d’Unix est souvent décrite dans 1994), ainsi qu’une pratique de sauve- une logique d’adoption, parfois d’appro- garde patrimoniale avancée (Toomey, priation, mais plus rarement à l’aune des 2010). L’héritage d’Unix est constitué non résistances que le système a pu rencon- seulement de la longue série de versions trer pour des raisons de limitations tech- et d’applications dérivées du système, niques ou de contraintes économiques et jusqu’aux systèmes mobiles Android politiques en matière d’équipement tech- aujourd’hui ; mais aussi de la mémoire nologique ; les textes sur la place d’Unix de ses développements, toujours discutée au sein de Bull dans ce volume laissent aujourd’hui dans les forums de spécia- entrevoir certaines de ces contraintes. listes, et objets de travaux de reconstitu-

16 17 tion5. Au final, bien qu’encore peu en tant Bibliographie que tel couvert par les études de sciences humaines et sociales, le système Unix Campbell-Kelly M. (2003). From airline reservations to Sonic the Hedgehog: a history of est un référent important dans l’histoire the software industry. Cambridge, Mass. : MIT de l’informatique, en particulier dans le Press. champ des logiciels libres (Kelty, 2008) et des réseaux (Paloque-Berges, 2017), ainsi Campbell-Kelly M., Aspray W. (1996). : A History of the Information que dans la philosophie des langages et Machine. New York : Basic Books. des temps de la programmation (Mélès, 2013, 2017). Cortada, J. W. (2002). « IBM Branch Offices: What They Were, How They Worked, 1920s-1980s ». IEEE Annals of the History of 39.3, pp. 9-23.

Hashagen U., Keil-Slawik R. & Norberg A. L. (eds.) (2002). History of computing: software issues. International conference of the history of computing (Actes de colloque de ICHC 2000, April 5-7, 2000, Heinz Nixdorf MuseumsForum, Paderborn, Germany). Berlin : Springer-Verlag.

Haigh T. (2002). « Software in the 1960s as Concept, Service, and Product ». IEEE Annals of the History of Computing 24.1, 2002, pp. 5-13.

Kelty C. M. (2008). Two Bits: The Cultu- ral Significance of . Durham : Duke University Press Books.

Mélès B. (2013). « Unix selon l’ordre des raisons : la philosophie de la pratique informatique ». Philosophia Scientiæ 17 (3), pp. 181-198.

Mélès B. (2017). « Temps et activités selon Unix ». Réseaux 206/6, pp. 125-153.

Mounier-Kuhn P.-É. (2010). « Les clubs d’utilisateurs : entre syndicats de clients, outils marketing et ‘logiciel libre’avant la lettre ». En- 5 L’association The Unix Heritage Society, dirigée par treprises et histoire 3, 2010, pp. 158-169. Warren Toomey, auteur dans ce dossier, abrite non seulement un forum de liste très actif, mais aussi des Neumann C., Paloque-Berges C. & Peti- travaux d’archéologie des systèmes et logiciels Unix. tgirard L. (2016). « ‘J’ai eu une carrière à l’en- [URL: http://www.tuhs.org/]. vers’ : entretien avec Claude Kaiser, titulaire de la chaire d’Informatique-Programmation du Conservatoire National des Arts et Métiers ». Techniques et Sciences Informatiques (TSI) 35 (4-5), pp. 557-570.

Paju P. & Haigh T. (2015). « IBM Re- builds Europe: The Curious Case of the Trans- national Typewriter ». Enterprise & Society, Vol. 17, Number 2, pp. 265-300.

Paloque-Berges C. (2017). « Mapping a French Internet experience: a decade of Unix networks cooperation (1983-1993) ». In G. Goggin et M. McLelland (eds.), Routledge Com- panion to Global Internet Histories. New-York : Routledge, 153-170.

Salus P. H. (1994). A Quarter Century of UNIX. Addison-Wesley, Reading.

Toomey W. (2010). « First Edition Unix: Its Creation and Restoration ». IEEE Annals of the History of Computing 32 (3), pp. 74-82. 19

Qu’est-ce qu’un système d’exploitation ? Une approche historique

Maarten Bullynck Centre de recherches historiques : Histoire des pouvoirs, savoirs et sociétés (EA 1571), Université Paris 8.

Les débuts des systèmes d’exploitation Un système d’exploitation est sont souvent obscurcis par leur proximité aujourd’hui devenu indispensable : on aux systèmes de programmation et ont été ne peut guère s’imaginer un ordinateur minimisés dans la suite des discussions des sans un système d’exploitation qui gère

Résumé années 1960 entre les défenseurs du et façonne l’accès à l’ordinateur et à ses traitement par lots et les partisans du partage périphériques, et sans que l’interaction de temps. Une étude plus détaillée et plus entre l’ordinateur et ses utilisateurs ne systématique des systèmes de contrôle entre passe par cette interface parfois devenue 1954-1964 montre pourtant qu’il existe une invisible1. Pourtant, quand les premiers variété d’idées, de philosophies et ordinateurs sont apparus après la seconde d’implémentations qui ont souvent préparé Guerre Mondiale, il n’y avait rien de tel. la voie à des systèmes ultérieurs. Cet article Il a fallu une décennie avant que les pre- offre d’abord une synthèse de développements miers essais de système d’exploitation pertinents en matériel et en logiciel et propose ne soient formulés et implémentés. Il a ensuite une taxonomie de systèmes de fallu une décennie supplémentaire pour contrôle pendant la période 1954-1964. que l’idée soit généralement acceptée et Enfin, les origines du terme que presque tous les ordinateurs soient et sa dissémination sont retracées dans la vendus ou loués en incluant un système communauté des utilisateurs des machines d’exploitation. Il faut attendre la fin des d’IBM.

1 Cet article est une adaptation libre d’un article qui Mots-clés : systèmes d’exploitation, histoire apparaîtra dans un volume spécial de HAPOP-3. Ce de l’informatique, organisation du travail texte est exceptionnellement placé sous une licence CC BY-NC-SA (Licence Creative Commons : Attribution informatique, partage de temps, + Pas d’utilisation commerciale + Partage dans les programmation automatique. Mêmes Conditions). années 1960, avec le développement C’est une histoire où une configuration des systèmes d’exploitation OS/360 par variable de programmeurs, opérateurs IBM et de Multics par une équipe asso- et ingénieurs travaillant avec un ordina- ciant le M.I.T., les Bell Labs et General teur est rationalisée à l’aide du traitement Electric, pour que des principes généraux par lots. Une nouvelle configuration, qui et des cadres théoriques pour les sys- automatise partiellement le programmeur tèmes d’exploitation soient mis en place. et l’opérateur, se met en place : le travail L’émergence des systèmes de partage des programmeurs est séparé du travail de temps (time-sharing) est considérée opératoire. Les programmeurs, travaillent­ traditionnellement comme un tournant dans leurs bureaux, écrivent leurs pro- dans l’histoire des systèmes d’exploi- grammes puis les apportent à l’ordina- tation. Les discussions parfois acérées teur et ses opérateurs. Les programmes entre les partisans du time-sharing et les sont mis en lots et attendent leur exécu- défenseurs du traitement par lots (batch tion, qui est gérée par l’opérateur et aidée processing) dans les années 1965-19752 par un système d’exploitation. Cette sont devenues légendaires et font partie histoire tourne aussi, sans l’évoquer ex­ intégrante de l’histoire de l’informatique. pli­ci­tement, autour de l’entreprise IBM. Mais ces discussions, aussi importantes Le traitement par lots a débuté sur des soient-elles pour repenser la relation machines d’IBM et quand commencent entre ordinateur et utilisateur, et révéla- les débats entre partisans du batch-pro- trices aussi d’un « combat gargantuesque cessing et du time-sharing au début des pour dominer le marché du logiciel qui années 1960, IBM sera lent à repérer se chiffre en milliards »3, ont biaisé l’his- le time-sharing et on lui reprochera de toriographie des systèmes d’exploitation. rester plutôt fidèle au traitement par lots. Ce sont tous des fils pertinents de l’his- L’histoire classique de ces sys- toire des systèmes d’exploitation, mais tèmes part de l’ordinateur sans système ils cachent la variété et la complexité des d’exploitation, passe par le traitement par systèmes issus de besoins et visions très lots pour arriver enfin à la multiprogram- différents des utilisateurs de la période mation ou le time-sharing moderne4. allant de 1954 à 1964. Cette période n’est pas seulement l’ère des systèmes de trai- 2 Un échantillon caractéristique de cette discussion se tement par lots. Au contraire, il existait trouve dans le numéro spécial de Septembre 1965 du plusieurs modes possibles d’utilisation journal and Automation. d’un ordinateur et plusieurs concepts 3 « […] a gargantuan contest to dominate the multibillion dollar software industry » (Sackman, 1970, p. 8). pour automatiser en partie cette utilisa- 4 Ce récit classique se trouve chez (Ceruzzi, 2003, tion. En outre, l’idée même d’un système pp. 96-101), (Tanenbaum, 2001, pp. 6-18) ou (Krakowiak, d’exploitation n’était pas stabilisée. 2013, 2014). Le livre de Brinch-Hansen (2001) suit aussi cette chronologie, mais sa présentation met en évidence que les systèmes et leurs « philosophies » se développent Dans ce qui suit on explore des en parallèle. questions et problèmes qui ont stimulé

20 21 les débuts des systèmes d’exploitation5. usage croissant pour le traitement des Cette démarche permet d’explorer des données (data processing), combiné avec couches historiographiques et épisté- des développements technologiques et mologiques qui approfondissent le récit des développements logiciels font naître classique tout en mettant en valeur des une variété de systèmes pour exploiter un développements en parallèle et en restant ordinateur. focalisé sur cette question : qu’est-ce qu’un système d’exploitation ? Côté technologie, les tambours ma- gnétiques (magnetic drum memory) de- viennent populaires en tant que mémoire de travail, et parfois comme mémoire de Prérequis technologiques stockage. Les tores magnétiques (ma- pour les systèmes gnetic ferrite core memories) sont déve- d’exploitation (1954-1964) loppés au M.I.T. au début des années 1950, technologie qui rend possible une Débuts dans les années 1950 mémoire de travail plus stable, plus ra- pidement accessible. Les tambours ma- L’idée même que la machine est gnétiques sont surtout populaires dans en charge de sa propre programmation les années 1950, les tores magnétiques est en fait implicite dans le modèle de par contre, étant plus chers à leur début, l’ordinateur à programme enregistré ne se répandront vraiment que dans les (stored-program computer). Parce que années 1960. Les bandes magnétiques l’ordinateur calcule beaucoup plus vite constituent­ la dernière technologie im- que l’homme, l’ordinateur doit contrô- portante. Cette technologie, proposée dès ler et gérer l’exécution des programmes. 1951, permet une mémoire de stockage L’étape suivante conduirait logiquement plus rapide et plus importante. Lente- à l’idée qu’un programme peut contrôler ment, les bandes magnétiques vont rem- et gérer les autres programmes. Pourtant, placer les cartes perforées et les bandes dans les années 1946-1956 peu d’ordi- de papier perforées, même si jusque nateurs étaient capables d’implémenter dans les années 1960 ces médias de stoc- cette idée : tout au plus, des routines pré- kage sont encore utilisés en parallèle paratoires ou des routines d’amorçage des bandes magnétiques. Les tambours (bootstrapping routines) étaient dispo- magnétiques et les bandes magnétiques nibles. Au milieu des années 1950, cette permettent un accès plus rapide aux situation change pour de nombreuses données enregistrées et facilitent donc raisons. La diversification de l’utilisa- l’accès à un grand nombre de routines tion de l’ordinateur, en particulier son (une bibliothèque de routines). Comparé aux cartes perforées, cet accès n’est pas

5 Cette analyse s’appuie sur une étude systématique seulement plus rapide mais aussi plus des premiers systèmes qui sera publiée ailleurs. automatisable et donc moins assujetti à l’intervention humaine. Évidemment­, le et sortie, « l’entrée et la sortie ont quitté mode d’accès aux données est soumis le domaine des vitesses mécaniques aux propriétés physiques des supports : pour accéder au domaine des vitesses la lecture et l’écriture se font de manière électroniques »6. séquentielle (pour les bandes) ou cy- clique (pour les tambours). Un accès L’expansion du stockage rapide direct (random access) deviendra pos- pour les programmes va de pair avec le sible seulement dans les années 1960, développement du logiciel (software). Les avec les tores magnétiques et les disques routines programmées sont cumulative- durs (disk drive). ment rassemblées dans une bibliothèque, stockées dans une mémoire externe. Entre L’introduction des mémoires utilisateurs d’un même type d’ordinateur tampons (buffer memory) pour la com- s’installent des procédures et des usages munication entre le processeur central et de partage et de recyclage. La fonda- les organes d’entrée et de sortie constitue­ tion des groupes d’utilisateurs comme une autre avancée technologique. Avant SHARE pour les utilisateurs du IBM ces mémoires, le processeur devait 701 ou de USE pour les utilisateurs du attendre la fin d’une lecture ou d’une UNIVAC 1103 (tous les deux en 1955) écriture, ou d’une communication avec marque le moment où le logiciel devient un dispositif d’entrée ou de sortie, pour un article de valeur. Des groupes d’utili- passer à l’étape suivante. Cette forme sateurs se réunissent régulièrement pour de communication limitait la vitesse du partager des programmes et pour discuter processeur et pouvait même la réduire des pratiques de programmation. Si les à la vitesse de fonctionnement des programmes dans ces groupes étaient par- organes d’entrée ou de sortie. Si on sait tagés gratuitement, la deuxième moitié par exemple que sur l’ENIAC le proces- des années 1950 voient également les seur pouvait opérer 5 000 additions par débuts d’une industrie du logiciel (Cer- seconde, le lecteur de cartes perforées ruzzi, 2003, pp. 79-108). Des sociétés ne pouvait lire que 2 cartes par seconde : comme System Development Corpora- il est facile d’imaginer que cette inadé- tion (SDC, 1957) ou Computer Sciences quation entre vitesses pouvait ralentir Corporation (CSC, 1959) louaient leurs sérieusement l’opération d’un ordina- services aux grands projets du gouverne- teur. De nombreuses stratégies avaient ment ou aux grandes entreprises (Camp- été élaborées pour éviter ce blocage, uti- bell-Kelly, 2001, pp. 29-56). lisant des bandes magnétiques comme mémoire tampon, ou même utilisant tout un ordinateur pour traiter les communi- cations avec des périphériques entrée et 6 « With the advent of this phase [I/O buffer memory], input-output was taken out of the domain of mechanical sortie. Mais avec l’introduction systéma- speeds and placed in the domain of electronic speeds » tique des mémoires tampon pour entrée (Bauer, 1958).

22 23

Dans ce contexte, les premiers central avec un périphérique. En utili- langages de programmation sont déve- sant l’interruption, les interruptions ma- loppés, des bibliothèques de routines nuelles effectuées par l’opérateur humain s’accumulent, et on voit aussi l’appa- pouvaient être (partiellement) automati- rition de systèmes de programmation sées. Par cette voie, des moniteurs plus qu’on peut appeler, a posteriori, des compli­qués étaient envisageables et systèmes d’exploitation. L’un des pre- la multiprogrammation, et plus tard le miers systèmes, qui sera très influent, a partage de temps, devenait possible. été le Comprehensive System of Service Puis, en 1957 est sorti FORTRAN (pour Routines ­ (CSSR) développé au Lincoln FORmula TRANslation), aboutissement Lab du M.I.T. pour leur ordinateur du travail d’un groupe de programmeurs Whirlwind (1953). Ce système sera plus pour IBM visant à créer un langage tard le fond sur lequel SDC va ériger scientifique de programmation. En tant son système de programmation pour le que premier langage de programmation projet SAGE. Un autre type de systèmes complet8, FORTRAN (puis FORTRAN importants, les moniteurs de séquences II) devint vite populaire et presque indis- de programmes (monitor program) faits pensable pour beaucoup d’installations pour enchaîner automatiquement l’exé- d’ordinateur. Pour beaucoup de systèmes cution de programmes, sont développés de programmation existants, l’apparition au cœur de la communauté de SHARE. de FORTRAN a mené à des réécritures Ces moniteurs deviendront plus tard les considérables afin de pouvoir l’intégrer. noyaux pour les systèmes de traitement Un bon nombre de systèmes d’exploita- par lots (batch processing), très typiques tion autour de 1960 sont (re)développés pour les installations commerciales et par de grands utilisateurs institutionnels scientifiques des machines IBM dans les pour inclure FORTRAN, par exemple années 1960. le FORTRAN Monitor System (FMS, 1959) développé par North American Deux innovations ponctuelles, l’une Aviation, ou BESYS-3 (1960) par Bell en technologie, l’autre en logiciel, sont Labs, UMES (1959) par l’université de cruciales pour l’évolution des systèmes Michigan ou encore le RAND-SHARE d’exploitation. D’abord, en 1956, l’inter- Operating System (1962) développé par ruption (interrupt) était introduite sur le la RAND Corporation. ERA 1103A sur la demande d’un utili- sateur, la NSA7. L’interruption pouvait interrompre la marche de la machine pour faire communiquer le processeur 8 Il y a d’autres langages de programmation développés avant ou en parallèle de FORTRAN, voir (Knuth & Pardo, 1977), mais ou bien leur utilisation fut limitée, 7 Cet ordinateur est parfois aussi connu sous le nom de ou bien il leur manquait souvent des fonctionnalités Scientific Univac 1103, et il fut d’abord développé pour importantes, comme par exemple des commandes pour la NSA sous le nom Atlas II. programmer les périphériques. Changements multiprogrammation sous des formes au milieu des années 1960 variées, dont l’une des plus extrêmes est le partage de temps (time-sharing). Les années entre 1962 et 1964 Pourtant­, la transition d’une mémoire de marquent la fin d’une première phase dans stockage séquentielle à une mémoire vive le développement des systèmes d’exploi- à accès direct (random access) a peut-être tation. Les « grands » projets de systèmes eu l’influence la plus profonde sur l’im- d’exploitation comme OS/360 d’IBM ou plémentation des systèmes d’exploitation Multics, et en particulier l’émergence des dans les années 1960. Cette transition a systèmes à temps partagé, symbolisent permis d’abandonner la logique séquen- ce tournant, même s’ils sont plutôt les tielle des bandes magnétiques et d’initier traits les plus visibles d’une évolution l’accès direct. Le disque dur du RAMAC plus générale. Cette évolution est portée, d’IBM (1956) est le premier exemple d’une part, par le développement graduel d’une mémoire vive. Les disques IBM de la multiprogrammation, et d’autre 1405 et IBM 1301 (1961-1962), dévelop- part, par l’introduction de nouveaux pés pour être utilisés sur l’IBM 1410 et la types de mémoire de stockage. La mul- ligne IBM 7000, ont été les systèmes les tiprogrammation, en essence, repose sur plus répandus. l’idée que plusieurs programmes peuvent être exécutés en même temps sur une Mais il n’y a pas seulement des avan- machine, ce qui rompt avec le traitement cées technologiques. Entre 1962 et 1964 séquentiel inhérent à l’architecture de von il semble que presque tous les produc- Neumann, où une instruction est exécu- teurs d’ordinateurs ont repris l’idée d’un tée seulement après que la précédente système d’exploitation et l’ont développé soit terminée. En pratique, la multipro- pour l’inclure dans le paquet ordinateur- grammation n’est souvent qu’une répar- logiciel qui était loué ou vendu9. Avant tition du temps du processeur central sur 1960, le développement des systèmes plusieurs programmes. Le processeur d’exploitation était assuré en majorité par de l’ordinateur traite encore séquen­ ­tiel­ les utilisateurs des systèmes d’ordina- lement les programmes, mais, en utilisant teurs et dans quelques contextes bien par- des mémoires tampons (buffer memo- ticuliers (surtout des projets de recherche ries), des programmes attendent leur tour, financés par le militaire). Après 1960, ce ou sont interrompus pour être repris plus sont les entreprises qui prennent en main tard. L’ordonnancement (scheduling) or- le logiciel (software), elles embauchent ganise l’ordre d’exécution de (morceaux) des programmeurs et investissent dans de programmes. L’interrupteur (hard- ware interrupt) a rendu possible les pre- mières tentatives de multiprogrammation, 9 C’est également au début des années 1960 que les premiers articles de synthèse sur les systèmes et l’introduction des mémoires tampon d’exploitation apparaissent, notamment (Orchard-Hays, pour entrée et sortie a fait proliférer la 1961, pp.290-294 ; Mealy, 1962).

24 25 la conception d’outils de programmation BKS de Philco ou Scope de CDC), mais pour leurs machines. Ces outils incluent­ la majorité ont des options avancées de des bibliothèques de routines, des (macro) multiprogrammation combinées­ avec le assembleurs, des compilateurs pour des traitement par lots. Le partage de temps, langages de programmation (comme par contre, est encore en développe- FORTRAN ou COBOL), des langages de ment et existe avant 1966 surtout dans programmation, des outils de debugging, des contextes de recherche, par exemple mais aussi des systèmes pour organiser CTSS sur un IBM 709 et plus tard sur des fichiers ou des données, des « rou- un PDP-1 (M.I.T.), TS sur un PDP-1 tines de maître » (master routines) et des (BBN), JOSS sur le Johnniac (RAND), systèmes d’exploitation. Si on regarde le Dartmouth Time-Sharing System quelques-unes des principales sociétés (Dartmouth College), le Cambridge mul- de systèmes informatiques, elles sortent tiple-access System sur le Ferranti Atlas toutes leur propre système d’exploitation (Cambridge), etc. Dans des installations entre 1962 et 1965 (voir Table 1). Cer- commerciales, le partage de temps fait tains de ces systèmes sont plutôt rudi- son apparition vers la fin des années mentaires (comme BRIDGE de General 1960 quand IBM, GE, DEC, PDP, SDS et Electric), d’autres sont des systèmes de d’autres sociétés vont l’incorporer dans traitement par lots classiques (comme leurs systèmes d’exploitation.

Société Ordinateur Année Système d’exploitation Honeywell H800 1961 Executive Monitor Univac Univac 1107 1962 I Burroughs D825 1962 AOSP Burroughs B5000 1962 Master Control Program Philco Philco-2000 1962 SYS; BKS GE GE-215/225/235 1962 BRIDGE IBM IBM 7090/7094 1962 IBSYS CDC CDC 1604 1962 CO-OP monitor system CDC CDC 3600 1963 SCOPE monitor system Honeywell Honeywell 1800 1963 ADMIRAL master monitor GE GE 625-635 1964 Comprehensive Operating Supervisor RCA RCA 3301 1964 Realcom System DEC PDP-6 1964 Supervisory Control Program SDS SDS 9000 1964 MONARCH L’évolution d’un développement par Qu’est-ce qu’un l’utilisateur vers des systèmes faits maison système d’exploitation ? par les sociétés elles-mêmes est la plus Des philosophies apparente chez IBM. Les premiers sys- différentes tèmes d’exploitation pour des machines IBM sont développés par des utilisateurs Si on utilise le terme usuel en comme General Motors, North American anglais pour système d’exploitation, Aviation, Bell Labs, Michigan Univer- operating system11, on souscrit implici- sity, etc. Ils s’appuyaient sur le partage tement à l’idée qu’un système d’exploi- d’idées et de programmes au sein de la tation automatise la mise en opération communauté SHARE d’utilisateurs de de l’ordinateur et remplace, en partie, machines IBM, mais ne recevaient pas de le travail d’un opérateur ou d’une opé- support direct d’IBM même. Lentement, ratrice humaine. On peut l’appeler la IBM en tant que société s’est impliquée philosophie opérationnelle du système également. Le constructeur a aidé le dé- d’exploitation. En particulier, les opé- veloppement de Share Operating System rations à exécuter manuellement sur un (1959) qui est né au cœur de SHARE. Plus panneau de contrôle (control panel), ou tard, il va incorporer le FORTAN Monitor panneau moniteur (monitor panel) ou System, initialement développé par North panneau de supervision (supervisory American Aviation, dans son système panel) sont automatisées par l’operating de programmation FORTRAN pour le system. Sur ces panneaux, l’opérateur IBM 709/7090 (1960). Finalement, IBM pouvait agir quand il y avait des arrêts commence­ à concevoir ses propres sys- (après l’exécution d’un programme ou tèmes d’exploitation, d’abord IBSYS (à après la fin d’une lecture ou d’une écri- partir de 1962), puis OS/360 (à partir de ture par un périphérique, ou quand il 1965). En parallèle, le développement par faut attendre que l’opérateur prenne la les utilisateurs disparaît lentement, même bande magnétique de la bibliothèque de si certains utilisateurs vont encore brico- routines dont on a besoin) ou des inter- ler avec les systèmes des fabricants et les ruptions (quand un programme ou un adapter à leurs besoins10. périphérique ne fonctionne pas comme prévu, ou quand l’instruction ne peut pas être exécutée), ou d’autres signaux encore. L’operating system automatise les réponses de l’opérateur à ces arrêts, interruptions et signaux. Par cette auto-

11 La plupart des langues modernes utilisent une variante de operating system, mais pas tous, par exemple 10 Un exemple est Thompson-Ramo-Woolridge qui va le français (système d’exploitation), l’allemand développer un système d’exploitation à partir de IBSYS (Betriebssystem), le néerlandais (besturingssysteem) en 1962 (Nelson, 1969). ont d’autres termes.

26 27 matisation, il devient possible que toute opération, l’opérateur humain recueillait une séquence, un lot (batch) de pro- les programmes et les mettait en lots. On grammes, puisse être accomplie sans devait attendre l’exécution du lot dans interruption entre deux arrêts, et non plus lequel était son programme pour pouvoir seulement un programme à la fois : d’où chercher les résultats dans le centre de le nom « traitement par lots » (batch calcul. La configurationclosed shop est processing) pour cette première géné- donc intimement liée à la philosophie de ration de systèmes d’exploitation. Ce traitement par lots13. type de système pouvait réduire le temps inutilisé de l’ordinateur et accélérer le On cite souvent 1956 comme chargement des programmes. En outre, l’année de naissance pour les systèmes certaines erreurs humaines pouvaient d’exploitation du type traitement par être évitées et on pouvait automatiser les lots, mais la généalogie commence un processus de chargement et de traduc- peu plus tôt avec des systèmes comme tion, une fois qu’ils étaient standardisés le 701 Monitor (1955) de Owen Mock à et codés dans un format fixe. Dans ce North American Aviation (Mock, 1987) contexte, on dit souvent à l’époque que le ou le Supervisor pour l’IBM 702 de Bruse système d’exploitation fait le « ménage » Moncreiff à RAND (Moncreiff, 1956). (housekeeping). L’idée mûrit avec le développement en 1956 du General Motors-North Ameri- L’automatisation partielle de l’opé- can Aviation Monitor (sous l’acronyme rateur humain a mené aussi à une autre GM/NAA Monitor) pour un IBM 704, configuration et opération dans les moniteur qui sera partagé dans la com- centres de calcul. Traditionnellement, munauté SHARE (Patrick, 1987). Le on parle de la transition d’open shop noyau de ce système, le Mock-Donald (opération ouverte du centre de calcul) monitor, sera recyclé, adapté, actualisé à closed shop (opération fermée)12. Dans et implanté dans des systèmes d’exploi- la configuration open shop, on emmenait tation plus complexes et plus ambitieux son programme au centre de calcul, lais- comme le SHARE Operating System sait l’opérateur mettre le programme sur l’ordinateur, et après exécution du pro- gramme, on pouvait prendre les résultats 13 Parfois, une autre interprétation est donnée à open shop versus closed shop. Dans cette interprétation, le et retourner dans son bureau. La confi- closed shop est la situation où seulement les opérateurs guration closed shop par contre rédui- et les programmeurs en code machine peuvent utiliser sait le contact avec l’ordinateur et son la machine, parce que les autres utilisateurs ne savent pas écrire des programmes en code machine ou assembleur. L’open shop est alors le cas où les utilisateurs 12 Les termes open shop et closed shop sont empruntés peuvent écrire leurs propres programmes, dans un aux pratiques des syndicats aux États-Unis. En closed langage de programmation. Ces programmes peuvent shop, les ouvriers devraient être syndiqués pour faire être mis dans des lots, voir (Breheim, 1961) pour un une tâche et il y avait des restrictions sur le type de exemple d’open shop sous le système d’exploitation tâche qu’un ouvrier pouvait faire. FMS qui organise les tâches en lots. pour l'IBM 709 (SOS, 1959) ou le of Service Routines (CSSR) du M.I.T. RAND-SHARE Operating System pour pour leur ordinateur Whirlwind (Ben- l’IBM 7090 (1962). Dans le système nington & Gaudette, 1956). Ce système, d’Owen Mock, des programmes étaient en développement continu depuis 1953, mis dans un lot dont la durée d’exé- avait l’ambition de faciliter de manière cution était estimée à une heure à peu générale l’accès à plusieurs groupes de près. Dans le GM/NAA Monitor, le programmes et d’automatiser certaines traitement devenait plus complexe­ et se tâches du programmeur humain. Il y avait faisait en trois phases. D’abord une tra- des groupes de programmes de lecture et duction pour convertir les données déci- écriture, de traduction et conversion, de males en binaire et les programmes en diagnostic et de debugging, de contrôle instructions machine ; puis l’exécution et de moniteur, etc. L’idée derrière le du programme sous le contrôle du pro- comprehensive system est généraliste et grammeur ; et finalement la sortie des inclut à la fois le(s) système(s) de pro- résultats, imprimés ou perforés, après grammation, le système d’exploitation et traduction14. L’évolution vers des mo- la bibliothèque de routines. Cette philo- niteurs de plus en plus complexes sera sophie correspond à une approche plus poursuivie et trouvera son apogée en unitaire et interconnectée d’organiser les IBSYS (1962-1965) qui comme « mo- logiciels autour de la machine. niteur de moniteurs […] contient plu- sieurs des anciens systèmes » (Hassitt, On peut appeler cette philosophie 1967, p. 24). « intégrative », d’après le terme inte- grated system souvent utilisé dans les Toutefois, même si dans les his- années 1950 et 1960. Le terme est parti- toires classiques des systèmes d’exploi- culièrement populaire chez les personnes tation le type « traitement par lots » et la qui viennent du projet Whirlwind ou de philosophie opérationnelle dominent le Ramo-Woolridge. Dans le Handbook for récit avant l’arrivée des systèmes à temps Automation, Computation and Control partagé, ce ne sont pas les seuls systèmes (1959), le système intégré est défini qui existent avant 1964. Une autre phi- comme « l’interconnexion de quelques losophie, très influente, est par exemple ou tous les programmes de service dans portée par le Comprehensive System une unité organisée, contrôlée par le programmeur et semi-automatique ou complè­tement automatisée »15, ou 14 « an input-translation phase which converted data encore : « tous les programmes sont inté- from decimal to binary, and programs from source to object language ; an execution phase which was almost exclusively under the programmer’s direct control ; and an output translation phase which processed line 15 « Interconnection of some or all these different utility printer output, punched card output (both decimal and programs into an organized, programmer-controlled, binary), and accounting records » (Patrick, 1987, semiautomatic or automatic whole is usually called p. 802). an integrated system » (Grabbe & al., 1959, p. 184).

28 29 grés pour faire un seul système de calcul type de systèmes avait tendance à ne afin d’exclure l’utilisation de la machine pas toujours utiliser le cycle linéaire par des sous-systèmes isolés »16. Des « charger, assembler, et exé- exemples de ce genre de système sont cuter » (load, assemble, compile and le CSSR du M.I.T., MAGIC (Michigan execute) et à s’appuyer sur des routines Automatic General Integrated Compu- interprétatives. Contrairement aux lan- tation) de l’université de Michigan ou gages de programmation dans lesquels le système intégré développé à Ramo- tout un programme est d’abord compilé Woolridge par le groupe de W.F. Bauer pour être exécuté, dans un système inter- pour l’ordinateur ERA 1103 (1955). prétatif une ligne d’un programme est interprétée et directement exécutée. Ce Dans la philosophie des systèmes système rend possible le remplacement intégrés, tout est organisé autour de du code de la machine par un langage l’interconnexion entre programmes, ce plus avancé de sous-routines, et au lieu qui contraste avec la philosophie opéra- d’avoir plusieurs « instructions de saut tionnelle qui sépare les logiciels aidant à une sous-routine », on a « une seule le programmeur des logiciels utilisés par sous-routine qui interprète et supervise l’opérateur. Aussi le(s) programme(s) toutes les sous-routines appelées »18. qui contrôle(nt) la séquence des opéra- Sur beaucoup d’ordinateurs des années tions n’ont pas nécessairement un statut 1950, on disposait de systèmes interpré- à part. La bibliothèque des routines, en tatifs pour faire des calculs en virgule particulier les routines de service (utility flottante. Sur quelques ordinateurs avec programs), est le noyau du système. Le beaucoup de mémoire de travail et des système d’exploitation du type intégré est outils d’entrée et de sortie comme un surtout conçu comme structure d’accès à flexowriter ou un écran cathodique, les la machine par des groupes de routines systèmes interprétatifs préfiguraient qu’on peut combiner, varier et dévelop- parfois les systèmes interactifs qui naî- per. C’est un aspect qui est également tront avec le temps partagé. C’est le cas présent dans les systèmes d’exploitation notamment pour le TX-0 ou le TX-2 modernes17. À cause de cette vision, ce développé par le Lincoln Lab au M.I.T.

16 « The important concept here is that all items are integrated together to form one computation system to the exclusion of the use of the machine with isolated subsystems » (Bauer, 1956, p. 8). 18 « The jump instructions in the main program which 17 Cf. la remarque de G.H. Mealy : « Many functions formerly directed control to the subroutines are now classed as OS functions were first embodied as eliminated […] [the subroutines] are all welded into utility subroutines and programs […] Today, the library one, an interpretive subroutine, which includes also a is an integral part of the OS – to the extent, for instance, section to supervise the sequence in which the various that many programmers identify the UNIX system with operations are performed », autrement dit « the its library rather than with its nucleus and shells » instruction code of the machine is not merely augmented, (Mealy, 1987, p. 781). it is entirely replaced » (Adams, 1954, pp. 16-3). Aujourd’hui, on a du mal à distin- militaires afin d’obtenir une vue d’en- guer clairement entre cette vision d’un semble des activités aériennes. Le système système intégré et les systèmes de pro- devrait rassembler en temps réel toutes les grammation. En général, il est, avant informations nécessaires pour prendre des 1964, souvent difficile de bien distinguer décisions militaires en cas d’une attaque entre ce qui relève d’un système de pro- (possiblement atomique) de l’URSS. Le grammation ou d’un système d’exploi- Lincoln Lab du M.I.T. faisait partie du tation. En effet, du point de vue de la projet avec ses ordinateurs Whirlwind et philosophie intégrative, les routines de TX-2. IBM a développé des ordinateurs supervision, de moniteur ou de contrôle AN-FSQ7 pour le projet. Plusieurs pro- font, elles aussi, simplement partie de la grammeurs de la RAND Corporation ont bibliothèque des routines disponibles. fondé la première société informatique du Dans l’autre point de vue, les routines logiciel, SDC (System Development Cor- de moniteur supervisent et contrôlent les poration), pour écrire les programmes né- systèmes de programmation, elles sont cessaires pour le projet SAGE. Le projet donc hiérarchiquement au-dessus du a donc stimulé des innovations techno- système de programmation. logiques et en particulier en logiciel. Les systèmes développés par le M.I.T. et Même si la plupart des systèmes IBM contenaient des nouveautés, comme entre 1954 et 1964 peuvent être rangés par exemple un sous-système interac- dans les catégories de la philosophie opé- tif entre l’utilisateur et une visualisation rationnelle ou de la philosophie intégra- de données sur un écran cathodique ; ou tive, il existait aussi, comme le rappelle encore un sous-système de teleprocessing, W.F. Bauer, « un nombre de systèmes l’utilisation des lignes téléphoniques pour spécialisés, en particulier des systèmes transférer des données d’un ordinateur (ou de commande et contrôle qui utilisaient périphérique) à un autre. D’une certaine des idées avancées en systèmes d’exploi- manière, on pourrait appeler ces systèmes tation »19. Le système le plus connu et le des systèmes distribués parce qu’un (ou plus influent est le système SAGE (Semi plusieurs) processeur(s) central(ux) est Automatic Ground Environment). SAGE couplé avec une variété de périphériques était un projet majeur financé par l’armée et qu’une communication en temps réel américaine pour développer un système entre toutes ces unités est établie. Sur d’ordinateurs connectés par des lignes ces systèmes, beaucoup d’idées ont été téléphoniques qui devait coordonner les développées et testées qui seront plus tard informations venant des radars et des sites précieuses pour le développement des systèmes de multiprogrammation. Mais, à l’époque, ces systèmes étaient définis 19 « […] a number of special purpose systems, d’abord par leur caractère temps réel particularly command and control systems that utilized advanced operation system ideas ahead of their time » (parfois aussi appelé « accès direct » ou (Bauer, 1972, p. 999). « en ligne »).

30 31

Il y a eu d’autres systèmes spécia- combinait les deux lignes de dé­ve­lop­ lisés sans rapport avec le projet SAGE. pement au sein d’IBM : d’une part le Outre des applications militaires spécia- traitement par lots né dans la communau- lisées, il y a eu surtout le développement té SHARE, d’autre part les systèmes en de systèmes pour gérer en temps réel des temps réel et de teleprocessing qu’IBM usines. On citera dans ce domaine Thomp- avait d’abord développé pour le projet son-Ramo-Woolridge et son RW-400, SAGE avant de le commercialiser. ainsi que General Electric qui avait créé son système GARDE pour l’ordinateur Avec l’extension de l’utilisation des GE-312 spécialement pour le contrôle ordinateurs en télécommunications, la des générateurs d’électricité (1959). IBM fonction de programme de supervision aussi, utilisant l’expérience du projet s’est élargie pour servir de pont entre traitement par lots et service à distance. SAGE, proposait des systèmes commer- Le programme de supervision qui en a ciaux de teleprocessing en temps réel. Le résulté peut être utilisé pour contrôler plus connu est le système SABRE pour un système qui traite des programmes la réservation de billets d’avion, mais il en lots, ou un système qui contrôle plu- sieurs dispositifs de télécommunica- y a eu également des systèmes pour les tions, ou toute combinaison des deux21. sociétés des chemins de fer (TOPS) et d’autres encore.

Quand en 1966 IBM présente son système d’exploitation OS/360, on ap- pellera ce système « de deuxième géné- ration ». La première génération était composée des systèmes de traitement par dedication of machine resources to the requirements lots, la seconde de l’OS/360 qui combi- of one ‘real-time’ application. By and large, however, these real-time systems bore little resemblance to the nait l’idée de traitement par lots avec le first generation of operating systems, either from the caractère temps réel20. En effet, OS/360 point of view of intended application or system structure. Because the basic structure of OS/360 is equally applicable to batched-job and real-time applications, it may be viewed as one of the first 20 « Then, as now, the operating system aimed at non- instances of a ‘second-generation’ operating system. stop operation over a span of many jobs and provided The new objective of such a system is to accommodate a computer-accessible library of utility programs. A an environment of diverse applications and operating number of operating systems came into use during the modes » (Mealy, 1966). last half of the decade. In that all were oriented toward overlapped setup in a sequentially executed job batch, 21 « […] as the use of computers extended into they may be termed ‘first generation’ operating systems. telecommunications, the function of the supervisory A significant characteristic of batched-job operation control program broadened to serve as the bridge has been that each job has, more or less, the entire between batch processing and service to remote machine to itself, save for the part of the system locations. The resulting supervisory control program permanently resident in main storage. During the can be used to control a system which processes batch above-mentioned period of time, a number of large programs only, or a system dedicated to the control of systems-typified by SAGE, MERCURY, and SABRE- telecommunications devices, or any combination of were developed along other lines; these required total these two » (Dines, 1966). L’invention de l’operating On parlait de « système exécutif », system chez IBM « système superviseur », « système de contrôle », « système à séquencer des pro- Bien que le terme operating system grammes » etc., et rarement de « système soit aujourd’hui prévalent dans la majo- d’exploitation » (operating system). rité des langues, plusieurs termes étaient en usage dans les années 1950 et 1960. Alors comment operating system Orchard-Hays dans sa synthèse sur les est-il devenu le terme usuel ? Le terme systèmes de programmation et d’exploi- semble avoir ses origines dans la com- tation de 1961 remarque : munauté SHARE des utilisateurs des machines IBM. La première utilisation De nombreux termes sont utilisés pour remonte à 1959 dans le contexte de déve- les parties d’un système d’exploita- loppement du SHARE Operating System tion. Le mot « programme supervi- (SOS) piloté par un comité de SHARE et seur » est déjà apparu [antérieurement aidé par IBM. Dans les publications offi- dans le texte]. Le superviseur est un programme qui garde le contrôle de la cielles dans le journal de l’ACM, le terme machine à tout moment et auquel re- operating system n’est pas utilisé pour tourne le contrôle après qu’une routine décrire le système de SHARE, ils parlent se termine ou s’arrête de manière inat- plutôt de SHARE 709 System24. Comme tendue. Les mots utilisés plus ou moins le note D.L. Shell qui présidait le comité comme synonymes de « superviseur » sont : « routine exécutive », « moni- de développement, « le problème initial teur », « routine du contrôle maître22. pour le comité était la définition même de ce que veut dire ‘système’ »25. La partie Plusieurs variantes de ces noms du système qui contrôle les autres pro- existent, telles que « routine de contrôle grammes est appelée supervisory control des séquences », « contrôle exécu- program, qui « coordonne les parties du tif », etc. Les noms de ces routines dé- système SHARE 709 et est responsable du signent souvent l’ensemble du système23. fait que l’ordinateur travaille de manière ininterrompue pendant le traitement d’un groupe de tâches indépendantes »26. En 22 « A number of terms have come into use for parts of an operating system. The term `supervisory program’ has already appeared above. The supervisor is the 24 709 renvoie à la machine IBM 709 pour laquelle le program which maintains ultimate control of the système fut développé. machine at all times and to which control reverts when a routine finishes its function or when an unexpected 25 « The initial problem facing the committee was to stop or ‘trap’ occurs. Terms which are used more or define what was meant by a ‘system’ » (Shell, 1959, less synonymously with ‘supervisor’ are ‘executive p. 124). routine,’ ‘monitor,’ ‘master control routine’ » (Orchard- 26 « [it] coordinates the use of the various parts of the Hays, 1961, p. 290). SHARE 709 System and is responsible for maintaining 23 L’utilisation d’une partie pour désigner l’ensemble the computer in continuous operation during the est connue en linguistique comme pars pro toto ou processing of a group of independent jobs » (Bratman métonymie. & Boldt, 1959, p. 152).

32 33 outre, le système a un format standardisé La nomenclature utilisée dans pour les tâches que la machine peut facile- les publications officielles (ACM) et ment interpréter, cette standardisation ré- celle utilisée dans la pratique (la com- duisant sérieusement le temps perdu entre munauté SHARE) ne coïncident pas. deux tâches. C’est une description qui Pourtant, il est évident que le terme correspond parfaitement à un système de operating system ne s’était pas encore traitement par lots, mais ni le mot « lot » imposé et que la définition même était ni le mot « système d’exploitation » ne encore flottante, désignant parfois le sont utilisés. système de programmation ou même le système intégré. Cela changera avec les Dans le manuel de la communauté systèmes ultérieurs à SOS. SHARE par contre, le système est appelé SOS, pour SHARE Operating System. Le SHARE Operating System Dans l’introduction du manuel, on peut aura peu de succès dans la commu- lire : nauté SHARE parce que FORTRAN n’était pas bien supporté et que son […] le SHARE Operating System, langage d’instructions était trop com- communément appelé SOS, est un complexe­ très flexible de langages, pro- pliqué (Akera 2001, pp. 731-733). En cédures et codes machine. Le système 1961, 76 % des installations IBM sont a trois objectifs : aider le programmeur opérées sous le système Fortran Monitor du 709 pendant la préparation des pro- System (FMS) au lieu de SOS (Larner grammes ; alléger l’opérateur des tâches qui peuvent être automatisées ; et rendre 1987, p. 819). FMS avait été développé l’installation informatique plus efficace par un grand utilisateur institutionnel et mieux documentée27. North American Aviation en 1959 pour faciliter l’usage de FORTRAN. FMS SOS est en réalité « un système était « un moniteur, un programme su- intégré » qui contient trois sous-sys- perviseur pour 709/7090 FORTRAN, tèmes : le compilateur-assembler-tra- FAP28 et les programmes objet »29. Si ducteur de SHARE (SCAT) ; le système SOS avait été conçu comme un outil pour le debugging ; et le moniteur. de programmation, FMS était dès le début un chargeur et connecteur (loader & linker) pour des programmes en 27 « […] the SHARE operating system, familiarly known as SOS, is a highly flexible complex of languages, FORTRAN. Peut-être que le succès de procedures and machine codes. The threefold purpose FORTRAN et son profil de « langage of the System is to provide assistance to the 709 programmer in the coding and check-out phase of program preparation, to assume from the 709 machine operator those burdens that may be sensibly automated 28 FAP est le macro-assembleur du IBM 709/7090. and to provide the computer installation with an efficient operation and complete and accurate records 29 « […] the Monitor is a supervisory program for on machine usage » (Homan and Swindle, 1959, sec. 709/7090 FORTRAN, FAP, and object programs » 01.01.01). (Reference Guide, 1961, p. 61). de programmation »30 a rendu len- debugging et outils opérationnels avec tement possible la distinction claire lequel travaille le programmeur31. entre le système de programmation et le système d’exploitation (même si Ainsi, operating system commence cette séparation est parfois artificielle à englober et à contrôler de plus en et problématique). Par l’intégration du plus les systèmes de programmation de langage FORTRAN dans un environ- l’ordinateur. Dans la même ligne, Bob nement comme FMS qui facilite l’écri- Bemer d’IBM considérait les operating ture, la compilation et la combinaison systems comme la Phase III dans le dé­ de programmes, une distinction entre ve­lop­pement des systèmes de program­ langage et système (d’exploitation) mation32, l’operating system englobant devient visible pour l’utilisateur. littéralement les systèmes de programma­ tion (Bemer 1962). Cette évolution est explicitée par George H. Mealy qui faisait partie du Une séparation semblable entre groupe de la RAND ayant amélioré SOS système de programmation et operating pour intégrer FORTRAN, le résultat étant system se trouve dans l’introduction de le RAND-SHARE Operating System manuel du RAND-SHARE Operating (1962). Dans son rapport sur les Opera- System : ting Systems, Mealy écrivait : Un operating system est un complexe de On a une machine pour exécuter des routines d’ordinateur qui sont utilisées tâches, pas pour programmer des sys- pour faire entrer et sortir les programmes tèmes. On appelle souvent les systèmes et les données de la machine, pour trans- entre le programmeur et la machine des former des données (incluant la compi- « systèmes de programmation », mais lation et l’assemblage de programmes), cela met trop en exergue les auxiliaires superviser des tâches et les mettre en mécaniques de codage et ne met pas en valeur d’autres aspects de l’opération. Par operating systems on désigne l’en- 31 « The object of having a machine is to run jobs, not semble des outils de programmation, programming systems. To call the systems that stand between the programmer and the machine « programming systems » is to place undue emphasis on mechanical coding aids and not enough emphasis on the other aspects of operation. By ‘operating systems’ we shall 30 On parle d’abord plutôt de systèmes de programmation, mean the whole complex of programming, debugging le fait de parler de langage de programmation est and operational aids with which the programmer deals » apparemment né dans les communautés des utilisateurs, (Mealy, 1962, p. 4). en particulier USE (1955). L’emphase sur le langage a probablement aidé à fortifier l’idée qu’un système de 32 Pour Bemer, la Phase I était la programmation de programmation peut être développé indépendamment l’ordinateur sans aide, la Phase II la programmation d’une machine et peut être d’application universelle, partiellement automatisée (conversion, chargement, voir (Nofre, Priestley & Alberts, 2014). FORTRAN connexions, assemblage et compilation), et en Phase par exemple est un système qui comporte deux éléments, III finalement, le système d’exploitation prend en charge le langage et le traducteur qui adapte le code à la plusieurs tâches comme par exemple la communication machine. avec les périphériques entrée et sortie, etc.

34 35

séquence, et pour faciliter la communi- le degré de participation humaine dans la cation entre le programmeur et les élé- mécanique du traitement d’information, 33 ments du système d’exploitation . le 7090/7094 IBSYS Operating System garantit que les tâches sont traitées plus Comme pour SOS, le RAND- vite, plus efficacement et avec moins SHARE Operating System vise trois d’erreurs humaines34. choses : l’efficacité dans l’utilisation du temps de la machine ; l’efficacité dans Cette description efface lit­té­ra­ l’opération de la machine ; et l’efficacité lement l’opérateur de l’équation et met dans la programmation. Sauf que, désor­ l’operating system à sa place, comme mais, l’opérateur n’est même plus men­ catalyseur pour le programmeur. Le tionné, et l’operating system commence système contrôle et réduit les problèmes à gouverner les systèmes de program­ qui peuvent apparaître en traitement d’in- mation. Cette évolution remplace l’opé­ formations et qui sont dus à l’homme. rateur par l’operating system comme L’operating system, en particulier le mo- interface principale entre programmeur niteur, est mis en tête de la hiérarchie des et machine (du moins, en théorie, mais programmes et contrôle la configuration certainement pas dans la pratique !). de l’ordinateur, ses périphériques et ses utilisateurs. Et avec le nom même d’ope- Cette tendance s’approfondit avec rating system, la philosophie opération- l’operating system développé par IBM, nelle s’impose de plus en plus. IBSYS.

Le système d’exploitation 7090/7094 IBSYS est constitué d’un en- semble intégré de programmes-systèmes qui opèrent sous le contrôle et la coor- dination du System Monitor. Le System Monitor, en coordonnant l’opération des sous-systèmes, permet qu’une séquence de tâches sans relation entre elles peut être exécutée sans, ou presque sans, l’in- 34 « The 7090/7094 IBSYS Operating System consists tervention d’un opérateur. En réduisant of an integrated set of system programs operating under the executive control and coordination of the System Monitor. The System Monitor, by coordinating the 33 « An operating system is a complex of computer operation of the subsystems, allows a series of unrelated routines which are used to get programs and data into jobs to be processed with little or no operator and out of the machine, transform data (including intervention. By reducing the degree of human program assembly and compilation), supervise job and participation in the mechanics of data processing, the task sequencing, and facilitate the communication 7090/7094 IBSYS Operating System ensures that jobs between the programmer and components of the are processed faster, more efficiently, and with less operating system » (Bryan, 1962, p. iii). likelihood of human error » (IBSYS, 1964, p. 3). Conclusion Cette vision s’appuie sur l’automatisation de l’opérateur humain et est étroitement Le développement fulgurant du liée au traitement par lots (batch pro- logiciel va de pair avec les avancées cessing). Elle est surtout portée par IBM technologiques en matière de mémoire qui domine le marché des ordinateurs. de stockage et de vitesse de processeur. En quelque sorte, cette philosophie est Le dé­ve­lop­pement des programmes est la poursuite de la stratégie commerciale d’abord porté par les utilisateurs, mais IBM consistant à louer les ordinateurs et vers 1960 une nouvelle industrie, celle du à séparer l’utilisateur de la machine par logiciel, naît. Avec la croissance en quan- l’intermédiaire des opérateurs, qui, sous tité et en complexi­té des programmes, forme automatisée, deviennent l’opera- il devient nécessaire qu’un ordinateur ting system35. soit accompagné d’une sorte de système d’exploitation. Depuis la fin des années Avec l’avènement de la multipro- 1950, l’utilisateur humain qui calculait grammation et du time-sharing la variété déjà plus lentement que l’ordinateur, est et la complexité des systèmes d’exploi- aussi dépassé par les périphériques qui tation augmentera énormément. Même lisent et écrivent des données beaucoup si désormais beaucoup de systèmes vont plus vite que lui. Du lecteur de cartes assumer des fonctionnalités qui sont perforées fonctionnant à deux ou trois étrangères à l’ancien opérateur humain, cartes par seconde, on passe à des bandes comme la segmentation, l’or­don­nan­ magnétiques dont la vitesse de lecture cement etc., le terme operating system va atteint plus de 10 000 cartes par seconde. rester et devenir le terme utilisé par tout En outre, avec FORTRAN, l’ordinateur le monde. « écrit » (c’est-à-dire qu’il assemble, compile et exécute) un programme plus vite qu’un utilisateur humain, une fois que l’automatic programming ou program- ming programs sont devenus communs. Tous ces éléments conduisent à la nais- sance des systèmes d’exploitation.

Plusieurs philosophies coexistent, pour ne pas dire que chaque ordinateur ou chaque entreprise suit sa propre philo- sophie, incarnée dans son propre système d’exploitation. Toutefois, une philoso- 35 Évidemment, la pratique ne correspond pas phie emporte la majorité des suffrages, complètement à cette vision automatisée qui repose souvent sur des métaphores. L’opérateur humain reste la philosophie opérationnelle sous-en- nécessaire, mais son rôle change : il devient plutôt tendue avec le terme operating system. assistant ou administrateur du système d’exploitation.

36 37

Bibliographie Bennington H.D. & Gaudette C.H. (1956). « Lincoln Laboratory Utility Program System ». AIEE-IRE 1956 joint ACM-AIEE- Adams C.W., Gill, S. & al. (eds.) (1954). IRE western computer conference, p. 21. Digital Computers: Business Applications. Summer program. Bratman H. & Boldt I.. (1959). « The SHARE 709 System: Supervisory Control ». Adams C.W. (1955). « Developments Communications of the ACM, 6 (2), pp. 152-155. in programming research ». AIEE-IRE 1955 Eastern joint AIEE-IRE computer conference Breheim D.J. (1961). « ‘Open Shop’ Pro- proceedings, pp. 75-79. gramming at Rocketdyne Speeds Research and Production ». Computers and Automation, 10 Adams C.W. (1987). « A batch-pro- (7), pp. 8-9. cessing operating system for the Whirlwind I compu­ter ». AFIPS Conference Proceedings, Brinch Hansen P. (2001). Classic Opera- vol. 56, pp. 785-789. ting Systems: From Batch Processing to Distri- buted Systems. Berlin : Springer. Akera, A. (2001). « Voluntarism and the fruits of collaboration: The IBM user group Bryan G.E. (1962). The RAND Share Share ». Technology and Culture, 42(4), operating system manual for the IBM 7090. pp. 710-736. Memorandum RM-3327-PR, Santa Monica, CA.

Bauer W.F. (1956). « An Integrated Com- Campbell-Kelly M. (2003). From Airline putation System for the ERA-1103 ». ACM, 3 Reservations to Sonic the Hedgehog: A History (3), pp. 181-185. of the Software Industry. Cambridge, MA : MIT Press. Bauer W.F. & West G.P. (1957). « A system for general-purpose digital-analog Ceruzzi P. (2003). A history of modern compu­ta­tion ». ACM, 4 (1), pp. 12-17. computing (2nd ed.). MIT Press, Cambridge, Massachussetts. Bauer W.F. (1956). « Use of Automatic Programming ». Computers and Automation, 5 Culler G.J. & Fried, B.D. (1963). An (11), pp. 6-11. Online Computing Center for Scientific Pro- blems. M19-3U3, TRW report. Bauer W.F. (1958). « Computer Design from the Programmer’s Viewpoint ». Procee- Dines R.S. (1966). « Telecommunications dings Eastern Joint Computer Conference, and supervisory control programs ». Computers December 1958, pp. 46-51. and Automation 15 (5), pp. 22-24.

Bauer W.F. & Rosenberg A.M. (1972). Drummond R.E. (1987). « BESYS revi- « Software – Historical perspectives and current sited ». AFIPS Conference Proceedings, vol. trends ». Fall Joint Computer Conference­, 56, pp. 805-814. 1972, pp. 993-1007. Fisher F.P. & Swindle G.F. (1964). Com- Bemer R. (1962). « The Present Status, puter programming systems. New York : Holt, Achievement and Trends of Programming for Rinehart and Winston. Commercial Data Processing ». In Hoffmann (dir.) Digitale Informationswandler, Wiesba- Frank W.L. (1956). « Organization of den, pp. 312-349. a Program Library for a Digital Computer Center ». Computers and Automation, 5 (3), (1966). « The functional structure of OS/360 ». pp. 6-8. IBM Systems Journal, 5 (1), pp. 3-51.

Grabbe E.N., Ramo S. & Woolridge D.E. Mealy G.H. (1987). « Some threads in (1959). Handbook of Automation, Computa- the development of early operating systems ». tion and Control, volume ii. New York : Wiley. AFIPS Conference Proceedings, vol. 56, pp. 779-784. Hassitt, A. (1967). Programming and Computer systems. New York & : Aca- Mock O.R. (1987). « The North Ameri- demic Press. can 701 Monitor ». AFIPS Conference Procee- dings, vol. 56, pp. 791-795. Homan C.E. & Swindle G.F. (1959). Pro- grammer’s ­Manual for the SHARE Operating Moncreiff B. (1956). « An automatic system. IBM. supervisor for the IBM 702 ». AIEE-IRE 1956 Joint ACM-AIEE-IRE western computer confe- Hopper G. (1954). ACM Glossary. ACM. rence, pp. 21-25.

Reference Guide to the 709/7090 Nelson E. (1969). « Computer Installa- FORTRAN Programming System (1961) tion at TRW systems – Some Experiences and (includes material from IBM 709/7090 Lessons ». Computers and Automation 18 (8), FORTRAN Monitor, form C28-6065). IBM : pp. 21-22. Poughkeepsie. Nofre D., Priestley M. & Alberts G. IBM 7090/7094 IBSYS system operator’s (2014). « When Technology Became Lan- guide (1964). Poughkeepsie : IBM. guage: The Origins of the Linguistic Concep- tion of , 1950-1960 ». Knuth D.E. & Pardo L. (1979) « The early Technology and Culture, 55(1), pp. 40-75. development of programming languages ». In J. Belzer, A.G. Holzman & A. Kent (dir.). Ency- Orchard-Hays W. (1961). « The Evolu- clopedia of and Techno- tion of Programming Systems ». Proceedings of logy. Marcel Dekker : New York, pp. 419-496. the IRE, 49 (1), pp. 283-295.

Krakowiak S. (2014). « Les débuts d’une Patrick, R.L. (1987). « General Motors/ approche scientifique des systèmes d’exploita- North American Monitor for the IBM 704 com- tion ». Interstices, Février. puter ». AFIPS Conference Proceedings, vol. 56, pp. 796-803. Krakowiak S. & Mossière J. (2013). « La naissance des systèmes d’exploitation ». Inters- Rosen S. (1967). Programming Systems tices, Avril. and Languages. New York : McGraw-Hill.

Larner R.A. (1987). « FMS: The IBM Sackman H. (1970). Man-Computer FORTRAN Monitor System ». AFIPS Confe- Problem solving. Princeton etc. : Auerbach. rence Proceedings, vol. 56, pp. 815-820. Shell D.L. (1959). « SHARE 709 system: Mealy G.H. (1962). Operating Systems. a cooperative effort ». Journal of the ACM, 6 RAND Report P-2584. Republié partiellement (2), pp. 123-127. in Rosen 1967. SHARE Operating System Manual, Dis- Clark W.A., Mealy G.H. & Witt B.I tribution 1 to 5 (1960). Poughkeepsie, IBM.

38 39

Tanenbaum A. (2001). Modern opera- ting systems (2nd ed.). Upper Saddle River, NJ : Prentice Hall.

41

La Saga des machines-langage et -système

François Anceau Collaborateur bénévole, Lip 6, Sorbonne-Université/UPMC.

Parallèlement à l’évolution des machines continuer à assurer leurs services. Seule, la informatiques standard, la recherche et l’in- lignée des machines-système et amd64 dustrie informatique ont développé, dès le a continué sa progression grâce à sa préé- début des années 1960, des machines origi- minence dans les ordinateurs personnels.

Résumé nales fondées sur l’idée de déplacer la fron- Depuis, cette lignée se trouve en compéti- tière entre le logiciel et le matériel au pro- tion avec les ARM venus du monde de l’en- fit de ce dernier. Cette évolution de l’archi- foui et des portables. tecture des machines s’appuyait sur l’évolu- tion technologique (rapidité du matériel et Mots clés : architecture des ordinateurs, possibilité de réaliser des machines machines spécialisées, machines-langage, complexes­). Plusieurs nouvelles classes de machines-système, architecture virtuelle, machines en ont découlé. Nous retiendrons intérieur-décor. ici la classe des machines-langage orientées vers l’exécution directe de langages évolués et celle des machines-système possédant des mécanismes systèmes au niveau matériel et surtout accédant à ses divers objets via des descripteurs. Cette évolution promettait une simplification et une accélération des fonc- tions appartenant à l’origine aux couches logicielles. Ces espoirs n’ont pas été com- plètement satisfaits. Après un départ glo- rieux, les machines-langage ont disparu dès les années 2000, et les machines-système ont été simulées sur d’autres machines pour Introduction nement entre pannes, permettant ainsi les longues exécutions des programmes Dès le début des années 1960, les devenus plus complexes. concepteurs de machines informatiques ont essayé de casser le schéma concep- Le passage du calcul numérique au tuel dans lequel ils commençaient à traitement de l’information, se déroula s’enfermer. À cette époque, le traitement pendant les années 1960. Cette extension de l’information se résumait au calcul du domaine d’application de ce genre de numérique. Ces calculs se présentaient machine s’appuyait sur des travaux théo- alors sous deux formes très distinctes : riques montrant la généralité de la notion de calcul : -- les calculs simples se répétant sur un ensemble assez important de -- la thèse de Church-Turing qui montre données : par exemple le calcul que tout calcul peut se faire par la des feuilles de paie, la réalisation combinaison de quelques opérations de tables (logarithmes, trigonomé- simples, ce qui a permis de définir triques, éphémérides pour la navi- les limites des machines à calculer gation, tables de tir…), relevant du programmables ; domaine de la mécanographie ; -- la diagonalisation de Gödel montre -- les calculs non répétitifs réalisés à la que toute transformation d’en- demande (rares et coûteux). sembles énumérables peut se coder comme un calcul ; À cette époque, il était beaucoup -- le théorème de programmation struc- plus simple de consulter une table, que turée de Corrado Böhm et Giuseppe de calculer un logarithme, ou une fonc- Jacopini (1966) a ouvert la porte de tion trigonométrique, compte tenu de la la programmation moderne. lenteur, et de la rareté de ces machines à calculer. Toutefois l’unification entre le calcul et le traitement de l’information L’électronique était alors en pleine était pressentie depuis longtemps. G. W. mutation grâce à l’arrivée des Leibniz, avec sa « Caractéristique Uni- au silicium dans le monde de l’élec- verselle », avait déjà compris en 1666 tronique industrielle en remplacement la possibilité d’utiliser le calcul logique des tubes à vide. Outre une diminution pour autre chose que des nombres. Ada de taille et de poids, l’arrivée de ces Lovelace avait aussi prédit cette évolution composants allait transformer l’utili- en 1842 dans ses commentaires de sa tra- sation des machines informatiques par duction de la description de la machine l’augmentation importante de leur fia- de Babbage (Tools, 1992). Toutefois, bilité, faisant passer de la journée à la sa mise en œuvre sera progressive pour semaine leur temps moyen de fonction- n’être effective que vers 1965, provo-

42 43 quant la naissance conjointe de l’informa- structure des machines de base à un type tique et des ordinateurs (Mounier-Kuhn, d’application, jusqu’au rem­pla­cement 2010 ; Anceau, 2000, p. 89). En effet, des langages d’instruction par des lan- beaucoup de ces machines à calculer ne gages de programmation préexistants. pouvaient traiter que des chiffres par des Dans ce texte, nous ne traiterons que des codages plus ou moins optimisés pour le processeurs et coprocesseurs-langage et calcul (par exemple le code bi-quinaire) des processeurs-système : ce qui rendait la manipulation de lettres ou d’autres items particulièrement diffi- -- les processeurs et coprocesseurs-lan- cile. L’arrivée de l’informatique et des or- gage exécutent directement les lan- dinateurs est marquée par la possibilité de gages intermédiaires des langages de manipuler individuellement des éléments programmation ; binaires regroupés dans des mots. -- les processeurs-système exécutent directement des fonctions systèmes élaborées, comme l’adressage seg- menté, la gestion des tâches, leur Machines spécialisées synchronisation et l’isolement hié- rarchique par des anneaux de protec- Très tôt, l’idée de spécialiser les tion entre les couches du système et machines informatiques afin de les opti- celles des utilisateurs. miser pour des tâches précises inspira les concepteurs. De nombreuses voies s’ou- La Figure 1 donne un aperçu de la vraient alors, allant de l’adaptation de la grande variété des processeurs spécialisés.

Figure 1 - Famille des processeurs spécialisés Machines-langage devienne universel, c’est-à-dire capable d’exécuter un large ensemble d’- Le début des années 1960 vit la rithmes, dont ceux issus des couches naissance des premiers langages infor- basses du logiciel. L’idée est donc venue matiques capables de décrire des proces- d’utiliser le matériel d’une machine sus de traitement de l’information. Dès le informatique pour exécuter le plus di­ départ, ceux-ci se divisèrent en plusieurs rec­tement possible les langages évolués classes : dans le but d’en faire les langages de base des nouvelles machines. -- les langages pour le calcul répétitif sur des enregistrements (par exemple À ce niveau, il faut distinguer deux Cobol) ; types de langages informatiques : -- les langages pour le calcul scienti- fique (par exemple Fortran) ; -- les langages conversationnels (par -- les langages pour la recherche (par exemple : Lisp, Basic, APL, Python, exemple : Lisp, IPL5 (pour la pro- TRAC…) pour lesquels la machine grammation fonctionnelle), Algol répond directement, comme une cal- (pour un usage général). culette, à des commandes frappées sur un clavier ; Le langage Cobol fut conçu dans -- les langages enregistrés (par exemple : le prolongement des travaux mécanogra- Algol, Pascal, C, ADA, Java, Fortran, phiques qui effectuaient des traitements Cobol….) pour lesquels la machine simples se répétant sur une multitude traite, en plusieurs étapes successives d’enregistrements à l’image des cartes des programmes préparés sous forme perforées. L’importance de traitements de fichiers. plus complexes et non répétitifs (mais comportant des phases itératives !) se fit Les langages conversationnels sentir dans les nouveaux langages comme offrent généralement aussi la possibilité Fortran, Algol, Lisp, etc. qui jetèrent les de grouper des commandes dans des fi- bases des langages de programmation chiers. Certains langages conversationnels modernes. sont devenus des langages de commande pour l’exécution des travaux sur les ordi- La programmation au niveau élé- nateurs (ex : Basic sur les premiers micro- mentaire d’un ordinateur (langage dit ordinateurs et Python plus récemment). d’assemblage) a d’abord été vue comme l’utilisation de commandes contingentes Les langages enregistrés sont gé- au matériel utilisé. On a vite compris que néralement traités en deux temps. Une l’ordinateur exécutait un algorithme in- première phase, appelée compilation terprétant ses instructions et qu’il fallait transforme les programmes, écrits comme relativement peu d’efforts pour qu’il des textes, en des programmes écrits dans

44 45 des langages d’instructions spécifiques • Machines Lisp aux langages évolués, appelés langages intermédiaires par ex : P-Code pour Plusieurs laboratoires se sont lancés Pascal, Bytecode pour Java… L’exécu- dans l’étude de machines Lisp, par tion de ces langages intermédiaires peut exemple : se faire de trois manières : -- la machine CADR du MIT (1981) pro- -- par l’exécution du code intermédiaire duite et commercialisée par Symbolics par un interprète logiciel, généra- (LM-2, 3600…) ; lement appelé « machine virtuelle -- les machines M3L et MAIA de l’Uni- logicielle » ; versité Paul Sabatier de Toulouse ; -- par la construction matérielle de -- le coprocesseur COLIBRI de Siemens ; machines physiques exécutant di- rectement ces codes intermédiaires • Machine Alvan comme leurs langages d’instruction (voir le paragraphe suivant) ; Cette petite machine franco-améri- -- par la traduction du code intermé- caine exécutait un langage voisin de celui diaire en instructions d’une machine du macro-générateur TRAC. Plusieurs cible ou dans un autre langage évolué machines ont été vendues à des entre- qui devra être lui-même exécuté. prises pour des travaux de gestion.

Les langages intermédiaires pour les • Machines APL (IBM) langages enregistrés sont souvent de la forme post-fixée dans laquelle les opéra- -- IBM 5100/5110 (portable). teurs suivent les données (ex : A+B s’écrit -- Extension microprogrammée de AB+) qui présente la propriété de s’exé- l’IBM 370/145. cuter avec une pile, ou une file qui permet alors une exécution pipe-line (Anceau, • Machines BASIC Baille, & Schoellkopf, 1977). Pratiquement tous les micro-or- dinateurs des années 1970 exécutaient Ordinateurs conversationnels le BASIC (via un interprète) à la fois comme langage de programmation et Plusieurs machines ont été comme langage de commande. construites pour exécuter directement les langages conversationnels. Compte tenu de la faible puissance de calcul de- mandée, il s’agit souvent de machines classiques munies d’un logiciel adéquat, appelé interprète. Ordinateurs la réalisation de cœurs de processeurs pour langages enregistrés génériques.

Plusieurs machines de puissance Un prototype de machine Pascal, moyenne, ou forte, exécutaient direc- appelée PascHLL, a été étudié à l’Uni- tement le langage intermédiaire issu de versité de Grenoble à la fin des années la compilation d’un, ou de plusieurs, 1970 pour démonter l’intérêt de l’exécu- langages de programmation enregistrés. tion sur file (Schoellkopf, 1977 ; Anceau, Il faut remarquer que cette approche Baille, & Schoellkopf, 1977). suppose que l’ensemble du logiciel de base de ces machines doit être écrit dans • Machine ADA le langage évolué (le système d’exploita- tion et le compilateur lui-même). La société développa en 1981 un processeur bi-boitier appelé • Machine Cobol Intel iAPX 432 adapté à l’exécution du langage ADA et comportant des méca- Un prototype de machine Cobol nismes de gestion mémoire du type de a été développé à l’IRIA au début des ceux existant dans les machines-système, années 1970 par R. J. Chevance (1974). ce qui classe ce processeur dans les deux familles. Très apprécié des universi- • Machines Algol taires, mais trop lent, il fut rapidement abandonné. La société a développé dans les années 1960 une ligne • Machines JAVA de machines puissantes (B5000 à B7700) (multiprocesseurs), exécutant un langage Dans les années 1990, la société intermédiaire pour Algol / Cobol / Fortran Sun a développé des microprocesseurs (Organik, 1977). Ces machines ont connu Java appelés Pico-Java (O’Connor & une diffusion mondiale, avant de devoir Tremblay, 1997) dans l’espoir du déve- s’effacer devant l’évolution des machines loppement de stations Internet (net-com- standards au début des années 1970. puters). Malheureusement, l’évolution de la micro-informatique fut différente et • Machines Pascal ces microprocesseurs furent abandonnés.

La société Western Digital a déve- Dans la première moitié des loppé une série d’ordinateurs personnels années 2000, un prototype de machine appelés Pascaline (WD-9000/900/90, Java appelé JMQ pour Java Machine SB-1600) bâtis en utilisant un ensemble on Queue, de haute performance à exé- de circuits intégrés MCP-1600 consti- cution sur file a été étudié à l’UPMC tuant une sorte de mécano permettant (Palus, 2006).

46 47

Dans les années 2000, la société (segments (données, programmes ou bi- ARM a développé une extension du bliothèques), tâches, entrées-sorties…). code de ses processeurs, appelée Jazelle, Ces descripteurs sont constitués de adaptée à l’exécution du Byte-code sur mots ou de double-mots qui contiennent ses microprocesseurs. généralement :

-- la localisation des objets, -- leur nature (segment mémoire, tâche, Machines-système entrées-sortie…), -- leur état (dans le cas de tâches : active, La complexification des machines en attente de synchronisation…), informatiques à la fin des années 1960 a -- leur propriétaire, permis d’effectuer un saut dans la nature -- leur niveau de protection (anneaux), des systèmes d’exploitation. De nou- -- leur type d’accès (dans le cas velles fonctions ont été ajoutées dans de de segments mémoire : lecture, nombreux processeurs : lecture-écriture), -- leur disponibilité (en mémoire vive -- la pagination a résolu le problème ou secondaire), de la gestion automatique des mé­ -- etc. moires principales (machine ATLAS de l’Université de Manchester en 1962) ; Machine Multics -- l’évolution de la vitesse des proces­ seurs par l’utilisation d’architectures En 1964, un consortium consti- internes complexes (pipe-line, exé­ tué du MIT, des laboratoires BELL, et cution dirigée par les données…) ; de General Electric décida d’étudier un -- la transposition matérielle ou micro- nouveau système d’exploitation, appelé programmée de fonctions systèmes Multics (Organik, 1972) fondé sur les (gestion de la mémoire segmentée, nouveaux concepts qui émergeaient gestion des processus et des synchro­ des universités et des constructeurs. Ce nisations, multitraitement, virtualisa­ système est surtout connu pour : tion, amélioration de la sécurité par des anneaux de protection), ce qui -- la gestion segmentée de la mémoire : nécessite l’adjonction de nouvelles les segments représentent une divi- instructions très spécifiques. sion fonctionnelle de l’espace de travail ; La caractéristique discriminante -- la gestion des processus et des des machines-système est l’utilisation de synchronisations (en logiciel sur descripteurs utilisés par le matériel pour Multics) ; accéder aux différents objets manipulés -- son écriture en langage évolué (PL1) ; -- l’utilisation semi-matérielle d’an- moires à tores). Ceci provoqua l’arrivée neaux de protection ; d’une floraison de machines-système -- la pagination (matérielle) servit à prototypes issues de l’université et de construire une énorme mémoire vir- l’industrie : tuelle englobant tous les fichiers et les accès aux périphériques. -- le GE645 du projet Multics que nous avons déjà cité ; Pour que les temps d’exécution de -- le MU5, de l’université de ces fonctions restent raisonnables, des Manchester1 ; extensions du matériel furent réalisées, -- le Level 64 d’Honeywell-Bull ; surtout pour la segmentation. L’ordinateur -- etc. utilisé, un GE635 de General Electric fut modifié par le MIT et rebaptisé GE645. Il À la fin des années 1970 de nou­ servit de modèle à cette nouvelle lignée. veaux projets furent lancés :

La complexité de Multics incita -- le Solar 16 de Télémécanique pour le à la création d’un système plus simple temps réel qui possédait des instruc- appelé Unix qui fonctionnait sur des ma- tions machines spécifiques pour la chines standards, en particulier les Vax de synchronisation des tâches; Digital Equipment et les machines SUN, -- l’Intel iAPX 432 bi-circuits, (déjà qui n'avaient pas les caractéristiques des cité dans les machines-langage) ; machines-système. Une version d’Unix -- l’Intel 286, qui fut une première ten- appelée a été adaptée aux proces- tative d’évolution de la gamme x86 seurs x86-amd64 des ordinateurs person- vers les machines-système. nels avec un grand succès commercial. Toutefois cette adaptation n’utilise pas la mémoire segmentée du x86. Elle la Les machines de série recouvre par des segments géants pour la transformer en mémoire plate c’est-à-dire Plusieurs de ces prototypes débou- non structurée. chèrent sur des séries :

-- le GE 645 donna naissance à l’Ho- Les prototypes neywell 8180, puis au Bull DPS 8000 Multics ; Les ordinateurs de la fin des années -- le MU5 donna naissance à la ligne 1960 et du début des années 1970 béné- des ICL 2900 ; ficièrent d’évolutions technologiques qui leur permirent d’accroître fortement leur

complexité (circuits intégrés de faible 1 « MU5 », Manchester University [URL : http://www. complexité, microprogrammation et mé- cs.manchester.ac.uk/about-us/history/mu5/].

48 49

-- le Level 64 donna naissance aux La saga des RISC lignes des Bull-GE GECOS 7, Bull DPS 7/70002 et à celle des NEC Le déplacement de fonctions du ACOS 4 ; logiciel vers le matériel n’a pas eu que -- Télémécanique commercialisa la des avantages. D’abord, ces fonctions ligne des Solar 16 eut un grand succès se sont trouvées de fait figées, tandis commercial. que les idées évoluaient rapidement. Ceci a parfois obligé des logiciels plus récents à contourner ces mécanismes Cas des x86 pour retrouver leur liberté. Ensuite, les processeurs, surchargés par ces fonc- Le microprocesseur Intel 386 et tions complexes devenaient plus lents, ses descendants sont l’exemple le plus plus complexes, donc plus difficiles à remarquable de l’évolution d’une lignée produire et plus chers. de machines-système. L’Intel 286 ne fut utilisé que comme un super 8086 à cause En 1975, John Cock, chercheur d’erreurs de définitions qui empêchèrent chez IBM, proposa de réaliser des ma- de l’utiliser comme une machine-sys­ chines plus simples (IBM 801), quasi- tème. Par contre, l’Intel 386 fut un succès ment réduites à l’essentiel, appelées des qui permit de développer des systèmes RISC (pour Reducted Instruction Set d’exploitation modernes comme les Computers­) (Étiemble, 1991). De telles Windows, OS2 et de supporter Unix, machines se développèrent dans les Linux et Mac-OS. Le passage à 64 bit années 1980. Outre un fort effet de mode, proposé par AMD supprime de fait la leur vitesse d’exécution s’est trouvée segmentation. Il est devenu le standard doublée, mais leurs programmes s’étant amd64 utilisé par tous les constructeurs allongés compte tenu de la faible expres- de ce type de circuit. sivité du code des premiers RISC com- pensaient cet avantage… Ces processeurs ont traversé plus de 30 ans d’évolutions de l’informatique. La mode des RISC rendit obsolète Leur passage aux multi-cœurs et l’utilisa­ une partie des machines complexes, ap- tion de techniques d’exécution très avan­ pelées CISC (pour Complex Instruction cées leur donne une position dominante Set Computers) qui virent leur marché se dans tous les domaines de l’informatique, réduire. À part les x86-amd64, les autres des postes de travail aux superordinateurs. gammes de machines complexes dispa- rurent ou furent réduites à des logiciels 2 Cf. les textes sur le GCOS 7 sur le site de la Fédération d’émulation sur PC. des Équipes Bull, FEB-Patrimoine [URL : http://www. feb-patrimoine.com/projet/gcos7/gcos7.htm] et [URL : http://www.feb-patrimoine.com/projet/gcos7/gcos7- Vers le milieu des années 1990 un system-architecture.htm]. nouveau mode d’exécution appelé data- flow restreint vint toucher le monde des À titre de conclusion x86 et quelques RISC « assagis » par l’usage d’instructions complexes (comme L’informatique est une pure pro- les ARM et les IBM Power). Ce mode duction humaine ; une myriade d’autres d’exécution, couplé à l’évolution tech- chemins auraient pu être pris pour traiter nologique, a relancé la course à la puis- l’information. Comme d’autres produc- sance et n’a été freiné que par la chaleur tions humaines, elle est soumise à des dégagée. Grâce à un traducteur matériel effets de mode. Longtemps celle-ci a en ligne, les codes complexes se sont orienté ses recherches vers l’étude de pro- trouvés être transcrits en codes spéci- cesseurs qui se voulaient plus pratiques et fiques, adaptés au matériel, ce qui donne surtout plus performants. De manière sous- une quasi indépendance entre l’architec- jacente, une âpre lutte s’est développée ture interne de la machine et son code entre la complexité et la simplicité, toutes instruction qui devient donc une sorte de deux vues comme le meilleur moyen d’at- langage de programmation de bas niveau teindre l’efficacité. En fait, l’expérience a n’ayant plus qu’un rapport lointain avec montré que celle-ci se situait souvent dans la structure physique du processeur. les choix intermédiaires.

Avec ce regain en performance L’évolution des langages et for- des CISC, les RISC perdirent leurs malismes a structuré la pensée, donc la avantages, et beaucoup d’entre eux re- mode informatique, d’où un effet certain joignirent le musée des idées de l’infor- sur l’architecture visible des processeurs matique. Quelques-uns (ARM et POWER qui ont inclus ces mécanismes, ou au d’IBM) adoptèrent des instructions plus moins leurs soubassements, dans leurs complexes­ qui leur permirent de devenir architectures. L’histoire aurait pu conti- aussi efficaces que les CISC. nuer encore longtemps si deux facteurs n’étaient pas venus modifier son cours.

En premier lieu, la thésaurisation des logiciels est devenue une néces- sité vue l’énorme volume de logiciels produits. Celle-ci n’est possible que dans un contexte de stabilité des forma- lismes d’écriture des programmes, ce qui a poussé fortement les processeurs à être compatibles de manière ascen- dante (c’est-à-dire capable d’exécuter des programmes écrits pour leurs prédé- cesseurs), ce qui a fini par bloquer toute évolution des machines virtuelles.

50 51

En second lieu, l’arrivée des sys- qui semblent buter sur une limite dif­fi­ tèmes distribués et à fort parallélisme a ci­lement dépassable de 2,5 instructions reporté l’attention des chercheurs vers par cycle d’horloge, laissant la technolo- les techniques de parallélisation et d’in- gie devenir l’unique facteur d’évolution. terconnexion des processeurs. Ceux-ci Seule, la famille des amd64 véhicule sont devenus de simples moyens techno- encore le concept de machine-système logiques, dont la nature n'a plus vraiment qui s’éteindra si l’évolution s’oriente vers d'importance. l’autre voie, et ceci dans l’indifférence la plus totale. Les machines-langage et les Les machines-langage ont disparu machines-système constitueront alors face à la puissance et au coût des machines une sorte d’antiquité de l’informatique standards fabriquées en beaucoup plus pleine de beaux monuments… grand nombre. Les machines-système se sont réduites aux familles x86-amd64. Celles-ci occupent une forte position dans toutes les branches de l’informatique, face aux ARM qui ont presque conquis la totalité du large marché des applications embarquées et portables.

Pour résumer, la mode et les cher- cheurs se sont désintéressés des proces- seurs pour se consacrer aux systèmes parallèles en utilisant les processeurs disponibles sans trop se soucier de leurs spécificités. Pour des raisons commer- ciales, ces survivants se sont réduits à deux voies concurrentes :

-- une famille de processeurs-système : les x86 de 32bits qui ont évolué en amd64 de 64 bits, principalement fabriqués par Intel et AMD ; -- deux familles de RISC complexi- fiés : la famille des ARM issus de l’informatique embarquée et celle des Power développée par IBM.

Tous ces processeurs utilisent des techniques d’exécution parallélisées Bibliographie plan calcul, l’émergence d’une science. Paris : PUPS.

Anceau F. (2000). « De von Neumann aux Schoellkopf J.-P. (1977). « Machine super-microprocesseurs ». In Y. Michaud (éd.), PASC-HLL : Définition d’une architecture pipe- Université de tous les savoirs. Vol 5, Paris : line pour une unité centrale adaptée au langage Odile Jacob. PASCAL ». Thèse de 3e cycle en informatique, INPG, Grenoble. Anceau F., Baille G. & Schoellkopf J.-P. (1977). « Machine informatique électronique Tools B.A. (1992). ADA, The enchan- destinée à l’exécution parallèle d’un langage tress of numbers: A selection from the letters of post-fixé ». Brevet n° 2 325 985, ANVAR. Lord Byron’s daughter and her description of the first computer. Mill Valley, Ca. : Strawberry Bellec J., Chain T., Humblot D., Joly Press. C. & Lepicard G. (1989). « De Charlie au DPS7000… 15 ans de BULL DPS7 ». Édition semi-interne Bull S.A., « Méthodes et Informatique ».

Böhm C. & Jacopini G. (1966). « Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules ». Communications ­ of the ACM 9 (5), pp. 366-371.

Chevance R.J. (1974). « A COBOL Machine ». ACM Sigplan Notice, 9/8, New York : ACM, pp. 139-144.

Étiemble D. (1991). Architecture des processeurs RISC. Paris : Armand Colin.

O’Connor M. & Tremblay M. (1997). « Picojava-1: The Java Virtual Machine in Hardware ». IEEE Micro, 17/2, pp. 45-47.

Organik E.I. (1972). Multics Systems: An Examination of its structure. Cambridge : MIT Press.

Organik E.I. (1973). Computer System Organization. Academic Press.

Palus M. (2006). « Étude et validation de l’architecture d’une machine Java de hautes performances ». Thèse de Doctorat en informa- tique, Université Paris 6.

Mounier-Kuhn P. (2010). L’informatique en France de la seconde guerre mondiale au

52 53

Enquête d’acteur Émergence des systèmes d’exploitation comme discipline

Claude Kaiser Cédric, Cnam.

Nous présentons ici le contexte dans lequel Ce qui suit est la chronique d’années se sont développés les systèmes d’exploitation de gloire pour les systèmes d’exploitation, des ordinateurs et comment une nouvelle relatée avec la subjectivité d’un témoin discipline a pu émerger à part entière pendant proche1. Cette vision de l’émergence de

Résumé les décennies 1960-1970. Sont abordés la discipline des systèmes d’exploita- successivement l’évolution très rapide et tion des ordinateurs durant les décennies multiforme de l’informatique, les nombreux 1960-1970 s’appuie sur mon expérience projets dans l’industrie en intense professionnelle et sur mes archives. collaboration avec les centres de recherche, la variété des systèmes d’exploitation En 1960 un calculateur digital est développés, le fort engagement académique volumineux, il remplit plusieurs armoires avec des revues et des thèses, la reconnaissance techniques rangées dans une grande salle de cette discipline en 1971 suivie de la de calcul. Il est lent et a peu de mémoire. publication de livres d’enseignement. L’article Par exemple l’IBM 7090 a un cycle de présente aussi l’effort français dans ce domaine et l’introduction de son enseignement 1 Les sources utilisées pour rédiger cet article ont été au Cnam en 1974. essentiellement mes archives personnelles : bibliographies citées dans des thèses d’État, actes de séminaires et colloques organisés à l’IRIA (Institut de Mots-clés : systèmes d’exploitation, science Recherche en Informatique et Automatique, devenu en informatique, industrie, centres de recherche, 1979, et jusqu’à ce jour, l’Institut National de Recherche recherche et développement. en Informatique et Automatique - INRIA), livres rédigés en collaboration. Elles furent complétées par quelques recherches sur le Web. La liste des archives originales est donnée en annexe. base de 2 microsecondes et 128 kilo- xve siècle pour désigner une branche de octets de mémoire centrale. Le système la connaissance, une matière enseignée. d’exploitation qui, à l’époque, est défini Une discipline scientifique émerge à la comme « l’intermédiaire entre l’utilisa- suite de nombreuses réalisations et expé- teur d’un calculateur et le matériel » ne rimentations techniques et scientifiques, peut pas être un gros programme, faute de dans un domaine bien délimité, suivies de place en mémoire. réflexions pour dégager les abstractions, les lois ou les concepts communs présents En 1975 un calculateur – il a changé dans ces travaux. Quand cet ensemble de nom et s’appelle maintenant un ordi- commun de connaissances a recueilli nateur – occupe toujours une salle de l’adhésion des principaux protagonistes, calcul, mais il a gagné en puissance, il est il peut faire l’objet d’un enseignement plus rapide, il a plus de mémoire et plus destiné à transmettre le savoir et à former de périphériques. Par exemple le VAX de nouveaux acteurs. 11/70 de DEC2 a un cycle de 200 nano- secondes et une mémoire centrale de 4 Appliquées au domaine des systèmes mégaoctets. L’ordinateur est devenu très d’exploitation, ces étapes vont guider ma complexe et un système d’exploitation est présentation. Après avoir indiqué les pre- indispensable. Celui-ci est maintenant un miers grands projets qui ont utilisé des programme de très grande taille, parmi les calculateurs dès 1960, on montre le déve- plus gros et les plus complexes réalisés. Il loppement de 1956 à 1978 de systèmes remplit désormais essentiellement deux d’exploitation de divers genres, tant dans fonctions complémentaires : fournir aux l’industrie que dans les universités, le utilisateurs simultanés une interface plus fort engagement académique qui l’a ac- commode que celle de la machine phy- compagné et la reconnaissance formelle sique pour que chacun puisse program- de cette nouvelle discipline en 1971. On mer ou exploiter ses applications ; gérer verra comment cette discipline est née les ressources de cette machine pour les aux États-Unis et que la participation des allouer aux multiples activités qui se les Européens a surtout été britannique. On partagent (Krakowiak & Mossière 2013 ; se penchera néanmoins sur les travaux Kaiser 2015a). faits en France et l’introduction d’un en- seignement au Cnam. Selon le dictionnaire Le Robert, le terme « discipline » est utilisé depuis le Pour cette chronique je me suis restreint à ce que je connais le mieux,

2 L’article de Paloque-Berges & Petitgirard, ainsi que écartant des aspects importants comme l’entretien avec Gérard Florin, un collaborateur proche l’évolution de l’architecture matérielle de C. Kaiser au Cnam, reviennent sur l’importance des des ordinateurs, les bouleversements du machines de DEC dans l’histoire de l’informatique et des systèmes (cf. le premier volume de ce double contexte commercial et la mutation des numéro). milieux professionnels et sociétaux.

54 55

Dès 1950, exemples dans l’encadré 1, s’appuient des projets industriels et sur des calculateurs spécifiques et dans gouvernementaux de très chaque projet des logiciels spéciaux sont grande taille utilisent des développés pour piloter ces calculateurs calculateurs digitaux et les matériels connectés. Il n’y a pas encore de système d’exploitation bien Aux États-Unis, dès 1950, de grands individualisé. projets militaires et civils font appel à ce qu’on appelle encore à l’époque des « calculateurs digitaux » (digital compu- ters). Des financements privés ou publics Un contexte industriel via la DARPA (Defense Advanced Re- évoluant rapidement search Project Agency), la NSF (Natio- nal Science Foundation), soutiennent les Développements constants de recherches nécessaires. Participent à ces nouveaux calculateurs projets des sociétés comme Univac, IBM, TRW, Burroughs, Control Data, RCA, Pendant ces décennies 1960 et General Electric. En Europe apparaissent 1970, on assiste à des progrès techno- plus tard des projets analogues. Tous logiques rapides et importants (avec ces projets, dont nous donnons quelques en 1958 les circuits intégrés, en 1963

Quelques projets américains

1950 Système SAGE, surveillance aérienne USA, avec matériel IBM.

1950 Naval Tactical Data System (NTDS), avec machines Univac.

1960 Système SABRE, pour la réservation aérienne (matériel IBM).

1965 Electronic Switching System de Bell Telephone, par Western Electric.

Quelques projets européens

1959 CERN, système de contrôle du PS (Proton Synchrotron).

1963 SENIT pour la marine française de surface, HALIOTIS pour les sous-marins.

1967 EUROCONTROL, contrôle aérien en Europe.

1968-73 SNC Système National de Conduite du dispatching EDF (avec CAE 9040).

Encadré 1 - Projets des années 1960-1970 avec des calculateurs digitaux le CMOS3). Selon la « loi de Moore », l’architecture pour chacun de ces aspects le nombre de transistors dans une puce requiert une structuration particulière des double tous les deux ans. Il en résulte éléments du système d’exploitation. La une croissance exponentielle de la per- cohabitation de trois hiérarchies peut en- formance de l’unité centrale et de la taille traîner des contradictions et il faut éviter des mémoires, une complexification que cela soit préjudiciable aux objectifs de l’architecture des ordinateurs et un ou au fonctionnement du système. Selon accroissement de leur fiabilité. Cela en- qu’on donne plus d’importance à l’un des traîne une extension explosive du champ aspects, on aboutit à un type de système de l’informatique, notamment de l’infor- plutôt qu’à un autre. Ainsi à partir de 1956 matique de gestion, et une expansion sont développés des systèmes d’exploi- continue du marché des calculateurs. La tation de conceptions diverses et de plus complexité croissante des ordinateurs et en plus complexes tant dans le domaine de leurs applications rend indispensable privé que public. Les sociétés commer- une aide pour leur exploitation. ciales comme IBM, Ferranti, Burroughs, DEC, CII, ou Bull demandent au système d’exploitation d’optimiser le flux des pro- Un flux régulier de systèmes grammes à traiter séquentiellement (batch d’exploitation nouveaux et variés processing) tandis que des universitaires, dans l’industrie et la recherche à au MIT, à Berkeley, à Michigan, expéri- partir de 1956 mentent l’accès direct au calculateur par des utilisateurs simultanés (time-sharing). Les industriels américains, en forte concurrence commerciale, ont construit Les premiers systèmes d’exploitation des calculateurs dits universels, c’est-à- considèrent un seul programme à la fois dire destinés à de nombreux contextes puis de plus en plus de programmes sont d’utilisation. Les systèmes d’exploitation, traités simultanément, passant donc de la que les Anglo-Saxons ont appelés ope- monoprogrammation à la multiprogram- rating systems, doivent s’adapter à cette mation. Une très étroite coopération entre approche. En 1975 un système d’exploi- les concepteurs de systèmes commerciaux tation doit traiter trois aspects majeurs : et les chercheurs universitaires existe, et l’accès à l’information, la gestion des cette particularité américaine engendre des ressources et la synchronisation des pro- résultats significatifs. L’encadré 2 donne cessus4 concurrents. L’optimisation de un aperçu chronologique de l’apparition des systèmes d’exploitation avec quelques jalons importants et montre la grande 3 Complementary metal oxide semi-conductor. variété des approches. On fait apparaître 4 Un programme est une entité passive, décrivant une entre parenthèses les noms des principaux suite d’instructions. Un processus est son pendant dynamique, une entité active qui représente l’exécution concepteurs connus. Cette modalité sera de cette suite d’instructions par l’ordinateur. gardée pour la suite des présentations.

56 57

1956 le premier moniteur d’enchaînement : GM/NAA est réalisé pour IBM 704, (Patrick, Mock) suivi en 1959 par IBSYS pour IBM 7090/7094. 1961 le premier système en temps partagé, CTSS est réalisé au MIT sur IBM 7094 (Corbató, Dagget, Daley). 1961 Ferranti, à Manchester en Grande-Bretagne, introduit la pagination câblée pour l’ATLAS (Kilburn, Edwards, Lenigan, Sumner). 1962 le premier système multiprocesseur commercialisé l’est par Burroughs avec une machine et un système Algol, le MCP B5000/5500. 1964 la série 360 d’IBM est annoncée avec un ambitieux système OS/360, avec un moniteur d’enchaînement traitant en parallèle la sortie des résultats d’un programme terminé, l’exé- cution du programme en cours et l’entrée du programme suivant à exécuter (batch with spooling). Cette série va permettre à IBM de conquérir le marché, grâce à un excellent débit pour le traitement séquentiel des programmes et une politique commerciale efficace. Mais le projet, développé entre 1964 et 1967, prend un retard considérable qui doit être comblé par des systèmes moins ambitieux (comme DOS 360) et il a un coût faramineux (cf. Brooks, 1975). Il y aura plusieurs variantes (PCP, MFT, MVT). 1964 le projet GENIE de temps partagé est développé sur SDS 940 à l’université de Berkeley (Lampson, Thacker, Deutsch). 1965-1970 le système MULTICS est réalisé au MIT, avec des innovations majeures qui vont marquer la discipline (Corbató, Dennis, Denning, Saltzer, Schroeder, et de nombreux autres acteurs ; y collaborent les Français Pouzin et Bensoussan). 1967 le MTS, Michigan Time-sharing System, est construit pour un IBM 360-67 à l’université de Michigan (Arden, Galler, Pinkerton). 1967 IBM développe CP/CMS, générateur de machines virtuelles à Cambridge Massachus- setts aux États-Unis et au centre scientifique IBM de Grenoble (y participent les Français Auroux, Bellino, Hans). 1969 aux Bell Labs est créé UNICS, mono-utilisateur présenté comme un clin d’œil à MULTICS multi-utilisateur (Ritchie, Thomson). Il sera rapidement suivi par l’UNIX multi-utilisateur. 1970 TOPS-10, puis TENEX (BBN) sont développés pour DEC PDP 10 (Bobrow, Murphy), qui, en dépit de leur faible diffusion commerciale, ont influencé les méthodes de conception et de développement des systèmes. 1970 en France Honeywell BULL annonce la série 60 avec le niveau 64, puis GCOS/64, GCOS7 transactionnel (Lepicard, Carré, Slosberg, Bellec). 1970 en France CII réalise SIRIS 7 pour le CII 10070, ex SDS Sigma 7, puis en 1972 SIRIS 8 pour l’IRIS 80 (réécriture du système par Ichbiah). 1972 IBM annonce VM/370. 1973 au centre de recherche Xerox PARC, l’ALTO OS (Thacker, MacCreight, Lampson, Soltis, Hoffmann, Metcalfe) révolutionne l’interface utilisateur. 1974 Digital Research commercialise CP/M un système d’exploitation pour Intel 8080, l’un des premiers microprocesseurs (Kildall). 1975 l’université Carnegie Mellon étudie le système pour multiprocesseur (Wulf, Levin, Pierson). 1978 le système 38 d’IBM (Soltis, Hoffmann) est commercialisé.

Encadré 2 - Jalons importants de 1956 à 1978 Quelques systèmes d’exploitation tif les applications scientifiques et sont particuliers pour les applications plus proches des systèmes universels. en temps réel

À côté des calculateurs et des sys- Développements de langages tèmes universels, on a continué à déve- de haut niveau utilisables lopper des systèmes particuliers conçus pour l’écriture de systèmes pour commander les procédés indus- triels qui ont des contraintes spécifiques Les premiers systèmes d’exploita- comme le respect des temps de réponse tion étaient simples et écrits en langage ou des échéances de calcul. Pour ce faire, d’assemblage, représentation symbo- ces systèmes privilégient la gestion des lique du langage machine binaire. Puis processus, se restreignent à une alloca- le système d’exploitation est devenu un tion statique des ressources et conservent programme de très grande taille et très en mémoire centrale les données et pro- complexe (il doit en particulier gérer grammes de l’application. Ils sont de l’exécution de programmes concurrents plus petite taille que les systèmes géné- et leur synchronisation, aspect jusqu’alors raux et peuvent être embarqués dans le inconnu et qui est l’objet de recherches). matériel de l’application. L’encadré 3 Écrire ce programme en langage d’as- indique quelques réalisations. Certains semblage est devenu un exercice très systèmes comme le SIGMA 7 de XDS ou difficile et sujet à de nombreuses erreurs. le VMS de DEC ont aussi comme objec- Or durant cette période ont été dévelop-

1961 D-17 Autonetics (guidage Minuteman). 1967 RC 4000 de au Danemark : multiprogrammation avec des processus communiquant par messages (Brinch Hansen). 1968 DEC PDP 8 mini-ordinateur. 1968 CTL (GB) Modular One calculateur à 16 bits, système multitâche, communication par messages, sémaphores… (écrit en assembleur). 1969 XDS 940 puis SIGMA7 pour le temps réel industriel et le calcul scientifique. 1970 Hewlett Packard HP3000. 1972 PLESSEY(GB) System 250 (capabilities - ). 1972 RTOS Data General. 1972 DEC RT-11 pour PDP11. 1976 RTES pour Solar de Télémécanique (Grenoble). 1977 DEC VAX VMS pour le temps réel industriel et le calcul scientifique. 1981 Wind River VxWorks (utilisé par la NASA dans le robot envoyé sur Mars).

Encadré 3 - Quelques systèmes conçus pour le temps réel

58 59 pés des langages informatiques dits de systèmes d’exploitation. Les plus impor- haut niveau, c’est-à-dire plus proches du tants, ceux qui sont indispensables tant langage naturel : Algol (1960), BCPL pour le partage de l’ordinateur que pour (1960), PL1 (1963), PL360 (1968), la protection entre des utilisateurs mul- Pascal (1970), MESA (1970), C (1972). tiples, concurrents et concomitants, sont Les systèmes sont dès lors programmés indiqués dans l’encadré 4. en langages de haut niveau.

Un riche bilan Dispositifs spéciaux de systèmes de conception pour les systèmes d’exploitation et d’architecture différentes

Le développement de systèmes Parmi les systèmes d’exploitation d’exploitation de plus en plus perfor- de conception et de réalisations diffé- mants et fiables devient une nécessité rentes, réalisés de 1956 à 1978 et cités incontournable et un facteur de vente. dans les encadrés 2 et 3, certains ont eu L’architecture des nouveaux calculateurs une influence majeure pour la concep- s’accompagne de dispositifs câblés spé- tion des systèmes ultérieurs et pour la cifiques devenus nécessaires pour les définition de la discipline. Sont remar-

Horloge temps réel, programmable, différente du séquenceur de l’unité centrale (UC), pour mesurer le temps écoulé. Mécanisme d’interruption (1956) et de commutation de contexte, complété par le déroutement, l’appel système, pour intervenir de l’extérieur sur le déroulement d’un programme. Jeu d’instruction permettant la réentrance des programmes et le partage de leur code Protection mémoire permettant de traiter séparément le code et les données. Mode privilégié pour l’utilisation de l’UC par le Système d’exploitation (SE). Canaux d’entrée-sortie autonomes avec accès direct à la mémoire (DMA). Disques durs rapides (1956) pour le va-et-vient des programmes avec la mémoire centrale. Pagination de la mémoire (1962), avec le traitement du défaut de page et la reprise possible et correcte d’une instruction dont l’exécution a été interrompue. Aide à la gestion de la mémoire virtuelle, avec translation de mémoire ou segmentation, ou utilisation d’une mémoire associative. Pagination et mémoire virtuelle permettent la cohabitation concomitante de nombreux programmes en mémoire centrale.

Encadré 4 - Dispositifs câblés inventés pour les systèmes d’exploitation quables pour leur originalité le Burroughs Le contexte académique MCP B5000/55005, première machine et avec forte activité de premier système dont l'architecture est recherche et développement basée sur la sémantique d'un langage, scientifiques ici Algol, le CP/CMS, première machine virtuelle par IBM, le RC 4000 de Regne- C’est vers 1965 que la thématique centralen avec une communication par des systèmes d’exploitation commence messages entre processus, l’UNIX qui à être intégrée pour elle-même dans les se distingue par la création de processus programmes des centres de recherche par copie du contexte du processus créa- tant publics que privés. Des journaux teur, la communication par messages, et scientifiques, des colloques, des écoles l’enchaînement (pipes) de processus ou de recherche sont consacrés aux systèmes encore l’ALTO qui révolutionne l’inter- d’exploitation. L’application d’une dé- face homme-machine. Le succès commer­ marche scientifique fondée sur l’abstrac- cial de l’OS/360 avec MFT et MVT va tion et la virtualisation, accompagnée par permettre à IBM de gagner environ 90 % l’expérimentation de nouveaux concepts, du marché de l’informatique de gestion et permet de dégager des résultats généraux d’en être le leader incontesté tandis que et un fondement commun de connais- VAX/VMS sera le modèle emblématique sances. La diffusion de ces résultats dans de Digital pour conquérir les marchés in- la communauté scientifique les rend ac- dustriels et scientifiques. TENEX apparaît cessibles à tous, permet la vérification de comme un modèle d’ingénierie et influen- leur bien-fondé et leur confère une portée cera beaucoup VAX/VMS. Enfin certains générale. Des thèses analysent les pro- systèmes (CTSS, GENIE, MULTICS, blèmes rencontrés et dégagent les aspects CP/CMS) sont le résultat de projets de majeurs de cette discipline naissante. recherche qui comme on le verra dans le chapitre suivant sont accompagnés d’un fort engagement académique. Une voie originale : « Capability Based Computer Systems »

En parallèle avec les voies commer­ ciales et académiques qui vont mener à la définition de la discipline, il faut citer une approche originale centrée sur la protection de l’accès aux composants du système d’exploitation. Le système est structuré en éléments coopérants dont l’accès par un autre élément n’est 5 On lira avec profit les ouvrages d’E. I. Organick, sur possible que par une clé (capability) qui Burroughs (1973) et sur MULTICS (1972). figure dans de la mémoire protégée et qui

60 61

1967 Chicago : Magic Number Machine (Fabry). 1968 Berkeley : CAL-TSS System (Lampson, Sturgis). 1972 Plessey (GB) : System 250 (England). 1973 Cambridge (GB) : CAP Computer (Wilkes, Needham). 1974 Carnegie Mellon University : HYDRA (C.mmp ; Wulf). 1978 IBM : System 38 (puis AS 400). 1981 Intel : IAPX 432.

Encadré 5 - Les systèmes d’exploitation à capabilities n’est modifiable qu’en mode spécial. À industriels ont été créés spécialement. chaque acteur est associée une liste de Citons par exemple : clés (capability list) qui identifie tous les éléments, matériels ou logiciels, -- 1960 Centres scientifiques IBM : auxquels il peut accéder et pour quelle Yorktown Heights, Cambridge utilisation. Scientific Center (CSC) -- 1967 Centre scientifique IBM Gre- Regroupés sous le vocable capa- noble (Duby, Hans, Bellino, Auroux) bility based systems, apparaissent des -- 1970 Centre scientifique CII Gre- notions comme l’adressage uniforme, noble (Bolliet, Verjus, Chupin, les objets, les domaines d’exécution et Balter) le type d’accès. Les résultats de cette -- 1970 PARC, centre Xerox à Palo Alto voie de recherche ont été exploités par (Taylor, Lampson, Kay, Thacker) quelques industriels, comme Plessey, IBM et Intel. Les systèmes réalisés selon cette voie sont présentés dans le livre de Prototypes de systèmes Henry Levy, Capability Based Computer en Europe et en France Systems (1984) qui en donne une descrip- tion très complète. Le développement aux États-Unis de la recherche universitaire sur les sys- tèmes d’exploitation a suscité en Europe Création de centres des réalisations de prototypes. de recherche industriels travaillant sur les systèmes À de très rares exceptions près, la collaboration exemplaire entre industriels Étant donné l’importance fonda- et chercheurs publics aux États-Unis mentale du développement de systèmes n’a pas eu lieu en France, les industriels d’exploitation, des centres de recherche français préférant à l’occasion passer des En Europe

1968 Eindhoven (Pays-Bas) : THE (Dijkstra, Habermann). 1968 (Grande-Bretagne) : EMAS pour ICL System 4-75 (Whitfield, Shelness, Stephens, Wight). 1971 Manchester (Grande-Bretagne) : MU 5 multiprocesseur (Sumner, Woods, Kilburn, Morris, Rohl). 1973 Cambridge (Grande-Bretagne) : CAP Computer (Wilkes, Needham).

En France

1966 Grenoble : Système en temps partagé 1401/7044 IBM (Auroux, Bellino). 1968 Grenoble : DIAMAG2, Système conversationnel à accès multiple (Bellot, Siret, Verjus). 1967 CERA SupAéro Paris : Système SAM sur CII 10070 (Rossiensky, Tixier). 1968-1972 IRIA Rocquencourt : Système ESOPE sur CII 10070 (Bétourné, Ferrié, Kaiser, Krakowiak, Mossière)6. 1969 Paris : Un système de multiprogrammation sur NCR 4130. (Girault). 1972 Rennes : Système SAR (Verjus, Trilling, André, Herman…). 1972-1975 CII Louveciennes : Projet Y (Derville, Chevance, Mansion). 1975 Grenoble : Système GEMAU (Guiboud-Ribaud, Otrage, Briat, Balter, Rousset de Pina) sur IRIS 80.

Encadré 6 - Quelques prototypes de systèmes d’exploitation en Europe

contrats6 avec les universités américaines7. Publications scientifiques, L’encadré 6 indique quelques prototypes congrès, écoles de recherche de systèmes d’exploitation réalisés en Europe pendant cette période. À partir de 1967, les principales so- ciétés savantes en informatique ont créé des publications spécialisées ou donné de la place aux systèmes d’exploitation dans les revues déjà existantes. 6 L’histoire de la réalisation de ce prototype a été publiée dans Bétourné & al., 2004. Aux États-Unis cela concerne 7 Parmi ces rares exceptions, en 1962 la collaboration de la société Mors, devenue ensuite Télémécanique, l’Association for Computing Machi- avec le laboratoire d’automatique de Grenoble et en nery (ACM) avec les Communications 1967 et 1970 la collaboration des centres scientifiques of the ACM (CACM), Journal of the IBM et Bull de Grenoble avec l’IMAG (Institut d’informatique et mathématiques appliquées de ACM (JACM), l’Institute of Electrical Grenoble). and Electronics Engineers (IEEE) avec

62 63 les Transactions on Computers, puis les accueille dès 1967 des publications sur Transactions on Operating Systems, et les systèmes d’exploitation. IBM qui crée l’IBM Systems Journal en 1962. En Grande-Bretagne, la British Des colloques spécialisés, des ses- Computer Society initie The Computer sions entières de congrès, des écoles de Journal. recherche sont désormais dévolus aux systèmes d’exploitation. En France, l’Association française de Calcul et de Traitement de l’Information­ (AFCALTI) devenue en 1964 Thèses sur l’Association­ Française d’Informatique­ les systèmes d’exploitation et de Recherche opérationnelle (AFIRO), puis en 1970 l’Association ­Française Les premières thèses de doctorat pour la Cybernétique Économique et (PhD) sur les systèmes d’exploitation Technique (AFCET), voit sa revue sont soutenues aux États-Unis à la suite Chiffres devenir en 1967 Revue fran- des prototypes réalisés dans les univer- çaise d’Automatique­ Informatique et sités (MIT, Berkeley et Michigan prin- Recherche Opérationnelle­ (RAIRO). Elle cipalement). Quelques thèses parmi les

CACM en 1967 : Premier SOSP (Symposium on Operating Systems Principles). Congrès IFIP avec forte présence d’articles sur les systèmes dès 1968. Grenoble en 1966 : atelier sur « l’utilisation des ordinateurs en temps réel et temps partagé », organisé par Bolliet. École d’été CEA-EDF-IRIA en 1969 sur les systèmes d’exploitation (avec Dijkstra, Randell et Whitfield) au Bréau-sans-Nappe (France) (cf. figure 1 ci-après). École d’été CEA-EDF-IRIA en 1972 sur les modèles et mesures de systèmes (avec Coffman, Pinkerton et Wescott) au Bréau-sans-Nappe (cf. figure 2 ci-après). IRIA Rocquencourt en 1974 : Premier colloque international sur les aspects théoriques et pratiques des systèmes d’exploitation (Arden, Gelenbe, Habermann, Kaiser, Krakowiak, Randell). IRIA Rocquencourt en 1974 : Workshop on protection in Operating Systems (Ferrié, Kaiser, Lanciaux, Martin). Congrès AFIRO, AFCET avec forte consonance systèmes dès 1967. AFIRO, AFCET : séminaire Structure des machines, animé par Boucher dès 1964. IRIA : séminaire Structure et programmation des calculateurs de 1971 à 1974.

Encadré 7 - Congrès, colloques, écoles, séminaires Figure 1 - École d’été CEA-EDF-IRIA de 1969 sur les systèmes d’exploitation. Conférenciers : E.W.D. Dijkstra, B Randell, H. Whitfield

Figure 2 - École d’été CEA-EDF-IRIA 1972 sur les modèles et mesures de systèmes. Conférenciers : E. Coffman, T.B. Pinkerton, B. Wescott

64 65 plus significatives sont indiquées dans Les premières thèses d’État en l’encadré 8. Elles analysent les princi- France dans cette discipline portent paux problèmes rencontrés et dégagent plutôt sur la conception, la réalisation les concepts majeurs de la discipline. et l’analyse de systèmes d’exploitation. Leurs titres sont expressifs. Elles sont les On y trouve la mise en application des premiers témoins académiques de l’émer- principaux concepts désormais recon- gence de la discipline et diffusent les nus par la discipline. Elles sont pré- avancées obtenues. Toute l’industrie amé- sentées dans les universités de Rennes, ricaine en profite pour des réalisations Grenoble et Paris. futures. Figurent aussi dans cet encadré 8 quelques thèses européennes dans la mouvance des travaux américains.

Thèses de PhD aux États-Unis

1964 Saltzer Traffic control in a multiplexed computer system, MIT. 1965 Scherr An analysis of time-shared computer systems, MIT. 1967 Lampson Scheduling and protection on interactive multi-processor systems, Berkeley. 1968 Fabry List-structured addressing, University of Chicago. 1968 Pinkerton Program behaviour and control in virtual storage systems, Michigan. 1968 Denning Resource allocation in multiprocess computer systems, MIT. 1970 Alexander Time-sharing supervisory programs, Michigan. 1971 Holt On deadlock in computer systems, Cornell. 1972 Goldberg Architectural principles for virtual computer systems, Harvard. 1972 Schroeder Cooperation of mutually suspicious subsystems, MIT. 1974 Redell Naming and protection in extensible operating systems, Berkeley. 1974 Sturgis A post mortem for a time-sharing system, Berkeley.

Thèses de PhD en Europe

1967 Habermann Harmonious cooperation of abstract machines, THE, Pays-Bas. 1972 Khaja The implementation of the name store and the associated replacement algorithm in the MU5 computer, Manchester, GB. 1973 Walker The structure of a well-protected computer, Cambridge GB.

Encadré 8 - Principales thèses de PhD 1973 Verjus Nature et composition des objets d’un système de programmation. Rennes. 1973 Bellino Conception et réalisation d’un système à accès multiple. Grenoble. 1973 Hans Mécanismes pour systèmes générateurs de machine virtuelle. Grenoble. 1973 Kaiser Conception et réalisation de systèmes à accès multiple : gestion du parallélisme. Paris. 1973 Krakowiak Conception et réalisation de systèmes à accès multiple : allocation de ressources. Paris. 1973 Gelenbe Modèles de comportement de systèmes informatiques. Paris. 1974 Anceau Étude des systèmes hiérarchisés de ressources. Grenoble. 1974 Lenfant Comportement des programmes dans leur espace d’adresse. Rennes. 1975 Guiboud-Ribaud Mécanismes d’adressage et de protection dans les systèmes informatiques. Application au noyau Gemau. Grenoble. 1975 Brandwajn Équivalence et décomposition dans les modèles à files d’attente. Application à l’évaluation des performances des systèmes d’exploitation. Paris. 1975 Ferrié Contrôle de l’accès aux objets dans les systèmes informatiques. Paris. 1977 Mossière Méthode pour l’écriture des systèmes d’exploitation. Grenoble. 1977 Leroudier Systèmes adaptatifs à mémoire virtuelle. Grenoble. 1977 Potier Modèles à files d’attente et gestion des ressources dans les systèmes. Grenoble.

Encadré 9 - Premières thèses d’État en France sur les systèmes d’exploitation

Et déjà au Cnam, Définition et création des mémoires d’ingénieur de la discipline en 1971

Les premiers mémoires d’ingénieur L’industrie américaine est consciente Cnam sur les systèmes d’exploitation sont de l’importance des systèmes d’exploita- réalisés dans l’équipe de recherche du tion. Un bon système est une nécessité et Centre scientifique IBM de Grenoble et un atout important pour la vente de calcu- soutenus au centre régional Cnam associé. lateurs. Il faut donc former de bons ingé- nieurs pour la conception et la conduite -- 1972 Le Heig : Espace virtuel sous de ces systèmes. Devenu une branche re­ CP/CMS, Cnam Grenoble. connue de l’informatique sur le plan indus- -- 1974 Dupuy : Working set dispatcher, triel, le monde des systèmes d’exploitation Cnam Grenoble. devient une discipline dans les instances

66 67 universitaires à la suite du rapport de 1971 d’exploitation avant de proposer un ensei- de l’Académie nationale américaine d’in- gnement articulé en huit points reprenant génierie et de la publication de nombreux les concepts clés dégagés par les travaux ouvrages d’enseignement supérieur. académiques et reconnus par tous comme fondamentaux. Ce rapport capital est mis en ligne sur internet et disponible gratui- An Undergraduate Course tement (COSINE, 1971). Il situe les rôles on Operating Systems Principles du système d’exploitation selon le plan suivant : L’Académie nationale américaine d’ingénierie a, grâce à un financement de 1. The system defines an extended la NSF (National Science Foundation), language. chargé un comité d’un rapport propo- 2. The system defines an ex- sant le programme d’un enseignement tended machine, e.g., a « virtual supérieur des systèmes d’exploitation. machine ». Ce comité, le COSINE Committee8, était 3. The system creates an environment constitué par d’éminents scientifiques du for efficient program execution. domaine et son rapport de 37 pages peut 4. The system is an information ma- être considéré comme le document fon- nagement system. dateur de la discipline. Ce comité était composé de six membres : Cela définit les fonctions princi- pales du système d’exploitation : étendre -- Peter J. Denning, Chairman, Princeton le langage machine, fournir à l’utilisateur University une machine virtuelle plus commode -- Jack B. Dennis, Massachusetts lnsti- d’utilisation, créer un environnement tute of Technology d’exécution efficace, gérer l’information -- Butler Lampson, Xerox Research du système et des utilisateurs. Le rapport Laboratory,­ Palo Alto propose en outre un enseignement arti- -- Nico Haberman, Carnegie-Mellon culé en huit points : University -- Richard R. Muntz, University of 1. lntroduction California,­ Los Angeles 2. Procedures -- Dennis Tsichritzis, University of 3. Processes Toronto 4. Memory Management 5. Name Management Ils ont commencé par définir de 6. Protection façon plus précise le rôle des systèmes 7. Resource Allocation 8. Pragmatic Aspects.

8 Computer Science in Electrical Engineering Committee. Avant le COSINE

1964 WEGNER. Introduction to system programming, Academic Press. 1968 WILKES. Time-sharing computer systems, Nat. Acad. of Engineering. 1970 ARSAC. Systèmes de conduite des ordinateurs, Dunod. 1970 WATSON. Time-sharing design concepts, Mc Graw-Hill.

Après la parution du COSINE

1972 HOARE, PERROT. Operating systems techniques, Academic Press. 1973 COFFMAN, DENNING. Operating systems Theory, Prentice Hall. 1973 BRINCH HANSEN. Operating systems principles, Prentice Hall. 1974 MADNICK, DONOVAN. Operating systems, Mc Graw Hill. 1974 TSICHRITZIS, BERNSTEIN. Operating systems, Academic Press. 1974 SHAW. The logical design of operating systems, Prentice Hall. 1975 CROCUS. (nom collectif de Bellino, Bétourné, Briat, Canet, Cleemann, Derniame, Ferrié, Kaiser, Krakowiak, Mossière, Verjus). Systèmes d’exploitation des ordinateurs. Principes de conception. Dunod9. 1975 GRAHAM. Principles of systems programming, Wiley. 1975 FREEMAN. Software systems principles. A survey, SRA. 1975 LISTER. Fundamentals of operating systems, MacMillan Press. 1976 HABERMANN. Introduction to operating system design, SRA.

Encadré 10 - Premiers livres d’enseignement de la discipline

De nombreux livres Dans les titres figurent des termes tels que d’enseignement9 théorie, principes, conception logique, fondamentaux, qui dénotent clairement Quelques livres pionniers avaient la volonté d’enseigner une nouvelle dis- décrit des réalisations de systèmes. cipline et pas seulement un lot de tech- Mais après la publication du rapport du niques. Ces ouvrages ne se contentent COSINE Committee en 1971 vont pa- pas d’exposer les principes mais chacun raître désormais des ouvrages présentant d’eux est accompagné d’exercices qui les principes des systèmes d’exploitation. permettent des mises en pratique de ces principes. 9 L’histoire de l’écriture collective de cet ouvrage est relatée dans CROCUS, 1993.

68 69

1971 : Une discipline scientifique : (passage d’un nom désignant un objet principes, concepts, théorie, dans un contexte particulier à l’em- expérimentations placement où l’objet est stocké en mémoire). Dès 1971, dans le COSINE et les ouvrages d’enseignement qui vont suivre, -- Gestion et optimisation des res- émerge désormais la matière d’un ensei- sources : ordonnancement des pro- gnement de la nouvelle discipline. Les cesseurs, partage de la mémoire principaux chapitres sont consacrés aux (pagination à la demande, algo- points suivants : rithmes de remplacement de pages en mémoire centrale, va-et-vient entre la -- Définition précise des rôles d’un mémoire centrale et le disque de pa- système d’exploitation des ordinateurs. gination), localité du comportement des programmes (analyse de leur uti- -- Conception hiérarchique ascendante lisation de la mémoire au cours de avec architecture en couches au-dessus leur déroulement), allocation d’un d’un noyau basique. espace de travail en mémoire cen- trale (Working Set), choix et réglage -- Abstraction et virtualisation du maté- du taux de multiprogrammation, opti- riel, avec les correspondances entre misation des accès aux disques et aux concret et abstrait : mémoires secondaires de stockage. -- processeur  processus -- canaux d’entrées-sorties  -- Permanence et qualité du service : processus évitement de l’écroulement (à la suite -- mémoire physique  mémoire d’une allocation trop optimiste des virtuelle ressources communes), prévention de -- disques  fichiers, espace virtuel l’interblocage (deux processus s’em- pêchent mutuellement de progresser), -- Gestion du parallélisme entre des protection, tolérance aux pannes, processus s’exécutant en conco- sécurité, performances, mesures, mitance et devant se synchroniser modèles. entre eux : paradigmes de cette syn- chronisation (exclusion mutuelle, -- Nécessité d’une démarche de génie lecteurs-rédacteurs, producteurs- logiciel (Software engineering) pour consommateurs, repas des philo- obtenir un système fiable, évolutif, sophes) et leur programmation. adaptable.

-- Gestion de l’information : représen- tation et accès, contrôle de cet accès et du partage de l’information, liaison Reconnaissance de la discipline À la suite d’une révision commen- cée en 1968, la nouvelle classification de • Attribution du prix Turing 1991 leur attribue désormais une rubrique à des pionniers des systèmes entière, sous l’intitulé Operating systems : d’exploitation D.4 OPERATING SYSTEMS (C) Le prix Turing, prix scientifique D.4.1 Process Management de haut niveau considéré comme l’é­ D.4.2 Storage Management qui­valent du prix Nobel pour l’informa- D.4.3 File Systems Management tique, a récompensé certains des acteurs D.4.4 Communications Management de l’émergence de la discipline des sys- D.4.5 Reliability tèmes d’exploitation des ordinateurs. D.4.6 Security and Protection D.4.7 Organization and Design -- 1972 Dijkstra (Algol, science et art D.4.8 Performance des langages de programmation) D.4.9 Systems Programs and Utilities -- 1980 Hoare (définition et conception des langages de programmation) -- 1983 Thompson, Ritchie (théorie des systèmes génériques et UNIX) Quel cours système -- 1990 Corbató (temps partagé, CTSS au Cnam en 1974 et MULTICS) -- 1992 Lampson (systèmes d’exploi- En 1974 le département de Mathé- tation, environnements personnels, matiques et Informatique du Cnam m’a sécurité) demandé de créer des cours sur les sys- tèmes d’exploitation pour les cycles B et C hors temps ouvrable, et pour l’Institut • Classification ACM d’Informatique d’Entreprise (IIE). Je les des systèmes d’exploitation ai enseignés en utilisant comme support le livre CROCUS en cours de publication L’ACM (Association for Compu- (Crocus, 1975). Les cours portaient sur ting Machinery), principale association les concepts des systèmes d’exploitation savante en informatique, a publié en et les techniques associées et étaient ac- 1964 une première classification pour compagnés de quelques exercices dirigés. la Computer Science. Dans cette pre- Les premiers textes polycopiés de cours mière classification les systèmes d’ex- compre­naient les points suivants : ploitation n’apparaissent pas sous leur dénomination mais cachés dans une -- Processus : paradigmes du parallé- sous-rubrique de la programmation, à lisme, sémaphores, interblocage. savoir « 4. Programming ; 4.3 Supervi- -- Gestion de l’information : nommage, sory Systems ». liaison, représentation, mémoire vir-

70 71

tuelle, CLICS (version pédagogique de la Grande-Bretagne et des Pays-Bas. du système MULTICS). Après avoir indiqué les premiers grands -- Allocation des ressources : ordonnan- projets qui ont utilisé des calculateurs cement des processeurs, des disques, dès 1960, on a montré comment le déve- pagination à la demande, localité, loppement exponentiel de calculateurs espace de travail, écroulement, taux nouveaux et variés, de 1956 à 1978, a été de multiprogrammation. accompagné par des systèmes d’exploita- -- Protection : Capabilities et contrôle tion de divers genres, tant dans l’industrie d’accès aux objets. que dans les universités. Parmi ces réa- lisations, certaines relevaient de centres Le laboratoire de calcul du Cnam universitaires et ce fut le début d’un possédait un calculateur Modular One fort engagement académique avec des de la société britannique CTL (Compu- publications et des thèses contribuant au ter Technology­ Limited) avec un mot de passage vers l’abstraction et les concepts. 16 bits, un système d’exploitation multi- Quand, vers 1971, la discipline fut jugée processus (appelé E4) avec une commu- assez bien établie, l’adhésion des indus- nication entre tâches par message et une triels et des chercheurs s’est concrétisée synchronisation par sémaphores. C’était dans le rapport du COSINE qui installa un système dans l’esprit du RC 4000, écrit formellement la discipline et son ensei- en langage d’assemblage, malheureuse- gnement. Quelques données françaises, ment sans documentation du code source issues principalement de mes archives (c’était une politique délibérée de CTL). Il personnelles, permirent de montrer ce qui n’a donc pas pu être utilisé pour les exer- se passait sur un mode mineur en France. cices dirigés10. Enfin, le lecteur aura pu noter l’appari- tion d’aspects précurseurs, tels les sys- tèmes virtuels, l’interface utilisateur ou les microprocesseurs, qui tous, au-delà Conclusion de la période décrite, vont participer à l’effervescence continue de la discipline. On s’est intéressé à l’émergence Celle-ci n’est pas figée !11 des systèmes d’exploitation pendant les décennies 1960-1970, en examinant les développements réalisés essentiellement aux États-Unis chez les constructeurs de calculateurs et dans les universités avec,

à côté de ce lieu majeur, un fort concours 11 Remerciements : Je tiens à remercier les relecteurs qui m’ont aidé à rendre lisible ce qui était au départ une présentation orale s’appuyant sur des projections. Le 10 Pour la recherche en systèmes au Cnam à cette lecteur trouvera bon nombre de ces explications sur les époque, on verra l’article de Paloque-Berges & concepts de la discipline dans (Krakowiak & Mossière Petitgirard dans le premier volume de ce double numéro. 2013, Kaiser 2015a) ou dans le glossaire ci-après. Sources personnelles 1974 François Anceau : « Contribution à l’étude des systèmes hiérarchisés de ressources dans l’architecture des machines informa- Thèses d’État tiques ». Thèse de Docteur es-Sciences Jury : J. sur les systèmes d’exploitation Kuntzmann (président), J. Arsac, L. Bolliet, S. Krakowiak, G. Saucier. Université de Grenoble. 1967 Arie Nicolaas Habermann : « On 315 pages. the harmonious co-operation of abstract ma- chines ». PhD Thesis. Promotor E.W. Dijkstra. 1975 Serge Guiboud-Ribaud : « Méca- Technische Hogeschool Eindhoven. Pays-Bas. nismes d’adressage et de protection dans les 115 pages. systèmes informatiques. Application au noyau Gemau ». Thèse de doctorat d’État. Jury : N. 1973 Jean-Pierre Verjus : « Nature et Gastinel (président), L. Bolliet, C. Kaiser, S. composition des objets d’un système de pro- Krakowiak, F.H. Raymond, J.-P.. Verjus. Uni- grammation ». Thèse de doctorat d’État. Jury : versité de Grenoble. 322 pages. M. Métivier (président), L. Bolliet, C. Coatme- lec, C. Pair. Université de Rennes. 124 pages. 1975 Alexandre Brandwajn : « Équiva- lence et décomposition dans les modèles à files 1973 Jacques Bellino : « Mécanismes d’attente et leur application à l’évaluation des de base dans les systèmes superviseurs : performances des systèmes d’exploitation ». Conception et réalisation d’un système à accès Thèse de doctorat d’État. Jury : J. Arsac (pré- multiple ». Thèse de Docteur es-Sciences appli- sident), C. Bétourné, S. Krakowiak, E. Mourier, quées Jury : N. Gastinel (président), L. Bolliet, M. Nivat. Université de Paris VI. 266 pages. J.-C. Boussard, M. Griffiths, S. Krakowiak. Uni- versité de Grenoble (remerciements de l’auteur 1975 Jean Ferrié : « Contrôle de l’accès à Max Peltier, directeur du Centre Scientifique aux objets dans les systèmes informatiques ». IBM de Grenoble). 156 pages. Thèse de doctorat d’État. Jury : J. Arsac (pré- sident), J.-C. Boussard, P. Feautrier, C. Kaiser, 1973 Claude Hans : « Contribution à J.-P.. Verjus. Université de Paris VI. 134 pages. l’architecture de mécanismes élémentaires pour certains systèmes générateurs de machine vir- 1977 Jacques Leroudier : « Systèmes tuelle », Thèse de Docteur es-Sciences Jury : J. adaptatifs à mémoire virtuelle ». Thèse de Kuntzmann (président), N. Gastinel, L. Bolliet, doctorat d’État. Jury : N. Gastinel (président), M. Griffiths, L. Nolin. Université de Grenoble C. Bocksenbaum, J.-C. Boussard, P. Denning, (remerciements de l’auteur à Max Peltier, direc- S. Krakowiak, J.-P. Verjus. Université de Gre- teur du Centre Scientifique IBM de Grenoble). noble. 403 pages. 123 pages.

1973 Claude Kaiser : « Conception et réa- lisation de systèmes à accès multiple : gestion Ouvrages concernant du parallélisme ». Thèse de doctorat d’État. les systèmes d’exploitation Jury : J. Arsac (président), C. Pair, P. Feautrier, H. Boucher. Université de Paris VI. 251 pages. 1971 Séminaires IRIA. « Structure et pro- grammation des calculateurs ». Éditeurs S. Kra- 1973 Sacha Krakowiak : « Conception et kowiak et C. Kaiser. 217 pages. réalisation de systèmes à accès multiple : allo- cation de ressources ». Thèse de doctorat d’État. 1972 Séminaires IRIA. « Structure et Jury : J. Arsac (président), C. Pair, P. Feautrier, programmation des calculateurs ». Éditeur C. H. Boucher. Université de Paris VI. 213 pages. Kaiser. 275 pages.

72 73

1973 Séminaires IRIA. « Structure et Bibliographie programmation des calculateurs ». Éditeur C. Kaiser. 328 pages. Bétourné C., Ferrié J., Kaiser C., Kra- 1974 Séminaires IRIA. « Structure et kowiak S. & Mossière J. (2004). « ESOPE : programmation des calculateurs ». Éditeur C. une étape de la recherche française en systèmes Kaiser. 101 pages. d’exploitation (1968-72) ». 7e colloque sur l’Histoire de l’Informatique et des Télécom- 1974 « Operating Systems. Proceedings munications. Cesson-Rennes novembre 2004, of an International Symposium held at Rocquen- France. Rennes : Éditions Irisa/Inria-Rennes, court ». Lecture Notes in Computer Science 16, pp. 173-198. Springer Verlag. Edited by E. Gelenbe and C. Kaiser. 310 pages. COSINE (1971). An Undergraduate Course on Operating Systems Principles. Task 1974 « Protection in Operating Systems ». Force on Operating Systems (VIII) of the Na- International Workshop. IRIA/LABORIA. Col- tional Academy of Engineerlng (US) Report of loques IRIA. Edited by J. Ferrié, C. Kaiser, D. the COSINE Committee of the Commission on Lanciaux, B. Martin. 250 pages. Education.

1978 J.-S.. Banino, J. Ferrié, C. Kaiser, D. CROCUS (1993). « Crocus : une étape Lanciaux. Contrôle de l’accès aux objets par- dans l’enseignement des systèmes d’exploita- tagés dans les systèmes informatiques. Mono- tion ». Colloque sur l’histoire de l’informatique. graphie d’informatique de l’AFCET. Éditions Sophia Antipolis, octobre 1993. AFCET. Hommes et Techniques, 104 pages. CROCUS (collectif de Bellino, Bétour- né, Briat, Canet, Cleemann, Derniame, Ferrié, Kaiser, Krakowiak, Mossière, Verjus) (1975). Systèmes d’exploitation des ordinateurs. Prin- cipes de conception. Paris : Dunod12.

Brooks F. (1975). The Mythical Man- Month, Addison Wesley.

Levy H. (1984). Capability Based Com- puter Systems. Digital Press.

Organick, E. I. (1973). « Computer System Organisation : The B5700/B6700 series », Aca- demic Press.

Organick, E. I. (1972). « The Multics System: an examination of its structure ». Cam- bridge, Mass. : MIT Press.

12 Ouvrage disponible gratuitement sous format sur cnam.cnum.fr (grâce à Pierre Cubaud) [URL : http:// cnum.cnam.fr/CGI/redir.cgi?8CA2680]. Webographie Glossaire

Krakowiak S. et Mossière J. (2013). Code : un programme comprend du code et des « La naissance des systèmes d’exploitation. » données (synonyme : instructions). [URL : https://interstices.info/naissance-syste- mes] consulté le 01/08/2017. Désignation : utilisation de noms pour atteindre des objets du système. Krakowiak S. (2014a). « Les débuts d’une approche scientifique des systèmes d’ex- Écroulement : effondrement du système suite à ploitation. » [URL : https://interstices.info/jcms/ de mauvaises allocations de ressource. int_70839/les-debuts-d-une-approche-scienti- fique-des-systemes-d-exploitation] consulté le Information : instruction ou donnée en mémoire. 01/08/2017. Interblocage : situation où des processus s’em- Krakowiak S. (2014b). « La naissance pêchent mutuellement de progresser du génie logiciel. » [URL : https://interstices. info/jcms/ni_79198/la-naissance-du-genie-logi- Mémoire virtuelle : espace d’adressage d’un ciel] consulté le 01/08/2017. processus, virtualisation de la mémoire physique.

Krakowiak S. (2015) « Quelques Multiprocesseur : calculateur avec plusieurs aspects de l’histoire des systèmes d’exploita- unités centrales ou processeurs. tion », Séminaires Histoire de l’informatique et du numérique, au Cnam, conférence de janvier Multiprogrammation : exécution concomi- 2015, video [URL : http://www.musee-informa- tante de plusieurs processus. tique-numerique.fr/] consulté le 01/08/2017. Nommage : organisation des noms des objets en Kaiser C. (2015a). « À quoi sert un mémoire. système d’exploitation ? » [URL : https://inters- tices.info/jcms/p_83884/a-quoi-sert-un-sys- Noyau : partie centrale du SE, on dit parfois teme-d-exploitation] consulté le 01/08/2017. partie enfouie (en anglais kernel).

Kaiser C. (2015b). « Le ballet des pro- Objet : tout composant logiciel ou matériel, cessus dans un système d’exploitation. » [URL : repéré par le système d’exploitation. https://interstices.info/jcms/p_82112/le-ballet- des-processus-dans-un-systeme-d-exploitation] Pagination : découpage de la mémoire en pages consulté le 01/08/2017. de taille fixe.

Processeur : unité centrale, unité active, moteur du calculateur.

Processus : déroulement d’un programme sé- quentiel, abstraction du processeur.

Ressource : matériel ou logiciel, nécessaire pour dérouler un processus.

Sémaphore : mécanisme de synchronisation, introduit par Dijkstra.

74 75

Synchronisation : organisation du déroulement concomitant de processus parallèles.

Système d’exploitation (SE) : logiciel « chef d’orchestre » indispensable pour la bonne utilisa- tion d’un ordinateur (Operating System).

Système de fichiers : ensemble ordonné de fichiers et de catalogues.

Temps réel : se dit lorsque l’exécution est contrainte par une échéance temporelle.

Temps partagé (Time-sharing) : accès si- multané par plusieurs postes d’utilisateurs.

Virtualisation : démarche d’abstraction lors de la construction d’un système.

Working set ou Espace de travail : espace minimal de mémoire centrale nécessaire pour la bonne exécution d’un processus à un instant donné.

77

The History of Unix in the History of Software

Thomas Haigh University of Wisconsin - Milwaukee & Siegen University.

You might wonder what I am doing The “” and here, at an event on this history of Unix. the 1968 NATO Conference As I have not researched or written about on Software Engineering the history of Unix I had the same question myself. But I have looked at many other The topic of the “software crisis” things around the history of software and has been written about a lot by profes- this morning will be talking about how sional historians, more than anything some of those topics, including the 1968 else in the entire history of software2. It NATO Conference on Software Enginee- is usually connected the to 1968 NATO ring, Algol, IBM SHARE and mathema- Conference on Software Engineering, tical software in the 1970s, connect to which is sometimes claimed to be this the origins of Unix. As I worked to pull kind of very broadly based conference in this presentation together I realized that which industrial managers, programmers, some of those connections are clearer and and academics came together. It is also more interesting than I had previously sometimes suggested that this had enor- assumed, to the extent that they challenge mous ramifications for our actual typical us to reinterpret some of what we think programming practice was conducted we know about software history during during the 1970s and later. this era1.

1 This text is the transcript of a keynote talk given at the International symposium “Unix in France and in 2 The software crisis and the NATO conference appear the United States: innovation, diffusion and prominently in Mahoney (1988), Campbell-Kelly & appropriation” organized at Conservatoire national des Aspray (1996), MacKenzie, (2001) and several of the arts et métiers, Paris, France, on October 19th, 2017. contributions to Hashagen & al. (2002). I have a more specific sense of why the product is often larger in size and those things were important. Suggesting slower in execution than need be. The experience with this technique has led that there is a connection of the Software some people to opine that any software engineering conference to the mainstream system that cannot be completed by programming in corporations producing some four or five people within a year packages, accounting, is, according to can never be completed. me, an exaggeration. I believe that the perceived crisis at the end of the 1960s As Fred Brooks, who was overseeing was very specifically in the development the OS/360 development eventually, and of systems software, primarily opera- famously, concluded: “Adding manpower ting systems, which is a category, in that to a late software project makes it later” period, that is still tightly bonded with (1975). To put his argument in economic and computer languages. terms, the marginal benefit that you get from having an extra-programmer is more So what was the software crisis than offset by the increase transaction then? Looking back at the proceedings, costs in coordinating the work of a larger we see that there were indeed, at the group of people. The high profile pro- NATO conference, many people expres- blems of such projects increased interest in sing concern about what was going on finding better ways, which was to be called within the development of operating “software engineering”, although nobody systems. Two systems in particular were at conference knew what that might be. of concern: IBM OS/360 (although none of the thousand people developing it were I have a tangential argument that actually at the conference) and Multics. I would like to share, from my paper Several people developing Multics were “Dijkstra’s Crisis: The End of Algol and at the conference, as well as the three the Beginning of Software Engineering.”3 partners of the project, MIT, General This was written back in 2010 as part of Electrics (GE), and Bell Labs, including the Software for Europe project, for inclu- Edward E. David who was one of the sion in a since abandoned book project. three managers with overall responsibi- I noted that the specific phrase “software lity for the project. He represented Bell crisis” doesn’t actually appear in any of Labs and he wrote in his position paper the quoted dialog or position papers for the for the conference: conference, though it does appear in the in- troduction to the proceedings. My sense is Among the many possible strategies for that it spread and took its modern associa- producing large software systems, only tion with Dijkstra’s Turing award Lecture one has been widely used. It might be labeled “the human wave” approach, for typically hundreds of people become 3 See the draft version [URL: http://www.tomandmaria. involved over a several years period… com/Tom/Writing/DijkstrasCrisis_LeidenDRAFT. It is expensive, slow, inefficient, and pdf].

78 79

“The humble programmer” (1972), a title my argument is that the NATO conference which can be read as a rebuke to the preten- was to a large extent an attempt by those tiousness of the idea of being a “software Algol “refugees” – who quit or wrote mi- engineer”. In a way, this cements retroacti- nority reports – in order to create a new vely the idea that the most important thing community that would preserve that col- that happened at the conference was the laboration but take on a broader focus. declaration of a “software crisis” to which Dijkstra wrote a minority report, signed Dijkstra proposed some solutions. by seven members. The interesting thing about that is that there were many specific You might wonder what Algol criticisms circulating of Algol 68 as a lan- was doing in the title of my paper. The guage, but Dijkstra’s dissent did not really Algol effort launched in 1958, conti- address those at all. Instead it called for a nuing through the 1960s, and was for- philosophical kind of shift from traditional malized in 1962 by IFIP Working Group ideas about the purpose of a programming 2.1. My view is that the Algol effort did language towards the design of systems more than any other project in the history that would enforce good practice in the of computing to create an internatio- development of complex programs. There nal computer science research commu- is a significant kind of overlap between the nity. If you look at how the early Turing participants in the Algol efforts, particular- awards were given, then you see seven of ly ones who were dissatisfied with Algol them awarded to members of the original 68, and the group that were most active groups that defined Algol (in 1958 and in the discussions of the 1968 conference 1960). But in the second half of the 1960s, and in editing the proceedings, which were things took a less happy turn. The group enormously important in shaping how the decided to go with a proposal (adopting a conference was remembered4. draft from ) for what became Algol 68, which was deeply In “Dijkstra’s Crisis...” I argued controversial as it rejected a proposal from that, looking at the trajectories of some Wirth for what became Pascal. Tensions of those individuals, including Dijsktra, only get worse over the next few years and Hoare, Randell, Perlis, Naur, Wirth, etc., when in 1968 the new language (Algol an interesting kind of shared career tra- 68) was approved, the group essentially jectory emerges. Trained in science or fell apart. Eleven working group members mathematics, they worked in early 1960s either resigned or signed minority reports, developing systems software in expressing differences with the direction teams either in marginal manufacturers that the work took. 4 13 of the 28 members of IFIP WG 2.1 active in design If you look at the chronology there, of Algol 68 attended the 1968 or 1969 conference. Naur and Randell edited the proceedings. Naur resigned from 1968 is the same year as the NATO WG 2.1. Randell drafted a minority report opposing Software Engineering conference. Thus Algol 68 and signed Dijkstra's report. (not IBM) or in research settings. They It was with little surprise to any of the were very small groups, and they pro- participants in the Rome conference that no attempt was made to continue duced groundbreaking compilers and the NATO conference series, but the operating systems. By the time of the software engineering bandwagon began NATO conference, they were in a transi- to roll as many people started to use the tion from writing the systems to working term to describe their work, to my mind in corporate research labs or universities. often with very little justification. Reac- ting to this situation, I made a particular So, among that community, the word had point for many years of refusing to use spread concerning the massive scale of the term or to be associated with any IBM’s OS/360 and TSS efforts and their event which used it5. lack of success – what Dijkstra called the “Chinese army” approach and its failure. I think that would capture the atti- I think it was instinctive for them to try tude of some Algol veterans as well. But, to formalize and to institutionalize mathe- I now suspect that there is another kind matical and logical approaches to the de- of response that we can describe to the velopment of system software that came problems discussed at the 1968 NATO naturally from their training and their Conference, beyond the two I have just own experience as being successful in de- described (the people who picked up veloping such systems some years earlier. “software engineering” as an identity and the group that went instead in the After the NATO 1968 conference direction of IFIP Working Group 2.3 and and its much less successful follow up in “formal methods”). Rome in 1969, my argument is that this core Algol dissident group essentially I am going to illustrate this response abandoned the “software engineering” by looking at Douglas McIlroy. His back- project and instead found happiness in ground had something in common with a different IFIP working group (2.3) on the other people I have described. Born “Programming Methodologies”, which in 1932, he had a PhD in applied mathe- was focused on theory. That is where matics, and spent his carrier (1958-1997) ideas such as in Bell Labs, a research institution. He comes from. Randell wrote: “we re- was head of the computing technology garded this group, WG 2.3, as having research group between 1965 and 1986. twin roots, the Algol Committee and Bell Labs had been one of the core part the NATO Software Engineering Confe- of the development of Multics from rence.” (Randell, 2003) 1964 onward. At the beginning of that period McIlroy was deeply involved with Others of course picked up the term “software engineering”, that they dis- 5 “The 1968/69 NATO Software Engineering Reports” carded, and repurposed it. Randell was [URL: http://homepages.cs.ncl.ac.uk/brian.randell/ critical of this and wrote: NATO/NATOReports/].

80 81

Multics, implementing the stopgap PL/1 mething called “Mass Produced Software compiler used in early Multics develop- Components”. Looking at the idea of the ment work. The fact that the project had “software factory”, an idea that was floa- chosen a language for which no compi- ting around at the conference, he argued ler yet existed gives you a sense of the that the idea of subassemblies was the challenges facing operating systems pro- most transferable part of an industrial jects in the era. He was one of the more production that corresponded with the vocal participants in the 1968 NATO idea of modularity6. He also said: conference. My thesis is that the software industry Looking at the chronology here, the is weakly founded, and that one aspect year after that Bell Labs quit Multics, in of this weakness is the absence of a April 1969, is the same year Unix deve- software components subindustry…. The most important characteristic of lopments begins. I am really interested a software components industry is in that early period of Unix history here. that it will offer families of routines The first version of Unix (1971) was for any given job. No user of a parti- used internally for text processing. It was cular member of a family should pay a penalty, in unwanted generality, for rewritten in C in 1973, and in 1975 it the fact that he is employing a standard begins to spread widely outside Bell Labs model routine…. to eventual world domination. One of the best-known works on this history, at least among the historical community, is The Computer Boys Take Unix as a Software Over by Nathan Ensmenger (2010). The Components Factory dissertation it was based on was called “From “black art” to industrial disci- McIlroy made a famous remark at pline,” a title that gives you a good idea the 1968 conference: “We undoubtedly of the arc of the story. In Ensmenger’s produce software by backward tech- telling, the software crisis and the 1968 niques. We undoubtedly get the short end conference were a crucial episode of the of the stick in confrontations with hard- transformation of software from a “black ware people because they are the indus- art” practiced by eccentric and unmana- trialists and we are the crofters. Software geable virtuosos to a highly routinized production today appears in the scale of kind of industrial production. He puts industrialization somewhere below the more backward construction industries.” Crofters are more or less Scottish pea- 6 “Certain ideas from industrial technique I claim are sants, so McIlroy is opposing very small relevant. The idea of subassemblies carries over directly and is well exploited. The idea of interchangeable parts scale, inefficient domestic production to a corresponds roughly to our term ‘modularity’, and is factory. His solution to this was to be so- fitfully respected.” McIlroy’s paper at the conference at the be on an ordinary software project, center of that discussion, calling it “bla- because the level of programming here tantly management oriented”. According will be more abstract.” Among the deve- to Ensmenger “McIlroy rejected the idea lopment teams using these components that large software projects were inhe- to produce application systems, impli- rently unmanageable. The imposition citly a much larger group, I believe that of engineering management methods he thought that the computer itself takes had enabled efficient manufacturing in over the routine parts of programming. myriad other industries, and would not During the discussion at the conference fail to do the same for computer program- McIlroy quipped “It would be immoral ming.” (Ensmenger, 2010, p.197) He also for programmers to automate everybody write that McIlroy’s “vision of a software but themselves.” ‘components factory’ invokes familiar images of industrialization and proleta- Admittedly the metaphors of com- rianization. According to his proposal, ponents, factories, and industrialization an elite corps of ‘software engineers’ were used rather incoherently at the confe- would serve as the Frederick Taylors of rence (Mahoney, 2004). My sense is that, the software industry, carefully orches- when he talked about industrialization trating every action of a highly stratified by software components, McIlroy’s idea programmer labor force.” (ibid.) was that it would allow the users of the components essentially to remain crof- So McIlroy has been cast by histo- ters, producing quick results in groups of rians as the man who brought, or at least no more than four or five people, which tried to bring, Taylorism into the heart as McIlroy’s former manager Edward for software production. Although I have E. David had noted was the only team been thinking for a while about the NATO configuration proven to be effective in conference for years, until last week I had software production during that era. not looked closely at what McIlroy actual- ly wrote or at how he managed his own In sum, my thesis is that McIlroy software projects. Now that I have done, is not talking about a Taylorized vision I don’t see any Taylorism in McIlroy’s of deskilled programming labor, but… text. My reading is that his idea was to about something very much like the eliminate routine work with the aid of ge- project he was about to manage: Unix. A neralized routines, not to deskill program- world in which small teams of eccentric mers. His paper reads: “The personnel men with beards produced remarkable of a pilot plant [producing components] things, thanks to the benefits of reusable should look like the personnel on many codes and modularity. Indeed, McIlroy’s big software projects, with the masses of 1968 paper proposed Bell Labs as an or- coders removed… There will be perhaps ganization that well equipped to produce more research flavor included than might software components:

82 83

Bell Laboratories is not typical of com- Secondly, the quote made me puter users. As a research and develop- wonder about the connection of pipes, ment establishment, it must per force his main technical contribution to Unix, spend more of its time sharpening its tools, and less using them than does to his earlier musings about configurable a production computing shop…. The software components. McIlroy seems to market would consist of specialists in have been thinking about this for years. system building, who would be able I found a document on the Internet, to use tried parts for all the more com- monplace parts of their systems. purportedly from October 11th 1964 in which McIlroy wrote: “We should have ways of coupling programs like garden McIlroy even identified text pro- hoses - screw in another segment when cessing as an area where reusable tools it becomes necessary to manage data in were particularly important. He wrote: another way”7. This could be seen as an “Nobody uses anybody else’s general early statement of the idea realized with parsers or scanners today, partly because the pipe mechanism. In his oral history he a routine general enough to fulfil any said that from 1970 to 1972: particular individual needs probably has so much generality as to be inefficient.” one day I came up with a syntax for the And that of course was the original appli- shell that went along with the piping and cation of Unix a few years later. Ken said, ‘I’m gonna do it.’ He was tired of hearing all this stuff…. He put pipes into Unix. He put this notation into the When he oversaw the Unix project, shell [Here McIlroy points to the board, McIlroy had the perfect opportunity to where he had written f >g> c], all in one practice his beliefs on the management of night…. [M]ost of the programs up until programmer teams. In an oral history in- that time couldn’t take standard input, because, there wasn’t the real need. terview with Michael Mahoney in 1993, They all had file arguments…. Thomp- McIlroy said that “one of the only places son saw that that wasn’t going to fit into where I very nearly exerted managerial this scheme of things, and he went in control over Unix was pushing for the in- and changed all those programs in the same night. I don’t know how. And the clusion of the pipe mechanism. […] From next morning we had this orgy of ‘one time to time,” he would say ‘How about liners.’ Everybody had another one making something like this?’ and then liner. Look at this, look at that. put up another proposal.’”. So firstly, this quote is hard to square with the idea that That’s McIlroy’s description of how he ran projects like Frederick Taylor. By pipes got into Unix. Mahoney asked: “was his own estimation he did little more than there a notion of […] a Unix philosophy almost exert control on a few occasions, giving his talented team great autonomy. 7 See [URL: http://doc.cat-v.org/unix/pipes/]. This is He was also a hands-on contributor to the on an image of what appears to be a page excerpted project, writing some programs himself. from a larger document. or a tool philosophy before pipes or did rather than managerial mechanisms to pipes create it?” According to McIlroy: coordinate the production of extremely complex software systems. One of the Pipes created it…. The philosophy that other things he is sometimes credited everybody started putting forth: “This with is pushing the Unix team to develop is the Unix philosophy. Write programs the system of man pages8. Pipes allow in- that do one thing and do it well. Write teroperability without requiring common programs to work together. Write pro- grams that handle text streams because coding conventions or master planned that is a universal interface.” All of structures. Likewise, man pages were those ideas, which add up to the tool ap- a flexible and minimalist alternative to proach, might have been there in some creating thousands of pages of documen- unformed way prior to pipes. But, they tation in advance of the creation of the really came in afterwards. system as the big projects of the 1960s have attempted. Mahoney had read McIlroy’s 1968 paper and asked if this realized his hopes for software components. McIlroy said: “if you if stand back, it’s the same idea. Parallels between But, it’s at a very different level, a higher mathematical software level than I had in mind.” and Unix

As a historian I do, of course, tend to Another interesting thing was that stand back. From that perspective I think McIlroy was clearly inspired by mathema- the pipe mechanism was not the only tical software. When he is describing the thing that McIlroy contributed to the mo- idea of reusable software components in dularity of Unix. His choice not to impose his 1968 paper, his example, perhaps sur- heavy handed managerial control on the prisingly, is a generator for sine routines. project encouraged or at least permitted the decentralized style that we associate with Unix and which comprises: loosely 8 For example, according to the Wikipedia page dedicated to the system of “man pages” [URL: https:// coupled parts, each part small enough to en.wikipedia.org/wiki/Man_page]: “The first actual be understood easily by an individual; a man pages were written by Dennis Ritchie and Ken Thompson at the insistence of their manager Doug relatively small kernel; different com- McIlroy in 1971.” I do not vouch for the accuracy of mands notoriously written by different this. McIlroy himself attributed the specific format of people in different ways with different man pages to Dennis Richie, though that does not preclude the idea that he had prodded Ritchie to come kinds of expectations for switches; the fact up with something. He noted that “During the system’s that you can choose your own shell, etc. first two years one literally had to work beside the originators to learn it. But the stock of necessary facts was growing and the gurus’ capacity to handle So McIlroy was a leading prac- apprentices was limited.” (See [URL: http://www. titioner of the art of using technical cs.dartmouth.edu/~doug/reader.pdf].)

84 85

He also mentions mathematical routines and configuration of machines that would as the area, as of 1968, where the reuse of facilitate collaboration between different components was most advanced. He men- user organizations. It had open circula- tions: “Choice of Algorithm. In numerical tion of proposals and design documents. routines, as exemplified by those in the It also had the idea that there was a spe- CACM, this choice is quite well catered cific SHARE culture into which new for already. For nonnumerical routines, IBM users had to be indoctrinated before however, this choice must usually be they could be effective participants in decided on the basis of folklore.” the group. The software library had rou- tines contributed by user sites and relied This must be put in the context I on IBM to catalog and reproduce the mentioned earlier, by going back to 1950s code. It classified the routine contributed as I promised I would do, at least briefly, according to a scheme that permitted to in order to look at mathematical software organize it. Contributors were supposed and user groups in the 1950s. McIlroy to be responsible for maintenance. On talked about several sources and possible the standardization side you got a list of producers of software components: “What many standards that SHARE adopted, to about the CACM collected algorithms? share code and practices, to standardize What about users’ groups? What about machine configuration (setting of swit- software houses? And what about manu- ches, control panels, etc.), to standardize facturers’ enormous software packages?” system software (assembler and utility He said that “User’s groups I think can be programs- not supplied by IBM), that dismissed summarily and I will spare you leads to big project to create the “SHARE a harangue on their deficiencies.” That is Operating System”. As a well financed all he had to say on the topic. group they could afford to maintain the SSD – Share Secretarial Distribution, a Why? Remember that McIlroy had mechanism for communication between been working with SHARE on the com- meetings, mailing of large bundles of mittee that was defining PL/1 back in assorted materials (Committee reports, 1964. SHARE was founded in 1956 as a drafts for comments, letters, inquiries cooperative group for “large” IBM scien- and responses, including bug reports; tific machine users. As its name suggests, also microfilms of source code for pro- it was intended to “share” programs, grams). It was like the Internet RFCs or a expertise, experiences and best practices, Usenet Newsgroup, but in the 1950s and some similarities with the open source on paper. model as later defined. SHARE was com- posed of ad hoc collaboration groups for The installation representatives specific projects. It had mechanisms for were senior figures, responsible for mul- code in its library, to share and respond to timillion dollars computing installations. bug reports. It set up standards for coding Representatives often had an enginee- ring or science background, and advanced nies, IMSL and NAG, began to sell nume- degrees. They were responsible for the rical libraries. The creation of specialized design and specification of software packages by small teams of experts, e.g. tools. SHARE representatives were able LINPACK and EISPACK projects was to commit employees to develop code, also key to this emergence. Those are not driven by the economies of scale in deve- actually exclusive choices. The same code loping generic routines. One needed to was sometimes be made available in all accumulate a lot of library code and tools three channels: published, distributed in to a computer usable and there was non-commercial PACKS and incorpora- no proprietary advantage in developing ted with other routines into commercial something like a cosine routine. numerical libraries.

When talking about Unix and the From a history of science perspec- closely intertwined history of free software tive, it is interesting to see arguments that mechanisms for coordinating and distribu- the best way to improve the quality of ting software of this kind, it is interesting to the code was by peer reviewing it. This mention that SHARE had something very was tried in SHARE in the 1960s (the like the open source model in the 1950s. Project) although it But IBM, Bell Labs, and other software ran into problems there. Peer reviewing producers actually backed away from it. a mathematical routine took a lot of time Historian Atsushi Akera, discussing the and expertise, so as a way of improving problems with the “SHARE Operating the SHARE library didn’t work as well as System” project, after which the design people hoped. But peer review of software of system software migrated to IBM developed from there, thanks to a publica- (rather than being done within SHARE tion named ACM TOMS (Transactions on itself), called this “The Limits of Volunta- Mathematical Software) started 1975 by rism” (Akera, 2001). But in mathematical John Rice. This was created specifically software the transition for development as a publication venue for peer reviewed effort from users to IBM was much less mathematical software (program source pronounced than in operating systems. code was distributed via microfiche, card Here SHARE remained a primary distri- and tape). This was an important step bution mechanism until early 1970s. because academic culture gave little credit for writing programs, still less for doing In the 1970s, three models for pac- the work needed to produce high quality kaging and distributing mathematics rou- portable and robust code. As least code tines emerged. As McIlroy mentioned, distributed in TOMS could be considered this was supported by peer review and pu- a publication (Haigh, 2010). blications in journals, including CACM, as well as the commercial sale of software The PACK model is interesting to libraries. In the early 1970s, two compa- look at, beginning with EISPACK re-

86 87 leased in 1972, a package that computes tines. They didn’t expect them to fixing eigenvalues and eigenvectors of matrices, bugs in the code. giving standard routines in this area for a decade. Initially it was a FORTRAN The other aspect of mathematical conversion of Algol routines by James H. software that should be explored more Wilkinson and Christian Reinsch (who fully as a parallel with Unix is the mixture had collaboratively produced them a few of academic and commercial involvement, years earlier), which in turn implemented in a way that is different from the way we new, dramatically improved methods. The think of open source. The people involved government grant for EISPACK was given had pragmatic interest in getting their code explicitly to test a new methodology in used by as many people as possible. Their software production. There is an interes- salary was already paid by lab or universi- ting parallel to make with the approaches ty, they were not concerned with copyright used on the Unix project to produce and or licensing arrangements. That’s a parallel distribute software. The PACK model between the conditions at somewhere like was widely adopted9, particularly with Argonne National Laboratory and the spe- LINPACK, a sequel to EISPACK, which cific conditions at Bell Labs in the 1970s. had a huge impact in super computing. In many ways, it is an extension of social norms and practices of science where, As with Unix, modularization of according to which people are expected to platform-specific code, to give high per- share their work and data freely. formance and portability, was a crucial part of this approach.

What happened there can be com- Conclusion pared to the Unix phenomenon: experts producing the best routines they can on We can frame the history of Unix a particular purpose, which can then be in different ways. From my viewpoint, black boxed and distributed, and used by the history of Unix is part of the history other people. When I talked to the people of operating systems, which is part of involved with those projects, they didn’t the history of software, which is part of have the romanticized view of user driven the history of technology, which is part involvement pushed by the likes of Eric of… (insert additional levels here) … the Raymond. They didn’t expect the users history of the universe. You can approach to be contributing code or particular in- in different ways as an example of dif- sights. They wanted them to test the rou- ferent things.

We can’t look at Unix in isolation. 9 Dozens of specialized packages were produced within the labs during this era: FUNPACK, MUDPACK, Specifically, here I have tried to sketch FISHPACK, etc. (see Cowell, 1984). the mechanisms used in Unix, for the pro- duction and distribution of Unix that were to this issue, as opposed to the “Chinese inspired by, and have interesting parallels army” approach Dijkstra described. But with those used in mathematical software figuring out a workable modularization from the 1950s onto the 1970s. The histo- method is hard. rical range of development and distribu- tion practices can’t be reduced to a simple We are left with an open question: “open vs. closed source” dichotomy. is Unix the first solution to the “software crisis” that actually worked? It had the I also think we should recognize technological and social mechanisms that these quasi-academic environments to modularize the operating system; it like Bell Labs and the US National Labs created chunks that one or two very smart are crucial for software development people could design and code. We can during this period. They are less focused see its success in various areas as in pro- on publication than universities; but on ducing generalized tools that embed the the other hand, they are less focused on tacit knowledge to do the hardest stuff, products than regular corporate develop- like “lex” and “yacc”. In the mid-1960s ment groups. developing a good compiler was a huge challenge, and development delays and In the era of the “software crisis”, disasters were much discussed in the com- in the late 1960s, it was acknowledged puter industry trade press and at the 1968 that operating systems and compilers NATO conference. Thanks to these UNIX were very complicated. They were be- tools, and the new body of theory they em- coming too complicated for one or two bodied, by the end of the 1970s the crea- people to code. Even earlier in the 1960s tion of a compiler could be assigned as a it was very hard for one or two people to class exercise to undergraduate students. take on a full-size operating system and Many attempts are later made to solve compiler. This is why software had a bad the same problem of creating the tools record at that time: the few who could do that people could use to produce complex systems software well tended to become software in modularized ways: design pat- famous computer scientists. However, terns, object oriented languages, applica- by 1968 even the geniuses couldn’t tion frameworks, source code repositories handle all the complexity involved in de- and version control systems. veloping systems with all the functiona- lities which were expected for operating Thus, we can understand Unix as a systems that could deal with time-sha- response to the broader software crisis, ring and the requirements of commercial in the broader range of problems in the software. In the 1968 conference procee- 1960s, and not just as an answer to the dings, the need for technical architecture specific problems of Multics, as it is to modularize the production of system usually understood. We can also see the software appears as an obvious solution connection of the Unix project to the work

88 89 that was going on at Bell Labs around Bibliography formal methods and compilers, would be very interesting for historians to dig into. Akera A. (2011). “Voluntarism and the The same goes for other ideas circulating fruits of collaboration: The IBM user group at around the same time such as structu- Share.” Technology and Culture, 42(4), red programming (the most famous IFIP pp.710-736. WG 2.3 contribution), chief programmer Brooks F. (1975). “The mythical man teams, etc. month.” Proceedings of the international confe- rence on Reliable software, Los Angeles, Cali- In that sense, Unix is an idea about fornia – (April 21 - 23, 1975), ACM. the structuring and management of software creation. An idea that is realized Campbell-Kelly M. & Aspray W. (1996). Computer: A History of the Information by features embedded in the code itself, Machine. New York, NY: Basic Books. including pipes. We can also see Unix as a model for the distribution and packaging Cowell W. ed (1984). Sources and Deve- of software. The work of situating Unix lopment of Mathematical Software. New York: Prentice-Hall. within the broader history of software and computer science has barely begun. Dijkstra E. W. (1972). “The humble pro- grammer”. Communications of the ACM 15.10, pp.859-866.

Ensmenger N. (2010). The Computer Boys Take Over. Cambridge (Mass.): MIT Press.

Haigh T. (2010). “John R. Rice: Mathe- matical Software Pioneer.” IEEE Annals of the History of Computing 32, n° 4, pp.72-80.

Hashagen U., Keil-Slawik R. & Norberg A. L., eds. (2002). Mapping the History of Computing: Software Issues. New York: Springer-Verlag.

MacKenzie D. (2001). Mechanizing Proof. Cambridge, MA: MIT Press.

Mahoney P. S. (1988). “The History of Computing in the History of Technology”. Annals of the History of Computing 10, no. 2, pp.113-125,

Mahoney P. S. (2004). “Finding a History for Software Engineering”. IEEE Annals of the History of Computing 25, no. 1, pp.8-19. Randell B. (2003). “Edsger Dijkstra”. Ninth IEEE International Workshop on Ob- ject-Oriented Real-Time Dependable Systems (WORDS’03F), IEEE Computer Society.

90 91

Unix : construire un environnement de développement de A à Z

Warren Toomey The Unix Heritage Society (TUHS) Traduction de l’anglais par Loïc Petitgirard1.

En avril 1969, alors qu’AT&T se retire du Qu’est-ce qui a motivé le projet Multics, les chercheurs impliqués dans développement d’Unix ? ce projet se voient privés de leur environnement de développement si 1969 n’a pas été une bonne année

Résumé « convivial ». Privés de leur « jouet », ces pour les chercheurs des Bell Labs de chercheurs ont commencé à prospecter pour AT&T qui étaient impliqués dans le projet un remplaçant. N’ayant rien trouvé Multics. Multics était une tentative pour d’approprié, Ken Thompson décide d’en améliorer et développer un grand nombre écrire un, en partant de rien. Dès le milieu de concepts du moment sur les systèmes de l’année 1969 il crée un système d’exploitation (par exemple, la mémoire d’exploitation autonome (self-hosting) sur virtuelle, le multitâche) et de construire un miniordinateur PDP-7 inutilisé. Il s’agit un système d’exploitation assurant un d’Unix, un système d’exploitation dont les service continu comme pouvait l’être systèmes actuels ont en partie hérité. Cet celui d’une entreprise électrique ou d’une article s’intéresse à la création d’Unix, après compagnie téléphonique. qu’AT&T ait quitté le projet Multics, aux fonctionnalités et innovations de la version Mais Multics a souffert de l’effet Unix créée sur le PDP-7, et au travail réalisé de « second système » décrit par Brooks en 2016 pour remettre sur pied une version (1975) : il était trop technique et trop am- opérationnelle d’Unix PDP-7 sur la base du bitieux pour atteindre tous ses objectifs code source disponible. sur la plateforme matérielle pour laquelle il avait été conçu, l’ordinateur General 1 Ce texte est exceptionnellement placé sous une licence Electric GE-645. AT&T avait rejoint le CC BY-NC-SA (Licence Creative Commons : Attribution + Pas d'utilisation commerciale + Partage projet Multics en 1964, avec General dans les Mêmes Conditions). Electric et le MIT. En avril 1969, le projet ayant dépassé les délais, AT&T décide de Même si Multics ne pouvait pas ac­ se retirer de Multics. cueillir beaucoup d’utilisateurs, il avait les qualités techniques pour notre projet, malgré des coûts exorbitants. Nous ne Cette décision laisse désœuvrés voulions pas perdre le petit créneau les chercheurs impliqués dans Multics confortable que nous occupions, parce (Ken Thompson, Dennis Ritchie, Doug qu’il n’en existait pas d’autre équiva- McIlroy entre autres). Sandy Fraser décrit lent : même les services de temps-par- tagé que les systèmes d’exploitation de la situation aux Bell Labs dans un entre- GE allaient offrir plus tard n’existaient tien avec Mike Mahoney1 : pas encore. Ce que nous voulions pré- server, ce n’était pas seulement un bon environnement pour réaliser des Je rentrais dans le bâtiment et y trou- programmes, mais un système autour vais une sorte de désarroi, un moral à duquel une communauté pouvait se coup sûr très bas. Il se trouve que j’étais former. le dernier arrivé. Il était clair que nous étions dans un moment de transition assez traumatisant pour bon nombre de gens… Le jouet [le GE-645] n’était plus Les chercheurs du projet Multics là. La salle de l’ordinateur était vide. aux Bell Labs ont tenté à de nombreuses Les gens étaient tout simplement dépri- reprises de persuader le management més. Certains partaient. Il manquait d’AT&T d’acheter une plateforme in- clairement de l’entrain. formatique plus modeste sur laquelle ils auraient écrit un système d’exploita- Pour s’être brûlé une première tion ; mais rétrospectivement, ces pro- fois les ailes avec un projet de système positions exigeaient qu’AT&T dépense d’exploitation, le management d’AT&T « beaucoup trop d’argent pour trop peu n’était pas prêt à soutenir de nouveaux de personnel avec un plan trop vague » travaux de recherches sur les systèmes (Ritchie, 1980). En fin de compte, tous d’exploitation. Mais les chercheurs ces plans ont été rejetés. avaient trouvé que le système Multics était un environnement de dé­ve­lop­ Durant cette période sombre, pement formidable et ils étaient motivés Thompson était engagé dans deux acti- par l’idée de travailler sur une solution vités qui allaient conduire au dévelop- de remplacement adaptée à leurs besoins. pement du système d’exploitation Unix. Ritchie précise que2 : La première était le développement de Space Travel, une simulation informa- tique précise de la dynamique du Soleil, 1 Entretien de M. Mahoney avec Sandy Fraser, 1989 des planètes et des satellites du système [URL : https://www.princeton.edu/~hos/mike/ solaire. Un joueur pouvait y naviguer dans transcripts/fraser.htm]. un vaisseau spatial à travers le système 2 Entretien de M. Mahoney avec Dennis Ritchie, 1989 [URL : https://www.princeton.edu/~hos/mike/ solaire, voir le paysage et essayer d’atter- transcripts/ritchie.htm]. rir sur les planètes et les satellites.

92 93

Space Travel a été initialement dé- J’avais construit une simulation de haut veloppé sur la plateforme GE-645, mais niveau d’un système de fichiers complet. Je n’en étais pas au point où on donne son fonctionnement était onéreux (75 $ des adresses, où la taille des fichiers de temps processeur pour un tour de peut être augmentée ou d’autres choses jeu (Ritchie, 1980)) et son interface en similaires. J’étais resté à un niveau su- ligne de commande laissait beaucoup à périeur. Je pense que nous n’en étions désirer. Après le retrait du projet Multics, qu’à une ou deux séances de travail, Dennis [Ritchie], [Rudd] Canaday et Thompson a réécrit Space Travel pour moi. Nous ne discutions que d’idées le PDP-7, un ordinateur du laboratoire générales sur la façon d’éviter que les plus petit, qui avait été utilisé pour des fichiers ne s’emmêlent et les soucis liés 4 travaux graphiques mais qui était devenu à leur taille grandissante . obsolète et excédait les besoins. À partir de cette simulation de haut Ce travail a permis à Thompson de niveau d’un système de fichier, Thompson faire connaissance avec la plateforme a pris le PDP-7 en main et a implémenté PDP-7, qui était sévèrement contrainte une structure du système de fichier. Au à la fois en termes de mémoire (avec départ il s’agissait d’une simulation des seulement 8,192 mots de 18-bits)3 et fichiers et des actions sur ces fichiers, et d’espace disque (avec une capacité de au fur et à mesure le système simulé s’est stockage de seulement 1,024,000 mots), étoffé pour devenir un système d’exploi- et une architecture du jeu d’instruction tation opérationnel. complexe. Ces restrictions ont en fin de compte influencé la conception du Pour faire fonctionner le système de système Unix. fichiers, vous deviez créer, effacer et concaténer des fichiers, pour voir jusqu’à quel point il fonctionnait. Pour cela il fallait un scénario des commandes que vous deviez soumettre au système Le système de fichiers, et le seul que nous avions de fichiers d’Unix était […] un ruban perforé qui disait : lit un fichier, écrit un fichier, ce genre de chose. Vous lanciez le scénario du ruban La seconde activité de Thompson perforé et ça secouait un peu le disque. après la fin du projet Multics était la On ne savait pas exactement ce qui se recherche en conception et structuration produisait. On ne pouvait tout simple- des systèmes de fichiers. Thompson avait ment pas le regarder, on ne pouvait pas entamé cette recherche avant qu’AT&T le voir, on ne pouvait rien faire. Ensuite nous avons conçu quelques outils sur ne se retire formellement de Multics. le système de fichiers. Nous avons

4 Entretien de M. Mahoney avec Ken Thompson, 1989 3 Un mot correspond à la taille de l’instruction standard [URL : https://www.princeton.edu/~hos/mike/ utilisée par la machine. transcripts/thompson.htm]. Figure 1 - Structure Inode sur Unix PDP-7

utilisé ce ruban perforé pour charger Ma femme est partie en vacances le système de fichier et ses outils, et en Californie pour voir mes parents. alors nous avons pu […] taper des Elle est partie un mois en Californie commandes ­dans un outil qui s’appelait et je me suis alloué une semaine pour un interpréteur (shell), pour tordre le chaque partie du système, le noyau, système de fichiers dans tous les sens, l’interpréteur, l’éditeur et l’assembleur, afin de pouvoir mesurer son fonction- pour que le système puisse se repro- nement et ses réactions. Le système de duire lui-même. Pendant le mois où fichier primitif a duré peut-être un jour elle était absente, tout a été réécrit sous ou deux avant que nous ayons déve- une forme qui ressemblait à un système loppé les outils dont nous avions besoin d’exploitation, avec des outils de types pour le charger5. connus : un assembleur, un éditeur et un interpréteur. Ça ne tenait pas encore la 6 Au xxie siècle, nous voyons, à juste route, mais on y était presque . titre, les systèmes d’exploitation comme En un mois de temps, Ken Thomp- des systèmes extrêmement complexes, son a pris un simulateur de système demandant des centaines de développeurs de fichiers et l’a réécrit pour en faire et des milliers d’heures pour être conçus. un système d’exploitation autonome Au xxe siècle, Thompson ne le savait pas. (self-hosting) que nous connaissons au- Au lieu de cela, il raconte son été 1969 : jourd’hui sous le nom de Unix PDP-7.

5 ibid. 6 ibid.

94 95

La structure par le champ « user-id » ; le concept de du système de fichiers « groupe d’utilisateurs » n’arrivera pas avant quelques années. Dès le départ, la structure du système de fichiers de l’Unix PDP-7 avait Le concept de lien physique a été les marques distinctives qu’elle allait une innovation du système de fichier conserver le reste de sa vie (comme illus- de l’Unix PDP-7. Comme le nom d’un tré sur la figure 1) : fichier était séparé des métadonnées de l’inode, cela permettait à deux ou plu- -- des inode (index) qui contiennent les sieurs noms de fichiers de pointer vers la métadonnées de chaque fichier ; même métadonnée, comme l’illustre la figure 2. -- des répertoires séparés de noms de fichiers, chacun pointant vers un Tous les noms de fichier reliés inode ; à l’inode étaient équivalents : aucun ne valait plus qu’un autre. Le champ -- un ensemble de blocs disque qui « numlink » de l’inode enregistrait le stockent les contenus de chaque nombre de noms de fichiers liés au fichier. fichier ; le fichier n’était supprimé du système de fichier que dans le cas où tous L’inode pouvait stocker jusqu’à les noms de fichiers étaient déliés et que sept numéros de blocs disque, pour des le compteur de lien tombait à zéro. fichiers jusqu’à 7x64 = 448 mots de long. Pour des fichiers plus gros, le fichier était repéré dans le champ des « indicateurs » Les répertoires (flags) comme un grand fichier. Dans ce cas, les numéros de bloc pointaient vers Si l’organisation des contenus des des blocs disques qui chacun contenait 64 fichiers et de leurs métadonnées était numéros de blocs disque, autorisant des plutôt bien définie sur l’Unix PDP-7, on fichiers jusqu’à 7x64x64 = 28 672 mots ne peut pas en dire autant de l’organisa- de longueur. tion des répertoires et de leurs relations entre eux. Le champ des indicateurs (flags) de l’inode identifiait aussi le type du La première structure de système de fichier (fichier standard, répertoire ou fichiers ne dessinait pas une hiérarchie fichier spécial), et les permissions pour de répertoires mais un graphe orienté, et les données (lecture et écriture pour le nous ne le limitions pas à un arbre. Nous expérimentions différentes topologies7. propriétaire du fichier, lecture et écri- ture pour tous les autres utilisateurs). Le propriétaire d’un fichier était identifié 7 ibid. Figure 2 - Les liens physiques dans Unix PDP-7

Le noyau de l’Unix PDP-7 compre­ Pour naviguer dans le système de nait et gérait le concept de répertoire fichiers, chaque répertoire avait besoin (contenant des noms de fichiers cor- d’un lien vers le répertoire « dd », pour respondants) et le fait qu’un répertoire y revenir. Et comme l’interpréteur était puisse contenir des liens vers d’autres programmé pour chercher les codes répertoires. Cependant, l’organisation binaires exécutables dans le répertoire des répertoires lui était indifférente. « system », chaque répertoire devait contenir une entrée pointant dans le ré- Le premier système de fichiers pertoire « system ». Unix, et celui qui subsiste dans le système Unix PDP-7 restauré, conte- Dans l’Unix PDP-7, le concept de nait deux répertoires de haut niveau, chemin absolu comme /usr/local/bin/ « dd » et « system », comme l’illustre la less n’existait pas, ni celui de nom de figure 3. Le répertoire « dd » contenait chemin relatif (par exemple : ../../file les entrées du répertoire « system » et ou sub-dir-1/subdir2/file). Une fois que tous les répertoires « home » de l’utili- l’utilisateur était entré dans un répertoire, sateur. Le répertoire « system » contenait il ne pouvait faire référence qu’à des fi- tous les principaux fichiers exécutables chiers ou des répertoires visibles depuis du système et les fichiers spéciaux des ce répertoire. Ritchie souligne que : périphériques. Aujourd’hui, « dd » cor- respondrait au répertoire « root », et La commande « link » prenait la forme suivante : « system » à une combinaison des réper- toires « /bin » et « /dev ». ln dir file newname

96 97

Figure 3 - Structure des répertoires sur Unix PDP-7

où « dir » était un fichier répertoire toire « home » (« dmr »)8, faire un lien dans le répertoire en cours, « file » une vers un fichier x du répertoire « ken », entrée existant dans ce répertoire, et je pouvais faire : « newname » le nom du lien qui était ajouté au répertoire en cours. Parce que ln dd ken ken « dir » devait être dans le répertoire actuel, il est évident que les interdic- ln ken x x tions actuelles de créer des liens à des répertoires n’étaient pas imposées : le rm ken système de fichiers de l’Unix PDP-7 avait la forme d’un graphe général Cela rendait les sous-répertoires suffi- orienté. samment difficiles à utiliser pour qu’ils ne soient jamais utilisés en pratique. La convention « dd » rendait la commande Pour que chaque utilisateur n’ait pas à « chdir » relativement commode9. Elle maintenir un lien vers tous les réper- toires qui l’intéressaient, il existait un répertoire appelé « dd » qui contenait 8 NB : « dmr » correspond à Dennis MacAlistair Ritchie, les entrées pour le répertoire de chaque et « ken » à Kenneth Thompson. utilisateur. Si j’étais dans mon réper- 9 « chdir » pour « change directory ». prenait plusieurs arguments et faisait néaire de mots du PDP-7 (des octets dans passer du répertoire en cours au réper- les versions ultérieures d’Unix). L’Unix toire identifié. Ainsi : PDP-7 a étendu cette abstraction en intro- chdir dd ken duisant le concept de « fichiers spéciaux ». Chaque fichier spécial représentait le faisait passer [du répertoire « dmr » contenu d’un périphérique auquel l’accès au répertoire « ken » via le répertoire était possible en utilisant les opérations de « dd »] (Ritchie, 1980). fichiers ci-dessus, quelles que soient les caractéristiques du périphérique. Dans l’Unix PDP-11 (écrit en 1971), l’entrée « dd » dans chaque répertoire a Le noyau d’Unix PDP-7 prenait en évolué vers l’entrée « .. » (deux points) charge ces fichiers spéciaux, conservés dans qui pointe vers le répertoire immédiate- le répertoire system grâce aux commandes : ment supérieur. La mémoire supplémen- taire disponible sur le PDP-11 permettait -- ttyin et ttyout, pour la console du au noyau de gérer des chemins absolus PDP-7 et relatifs ; une fois que l’interpréteur -- keyboard et display, pour l’écran pouvait trouver les exécutables dans le ré- Graphics-2 qui était utilisé comme pertoire « /bin », l’entrée « system » dans un second terminal chaque répertoire n’était plus nécessaire. -- pptin et pptout, le dispositif de ruban perforé

Les opérations sur les fichiers Ainsi, sur un système de seule- et les fichiers spéciaux ment 8 192 mots de mémoire, l’Unix PDP-7 était capable de fournir un en­vi­ L’Unix PDP-7 mettait en œuvre un ron­nement de développement multitâche ensemble d’opérations sur les fichiers pour deux utilisateurs. immédiatement reconnaissables pour un programmeur Unix ou Linux actuel :

-- Descripteur de fichier (file descriptor) Processus = open (nom de fichier, mode) et contrôle de processus -- close (file descriptor) -- read (file descriptor, buffer, amount) L’Unix PDP-7 fournissait un envi- -- write (file descriptor, buffer, amount) ronnement multitâche en divisant les 8K -- seek (file descriptor, amount, whence) mots de mémoire en deux moitiés. La moitié basse de la mémoire était réservée De cette manière, le noyau Unix au noyau. La moitié haute était mise de s’abstrayait des détails du stockage d’un côté pour les processus en cours d’exé- fichier et le remplaçait par un tableau li- cution. L’Unix PDP-7 basculait les pro-

98 99 cessus de la mémoire au disque durant le Si fork() permet à un système de chan­gement de contexte10 entre deux pro- démarrer de nouveaux processus, ils sont cessus en cours. Bien que cela permettait cependant tous identiques. Une autre pri- d’isoler les processus, le hardware du mitive était nécessaire pour permettre au PDP-7 n’empêchait pas les processus système d’exécuter des programmes diffé- d’accéder aux 4K de mots de la mémoire rents. Dans Unix aujourd’hui, c’est le mé- basse du noyau. canisme exec(), implémenté dans le noyau Unix, qui le réalise. Dans Unix PDP-7 ce Ce que nous reconnaissons au- mécanisme était implémenté dans l’inter- jourd’hui comme l’ensemble canonique préteur, comme illustré dans la figure 4. des mécanismes de contrôle de proces- sus Unix (fork(), exec(), exit() et wait()) a Lorsque l’interpréteur du PDP-7 évolué par étapes lorsque la version pour lisait une commande d’exécution d’un le PDP-7 a été développée puis réécrite nouveau programme, il faisait d’abord une pour la plateforme PDP-11. copie de lui-même avec un fork(). L’inter- préteur originel attendait que le nouvel interpréteur s’exécute et se termine. Le Les commandes nouvel interpréteur devait alors se rempla- « fork » et « exec » cer par le nouveau programme demandé par l’utilisateur. Thompson a emprunté et modifié le concept de fork() qu’il avait vu sur La fonction exécutée dans l’interpré- le système Project Genie sur l’ordina- teur se relogeait d’abord dans la partie su- teur SDS930 lorsqu’il était étudiant en périeure de la mémoire, juste au-dessous licence à l’Université de Berkeley. Fork() des arguments du programme entrés par a été développé par Melvin Conway en l’utilisateur dans la ligne de commande. 1962 comme une paire de primitives, La fonction relogée faisait alors un open() fork et join, pour permettre la planifica- du fichier exécutable et un read() de tion des processus d’un système multi- son contenu, qu’elle transférait dans la processeur (Nyman & Laakso, 2016). mémoire utilisateur à partir de l’adresse Dans Unix PDP-7, fork() était utilisé par 4096. Une fois l’exécutable chargé en un processus pour créer une copie de lui- mémoire, la fonction relogée faisait un même qui pouvait ensuite être ordonnan- close() du fichier et allait à l’adresse 4096 cée indépendamment. pour démarrer l’exécution du nouveau programme.

Ritchie fait remarquer que même ce simple mécanisme de contrôle de proces- 10 Le « contexte » est l’ensemble des états des registres la machine, à un instant donné, qui permet l’exécution sus a évolué à partir d’une construction des processus. primitive : Figure 4 - Le mécanisme exec de l’interpréteur (shell)

Le contrôle de processus dans sa forme La séparation des fonctions n’est certai- moderne a été conçu et implémenté nement pas limitée à Unix, et était en en deux jours. C’est étonnant à quel fait présente dans le système de temps- point il s’adaptait au système existant ; partagé de Berkeley (Project Genie) qui en même temps, il est facile de voir était bien connu de Thompson. Néan- comment les caractéristiques légère- moins, il paraît raisonnable de penser ment inhabituelles de la conception sont qu’elle existe dans Unix principalement présentes précisément parce qu’elles parce qu’il était facile d’implémenter représentaient des petits changements fork sans changer grand-chose d’autre. faciles à coder dans l’existant. La sépa- Le système gérait à l’origine de mul- ration entre les fonctions fork et exec tiples (c’est-à-dire deux) processus ; en est un bon exemple. Le modèle le il y avait une table des processus, et plus commun pour créer de nouveaux les processus étaient échangés entre la processus implique de spécifier un pro- mémoire principale et le disque. L’im- gramme pour le processus à exécuter ; plémentation initiale de swap ne néces- dans Unix, le processus créé par la com- sitait que : mande fork continue de faire tourner le même programme que son parent 1. l’extension de la table des processus, jusqu’à ce qu’il appelle explicitement un exec. 2. l’ajout d’un appel fork qui copiait le

100 101

processus en cours dans la partie de la Un couple de primitives envoyait des mémoire dédiée à l’échange d’entrée/ messages d’un mot entre des processus sortie déjà existantes, et faisait des identifiés : ajustements dans la table des processus. Smes(pid, message) En fait, l’appel fork du PDP-7 néces- sitait précisément 27 lignes de code (pid, message) = rmes () assembleur. Bien sûr, d’autres chan- gements étaient nécessaires dans le Le processus cible de smes n’avait pas système d’exploitation et les pro- besoin d’avoir une relation de filiation grammes de l’utilisateur, et certains avec le receveur, même si le système ne d’entre eux étaient plutôt intéressants donnait pas de mécanisme pour com- et inattendus. Mais un mécanisme muniquer les identifiants des processus, combiné de fork/exec aurait été consi- à part le fork() qui renvoyait au père l’ID dérablement plus compliqué, ne serait- du fils et réciproquement. Les messages ce parce que l’exec en tant que tel n’étaient pas mis en file d’attente ; le n’existait pas ; sa fonction était déjà processus émetteur était retardé jusqu’à réalisée par l’interpréteur, en utilisant ce que le récepteur lise le message. des entrées/sorties explicites (explicit I/O). (Ritchie, 1980) Le service de messages était utilisé ainsi : l’interpréteur (shell) parent, après avoir créé un processus pour exécuter une commande, envoyait un message au Les commandes exit et wait nouveau processus par smes() ; quand la commande se terminait (en supposant Dans les systèmes Unix d’aujour qu’elle ne tentait pas de lire un quel- conque message) l’appel smes() bloqué d’hui, un processus qui a « fork()é » un de l’interpréteur renvoyait une erreur nouveau processus peut faire un wait() signalant que le processus cible n’exis- pour attendre que le nouveau proces- tait pas. Ainsi le smes() de l’interpréteur sus se termine. Ce dernier peut réaliser devenait dans les faits un équivalent de un exit() pour clore son exécution. Cette la commande wait(). commande renvoie un statut « exit » pour Un protocole différent, qui exploitait signifier sa terminaison au processus ori- la plupart des généralités offertes par ginal qui attend sur le wait(). les messages, était utilisé entre le pro- gramme d’initialisation et les interpré- Comme pour fork() et exec(), les teurs pour chaque terminal. Le processus d’initialisation, dont il était convenu que commandes wait() et exit() sont issues l’ID était 1, créait un interpréteur pour d’autres mécanismes. Mais dans ce cas, chacun des terminaux, puis faisait un les mécanismes précédents n’étaient pas rmes() ; chaque interpréteur, après avoir moins, mais plus sophistiqués. lu la fin de son fichier d’entrée, utilisait la fonction smes() pour envoyer le tra- ditionnel message « j’ai terminé » au Les primitives qui sont devenues exit processus d’initialisation, qui recréait et wait étaient considérablement plus un nouveau processus interpréteur pour générales que le mécanisme actuel. ce terminal. Je ne me souviens pas d’autre utilisation ces commandes et outils : b, cat, chdir, des messages. Ceci explique pourquoi chmod, cp, db, ed, ln, , mkdir, mv, nm, le service a été remplacé par les appels pr, rm, roff, sh, tm et un. Seuls un petit [exit et] wait() de l’actuel système Unix, qui est moins général, mais plus direc- nombre d’entre eux ne serait pas familier tement approprié au but recherché. Un à l’utilisateur d’un Unix d’aujourd’hui : bug évident dans le mécanisme explique aussi possiblement ce remplacement : -- b, le compilateur B ; si un processus de commande essayait d’utiliser des messages pour commu- -- db, un débogueur pour des images niquer avec d’autres processus, cela mémoire (des images disque des pro- pouvait perturber la synchronisation de cessus qui ont planté) ; l’interpréteur. L’interpréteur pouvait dé- -- roff, un outil de traitement des docu- pendre d’un message qui n’avait jamais été reçu ; si une commande exécutait ments, et précurseur de nroff ; rmes(), elle pouvait recevoir un faux -- tm, un outil pour imprimer des infor- message de l’interpréteur, et obliger mations relatives au temps, en prove- l’interpréteur à lire une ligne d’entrée nance du noyau (kernel), par exemple supplémentaire, comme si la commande le temps dans le mode « utilisateur », était terminée. Si le besoin de messages généraux s’était manifesté, le bug aurait le temps dans le mode noyau, le temps été réparé. (Ritchie, 1980) passé à traiter les interruptions ; -- un, qui liste les symboles non identi- fiés dans un exécutable.

Les outils de l’Unix PDP-7 Plusieurs outils d’Unix PDP-7 mé- ritent d’être passés en revue de manière Unix PDP-7 était non seulement un plus complète. système d’exploitation polyvalent dont le noyau était compacté dans une mémoire de 4 000 mots, mais ses développeurs ont L’interpréteur (shell) aussi créé un nombre important d’outils dont les descendants sont toujours utilisés Unix PDP-7 a été le premier aujourd’hui. système d’exploitation à fournir un in- terpréteur de commande qui était modi- Dans son texte « Draft of the Unix fiable et remplaçable par l’utilisateur. Time-sharing System »11 écrit en 1971 Des systèmes antérieurs comme CTSS et quand les deux systèmes Unix pour PDP-7 Multics avaient des interpréteurs en ligne et PDP-11 existaient, Ritchie documente de commande, mais ils étaient partie in- tégrante du système et ne pouvaient pas 11 Ritchie D.M., «Draft: The UNIX Time-sharing être changés ou modifiés. System», texte de 1971 publié sur le site The Unix Heritage Society [URL : http://www.tuhs.org/Archive/ Distributions/Research/McIlroy_v0/UnixEditionZero- Unix PDP-7 a été aussi le premier Threshold_OCR.pdf]. système à fournir à ses outils des abstrac-

102 103 tions d’unité standard d’entrée (standard list input) et d’unité standard de sortie (stan- dard output). En substance, tout proces- iocall attach user output syn user i/o sus démarrait avec un fichier déjà ouvert Même si cette séquence très mala- pour lire des entrées, et un autre fichier droite était souvent utilisée à l’époque ouvert pour écrire les sorties. Par défaut, de Multics, et aurait été très simple à ces fichiers étaient connectés au terminal intégrer dans l’interpréteur de Multics, de l’utilisateur. ça ne nous est pas venu à l’idée, ni à d’autres, à ce moment-là. Je suppose que l’ampleur du projet Multics en L’interpréteur de l’Unix PDP-7 donne la raison : ceux qui ont implé- fournissait à l’utilisateur des mécanismes menté le système I/O étaient aux Bell pour associer ces fichiers ouverts à des Labs à Murray Hill, alors que l’inter- préteur a été réalisé au MIT. Nous fichiers existants (ou nouveaux), et aussi n’envisagions pas de faire des chan- aux fichiers spéciaux. Ritchie indique : gements dans l’interpréteur (c’était leur programme) ; réciproquement, les détenteurs de l’interpréteur n’avaient La notation très pratique pour les redi- peut-être pas connaissance de l’utilité rections I/O, à l’aide des symboles « > » de iocall, sans parler de sa maladresse. et « < », n’existait pas aux tout débuts (Le manuel Multics de 1969 (Project du système Unix PDP-7, mais elle est MAC, 1969) fait référence à iocall apparue très tôt. Comme beaucoup comme une commande author-main- d’autres choses dans Unix, cela a été tained, c’est-à-dire non standard). Le inspiré d’une idée venant de Multics. système I/O d’Unix et son interpréteur Multics avait un mécanisme de redi- étant sous contrôle exclusif de Thomp- rection des I/O assez général (Project son, cela a été l’affaire d’une heure MAC, 1969) incarnant (représentant) ou deux pour l’implémenter, quand des flux (stream) d’I/O identifiés qui la bonne idée a fait surface. (Ritchie, peuvent être redirigés dynamiquement 1980) vers différents dispositifs, fichiers, et même à travers des modules spéciaux de traitement des flux. Dans la version La notion de tube (pipe) est un autre de Multics qui nous était familière, il existait même une commande qui concept important d’Unix qui n’arrivera passait (orientait) la sortie suivante, pas dans le système avant la 3e édition de normalement destinée au terminal, vers l’Unix PDP-11 en 1973. un fichier, et une autre commande pour rattacher la sortie au terminal. Si, sur Unix, on tape la commande : Le traitement de texte avec roff ls > xx Mis à part la recherche sur les sys- pour avoir la liste des noms de fichiers tèmes d’exploitation, le système Unix a dans [le fichier] xx, sur Multics la même été utilisé très tôt en tant que système de opération était réalisée par : traitement de document. L’évolution de iocall attach user output file xx roff, l’outil de traitement de document, est intéressante. Il a vu le jour sous le à conserver l’existant, nous savions nom de runoff, l’outil de J. Saltzer, écrit pertinemment qu’on ne pouvait pas en langage assembleur pour le système conserver un élément [a fortiori en assembleur], l’écrire et le faire fonc- d’exploitation CTSS (Saltzer, 1965). tionner, [alors] qu’il va forcément Celui-ci a été réécrit par Doug McIlroy évoluer… PL/I [le langage de haut- en BCPL pour le système d’exploita- niveau utilisé pour Multics] était de tion Multics. Ensuite, il a été réécrit en trop haut niveau pour nous, ainsi que la version plus simple de PL/I dans assembleur PDP-7 pour donner roff (avec Multics (un truc appelé EPL). Après le des fonctionnalités réduites) pour l’Unix montage [d’Unix PDP-7], ou en même PDP-7. Puis, pour justifier l’achat d’un temps que sa sortie, BCPL était en train mini-ordinateur PDP-11, les chercheurs d’émerger et c’était un ticket gagnant sur Unix ont réécrit roff en langage as- pour nous deux [i.e. Thompson et Ritchie]. Nous avons été tous les deux sembleur du PDP-11 pour assurer les captivés par le langage et nous avons besoins en traitement de documents du beaucoup travaillé avec12. département des brevets d’AT&T. Les utilisateurs courants de Linux consi- BCPL était un langage pour sys- dèrent peut-être que l’open source est tèmes « orientés-mot » développé par un concept relativement nouveau, mais Martin Richards à l’Université de Cam- le partage et le développement de code bridge (Richards, 1969), qui était conçu source a été un mécanisme important pour être assez portable sur d’autres ma- depuis les débuts de l’informatique. chines et systèmes. Comme BCPL était cependant encore un trop « gros » langage pour le PDP-7, Thompson a repris les Le compilateur B structures essentielles de BCPL et a écrit un interpréteur d’un langage intermé- Comme nous l’avons vu plus haut, diaire implémentant ces structures pour le Thompson avait écrit un assembleur PDP-7. Il a ensuite écrit un compilateur pour le mini-ordinateur PDP-7 pour à destination de ce langage intermédiaire, faire du système Unix un système auto- et a créé le langage B. nome. Le noyau et tous les outils ori- ginaux de l’Unix PDP-7 ont été écrits C’était le même langage que BCPL, en assembleur PDP-7. Mais les déve- mais il avait l’air complètement dif­ loppeurs Unix ont éprouvé le besoin férent. En termes de syntaxe c’était d’utiliser des langages de haut niveau. une réécriture, mais la sémantique était Thompson indique que : exactement la même que BCPL. Et en fait, la syntaxe était telle que, si vous

Depuis le début [nous voulions écrire le système dans un langage de haut 12 Entretien de M. Mahoney avec Ken Thompson, 1989 niveau]… C’était une influence de [URL : https://www.princeton.edu/~hos/mike/ Multics. Vu la complexité qu’il y a transcripts/thompson.htm].

104 105

ne regardiez pas de trop près, vous Les restaurations de la première version auriez dit que c’était du C. Parce que de l’Unix PDP-11 et du premier compila- 13 c’était du C, mais sans les types . teur C (Toomey, 2009) ont été des succès notables. Mais le système Unix PDP-7 Très peu de choses de cette phase restait insaisissable. d’Unix ont survécu, seulement quelques programmes PDP-7 simples, écrits en B. En 2016, un membre de longue date Le langage B, et son compilateur, allaient de l’Unix Heritage Society a révélé qu’il évoluer en de nombreuses étapes vers était en possession d’un tirage papier du le langage C (Ritchie, 1993). Ritchie et code source d’Unix PDP-7, qu’il avait Thompson réécriront le noyau d’Unix en copié dans les années 1980 lorsqu’il langage C de haut niveau en 1974 (Ritchie travaillait aux Bell Labs d’AT&T. Nous & Thompson, 1974), atteignant leur ob- l’avons encouragé à le scanner et à le par- jectif d’écrire le système en langage de tager avec la Society. haut niveau. Le code source de n’importe quel système informatique est inutile en soi, à moins qu’il n’y ait un environnement Restaurer le système pour le convertir en exécutables pour la Unix PDP-7 machine et un environnement qui puisse faire tourner ces exécutables. En 2016, le Pendant de nombreuses années, le PDP-7 était un souvenir lointain et, même système Unix PDP-7 est resté essentielle- si une telle machine était disponible, il ment une créature mythologique. Même n’y avait pas d’assembleur pour convertir si son existence était documentée14 (Salus, le code source en format exécutable. 1994), aucun code source n’avait subsisté à part pour la commande dsw, posté par Heureusement, Bob Supnik et une Dennis Ritchie sur le groupe de nouvelles cohorte d’excellents développeurs avait net.unix-wizards de Usenet en 1984. conçu SimH (Supnik & Walden, 2015), un simulateur de nombreux ordinateurs En tant que fondateur de l’Unix anciens incluant le PDP-7 et ses périphé- Heritage Society15, j’ai passé beaucoup riques. Lorsque le code source de l’Unix de temps à récupérer des vieux systèmes PDP-7 a été rendu disponible, une équipe Unix et les remettre en fonctionnement. de trois personnes (Phil Budne, moi- même et Robert Swierczek) a commencé à convertir le code source en un système 13 ibid. fonctionnel. 14 « Draft : The UNIX Time-Sharing System », D.M. Ritchie, 1971. Cf. note 11. 15 Site web de l’association [URL : http://www.tuhs. La première tâche consistait à écrire org]. un nouvel assembleur PDP-7, ce qui a été initié par moi-même, et complété ensuite chargé de faire fonctionner le noyau, par Phil Budne. Nous avions le code et j’ai écrit un outil pour construire un source pour l’assembleur Unix PDP-7, système de fichiers approprié. Les deux mais nous étions dans une situation de missions étaient ardues. Les développeurs type « l’œuf et la poule » : la source de d’Unix avaient laissé très peu de com- l’assembleur ne pouvait s’assembler mentaires dans leur code assembleur, et lui-même. les instructions PDP-7 étaient étrangères à tous les membres de l’équipe. Nous Avec notre assembleur, nous avons avons passé beaucoup de temps à déduire pu assembler le code source en code l’objectif de sections de code assembleur, machine pour le PDP-7 mais nous ne et à ajouter des commentaires et annota- pouvions pas encore exécuter ces ins- tions à celui-ci. En ce qui me concerne, tructions. Nous ne pouvions pas utiliser le manque total de documentation sur SimH, parce qu’il simulait un système le système de fichiers en a compliqué le entier ; pour exécuter un code Unix, nous développement. En utilisant les informa- avions besoin d’un système complet : tions que nous avions à portée de main (le machine, noyau, un système de fichier code source du noyau, la documentation opérationnel et des outils. Un bug dans du système Unix PDP-11 et la possibilité une seule de ces parties empêcherait le de faire exécuter pas à pas les instruc- système de fonctionner correctement. tions sur SimH), j’ai pu construire au final un système de fichiers Unix PDP-7 À la place, nous avons choisi d’im- opérationnel. plémenter un simulateur du mode User : un mode qui exécute la plupart des ins- Phil Budne a eu des difficultés ana- tructions machine du PDP-7, et convertit logues avec le noyau de l’Unix PDP-7. Il les appels système de l’Unix PDP-7 en n’y avait pas de documentation sur l’écran appels système à l’OS hôte sous-jacent. Graphics-2, qui avait été construit au sein Wine (Amstadt & Johnson, 1994) est un d’AT&T16. Non seulement Phil devait exemple de simulateur de mode User si- déduire ses modes opératoires, mais il milaire. Utilisant ce simulateur, nous pou- devait aussi ajouter du code à SimH pour vions tester notre assembleur et le code simuler le terminal. source des outils originaux de l’Unix PDP-7 sans se soucier du noyau Unix ou Ken Thompson avait pris un mois du système de fichiers. en 1969 pour écrire le noyau, l’assem- bleur, l’interpréteur et le débugger. Sur Avec un assembleur et des outils en ces quatre outils essentiels, le code source lesquels nous pouvions avoir confiance, de l’interpréteur avait disparu. Utilisant nous nous sommes intéressés au noyau

de l’Unix PDP-7 et à la construction d’un 16 Cf. la page dédiée sur le site des Bell Labs [URL : système de fichiers. Phil Budne s’est http://cm.bell-labs.co/who/dmr/spacetravel.html].

106 107 les informations fournies par Ritchie est ensuite utilisé pour compiler le code dans son article « The Evolution of the source du compilateur B (une nouvelle Unix Time-Sharing System » (Ritchie & fois), générant la version pour le langage Thompson, 1974) et les bribes du code intermédiaire qui peut être exécutée en source PDP-7 existant, Phil Budne a re- utilisant l’interpréteur B de l’Unix PDP-7. construit héroïquement un interpréteur fonctionnel pour le système Unix PDP-7.

Lorsque toutes ces tâches réali- Conclusion sées ont été mis bout à bout, l’équipe a pu annoncer que le système temps-par- Le développement d’Unix a été en tagé Unix PDP-7 avait été complètement quelque sorte une réaction à l’encontre remis en fonctionnement ; le code source de la mentalité « bigger is better » de original et les outils utilisés pour la re- Multics. Thompson avait l’intuition que construction sont disponibles en téléchar- « c’était une bonne idée de sortir de gement sur Github17. Cela inclut plusieurs Multics. C’était trop gros, trop cher, outils pour lesquels le code source avait trop sophistiqué. Il était clair que c’était disparu : cp, ln, ls et mv. un exercice de construction d’usine à gaz. »18 En arrière-plan, Robert Swierczek avait travaillé à la reconstruction du com- Mais Unix n’a pas été un simple pilateur B. Son code source avait égale- rejet du concept de Multics : en effet, ment été perdu, mais l’interpréteur pour beaucoup d’idées de Multics ont été le langage intermédiaire avait survécu. simplifiées et ajoutées à Unix. Ritchie Robert a utilisé le code source du plus souligne : ancien compilateur C, retiré le code concernant les types, et réorienté pour Nous étions un peu oppressés par la produire le code de l’interpréteur. Chef- mentalité « grand système ». Ken d’œuvre d’amorçage (bootstrapping) voulait faire quelque chose de simple. inversé, Robert a écrit le compilateur B Unix n’est pas qu’une réaction contre pour qu’il soit valable pour du code B ou Multics, c’était une combinaison de C, et pour qu’il puisse se recompiler lui- ces choses. Multics n’était plus là pour même. Pour construire le compilateur, il nous, mais nous appréciions le senti- ment d’informatique interactive qu’il est d’abord compilé en utilisant un com- procurait. Ken avait des idées à creuser pilateur C moderne. Ce compilateur qui sur comment faire un système. Le maté- n’est pas encore un compilateur PDP-7, riel disponible ainsi que nos penchants

17 Cf. la page dédiée sur la plateforme de partage de 18 Entretien de M. Mahoney avec Ken Thompson, 1989 code Github [URL : https://github.com/DoctorWkt/ [URL : https://www.princeton.edu/~hos/mike/ pdp7-unix]. transcripts/thompson.htm]. nous ont incité à construire des petites ti-répertoires. L’Unix PDP-7 n’a pas choses élégantes plutôt que des choses seulement distillé et simplifié beaucoup grandioses. de concepts d’autres systèmes (Multics, Project Genie), il a aussi introduit des Dans le temps, le système d’exploi- innovations comme les liens physiques, tation Unix allait épouser une philosophie les périphériques représentés comme des de conception qui a été résumée par Doug fichiers spéciaux et les redirections géné- Mcllroy : ralisées d’entrée/sortie. Beaucoup des caractéristiques, outils et appels système C’est la philosophie Unix : écrire des introduit dans l’Unix PDP-7 ont cours programmes pour faire une chose et la aujourd’hui encore dans les descendants faire bien. Écrire des programmes pour comme BSD19, et dans des réécritures travailler ensemble, collaborer. Écrire très propres comme Linux. L’héritage de des programmes pour manipuler des ce tout petit système d’exploitation vit flux de texte, parce que c’est une inter- encore, cinquante ans après sa création. face universelle (Raymond, 2003).

Avec la version PDP-7 d’Unix, Thompson, Ritchie et d’autres expéri- mentaient encore les concepts et struc- tures qui allaient se développer en fin de compte et se cristalliser dans cette philosophie. Ils étaient aux prises avec la structure du système de fichiers, les mécanismes fondamentaux des processus Unix, les caractéristiques de l’interpréteur et la possibilité d’abstraire les opérations sur les périphériques en des opérations sur des fichiers génériques. Les deux der- niers éléments qui allaient donner cette philosophie de « boîte à outils » à Unix, les tubes et le noyau portable, allaient arriver dans les quatre années suivantes.

En utilisant une plateforme maté- rielle dépassée, le PDP-7, et avec seule- ment 8 192 mots de mémoire, Thompson et Ritchie ont pu construire un système 19 Berkeley Software Distribution – une famille de d’exploitation multitâches, multi-utili- systèmes d’exploitation dérivés d’Unix, produits sateurs avec un système de fichiers mul- originellement à l’Université de Berkeley.

108 109

Bibliographie Ritchie D.M. & Thompson K. (1974). « The UNIX Time-sharing System ». Communi- cations of the ACM 17(7), pp. 365-375. Amstadt B. & Johnson M.K. (1994). « Wine ». Linux Journal, Issue 4, p. 3. Saltzer J.H. (1965). Manuscript Typing and Editing, 2nd edition, Cambridge, Mass. : Brooks F.P. (1975). The mythical man- MIT Press, p. AH.9.01. month: essays on software engineering. Reading, Mass. : Addison-Wesley. Salus P.H. (1994). A Quarter Century of UNIX. New York : ACM Press/Addison-Wesley Corbato F.J., Saltzer, J.H. & Clingen, Publishing Co. C.T. (1972). « Multics: the first seven years ». American Federation of Information Pro- Supnik B. & Walden D. (2015). « The cessing Societies: AFIPS Conference Pro- Story of SimH ». IEEE Annals of the History of ceedings, 1972 Spring, Joint Computer Computing 37(3), pp. 78-80. Conference, Atlantic City, NJ, USA, May 16-18, pp. 571-583. Toomey W. (2009). « The Restoration of Early Unix Artifacts » in 2009 USENIX Annual Nyman L. & Laakso M. (2016). « Notes Technical Conference (USENIX ATC 09), San on the history of fork and join ». IEEE Annals of Diego, USENIX Association. the History of Computing 38(3), 84-87.

Project MAC (1969). The Multiplexed Information and Computing Service: Program- mers’ Manual. Cambridge MA. : Mass. Inst. of Technology.

Raymond E.S. (2003). The art of Unix programming. Reading : Addison-Wesley Professional.

Richards M. (1969). « BCPL: A Tool for Compiler Writing and System Programming ». Proceedings of the May 14-16, 1969, Spring Joint Computer Conference, AFIPS ’69, New York : ACM, pp. 557-566

Ritchie D.M. (1980). « The Evolution of the Unix Time-Sharing System ». Proceedings of a Symposium on Language Design and Pro- gramming Methodology, London, Springer-Ver- lag, pp. 25-36.

Ritchie D.M. (1993). « The Develop- ment of the C Language » in The Second ACMSIGPLAN Conference on History of Pro- gramming Languages, HOPL-II, New York, ACM, pp. 201-208.

111

Témoignage / Testimony Unix: A View from the Field as We Played the Game

Clement T. Cole Intel Corporation.

UNIX is a classic example of a the economics in a virtuous circle as this “Christensen Disruptive Technology.” It was community developed into a truly global one. a cost-effective solution, produced at the I will trace a little of the history of a small right time, built by researchers at AT&T for newsletter to today’s USENIX Association

Abstract themselves, and was not originally considered and some of its wider social impact. seriously by its competition. The UNIX Operating System had simple goals. It ran Keywords: UNIX, history of UNIX, on modest hardware, and was freely shared operating systems, open system, disruptive as a result of AT&T legal requirements. As innovation. a result, a new computing customer developed, a different one than was being targeted by the large firms of the day. UNIX was targeted at the academically-inclined; it was economically accessible, and since its Intellectual Property (IP) was published in the open literature and implementation was available to the academic community fundamentally without restriction, the IP was thus “free” and able to be examined/ discussed/manipulated/abused by the target users. While its creators wrote UNIX for themselves, because they freely shared it with the wider community, that sharing fed on A Brief Personal History The point is that when UNIX was originally written, the purchasers of com- In the mid-1970s I was a student puting equipment were not primarily made at Carnegie Mellon University (CMU), up of the actual programmers of the com- studying Electrical Engineering and puting system. Thus, the major computer Mathematics. I worked for the Univer- firms tended to ignore the needs or desires sity as a programmer. Since that time, I of those the programmers, as they were not have secured a number of degrees there seen by the larger firms as the “true” cus- and at other institutions and have since tomer since they did not directly pay the spent the next 40 years developing com- bills. However, the target consumers of the puting systems. I have been lucky enough UNIX system were also programmers, and to be part of some exciting projects: from of course they did see the value (UNIX core UNIX development, one of the first was “good enough” for themselves), and IP/TCP implementations, to many other a community grew up around it because technologies. I have published papers and UNIX was a cost-effective solution for secured patents in computing since that them to do their own work. time and currently lead a team of engi- neers building supercomputers. UNIX had simple goals, ran on “modest hardware of the day” (Ritchie, 1974) and was freely shared as a result A Christensen Disruptive of AT&T legal requirements (Pinheiro, Technology 1987). The fact is UNIX might not have been successful if it had required much I contend that UNIX is a classic larger equipment to execute. A smal- example of a “Christensen Disruptive lish DEC PDP-11/40 class system that Technology” (Christensen, 1997). It was a traditional UNIX system ran such as a cost-effective solution, produced at an PDP 11/34 with max memory (256K the right time, built by research compu- bytes) would just barely suffice, but that ter scientists at AT&T for an unserved or cost on the order of $50K-$150K after under-served market (themselves – who disk, tapes, etc. (1977 dollars). If you were computer programmers), which at wanted a PDP 11/70 class system that its birth was not seriously considered by could address as much as 4M bytes and its competition. In those days, computers offer many more services, it was closer to were designed to execute either high end $250K1 (1977 dollars). To help the reader scientific applications typically at the scale to modern times, the cost of a gra- large national/government research labo- duate researcher might have been about ratories or to perform so called “back- $5K-$10K. office” work traditionally supporting finance and accounting at large commer- 1 For comparison $50K/$150K/$250K 1977 dollars is cial business firms. $208K/$622K/$1M 2017 dollars.

112 113

Similarly, while these prices may from Wikipedia on the history of AT&T seem large to today’s developer using here as this prose is directly to my point a “personal computer” that costs $500- and easier to understand: $10002 (in 2017 dollars), another key point is that in those days you did not own the In 1949, the Justice Department filed hardware yourself, a user (programmer) an antitrust suit aimed at forcing the like me, used a system owned/operated divestiture of Western Electric, which was settled seven years later by AT&T’s by someone else; typically owned by your agreement to confine its products and employer or the university you attended. services to common carrier telecommu- In comparison, the large systems of the nications and license its patents to “all mid-1970s that were installed to support interested parties.” A key effect of this scientific or back-office style work usually was to ban AT&T from selling compu- ters despite its key role in electronics began at $500K and often reached multiple research and development. Nonetheless, millions of dollars – so the UNIX systems technological innovation continued. at $50K-$100K really were modest (much less counting for inflation of the dollar or My non-legal description of the euro to today’s prices). decree is that in return for granting AT&T a legal monopoly for the phone busi- ness in the USA, AT&T had to agree to a number of behaviors. One of them was The 1956 AT&T that they were not allowed to be in the consent decree computer business3, but the other was that all AT&T had to agree to continue to work The question is how did this new with the academic research community community occur in the first place? I and industry at large as it had done in the previously mentioned that UNIX was past, and must make all of its inventions “freely shared as a result of AT&T legal available to the academic community at requirements.” I am referring to the 1956 no charge or by licensing them for “fair AT&T consent decree. This order had and reasonable terms” to their industrial extremely important side effects for those partners – all of those licenses were moni- of us in the computer business. It is well tored by the US government. explained in detailed legal wording by John Pinherio in a paper published in the From a historical standpoint, and Berkeley Technical Law Journal (Pinhe- as a result of the decree, the electronics rio, 1987), although it is a bit difficult to industry got a major boost with another follow. Instead, consider a quick quote invention from AT&T: the .

2 Similarly, $500/$1000 in 2017 dollars becomes 3 They were also protected, as other firms such as IBM $120/$241 in 1977 dollars (see [URL: http://www. was not allowed to compete with AT&T in the phone dollartimes.com] for reference). business either. While it was invented in 1947 in Murray At the time, doing computing re- Hill at Bell Labs, clearly it was firms such search made perfect sense for AT&T, as Fairchild Semiconductor, Texas Instru- given their core business (telephony), ments (TI), Intel, etc. that would make the since the “heart” of a telephone system money on its invention. We as consumers was in fact a stored program, digital and as a society clearly have benefited computer. In fact, we can look at the Bell greatly. AT&T was required to license the System, the phone switching network, device (the transistor) to anyone, and they as the world’s largest and most complex did. In fact, because of the decree, AT&T computer system. But by statute, AT&T had created an office in Murray Hill (New is not allowed to be in the (formal) com- Jersey) called the “Patent and Licensing puter business. Also, as a side product Group” whose sole job was to write those of building the phone network, just like licenses for firms that inquired and asked the transistor which was another core for them. Ironically this is how UNIX got technology created by the researchers its start, as the word processing system at AT&T, software and algorithms were for those same people. Indeed, a compu- being developed. Of course, the research terized help made a great sense for them in software and algorithms would lead due to the need to rewrite and reformat to UNIX. those sometimes complicated licenses.4 (Ritchie, 1984). The Murray Hill team had then (and still has) many researchers with The key point here is that by the late degrees in core science and technology 1960s, early 1970s when the computer such as mathematics, physics, and other science community was made aware of academic fields who continue to publish the UNIX technology, AT&T was requi- papers about their ideas in the open lite- red by law to license its technologies to rature. Those ideas were quite different everyone that asks for them and actually from other computer systems being dis- had created and instituted the processes cussed at the time in the same places and and procedures to do just that. By the ori- journals. The same researchers deve- ginal legal definition, the 1956 consent loped the code and ran it internally for decree had made UNIX “open”, but licen- their own use; just like they built tran- sed. This would really be indeed “Open sistors and used them, their research was Source” as we think about it today. This also “applied” or in patent terminology: is an important point I will come back to “reduced to practice” from theory. later in the paper. One of the groups in Murray Hill was a computer science research group, 4 See also: “Dennis Ritchie obituary”, Martin Campbell- with a number of its members working on Kelly, The Guardian website, 13th October 2011 [URL: https://www.theguardian.com/technology/2011/oct/13/ topics such as operating systems, compi- dennis-ritchie] (accessed 201709041527EDT). lers and languages, and similar techno-

114 115 logies. In the mid-1960s, a number of sell, and in fact were required to make members of this team had been working available to “all interested parties”. But jointly with MIT and General Electric on because they had published about their a large-scale computing utility system, ideas (and thus the technology itself), the Multics system which was part of the technology and the ideas behind it, project MAC5. Two of the members from drew interest outside of AT&T. Quickly AT&T were Ken Thompson and Dennis the academic community started to ask Ritchie. AT&T abruptly stopped working about it. By the rules of the 1956 consent on the project. Ken and Dennis were ope- decree, AT&T was required by law to rating system researchers so it is no sur- make UNIX available to people asking prise when AT&T left project MAC, they about it. The Murray Hill Technology wanted to continue working on OS topics license office did the same with the fee at Murray Hill. being a $150 tape copying charge. The fee covered what it cost AT&T to pur- Another research group in Murray chase, write and mail the tape back to Hill had been doing speech work using you. The key point is that if you worked a PDP-7. While Ken was not in that spe- at an academic institution, it was extre- cific group, he managed to borrow their mely easy to get a license for UNIX for PDP-7 when they were finished with your institution and copies of the UNIX their original experiment since Ken’s implementation with full sources from team’s proposal to purchase their own Ken and Dennis and many, eventually computer for research had been denied. most, did. Later, when the first versions of UNIX started to show promise when running on As a result, a new and unexpected the PDP-7, Ken’s group had to scrounge computing customer started to develop, the $60,000 needed to purchase their first which was different from what was being PDP-11 that they would use for the next targeted by the large commercial com- phase of their work (Ritchie,1984). This puter firms and valuing different fea- work was after all research, prototyping, tures from these traditional computing and exploration of ideas. systems. This new type of computer cus- tomer, of which I was one, did not care By 1974, when Dennis and Ken as much about what those large systems published the original UNIX paper in could do, as their internal core IP of the CACM (Ritchie, 1974), AT&T resear- big systems were not “freely” accessible chers had developed a technology their to us and it did not actually serve us as employeer was not allowed to directly well UNIX did in many cases. In addi- tion, with UNIX we could do a lot with what we had and the core IP was freely 5 “CSAIL Mission and History”, CSAIL [URL: http:// www.csail.mit.edu/about/mission-history] (url accessed available to us (open), so we could (and 2017115301402EDT). would) enhance it as we desired. The UNIX Community same behavior we would later put a name Emerges to Share to – we call it “open source.”

As I mentioned, anyone who asked Similarly, at the time of UNIX could license and obtain code from AT&T started to be available outside of AT&T, and use it. In fact, the term we used was Digital Equipment (DEC) was releasing that AT&T actually “abandoned” the its own operating systems for the PDP-11: sources at your front door. “There was no originally, DOS-11 and RT-11; which warranty of any kind. You asked for it, were followed by RSX-11 and RSTS7. there it was. You figure it out.” The first to As the manufacturer of the PDP-11 ask was Prof. Lou Katz of Columbia Uni- hardware, DEC was hardly encouraging versity. Ken made a copy of the contents its user base to use UNIX. They wanted of what we would later call the Fourth their customers to use their technology Edition available to him6. This exercise and purchase licenses for their software would be repeated many times over the products. They charged monetary fees for next few years. the use of the software such as the com- pilers and other layered products, which I cannot express the importance of was a manner in which these firms made the abandonment comment enough. AT&T money. By our use of UNIX, we were senior management really did not have customers of their hardware, but not of a desire that the actions of the company their software products. UNIX was free be seen by the US courts as being in the of real direct monetary cost to us as aca- computer business so they did not want to demics; hence UNIX became competi- have anything to do with you as a custo- tion to DEC software products even if it mer after they delivered the technology. was not a formal product8. As UNIX users, we were all fellow tra- velers; researchers doing what we wanted 7 “Index of /pdf/dec/pdp11” [URL: http://bitsavers. with this technology. Thus, AT&T actions trailing-edge.com/pdf/dec/pdp11/] (access 201709041612EDT). encouraged us (as customers and licen- 8 I should point out there were eventually some fees sees) to work with each other. Further- for the commercial use of UNIX. In comparison to the more, the core AT&T research published cost of the hardware at the time, those fees were about UNIX, using the sources and the originally a few thousand dollars, and actually not much different than the fees DEC charged for its OS. In the intellectual property that their employees case of UNIX a licensee also got the sources from had developed continued to encourage us AT&T. I’m going to ignore this part of the case for this to do the same: research and publish about argument because I personally never found those fees to actually be more than a small hurdle in practice. I the same technology. This is exactly the was working in the industry from the late 1970s onward, and had installed a number of commercial UNIX sites, and had obtained the first commercial license for a 6 Private Communication, although this has been University at CMU in 1978. The fact is that the cost of discussed and can be been verified elsewhere with a a PDP-11 or VAX hardware dominated the cost of a modern search engine. UNIX installation in the 1970s and 1980s.

116 117

Another force was clearly at work. Some of the primary Computer Science AT&T was legally prohibited from departments at the major research insti- supporting us as customers, and DEC tutions that had received a copy of UNIX did not want to provide support for the from AT&T were, of course, connected UNIX technology either because the via email on it, but not all. The Univer- software we had chosen to use (UNIX) sity of California, Berkeley (UCB) who was competing with its own; thus, we would become so important in the UNIX as users, quickly wanted and needed story later, was not yet part of the ARPA to talk to each other to share solutions community. But we all did have physical to common problems. I observed that mail, we all read the same journals and communal activity was forced upon us published in the same conferences. because it would not have been pos- sible to exist economically otherwise. By the time the Sixth Edition One thing that was becoming increa- was released, Ken added the following singly obvious by this time was that the note to the UNIX installation (start up) UNIX OS used the hardware differently document: (better) than the DEC software did, so it would often reveal hardware errors that – send your name(s) and address to: the DEC standard software would not. Prof. Melvin Ferentz A shared approach when working with Physics Dept. the hardware vendor was important. If Brooklyn College of CUNY DEC field service was getting the same Brooklyn, N.Y. 11210 complaints from the Massachusetts Institute of Technology (MIT), Carne- gie Mellon University (CMU), Harvard This mailing list would be called the University, much less AT&T, there was UNIX News. It was published when Mel a better chance we were listened to as a had enough information. In fact, some joint voice. That is to say, by acting as copies of some of these newsletters can a community with common goals, not be found at the USENIX Association web as individual users, we had more power site today10. In time, the members of the over our key vendors, of which DEC was mailing list started to meet regularly, ori- the most important. ginally in New York City. People came together and someone might talk about Within the USA when UNIX was a new trick, or optimization. Sometimes starting to spread to many sites, some Ken or Dennis even visited and brought tier-1 research and academics institu- a patch or two and they all often brought tions had access to ARPANET9 as part of their work with the US Government. 10 USENIX Notes April 2010 [URL: https://www.usenix. org/legacy/publications/login/2010-04/openpdfs/ 9 Ancestor to the Internet. usenixnotes1004.pdf] (accessed 201709041929 EDT). their own tweaks and additions. It was all signed the AT&T license agreement. At very informal and collegial. Carnegie Mellon University (CMU), we kept a file of the collected signature By the time of the Sixth Edition pages that we received from places like was released by AT&T, it was clear that MIT, UCB, Harvard, Purdue Universi- UNIX was a hit in the academic commu­ ty. UCB would have done the same, as nity, although the commercial comput­ would have MIT. The key point being ing business hardly had noticed it. The that with such a piece of paper in place, number of licenses that were assigned at the actual code then flowed between the this time was probably around 50-100, sites quite easily and without restrictions. but that number would grow exponen­ tially shortly. It had become the largest One thing that was interesting and licensed item that the Patent and License was different at each institution was Group had ever seen. The rules that the the handling of source protections (i.e. license declared had started to become which human users had access to the more straightforward and a bit more sources) — the core UNIX IP itself. At formal: this was after all, AT&T’s Intel­ CMU, those of us with need for access lectual Property (IP) and needed to be to the UNIX sources (i.e. when we took treated as such, by its licensees. Similar­ the undergraduate OS course) had been ly, the groups of like-minded users started required to sign a one-page, sub-license to come together all over the world. with the University stating we understood it was AT&T IP’s and we would guard it appropriately. I have not heard of any other school doing something similar. On Licensing and Code Access the other hand, once you had signed that document, you were added to a group Almost all software has some sort that had access to the code and in an of license for its use and care associated extremely free and unregulated manner. with it. The UNIX license said the IP The impressions I have had at most other was owned by AT&T and we could use it institutions such as MIT or Purdue was and share it with other licensees – which that if we had a reason to need access, it meant that information could and would was granted in some manner. be exchanged freely just as it is today in the so called “open source” movement. When I have discussed this idea with some of my peers that came in the The standard practice of the time UNIX community, by the mid-1980s, was that someone at each site would send early 1990s when UNIX moved from the a photocopy of the “signature page” of DEC based PDP-11 and VAX systems to their AT&T license to some other site ones made by firms such as Masscomp, to demonstrate that your site had indeed Sun and the like, it seems that for many 119 students it was somewhat hard to obtain Teaching UNIX direct access to the UNIX sources: you and the Lions’ Text had to be part of the closed “UNIX club” to obtain access to the AT&T IP (i.e. The important thing that had hap- AT&T provided source code itself). Cer- pened by the mid-1970s that is extremely tainly, from a source code standpoint, interesting was that the academic com- this seems to have been particularly true munity began to study and teach lessons at the largest educational institutions from UNIX. Previously, many schools (at least of ones that I am aware in the had developed courses that used a “toy USA, or so it has been expressed to me operating system” to teach. With the by people who I trust that lived in those arrival of UNIX, a real OS could be exa- times). mined, discussed and understood. In fact, one professor, John Lions of the Univer- However, I counter the “closed sity of New South Wales, wrote a booklet club” argument with two points. First, the called The Lions Commentary on the IP (the ideas) had been completely pu- UNIX 6th Edition for his students taking blished by this time, although the source courses 6.602B and 6.657G11. He in- code had not been. The AT&T owned cluded the sources to the UNIX kernel in source was never the definition of UNIX; his booklet (Lions, 1977). This document it has always been the ideas of how to itself was widely circulated as a bootleg build a system were and are the definition photocopy and would become cherished of UNIX, which I will discuss more in by the UNIX community. The author still a minute. Second, for me, having grown has his own nth generation xerographic up studying UNIX 15-20 years earlier copy from that time. as part of my formal education, using it for work, etc., I never found UNIX to be Clearly, the Lions’ students, much anything but freely available. However, I like me, were immersed in the code and can see that if I had been at an institution had access to the AT&T IP. The fruits that had been running UNIX (particularly were hardly forbidden. But his book does a binary only implementation) and I had highlight a new issue that would become not been given access to the sources (as troubling for the UNIX community years had been my experience working in the later – the idea of the AT&T IP being a trade industry), it could have been considered “forbidden fruits” for those people even 11 The author still considers it the best treatise on how though the truth was the core UNIX IP a modern OS works – although the MIT folks have updated it to use the Intel x86 architecture and a modern (the ideas) really was not. C compiler since sadly many current programmers no longer find the PDP-11 understandable. See “Xv6, a simple Unix-like teaching operating system”, by Russ Cox, Frans Kaashoek and Robert Morris [URL: https:// pdos.csail.mit.edu/6.828/2014/xv6.html] (accessed 201709031127EDT). secret. AT&T controlled the publishing of Murray Hill, NJ were wonderful people. the Lions’ text because the book had the They did want to help us as users of the sources to UNIX printed in it. However, technology and fellow members of the later books like Design of the UNIX Ope- greater UNIX community, so when they rating System (Bach, 1986), Design of could, they did. They were our friends and Implementation of the 4.3BSD UNIX and colleagues and we helped them when Operating System (Leffler, 1989), and we could, too. But they were limited in later The Magic Garden Explained : The what that could do. As it happened, Ken Internals of UNIX System V Release 4 An had a set of patches to the Sixth Edition Open Systems Design (Goodheart, 1994) he wanted to get out to the community which described UNIX as well, were not to fix a number of issues that had arisen controlled. To get a copy of the Lions text since the original distribution. There was a licensee had to obtain it from AT&T’s no formal way to do it. Officially, such patent license office and only licensees an update distribution was not allowed could do so – hence the tendency to pho- (“no warranty implied” said the license tocopy them. we had signed) and there really was not yet a formal mechanism even it had been A key point is that by the time many allowed by the AT&T license. of us left university in the late 1970s, we had been “mentally contaminated” by the At the time, Ken was driving his AT&T IP – the core UNIX ideas from family to California for a sabbatical at UC Ken, Dennis and the team in Murray Hill. Berkeley. He made a stop at the Univer- Their ideas were now how we thought; sity of Illinois to see a soon-to graduate they were the foundation of how we built student, the late Greg Chesson who was systems, and led to how we would teach about to start to work full time at Bell future programmers. Labs. Somehow Ken’s patches managed to get copied to a number of sites on the ARPANET. (I never knew how and Greg is not here to tell us). I know we got them Absence of support and eventually at CMU, and I believe MIT got the USENIX Association them around that same time. There was a comment about the patches existing in the As I have said, when the UNIX com- UNIX News and by then they were being munity began to take shape, because of passed by tape when different users got the consent decree and the fear of another together. Simply put, the UNIX commu- anti-trust case against them, the AT&T nity was sharing what it had with each management had officially and specifical- other. We were all in it together. ly abandoned us as UNIX licensees from a legal standpoint. The truth is that Ken The meetings, newsletters, sharing and Dennis and the rest of the team in of tapes were really the beginning of

120 121 the USENIX Association12 (USENIX, two conferences a year, they started to 2017). UNIX News started what became sponsor special conferences on topics a series of conferences, in those days within the community. Given the acade- twice a year, winter and summer, when mic seeds, the USENIX Association itself the UNIX users could come together13. became a well-respected publishing arm The benefits of the conversations beside and its conferences became preeminent, basic fellowship of course was we could i.e. publishing papers at USENIX confe- share knowledge in person and specifi- rences was important for getting tenure if cally share implementations, additions you were a Computer Science person at and corrections. We would organize one on the top Universities. To this day, talks on different topics and to many of USENIX sponsored conferences, such as us the highlight of the meetings was the the FAST and the Security conferences, creation and redistribution of a 9-track are the top conferences in those specific magnetic tape which held the collected areas to publish for storage or security offering from different sites. Archives topics. of these distributions still can be found today in places such as the UNIX Source In fact, one of the most important archives maintained by the UNIX Heri- gifts to the computer community that I tage Society14. can think of came from the USENIX As- sociation, what we call the “open access” Soon the conferences, called the movement. Starting in 2008, when I was semi-annual USENIX conferences, were on the board and serving as the president not only in NYC. They were also in Cam- of the USENIX Association, the open bridge (Massachusetts, USA) at Harvard access movement was born to make sure University, then in California, Toronto sharing of information was easy15. The and Boulder. But the idea was not just US concept of open access simply put is that centric, the conferences started to spread ideas need to be open to fuel creativity to Europe, too. The UK was first, with and experimentation and, thus, more and Cambridge (UK), but quite quickly, the better ideas. As a result of this change, continent got busy. A European UNIX all of USENIX’s publications have been Group formed. The USENIX Associa- available to anyone to read without any tion started to publish proceedings of its fees, which stems directly from the origi- conferences, and instead of having just nal UNIX philosophy, ideas and actions.

12 “About Usenix”, USENIX Association [URL: https:// www.usenix.org/about] (accessed 201709041858 EDT). 15 USENIX Notes April 2010 [URL: https://www. 13 The newsletter itself was renamed ;Login which was usenix.org/legacy/publications/login/2010-04/openpdfs/ a credit to the original UNIX herald and continues to usenixnotes1004.pdf] (accessed 201709041929 EDT). be published under than name. USENIX Update April 2012 [URL: https://www.usenix. 14 “The Unix Heritage Society” [URL: https://www. org/blog/usenix-supports-open-access] (accessed tuhs.org] (accessed 201709041904 EDT). 201709041930 EDT). Open, Free, Libre different Emacs and gave us compilers and Gratis for many microprocessors; University of Delaware (UDEL) wrote a mailer, lots of Parts of the original UNIX source people wrote editors, etc. code and its descriptions of how it worked were published in journals, The most famous collection of papers and books. At conferences, such modifications and additions to the UNIX as USENIX’s, the sources themselves “trade secrets” became the Berkeley used to build the entire system were Software Distribution (BSD) from the being “freely shared.” Note that the des- Electrical Engineering and Computer cription of the code was open. While you Science (EECS) department at UCB, never did need to have an AT&T license distributed to their licensees (which of to come to a USENIX conference, those course all had an AT&T license). Since that came, were covered by their em- the 1960s and before the Computer ployer or academic institution, at least Science part of the department has been initially. created, the EE portion had operated its Industrial Liaison Office (ILO). One job Thus, we had USENIX conferences of the ILO was to distribute “gratis” (free or equivalents in Europe and we used of any specific direct monetary charges) them to trade code back and forth. The the sources to the code developed at manner in which we traded code was UCB basically to anyone that asked, often physically carrying or mailing a which in practice was the industrial par- magnetic tape, but code changed hands tners around the world. Programs such a from one site to another without hin- SPICE, SPLICE, MOTIS had seeded the drance. Indeed, we were careful to send electronics industry and mechanism to the tapes home to a site under the care of collect licenses for the codes and release a person. But, it was very much what we tapes of them was already in place when now call an “open source culture” as dif- the first BSD16 for UNIX was made avai- ferent groups modified the code. I never lable as an update to the Sixth Edition. saw us fail to send a tape home to any This was followed by 2BSD for the licensed site. Seventh Edition/PDP-11 and then 3BSD and 4BSD for the VAX. Within a few As I said, this sharing was happe- years, the UC Berkeley team would get a ning at a prodigious rate. Each site added DARPA contract and create the Compu- features that were important to them or ter System Research Group (CSRG) and to fix issues that became acute in their environment. For instance, the origi- nal ARPANET code was done at Uni- 16 The first Berkeley UNIX Software Distribution was actually called BSD at the time of its release, but to versity of Illinois (UofI); CMU would distinguish it from later releases, modern people often create disk recovery and Emacs, MIT a refer to this as 1BSD.

122 123 start to push out BSD releases with pre- exactly how UNIX was created. It was fixes of 4.1A, 4.1B, 4.1C, 4.2, 4.3, 4.4, targeted for a small inexpensive com- 4.4Reno, 4.4Tahoe, and NET. puter (PDP-7 originally, later PDP-11), written to provide a platform by program- Here we see an interesting trend. mers, for programmers, and as a place to By the time of the creation of UCB’s experiment with ideas. It was not created CSRG team, we actually have an entire originally as a large enterprise-wide branch of the computing industry for computing service, not integrated toge- UNIX, which has been named the “open ther, nor delivered by a manufacturer. systems” products to computer commu- Even its humorous and irreverent name nity at large (note the title on the SVR4 was a contrast to developers’ experience book I mentioned previously). We have with Multics (Organick, 1972). small companies such as Masscomp and Sun or large ones such as Group As Christensen observes, in many Bull, Siemens, ICL, DEC, HP and IBM ways that software would have been all producing products based on “open compared, looking at the Fourth, Fifth, systems” technology. We even start to Sixth or even the Seventh Editions of have a war within the community itself UNIX against its commercial peers of as to what is the definition of “UNIX”. the mid-1970s (RT-11, RSX-11, RSTS, VAX/VMS), UNIX was considered to be “weaker or “not as good”, if not a “toy” by many measures. Moreover, Christensen Disruption I mentioned at the beginning of this Revisited paper that programmers did not buy computers. But something extremely At the same time, many companies, important had occurred: students like including the original UNIX hardware me had begun to graduate and were manufacturer DEC, continued to produce now in the workplace. We had been competing computing systems that were mentally contaminated with those open not based on UNIX. Yet, UNIX which UNIX ideas, and while we may not have originally was not a product, is now an had the budget, we were asked by our actual branch of the industry (the “Open bosses what to buy and we all wanted Systems” branch) and it is thriving and UNIX. What UNIX did for us was what growing at a tremendous rate. How did we valued, not what the old systems had this happen? valued. And as Christensen predicts, the technology had gotten better — As Christensen points out, disrup- all while disrupting and displacing the tive technologies start off as a worse mainstream because the growth curve technology, but a different group of of the UNIX community was much people values the technology. This is more rapid than the older curve. Christensen predicts that worse Some amount of money was spent for li- technology will improve and over take censing. Some amount was spent on hard- the older technology, but what he did not ware. It is true that one can claim some predict and is interesting is that the case people did not have access to the sources of UNIX, that because the technology at all times (e.g. the 1980s and 1990s was “open” / “free”, its targeted users during the “UNIX Wars”), but the ideas were the ones that could and did make it were never locked away, they were never better! That is, this dynamic new market, “closed.” which was made up of a whole new com- munity of people who had previously So, the question is, at what point been ignored in the old market, were the does an idea transition from a concept power that drove making the technology to thing? To me, while being able to use valuable. Many people in the community UNIX (the instance of it) made it real, around the world worked to add to the and is what allowed us to come together, core UNIX technology, because the core it was the ideas that really mattered and intellectual property had been freed by a that was the part that was truly free. side effect of that 1956 decree. Moreo- ver, because it was in the open literature, In fact, the US courts came to the published, taught, improved, the tech- same conclusion, too. As I mentioned nology got strong because more people before, AT&T had considered UNIX a were able to contribute. “trade secret.” In the early 1990s, AT&T sued the UCB and a small firm made up of the former CSRG folks, called BSDi, on these grounds that they had used the What does “Free” Mean trade secrets inappropriately and AT&T actually lost the case17. The finding of the In perspective with the notion of court was simple: with the 1956 consent “free software”, was UNIX really free? decree, AT&T was required to license its The code was published. We read about technology. When they licensed UNIX it. We had access to it. Indeed, the UNIX to UCB and similar academic institu- source was licensed, and licensing did not tions, then UCB and those institutions change the freeness – as that is a sepa- used to it teach people like me, we were rate quality. The ideas were published, by definition, “mentally contaminated” the ideas were discussed. The source was with AT&T’s IP and they could not, by shared within a community that had them definition claim the IP was a trade secret for very little money. This is an important point: free does not mean it was without complete monetary cost (gratuity), but 17 “USL vs. BSDi documents”, by Dennis M. Ritchie, Bell labs website [URL: https://www.bell-labs.com/ rather intellectually free (libre), which usr/dmr/www/bsdi/bsdisuit.html] (accessed in this realm proved far more powerful. 201709012004EDT).

124 125 any more. The ideas (the core IP) behind deficiencies because its strengths were UNIX could not be locked up. The US in features we cared about, which more courts declared the IP open and free than made up for its weakness. Because because it had been published and descri- it was open, we could enhance it as we bed! (Pinheiro, 1987). needed. And, enhance it we did. The key is that economics on UNIX was in our favor to enhance it. If you will, the cost to enter (purchasing the hardware was Economics vs. low), the software was basically free and Technical Purity student labor was inexpensive, so why not enhance it? The penultimate idea I want to explore about the driver for UNIX success is less obvious, but I think equally impor- tant. Engineering schools usually teach An International Sensation the best or optimal way to design dif- ferent things. We take this thinking and One of the most wonderful parts often critique technical designs for some of the UNIX story is that it crossed level of purity. Yet engineering is often cultures and international boundaries. made up of trade-offs, so one person’s UNIX had been developed in the USA optimization might not be considered for programmers at AT&T. But the in- such by someone else. teresting thing is that the international language of programmers was problem When they started, Ken and Dennis solving and really is independent of were not trying to have an academically most or many spoken languages. Even perfect system as they developed UNIX. though UNIX lacked support to spoken They were not trying to build something languages other than English itself, most glorious, or even a product for that programmers spoke English already so manner. Technical purity was a non-goal; that fact that it solved a set of problems getting something they needed to get that was globally common made a fine done was. Similarly, when users like me solution. It was not a single culture that picked UNIX as a system, we picked it made UNIX succeed, other than the one not because it was polished, came pac- the technology created itself. As I hope I kaged, with a warranty or even included have demonstrated, UNIX was open and many programs traditionally associa- free so anyone, anywhere could be part ted with a computer OS (such as a real of the community. As I pointed out, the Fortran compiler); we picked it because best description of how the UNIX system it solved our problems inexpensively worked was written in Australia, but it and effectively. UNIX was cost effec- did not stop there. Professor Andrew tive for us and we did not care about the Tanenbaum literally wrote volumes from his offices in the . It really which he could teach, but at the time we was a worldwide effort with many hands were worried that he might be restricted. being part. AT&T even investigated another Seventh Edition clone, called Coherent20. In fact, in time, because UNIX was such an international sensation it made To me the height of this is today’s sense that it would become the leading Linux System, which clearly holds the system to support an internationalization UNIX banner high. The original kernel effort, that was followed by many other was written by a young Finn, we all know. systems later. For instance, the techniques Now the project has thousands of contri- used for the C for butors around the world, with millions systems like Microsoft’s Windows were of lines of codes between the kernel and taken from the internationalization work layered applications. What an amazing that UNIX offered. statement to the UNIX legacy, Ken, Dennis and the people that started it all. It is said imitation is the greatest form of flattery and UNIX started to be imitated. These “UNIX clones” sprang up all over the world. The first clone The Virtuous Circle was done by an ex-AT&T person, Bill Plauger, who wrote a Sixth Edith clone Finally, you should notice a circular called Idris18. I remember being extre- argument going on here, but that actually mely excited by a paper given by Michel is the basis of my final point. UNIX was Gien on the Sol Operating System at targeted at the academically-inclined, USENIX Summer 1983, as researchers was economically accessible, and since in France were working on a clone of the ideas which formed the basis of UNIX UNIX written in Pascal (Gien, 1983). had been published in open literature and The Pascal implementation would lead to the implementation of those ideas had the world-famous Chorus System done in been made available to the academic com- C++. Tanenbaum and his students would munity fundamentally without restriction, write , a complete Seventh edition the “UNIX IP” was thus “free” and able clone19 and like Lions, published the full to be openly examined, discussed, mani- sources in his text book (Tanenbaum, 1987) as he wanted something with 20 “Mark Williams Company Sources”, Stephen A. Ness, Ness and MWC [URL: http://www.nesssoftware. 18 Idris was marketed by his then firm, Whitesmiths, com/home/mwc/source.php] (accessed Ltd. Traces of the code seem to be gone on the Internet, 201706171421EDT). The Coherent story in interesting but you will reference to it. in itself. Dennis was one of the people that was asked 19“”, MINIX Group, Vrije Universiteit to investigate it. AT&T eventually concluded it was [URL: http://www.minix3.org] (accessed unique enough as to not prosecute and the system stayed 201706191751EDT). on the market, although was not financially successful.

126 127 pulated, even abused by the target users. Bibliography Thus, my secondary thesis is that while its creators wrote UNIX for themselves, they Bach M.J. (1986). Design of the UNIX freely shared it with the community and Operating System. London, Prentice-Hall. the sharing fed on the economics in a vir- tuous circle21 that caused the community Christensen, C.M. (1997). The Innova- to grow. The more it grew, the more the tors Dilemma. Boston, Harvard Business School Press. demand for it became. As there is more demand for UNIX, there is more invest- Gien M. (1983). “The SOL Operating ment in its technology, and more people System”, USENIX Association, 1983, Procee- want to participate in developing the dings of the Summer ‘83 USENIX Conference, technology, which causes more demand Toronto, Canada, July, 1983, pp.75-78. – exactly what Krugman describes as a Goodheart B. & Cox J. (1994). The Magic virtuous circle!22 Garden Explained: The Internals of UNIX System V Release 4 An Open Systems Design, London, Prentice-Hall, ISBN 0-13-098138-9.

Leffler S.J., McKusick M.K., Karels M.J. & Quarterman J.S. (1989). Design of and Implementation of the 4.3BSD UNIX Opera- ting System, Boston MA, Addison-Wesley Pu- blishing Co.

Organick E. (1972). The Multics System: An Examination of its Structure. Cambridge (USA), MIT Press.

Pinheiro J. (1987). “AT&T Divestiture & the Telecommunications Market”. Berkeley Technical Law Journal, 303, September 1987, Volume 2, Issue 2, Article 5.

Ritchie D.M. & Thompson K. (1974). “The UNIX Time-Sharing System”. Commu- nications of the ACM, July 1974, Volume 17, 21 See “The Fall and Rise of Development Economics”, Number 7, pp.365-375. Paul Krugman [URL: http://web.mit.edu/krugman/ www/dishpan.html] (accessed 201706191751EDT). Ritchie D.M. (1984). “The Evolution of 22 Thank you: This paper would not have been possible the UNIX Time-Sharing System”. AT&T Bell without a number of people encouraging me to write Laboratories Technical Journal, October 1984, this history down for the future generations to read. In particular, my daughter Leah Cole, my sister Caroline Volume 63, Number 8, Part 2, pp.1577-1594. Cole, my wife Margaret Marshall and the editorial team of Cahiers d’histoire du Cnam and their reviewers Tanenbaum A.S. (1987). Operating (especially Camille Paloque-Berges and a new friend Systems: Design and Implementation. London, from this endeavor, Loïc Petitgirard, who provided Prentice-Hall. feedback and help in editing).

129

Enquête d'acteur La conversion à Unix Un exemple de prophétisme informatique ?

Laurent Bloch Membre de l’Institut de l’Iconomie.

Unix survient une vingtaine d’an- va être question ici, selon la perception nées après l’invention de l’ordinateur, et que j’en ai eue de ma position de prati- une dizaine d’années après que quelques cien. Cette perception a été élaborée de pionniers eurent compris qu’avec l’infor- façon rétrospective, aussi l’ordre chro- matique une nouvelle science naissait, nologique n’est-il pas toujours respecté qu’ils eurent tenté de la faire reconnaître dans cet exposé. Ce qui suit est le récit de comme telle, et qu’ils eurent échoué dans l’élaboration d’une vision personnelle, qui cette tentative1. Certains traits d’Unix et assume sa part de subjectivité. certains facteurs de son succès procèdent de cet échec, et c’est de cette histoire qu’il Comme explicité par Benjamin Thierry, historien des techniques et de l’innovation à la Sorbonne, les pratiquants 1 Ce texte est l’adaptation écrite d’une communication de disciplines en principe entièrement donnée par l’auteur, à la demande des organisateurs, lors du colloque « Unix en France et aux États-Unis : sous l’empire de la raison, telle l’informa- innovation, diffusion et appropriation » tenue au Cnam tique, ont fréquemment recours au voca- le 19 octobre 2017. Le sujet a été élaboré collectivement avec les organisateurs de la conférence et le discutant, bulaire religieux pour évoquer les aspects Benjamin Thierry, et ce texte a été revu à la suite des non rationnels de leur pratique, qui n’ont discussions ayant eu lieu autour de l’allocution [URL : en principe pas droit de cité. L’histoire http://technique-societe.cnam.fr/colloque-international- unix-en-france-et-aux-etats-unis-innovation-diffusion- des sciences et des techniques ne nous et-appropriation--945215.kjsp]. Ce texte est laisse pas ignorer la présence en ces do- exceptionnellement placé sous une licence CC BY-NC- maines de phénomènes de croyance qui SA (Licence Creative Commons : Attribution + Pas d’utilisation commerciale + Partage dans les Mêmes peuvent aller jusqu’à des formes quasi-re- Conditions). ligieuses, et ainsi engendrer des manifes- tations typiques de la vie religieuse, telles to the Entscheidungsproblem », 1937) que le prophétisme et la conversion. Le rencontraient peu de succès : la question développement d’Unix m’a semblé doté apparaissait clairement démodée. d’une dimension prophétique, et pour développer ce point de vue j’emprunterai Ce n’est qu’à la rencontre de quelques idées au livre fondateur d’André Herman Goldstine, et, par son entremise, Neher L’essence du prophétisme (1972). des concepteurs de l’ENIAC Eckert et Pour rester fidèle (si j’ose dire) à l’esprit Mauchly, à l’été 1944, que von Neumann unixien, j’invite le lecteur à prendre cette s’intéressa aux calculateurs, et sans le dernière thèse cum grano salis2. moins du monde établir un lien entre cet intérêt et les travaux de Turing dont il avait connaissance. Néanmoins, si Turing avait jeté les bases de l’informatique, von Avant l’informatique Neumann allait inventer l’ordinateur. Samuel Goyet a eu, lors d’une séance du Entre 1936 et 1938 à Princeton, séminaire Codes sources3, une formule avait bien conscience de frappante et qui me semble exacte : faire de la science, mais ne soupçonnait avant von Neumann, programmer c’était pas que ses travaux de logique seraient tourner des boutons et brancher des fiches un jour considérés comme la fondation dans des tableaux de connexion, depuis théorique d’une science qui n’existait von Neumann c’est écrire un texte ; cette pas encore, l’informatique (Bullynck, révolution ouvrait la voie à la science Daylight & De Mol, 2015 ; Haigh, 2014). informatique.

Dans les couloirs de l’IAS il croi- Lors d’une séance précédente du sait John von Neumann, parfois ils même séminaire, Liesbeth De Mol avait parlaient travail, mais pas du tout de analysé les textes de von Neumann et questions de logique, domaine que von d’Adele et Herman Goldstine4, en mon- Neumann avait délibérément abandonné trant que tout en écrivant des programmes, après la publication des travaux de Gödel ils n’avaient qu’une conscience encore (Corry, 2017). En fait, ils étaient tous imprécise du type d’activité à laquelle ils les deux mathématiciens, et ils parlaient des zéros de la fonction ζ(s) et de l’hy- pothèse de Riemann (RH). Les efforts 3 Samuel Goyet, « Les interfaces de programmation (api) web : écriture informatique, industrie du texte et d’Alonzo Church pour éveiller l’intérêt économie des passages », séminaire Codes source, de ses collègues pour les travaux sur les séance du 8 juin 2017 [URL : https://codesource. fondements de son disciple Turing (« On hypotheses.org/241]. computable numbers, with an application 4 Liesbeth De Mol, « Un code source sans code ? le cas de l’Eniac », séminaire Codes source, séance du 22 juin 2016 [URL : https://codesource.hypotheses. 2 org/219].

130 131 s’adonnaient. C’est donc une douzaine travaux6 me semblent marquer un point d’années après le « First Draft of a Report de non-retour dans la constitution de l’in- on the EDVAC »5 de von Neumann formatique comme science. Jusqu’alors (1945) que s’est éveillée la conscience la programmation des ordinateurs était de l’arrivée d’une science nouvelle, et considérée un peu comme un bricolage j’en retiendrai comme manifestations les empirique, qui empruntait sa démarche à plus explicites la naissance du langage de d’autres domaines de connaissance programmation Algol, puis la naissance et la diffusion du système d’exploitation Fortran, le premier langage dit Multics. Il faudra encore une bonne quin- évolué, était conçu comme la transposi- zaine d’années pour que la bonne nouvelle tion la plus conforme possible du forma- se répande quelque peu parmi les prati- lisme mathématique. Du moins c’était ciens de l’informatique, dont l’auteur de son ambition, déçue comme il se doit7, ces lignes, d’abord sous les espèces de la et le caractère effectuant du texte du pro- Programmation structurée (Dahl, Dijkstra gramme, qui le distingue radicalement & Hoare, 1972 ; Arsac, 1979), qui semait d’une formule mathématique, plutôt que l’espoir d’une sortie du bricolage. Inutile d’être signalé, était soigneusement dissi- de préciser que l’esprit de bricolage est mulé, notamment par l’emploi du signe encore présent parmi les praticiens. « = » pour désigner l’opération d’affecta- tion d’une valeur à une variable, variable au sens informatique du terme, lui aussi distinct radicalement de son acception Algol et Multics

Algol et Multics sont les cadavres 6 Voir le chapitre « The American Side of the dans le placard d’Unix, même si les meur- Development of ALGOL », in Perlis (1981, pp. 75-91). triers ne sont pas clairement identifiés. 7 Un énoncé mathématique est essentiellement déclaratif : il décrit les propriétés d’une certaine entité, ou les relations entre certaines entités. Un programme informatique est essentiellement impératif (ou Algol performatif) : il décrit comment faire certaines choses. Même écrit en style fonctionnel avec Lisp ou logique La composition des comités de avec Prolog il sera finalement traduit en langage machine, impératif. Il est fondamentalement impossible rédaction des rapports Algol successifs de réduire l’un à l’autre, ou vice-versa, ils sont de natures (Backus & al., 1960) et la teneur de leurs différentes. Il est par contre possible, dans certains cas, d’établir une relation entre le texte d’un programme et un énoncé mathématique, c’est le rôle notamment des systèmes de preuve de programme. Ou, comme l’écrivent Harold Abelson et Gerald Jay Sussman (2011 [1985], 5 John von Neumann, « First Draft of a Report on the p. 22) : « In mathematics we are usually concerned EDVAC », Rapport technique, University of with declarative (what is) descriptions, whereas in Pennsylvania, 1945 [URL : http://www.virtualtravelog. computer science we are usually concerned with net/entries/2003-08-TheFirstDraft.pdf]. imperative (how to) descriptions ». mathématique. La conception même du sont des universitaires, l’influence des langage obscurcissait la signification de industriels est modérée, Américains et ses énoncés, ce que l’on peut pardonner Européens sont à parité. En témoigne à parce qu’il s’aventurait le tableau suivant, auquel j’ai ajouté dans un domaine jamais exploré avant quelques personnalités influentes qui lui : « Fortran montrait qu’un langage n’appartenaient pas formellement au de programmation pouvait introduire comité International Algebraic Language de nouvelles abstractions qui seraient (IAL) initial, ou qui ont rejoint ultérieu- codées par un compilateur, plutôt que rement le comité Algol 60, ou qui simple- directement implémentées par le maté- ment ont joué un rôle dans cette histoire. riel » (Foster, 2017). Cette affaire du signe « = » n’est pas si anecdotique qu’il Les années de naissance sont signi- y paraît, nous y reviendrons. ficatives : il s’agit de la génération 1925 (plus ou moins). De même, Cobol se voulait le plus conforme possible au langage des S’ils ne figurent pas au sein des comptables, et RPG cherchait à repro- comités, Edsger W. Dijkstra et Jacques duire les habitudes professionnelles des Arsac ont contribué (avec Dahl, Hoare et mécanographes avec leurs tableaux de beaucoup d’autres) à la systématisation connexions. de leurs idées sous la forme d’une doc- trine, la programmation structurée (Dahl, Algol rompt brutalement avec ces Dijkstra & Hoare, 1972), qui a contribué compromis, il condense les idées de la à extraire ma génération de l’ignorance révolution de la programmation annon- dans laquelle elle croupissait. Elle est cée par (1981, p. 75) en souvent et abusivement réduite à une tirant toutes les conséquences (telles que idée, le renoncement aux instructions perçues à l’époque) de la mission assi- de branchement explicite (GOTO), pro- gnée au texte d’un programme : effectuer mulgué par un article célèbre de Dijkstra un calcul conforme à l’idée formulée par (1968), « Go to Statement Considered un algorithme. La syntaxe du langage ne Harmful ». Il s’agit plus généralement doit viser qu’à exprimer cette idée avec d’appliquer à la programmation les pré- précision et clarté, la lisibilité du texte en ceptes du Discours de la Méthode, de dé- est une qualité essentielle, pour ce faire il couper les gros programmes compliqués est composé de mots qui composent des en petits programmes plus simples8, et phrases. L’opération d’affectation « := » ainsi d’éviter la programmation en « plat est clairement distinguée du prédicat d’égalité « = ». 8 Cette façon de diviser la difficulté a pris la forme du sous-programme, inventé par , qui a permis la procédure et la fonction, puissants moyens La composition du comité Algol 58 de mise en facteur d’éléments de programmes est significative : la plupart des membres réutilisables, et donc d’abstraction.

132 133

Friedrich L. Bauer 1924 Professeur Munich

Hermann Bottenbruch 1928 PhD Darmstadt Ingénieur

Heinz Rutishauser 1918 PhD ETH Zürich Professeur Zürich

Klaus Samelson 1918 PhD Munich Professeur Munich

John Backus 1924 MS Columbia Ingénieur IBM

Alan Perlis 1922 PhD MIT Professeur Yale

Joseph Henry Wegstein 1922 MS U. Illinois NIST

Adriaan van Wijngaarden 1916 U. Amsterdam

Peter Naur 1928 PhD Copenhague Prof. Copenhague

Mike Woodger 1923 U. College London NPL

Bernard Vauquois 1929 Doctorat Paris Prof. U. Grenoble

Charles Katz 1927 MS U. Penn Ingénieur Univac

Edsger W. Dijkstra 1930 PhD Amsterdam U. of Texas, Austin

C. A. R. Hoare 1934 Prof. Oxford

Niklaus Wirth 1934 PhD Berkeley Professeur Zürich

John McCarthy 1927 PhD Princeton Professeur Stanford

Marcel-Paul Schützenberger 1920 PhD Math. Professeur Poitiers

Jacques André 1938 PhD Math. DR Inria

Jacques Arsac 1929 ENS de spaghettis », illisible et donc impos- reuse les idées les plus ardues de la pro- sible à maintenir. grammation va de pair avec la recherche d’un formalisme qui ne doive rien aux Rien n’exprime mieux l’aspira- notations mathématiques. tion de cette époque à la création d’une science nouvelle que le livre de Dijkstra Pierre-Éric Mounier-Kuhn (2014), A Discipline of Programming (1976) : narre le succès initial rencontré dans les l’effort pour exprimer de façon rigou- années 1960 en France par Algol 60, puis son déclin au cours des années 1970, -- Le système est écrit non pas en assem- parallèle à celui connu en d’autres pays. bleur, mais dans un langage de haut niveau (PL/1 pour Multics, C pour Algol 68 était un beau monument Unix). On a pu dire que le langage C intellectuel, peu maniable pour la faible était un assembleur portable. puissance des ordinateurs de l’époque, peu apte à séduire constructeurs d’ordinateurs -- Le système de commandes qui permet et utilisateurs en entreprise avec des pro- de piloter le système est le même in- blèmes concrets à résoudre en temps fini. terpréteur qui permet à l’utilisateur d’exécuter des programmes et des commandes, et il donne accès à un Multics, un système intelligent langage de programmation. C’est le shell, inventé par Louis Pouzin pour Multics est à la science des systèmes CTSS, ancêtre de Multics. d’exploitation ce qu’est Algol à celle des langages de programmation : un échec -- Le système de fichiers d’Unix doit public, mais la source d’idées révolu- beaucoup à Multics, d’où vient aussi tionnaires et toujours d’actualité qui sont l’idée d’exécuter chaque commande à l’origine d’une science des systèmes comme un processus distinct. d’exploitation. Certaines de ces idées ont d’ailleurs été largement empruntées par -- Mais surtout, comme Dennis Ritchie les créateurs d’Unix. l’a expliqué (1980), ce que lui et ses collègues des Bell Laboratories vou- Multics est né en 1964 au MIT laient retrouver de Multics en créant (Massachusetts Institute of Technology) Unix, c’était un système qui engen- dans le cadre d’un projet de recherche drait pour ainsi dire spontanément la nommé MAC, sous la direction de Fer- communication et l’échange d’expé- nando Corbató. Nous ne reviendrons pas riences entre ses adeptes. sur les circonstances bien connues dans lesquelles Ken Thompson et Dennis M. Cette qualité, partagée par Multics Ritchie ont créé Unix parce que le système et Unix, d’être propice à la création d’une Multics qu’ils utilisaient aux Bell Labs communauté ouverte et communica- allait disparaître9. De Multics, ils vou- tive, mérite que l’on s’y arrête. Lorsque laient conserver les caractères suivants : Multics a été introduit dans l’Institut statistique qui employait l’auteur de ces

9 Cf. Laurent Bloch, « De Multics à Unix et au logiciel lignes à la fin des années 1970, il y a libre », Billet publié sur son site web en juillet 2014 immédiatement cristallisé la formation [URL : https://laurentbloch.net/MySpip3/De-Multics- a-Unix-et-au-logiciel] et Les systèmes d’exploitation des ordinateurs – Histoire, fonctionnement, enjeux, laurentbloch.net/MySpip3/Systeme-et-reseau- livre en accès libre sur son site web [URL : https:// histoire-et-technique].

134 135 d’une petite communauté intellectuelle, Celle qui me tient le plus à cœur consiste que la Direction n’a d’ailleurs eu de cesse à évacuer la notion inutile, voire nuisible, de résorber parce qu’elle n’en compre­ de fichier, pour ne garder qu’un seul dis- nait pas la fécondité et qu’elle perce- positif d’enregistrement des données, vait son activité comme un gaspillage. la mémoire (mieux nommée en anglais D’innombrables expériences similaires storage), dont certains segments seraient ont eu lieu autour de Multics et d’Unix, pourvus de l’attribut de persistance10. sans qu’une cause unique puisse leur être attribuée. Le fait que ces systèmes aient Le fichier est un objet rétif à toute été créés par des chercheurs, habitués définition conceptuelle consistante, hérité à l’idée que la connaissance soit objet de la mécanographie par les cartes per- de partage gratuit et de communication forées et la puissance d’IBM, mais sans désintéressée mais assortie de plaisir, est aucune utilité pour un système d’exploi- un élément. L’existence de logiciels com- tation d’ordinateur moderne. Il n’est que modes pour la création de textes, le cour- de constater la difficulté qu’il y a à expli- rier électronique et les forums en ligne quer à un utilisateur ordinaire pourquoi il a aussi joué, mais cette existence était- doit sauvegarder ses documents en cours elle une cause ou une conséquence ? La de création, et pourquoi ce qui est dans nature programmable du shell, l’accès la mémoire est d’une nature différente de possible pour tous aux paramètres du ce qui est sur le disque dur, terminolo- système, inscrits dans des fichiers de gie qui révèle une solution de continuité texte ordinaires, encourageaient un usage injustifiée. intelligent du système, et l’intelligence va de pair avec l’échange. Les systèmes d’exploitation de demain, je l’espère, n’auront plus de De Multics, les créateurs d’Unix re- fichiers, c’est déjà le cas de systèmes à jetaient la lourdeur, due en majeure partie micro-noyaux comme L4. au fait que les ordinateurs de l’époque n’étaient pas assez puissants pour le faire fonctionner confortablement : ils étaient trop chers, trop lents, trop encombrants.

Avenir de Multics

Il n’est paradoxal qu’en apparence de prédire l’avenir de ce système disparu. Certaines des idées les plus brillantes de 10 Cf. Laurent Bloch, « Mémoire virtuelle, persistance : faut-il des fichiers ? », Billet publié sur son site web en Multics sont restées inabouties du fait février 2014 [URL : https://laurentbloch.net/MySpip3/ des limites des ordinateurs de l’époque. Memoire-virtuelle-persistance-faut]. Unix franchement marginal, de la plupart des acteurs de la genèse unixienne. Le crépuscule de Multics Du côté de l’industrie informatique, Dennis Ritchie (1980) a décrit la la domination d’IBM était écrasante période où les Bell Labs se retiraient du (95 % du marché mondial). Les construc- projet Multics. Le groupe de D. Ritchie, teurs d’ordinateurs de gestion comme K. Thompson, M. D. McIlroy et Joseph leurs clients ne se souciaient guère des F. Ossanna souhaitait conserver l’envi- aspects scientifiques de l’informatique, ronnement de travail luxueux que Multics et là où l’informatique était appliquée à leur procurait à un coût d’autant plus la science (essentiellement la physique) exorbitant qu’ils en étaient les derniers sa nature scientifique n’était pas mieux utilisateurs. Pour ce faire ils allaient dé- reconnue. Dans le monde universitaire velopper leur propre système sur un petit l’informatique échouait à se faire recon- ordinateur bon marché et un peu inutilisé, naître comme véritable objet intellectuel, récupéré dans un couloir : un PDP 7 de et le système d’exploitation encore moins Digital Equipment. Unix était sinon né, que les langages ou les algorithmes11. du moins conçu.

Les auteurs d’Unix Unix, un système en marge Or, que nous apprend Salus, auquel Le livre de Peter H. Salus A Quarter j’emprunte le générique avec lequel j’ai Century of UNIX (1994) met en scène construit le tableau ci-dessous ? Thomp- les principaux acteurs de la naissance son et Ritchie étaient chercheurs dans d’Unix ; il est patent que c’est du travail une entreprise industrielle. Au fur et à « en perruque ». On est frappé en lisant mesure de leur apparition, les noms de ces aventures de découvrir que cette créa- ceux qui ont fait Unix, parmi eux Kirk tion, qui a eu des répercussions considé- McKusick, Bill Joy, Eric Allman, Keith rables dans les domaines scientifique et Bostic, sont toujours accompagnés d’un technique autant qu’industriel et écono- commentaire de la même veine : ils mique, n’a vraiment été décidée ni par un étaient étudiants undergraduates ou en groupe industriel, ni par un gouvernement, cours de PhD, et soudain ils ont décou- ni par aucun organisme doté de pouvoir vert qu’Unix était bien plus passion- et de moyens financiers importants. À nant que leurs études. Bref, les auteurs la lecture du livre de Salus, quiconque a un peu fréquenté les milieux scienti- 11 On trouvera une analyse approfondie de ces fiques d’une part, les milieux industriels perceptions, pour le cas français, dans le livre de Pierre- Éric Mounier-Kuhn, L’Informatique en France, de la de l’autre, ne peut manquer d’être frappé Seconde Guerre mondiale au Plan Calcul (2010, par le caractère décalé, pour ne pas dire pp. 373-552).

136 137

Ken Thompson 1932 Berkeley, MS 1966 Ingénieur Bell Labs

Dennis Ritchie 1941 Harvard, PhD 1968 Ingénieur Bell Labs, Lucent

Brian Kernighan 1942 Princeton (PhD) Ingénieur Bell Labs

Stephen Bourne 1944 PhD. Cambridge Ingénieur Bell Labs etc.

Keith Bostic 1959 Ingénieur UC Berkeley

Joseph Ossanna 1928 BS Wayne State U. Ingénieur Bell Labs

Douglas McIlroy 1932 Cornell, MIT PhD Ingénieur Bell Labs

Kirk McKusick 1954 PhD Berkeley Ingénieur, UC Berkeley

Eric Allman 1955 MS UC Berkeley Ingénieur, UC Berkeley

Bill Joy 1954 MS UC Berkeley Ingénieur Sun Microsystems

Özalp Babaoğlu 1955 PhD Berkeley Professeur, U. Bologne

John Lions 1937 Doctorat Cambridge Ing. Burroughs, U. Sydney

Robert Morris 1932 MS Harvard Ingénieur Bell Labs, NSA

Mike Lesk PhD. Harvard Ingénieur Bell Labs

Mike Karels BS U. Notre Dame Ing. Berkeley

d’Unix n’ont jamais emprunté ni la voie constate une différence de génération qui mène les ingénieurs perspicaces vers (1945 contre 1925), une plus faible pro- les fauteuils de Directeurs Généraux, pension à soutenir une thèse de docto- ni celle que prennent les bons étudiants rat, le choix de carrières d’ingénieur vers la tenure track, les chaires presti- plutôt que d’universitaire, même si ces gieuses, voire le Nobel12. carrières se déroulent souvent dans un environnement de type universitaire. Si l’on compare ce tableau avec On notera que Joseph Ossanna avait celui des concepteurs d’Algol, on aussi fait partie de l’équipe qui a réalisé Multics. On notera aussi la disparition des Européens, présents presque à parité 12 Undergraduate : BAC + 3 ou moins : PHD : thèse dans le groupe Algol. de doctorat ; tenure track : procédure de titularisation des enseignants-chercheurs aux États-Unis, plus longue et exigeante que son équivalent français. Prophétisme informatique maticiens universitaires que le monde industriel, avec un succès considérable. Les circonstances évoquées ci- Les puissances d’établissement (indus- dessus et le caractère de leurs acteurs triels, managers, autorités académiques suggèrent un rapprochement avec les du temps) ont nourri une véritable haine attitudes associées à un phénomène reli- d’Unix, dont une des manifestations les gieux, le prophétisme, tel qu’analysé par plus ridicules fut la constitution d’un club André Neher (1972). Il distingue (p. 47) des associations d’utilisateurs de sys- quatre types de prophétisme : tèmes d’exploitation mono-constructeurs, à l’intitulé spécialement formulé de sorte -- magique, à écarter l’Association française des uti- -- social-revendicatif, lisateurs d’Unix et des systèmes ouverts, -- mystique, fondée en 1982, dont j’étais à l’époque -- eschatologique (c’est-à-dire apoca- membre du CA. lyptique, ou messianique).

Le prophétisme unixien relève assez Unix occupe le terrain clairement du type social-revendicatif, même si certains aspects de l’informa- Ces épisodes ont influencé tant la tique peuvent plaider en faveur du type pratique informatique que le milieu social magique, et si certaines prophéties déli- auxquels je participais, en général avec rantes relatives à l’intelligence artificielle au moins une décennie de décalage. Cette versent dans le style apocalyptique. Ken expérience, renforcée par quelques dé- Thompson et Dennis Ritchie voulaient et cennies de discussions et de controverses annonçaient un style informatique appro- avec quantité de collègues, m’a suggéré prié à leur style social et professionnel, et une hypothèse : au cours des années ils ont fait en sorte de le créer. 1970, la génération d’Algol et de Multics a finalement perdu ses batailles, ses idées Un autre trait caractéristique du pro- n’ont guère convaincu ni le monde indus- phétisme est le scandale : un prophète qui triel, dominé à l’époque par IBM, Digital ne créerait pas de scandale serait simple- Equipment et l’ascension des construc- ment ridicule. Neher explique (p. 255) teurs japonais, ni le monde universitaire. que pour le prophète les temps ne sont pas La génération Unix a occupé le terrain accomplis, ils restent à construire, alors laissé vacant, par une stratégie de gué- que les gens ordinaires préféreraient se rilla (du faible au fort), avec de nouvelles reposer dans la léthargie du présent. préoccupations et de nouveaux objectifs. Pendant ce temps les géants de l’époque Les apôtres d’Unix n’ont pas ne voyaient pas venir la vague micro-in- manqué à leur mission sur le terrain du formatique qui allait profondément les scandale. Ils ont bravé tant les infor- remettre en cause.

138 139

La mission d’un universitaire Sans trop vouloir entrer dans la sem- consiste, entre autres, à faire avancer la piternelle querelle des langages de pro- connaissance en élucidant des problèmes grammation, je retiendrai deux défauts du compliqués par l’élaboration de théories langage C, dus clairement à un souci d’ef- et de concepts nouveaux. Les comités ficacité mal compris : l’emploi du signe Algol et le groupe Multics ont parfaite- « = » pour signifier l’opération d’affecta- ment rempli cette mission en produisant tion, et l’usage du caractère « NUL » pour des abstractions de nature à généraliser ce marquer la fin d’une chaîne de caractères. qui n’était auparavant que des collections d’innombrables recettes empiriques, re- À l’époque où nous étions tous dondantes et contradictoires. L’élégance débutants, la distinction entre l’égalité et d’Algol resplendit surtout dans sa clarté l’affectation fut une affaire importante. et sa simplicité. En venant de Fortran, les idées sur la question étaient pour le moins confuses, La mission d’un ingénieur consiste et il en résultait des erreurs cocasses ; en général à procurer des solutions effi- après avoir fait de l’assistance aux utili- caces à des problèmes opérationnels sateurs pour leurs programmes Fortran, concrets. Nul ne peut contester que ce je parle d’expérience. L’arrivée d’une souci d’efficacité ait été au cœur des distinction syntaxique claire, avec Algol, préoc­cu­pa­tions des auteurs d’Unix, Pascal, LSE ou Ada, sans parler de Lisp, parfois un peu trop, pas tant d’ailleurs permettait de remettre les choses en pour le système proprement dit que pour place : ce fut une avancée intellectuelle son langage d’implémentation, C. dans la voie d’une vraie réflexion sur les programmes.

Inélégances du langage C Les auteurs de C en ont jugé autre- ment : ils notent l’affectation « = » et Certains traits du langage C me l’égalité « == », avec comme argument sont restés inexplicables jusqu’à ce que le fait qu’en C on écrit plus souvent je suive un cours d’assembleur VAX, des affectations que des égalités, et que descendant de leur ancêtre commun, cela économise des frappes. Ça c’est de l’assembleur PDP. J’ai compris alors l’ingénierie de haut niveau ! Dans un d’où venaient ces modes d’adressage bis- article du bulletin 1024 de la SIF, une cornus et ces syntaxes à coucher dehors, jeune doctorante explique comment, lors justifiées certes par la capacité exiguë des d’une présentation de l’informatique à mémoires disponibles à l’époque, mais des collégiens à l’occasion de la fête de la de nature à décourager l’apprenti. L’obs- Science, une collégienne lui a fait obser- curité peut être un moyen de défense de ver que l’expression « i = i+1 » qu’elle techniciens soucieux de se mettre à l’abri remarquait dans le texte d’un programme des critiques. était fausse (Philippe, 2015). Cette collé- gienne avait raison, et l’explication forcé- tait le code source intégral de Minix, une ment controuvée qu’elle aura reçue l’aura version allégée d’Unix à usage pédago- peut-être écartée de l’informatique, parce gique, qui devait servir d’inspiration ini- qu’elle aura eu l’impression d’une escro- tiale à Linus Torvalds pour Linux. Pour le querie intellectuelle. Sa question montrait commentaire du code source de Linux on qu’elle écoutait et comprenait ce que lui se reportera avec profit au livre exhaustif disaient les professeurs, et là des idées et d’une grande clarté de Patrick Cegiels- durement acquises étaient balayées sans ki (2003) (la première édition reposait sur raison valable. la version 0.01 du noyau, beaucoup plus sobre et facile d’accès que la version ulté- Pour la critique de l’usage du carac- rieure commentée pour la seconde édition tère « NUL » pour marquer la fin d’une à la demande de l’éditeur). chaîne de caractères, je peux m’appuyer sur un renfort solide, l’article de Poul- On trouvera à la fin de cet article un Henning Kamp « The Most Expensive exemple de code source extrait du sche- One-byte Mistake » (Kamp, 2011). duler (éventuellement traduit par ordon- Rappelons­ que ce choix malencontreux nanceur) de Linux 0.01. Le scheduler est (au lieu de représenter une chaîne comme l’élément principal du système d’exploi- un doublet « {longueur,adresse} ») tation, il distribue le temps de processeur contribue aux erreurs de débordement aux différents processus en concurrence de zone mémoire, encore aujourd’hui la pour pouvoir s’exécuter. faille favorite des pirates informatiques. Poul-Henning Kamp énumère dans son Les codes de ces systèmes sont article les coûts induits par ce choix : coût aujourd’hui facilement disponibles en des piratages réussis, coût des mesures ligne13. Par souci d’équité (d’œcumé- de sécurité pour s’en prémunir, coût de nisme ?) entre les obédiences on n’aura développement de compilateurs, coût des garde d’omettre BSD, ici la version histo- pertes de performance imputables aux rique 4BSD14. Quelques extraits figurent mesures de sécurité supplémentaires… à la fin du présent texte.

Élégance d’Unix 13 Par exemple : « Minix 3.2.1, scheduler main routine », publié par Andrew Tanenbaum et Nick Cook [URL : Si le langage C ne manque pas de http://homepages.cs.ncl.ac.uk/nick.cook/csc2025/ minix/3.2.1/usr/src/servers/sched/main.c] ; « Linux défauts, il est néanmoins possible d’écrire v0.01 scheduler », publié par Linus Torvalds [URL : des programmes C élégants. https://kernel.googlesource.com/pub/scm/linux/kernel/ git/nico/archive/+/v0.01/kernel/sched.c]. La première édition en français du 14 « Freebsd 11.1 scheduler », publié par Jeffrey Roberson et Jake Burkholder, 2002-2007 [URL : https:// manuel de système d’Andrew Tanen- github.com/freebsd/freebsd/blob/master/sys/kern/ baum (Tanenbaum & Bos, 2014) compor- sched_ule.c].

140 141

L’élégance d’Unix réside dans la réduction pour organisme de recherche, sobriété et la simplicité des solutions coûtait 500 000 francs. retenues, qui n’ont pas toujours très bien résisté à la nécessité de les adapter à des Unix a permis pendant un temps architectures matérielles et logicielles de la constitution d’une vraie communauté plus en plus complexes. Ainsi, la totalité informatique entre universitaires et ingé- des 500 super-ordinateurs les plus puis­ nieurs, ce qui fut positif. Mon avis est sants du monde fonctionnent sous Linux, moins positif en ce qui concerne la dif- ce qui implique la capacité de coordonner fusion du langage C : pour écrire du C plusieurs milliers de processeurs – 40 460 en comprenant ce que l’on fait, il faut pour le chinois Sunway TaihuLight qui savoir beaucoup de choses sur le système tenait la corde en 2016, dont chacun d’exploitation et l’architecture des ordi- héberge plusieurs centaines de proces­ nateurs, savoirs qui ne peuvent s’acquérir sus : le scheduler ultra-concis du noyau que par l’expérience de la programma- Linux v0.01 dont on trouvera le texte ci- tion. C n’est donc pas un langage pour dessous en serait bien incapable. débutants.

Autre élégance des versions libres Si le langage C est relativement d’Unix (Linux, FreeBSD, NetBSD, bien adapté à l’écriture de logiciel de bas OpenBSD…) : le texte en est disponible, niveau, typiquement le système d’exploi- et les paramètres variables du système tation, je reste convaincu que son usage est sont écrits dans des fichiers de texte une torture très contre-productive pour les lisible, ce qui permet à tout un chacun de biologistes (ce sont ceux que je connais les lire et d’essayer de les comprendre. le mieux) et autres profanes obligés de se battre avec malloc, sizeof, typedef, struct15 et autres pointeurs dont ils sont hors d’état de comprendre la nature et la Conclusion signification. La conversion à C n’a pas vraiment amélioré la pratique du calcul Finalement, les universitaires orphe- scientifique ; la mode récente de Python lins d’Algol et de Multics se sont conver- est alors un bienfait parce qu’au moins ils tis en masse à Unix, ce qui assurait son pourront comprendre (peut-être) le sens hégémonie sans partage. La distribution des programmes qu’ils écrivent. de licences à un coût symbolique pour les institutions universitaires par les Bell Labs, ainsi que la disponibilité de compi- lateurs C gratuits, furent pour beaucoup dans ce ralliement, à une époque (1982) où le compilateur Ada que j’avais acheté à Digital Equipment, avec les 80 % de 15 Commandes du système Unix. Annexe : code source

Scheduler du noyau Linux v0.01

142 143

Commentaire sur cette annexe Bibliographie

Avec l’aide de Patrick Cegielski Abelson H., Sussman G. J. & Sussman J. (2003, p. 196) on observe que la variable (2011 [1985]). Structure and Interpretation of c représente la priorité dynamique de la Computer Programs. Cambridge, Massachu- tâche considérée16. Le scheduler parcourt setts : MIT Press. la table des tâches, et parmi celles qui Arsac J. J. (1979). « Syntactic source to sont dans l’état « TASK_RUNNING », source transforms and program manipulation ». c’est-à-dire disponibles pour s’exécuter, Communications of the ACM, vol. 22, n° 1, il sélectionne celle qui a la priorité dyna- pp. 43-54. mique la plus élevée et lui donne la main : Backus J.W., Bauer F. L., Green J., Katz « switch_to(next) ; ». C., McCarthy J., Perlis A. J., Rutishauser H., Samelson K., Vauquois B., Wegstein J. H., Bien que pour un texte en langage van Wijngaarden A. & Woodger M. (1960). C ce snippet (fragment de code) soit re- « Report on the algorithmic language lativement propre, il illustre la raison de 60 ». Communications of the ACM, vol. 3, n° 5, pp. 299-314. mes réticences à l’égard de ce langage. Et lorsque Peter Salus (1994, p. 77) écrit Bullynck M., Daylight E. G. et De Mol que C est un langage différent des autres L. (2015). « Why did computer science make a langages de programmation, plus proche hero out of Turing ? ». Communications of the ACM, vol. 58, n° 3, pp. 37-39. d’un langage humain comme l’anglais, on peut se demander s’il a un jour écrit une Cegielski P. (2003). Conception de sys- ligne de programme, en C ou autre chose. tèmes d’exploitation – Le cas Linux. Paris : Eyrolles.

Corry L. (2017). « Turing’s pre-war analog computers: The fatherhood of the modern computer revisited ». Communications of the ACM, vol. 60, n° 8, pp. 50-58.

Dahl O.J., Dijkstra E. W. & Hoare C. A. R. (éds) (1972). Structured Programming. London, UK : Academic Press Ltd.

Dijkstra E. W. (1968). « Letters to the editor: Go to statement considered harmful ». Communications of the ACM, vol. 11, n° 3, 16 Dans le contexte de Linux v0.01 tâche est synonyme pp. 147-148. de processus. Ultérieurement il peut y avoir une certaine confusion entre processus, tâche et thread, mais il s’agit Dijkstra E. W. (1976). A Discipline of toujours d’un programme candidat à l’exécution auquel Programming. Englewood Cliffs, NJ : Prentice- le scheduler doit décider de donner ou non la main. La Hall PTR, 1st edition. valeur de la variable jiffies est le nombre de tops d’horloge depuis le démarrage du système. Foster J. S. (2017). « Shedding new light on an old language debate ». Communications Entscheidungsproblem ». Proceedings of of the ACM, vol. 60, n° 10. the London mathematical society, 2(1), pp. 230-265. Haigh T. (2014). « Actually, Turing did not invent the computer ». Communications of the ACM, vol. 57, n° 1, pp. 36-41.

Kamp P.-H. (2011). « The most expensive one-byte mistake ». ACM Queue 9/7 [URL : http://queue.acm.org/detail.cfm?id=2010365].

Neher A. (1972). L’essence du prophé- tisme. Paris : Calmann-Lévy.

Perlis A. J. (1981). History of program- ming languages. New York, NY : ACM, 1981.

Philippe A.-C. (2015). « Quand une doctorante fait des heures supplémentaires ». Bulletin de la société informatique de France 1024, Hors-série n° 1, [URL : http://www. societe-informatique-de-france.fr/wp-content/ uploads/2015/03/1024-hs1-philippe.pdf].

Ritchie D. M. (1980). « The Evolution of the Unix Time-sharing System ». Lecture Notes in Computer Science, vol. 79 (« Language Design and Programming Methodology »).

Salus P. H. (1994). A Quarter Century of UNIX. Reading, Massachusetts : Addison-Wesley.

Tanenbaum A. S. et Bos H. (2014). Modern Operating Systems. Upper Saddle River, NJ : Pearson.

Mounier-Kuhn P.-É (2010). L’Informa- tique en France, de la Seconde Guerre mondiale au Plan Calcul. L’émergence d’une science. Paris : Presses de l’Université Paris-Sorbonne.

Mounier-Kuhn P.-É (2014). « Algol in France : From universal project to embedded culture ». IEEE Annals of the History of Com- puting, vol. 36, n° 4.

Turing, A.M. (1937). « On compu- table numbers, with an application to the

144 145

Témoignage UNIX vu de province : 1982-1992

Jacques Talbot ex-Bull Grenoble.

Au sein du groupe Bull, une poignée Introduction d’informaticiens en province (sur le site grenoblois du groupe) ont tenté d’orienter Ce texte est un témoignage person- la politique technique de la compagnie dans nel1 sur l’histoire d’UNIX dans Bull, vue

Résumé les années 1982-1992, autour du système de Grenoble : arrivé en 1980 à la SEMS d’exploitation UNIX. Ce texte décrit le Grenoble (qui intègre le groupe Bull en contexte dans lequel s’est développée cette 1981), j’ai participé à la définition du aventure, et les épisodes clés entre les deux noyau UNIX chez Bull, en prenant la évènements majeurs dans cette histoire : en fonction de chef de projet d’une machine 1982, Bull acquiert la licence de l’ordinateur UNIX de 1987 à 1990, puis fonction d’ar- SM90 qui fonctionne sous UNIX et en 1992, chitecte de l’infrastructure logicielle. l’accord entre Bull et IBM autour d’AIX (système d’exploitation de type UNIX La vue de province introduit néces- développé par IBM) qui ouvre une nouvelle sairement un biais, mais il est de même ère. Ce texte montre comment le groupe est pour tout regard, qu’il soit national, pris entre les intérêts du site en local et la international ou local. Le chef d’œuvre politique globale de Bull, et il relate sa littéraire Les enfants de Sanchez de l’an- participation à la dynamique de thropologue états-unien Oscar Lewis, développement international d’UNIX.

Mots-clés : UNIX, Bull, Systèmes 1 Ce n’est pas un travail d’historien à proprement parler, qui aurait nécessité de rassembler beaucoup de sources d’exploitation, Systèmes ouverts, et d’interviewer les acteurs de l’époque. Il repose avant Standardisation d’UNIX. tout sur mes souvenirs et des cahiers de travail épars. qui relate la vie d’une famille mexicaine Le monde de l’informatique relatée par plusieurs de ses membres, autour de 1982 montre que les points de vue de chacun sur un même événement peuvent paraître Pour comprendre les choix faits à remarquablement divergents. Il en est de Bull, il faut avoir à l’esprit les débats qui même ici. agitent le monde de l’informatique, à tous les échelons : international, européen, Ce texte traduit le point de vue de la français et grenoblois. poignée de techniciens grenoblois qui ont tenté d’orienter la politique technique de la compagnie dans ces années, dans l’inté- Le contexte international dans rêt de leur établissement d’Échirolles2 et l’industrie informatique en 1982 tel qu’ils le comprenaient à l’époque. Le texte est restreint à la période 1982-1992 En ce début des années 1980, l’in- correspondant à deux événements impor- formatique est structurée par l’opposition tants. En 1982, Bull acquiert à la sauvette entre les grands systèmes (mainframe) et la licence de la SM90 qui fonctionne sous les mini-ordinateurs. L’ordinateur per- UNIX. En 1992, l’accord entre Bull et IBM sonnel n’a pas encore vraiment émergé autour d’AIX (système d’exploitation de comme phénomène, que ce soit chez type UNIX développé par IBM) a ouvert les particuliers ou dans les entreprises, une nouvelle ère3. Le texte indique dans puisque le PC d’IBM est sorti en 1981 et quel contexte s’est déroulée cette aven- le Mac d’Apple ne sortira qu’en 1984. ture, qui sera relatée à travers quelques épisodes clefs, dont le lecteur pourra Le mainframe est un gros ordi- essayer de tirer une morale aujourd’hui. Je nateur, cher, souvent loué et destiné à me suis volontairement limité aux aspects l’informatique de gestion ou, marginale- de l’histoire que je connais le mieux, né- ment, scientifique. Le leader incontesté gligeant des éléments (comme le SPS 9, (encore aujourd’hui d’ailleurs) est IBM, TRIX4, l’impact des SGBDR…) que j’ai imité et suivi aux États-Unis par les survi- observés de plus loin5. vants des « sept nains » (les constructeurs du BUNCH : Burroughs, Univac, NCR, Control Data et Honeywell) et en Europe 2 « Bull Grenoble » est en fait localisé à Échirolles, une banlieue au sud de la ville. par cinq champions nationaux : Bull en 3 Sur ces points, voir l’encadré de Ph. Picard et M. Elie France, ICL au Royaume-Uni, Siemens dans ce volume. et Nixdorf en Allemagne et Olivetti en 4 Voir l’article de René Chevance, « Contribution à Italie. l’histoire d’UNIX chez Bull », publié en 2004 sur le site de la Fédération des Équipes Bull [URL : www. feb-patrimoine.com/projet/unix/histoire_unix_chez_ Febvre, Jean Papadopoulo et Jez Wain qui ont bien bull.doc]. voulu relire le brouillon et me fournir des éléments 5 Remerciements : je remercie Denis Bram, Jacques oubliés ou ignorés.

146 147

Le système d’exploitation (Opera- munauté académique et industrielle sur ting system – OS) de référence est donc la meilleure façon de distribuer présen- IBM MVS (Multiple Virtual Storage), qui tation, métier et données (les « tier » a changé plusieurs fois de nom depuis du modèle 3-tier) entre les différentes (OS/390, z/OS), caractérisé par sa sophis- machines, PC, UNIX, mainframe. On tication, sa complexité et ses modalités parle alors d’informatique distribuée pour batch, temps partagé et transactionnel. opposer les mainframe et les autres. Ce terme est assez ambigu, car il y a des Le mini-ordinateur est plus petit, dizaines de manières de distribuer un moins cher, en général acheté et destiné traitement informatique. Le modèle de aux marchés temps réel, industriel, scien- distribution actuellement dominant sur le tifique. Le leader est Digital Equipment, Web, smartphone et services web en est numéro 2 de l’informatique de l’époque, un à très gros traits, contraint par les pro- aujourd’hui disparu. Digital a de nom- priétés de performance et de fiabilité du breux concurrents, car développer un réseau Internet. Les rêves d’OS distribué mini-ordinateur et son logiciel nécessite sont passés à la trappe de l’histoire. un investissement bien moins important que pour les mainframe, mais tous les UNIX, qui a été inventé aux Bell concurrents sont beaucoup moins puis- Labs (le laboratoire de recherche de sants que lui sur le marché. Son modèle l’opérateur télécom AT&T !) et en est emblématique est le VAX 11/780, une sorti en 1975 (première licence source), machine 32-bit qui a permis en 1978 de est un objet technique sans importance sur sortir la mini-informatique de l’enferme- le marché en 1982. Rappelons qu’UNIX ment dans les 64 Ko d’une architecture est le père de Linux, de MacOS, d’iOS 16-bit. L’OS VAX/VMS est un exemple sur iPhone, d’Android sur la plupart de d’élégance et de simplicité efficace. smartphones, de tous les OS des gros ser- veurs (AIX, HP-UX) et constitue donc Une autre opposition est très im- une des matrices (avec Windows et MVS) portante : l’informatique et les télécoms de l’informatique actuelle. constituent deux silos qui se parlent peu, n’ont pas la même culture technique et Une caractéristique essentielle de commerciale et se méfient l’un de l’autre, l’ensemble de l’informatique mondiale car la frontière sur le marché est mal déli- d’alors est son aspect dit « propriétaire ». mitée. Les réseaux informatiques, qui ont Chaque constructeur développe la tota- besoin bien sûr de liens de communica- lité de la pile technologique : processeur, tion, sont très peu développés, compli- périphériques, OS, protocoles de réseau, qués et chers. applications. Cette démarche est délibé- rée pour contrôler le client. Celui-ci est Durant la décennie 1980, des débats donc enfermé à vie avec son fournisseur. commencent à apparaître dans la com- Cette frustration génère de la part des clients une demande pour des « systèmes le nom de Bull, le fabricant français de ouverts », même si on ne sait pas bien mainframe, CII Honeywell-Bull et les encore ce que c’est. deux constructeurs principaux de mini- informatique, la SEMS et Transac, sous la Sun Microsystems, qui sera la star forme de filiales. Le P.-D.G. sera Jacques UNIX jusqu’en 2001 (au moment ou Stern jusqu’en 1989, assisté de Francis éclate la bulle Internet), est fondé en Lorentz, qui lui succédera de 1989 à 1982. L’un des architectes d’UNIX BSD, 1992. Ce duo n’est pas sans talent, mais sa Bill Joy, en est le patron logiciel. Ce sera gestion d’UNIX a été plutôt calamiteuse. la seule grande société dont UNIX a été le porte-drapeau en matière d’OS. Bull a 26 000 employés en 1983 et culminera à 43 000 en 1988. De nos jours, les effectifs de Bull sont dilués dans Années 1970 : l’échec des projets ATOS et ça n’a plus guère de sens de les européens en informatique compter.

À cette époque comme aujourd’hui, CII Honeywell-Bull est le fruit de la l’Europe est à la recherche de son unité, fusion en 1975 de la CII et de Honeywell- en informatique et ailleurs. Or, l’infor- Bull, lui-même issu de la fusion en 1970 matique européenne se remet mal de de Bull et de la branche informatique du l’échec du projet Unidata dans les années constructeur américain Honeywell. 1973-1975. Cet échec introduira une telle méfiance entre les acteurs que tout SEMS est le fruit de la fusion en projet ultérieur d’unification face aux 1976 entre la branche informatique de Américains échouera, contribuant à la la Télémécanique et la division mini-or- disparition de facto de l’informatique eu- dinateurs de la CII. La Télémécanique, ropéenne. Le rôle et les motivations des localisée en région grenobloise, a conçu politiques et des industriels français dans le mini-ordinateur 16-bit Solar pour l’échec d’Unidata ont été abon­ ­damment concurrencer le PDP-11 de DEC. Sa pa- documentés. Ce fantôme est le frère noplie d’OS ressemble à celle de DEC et maudit d’Airbus et de l’Agence spatiale est marquée par une certaine simplicité. européenne (ESA). Un avatar du Solar assure encore en 2017 le contrôle-commande et donc la sécurité de la plus grande partie de nos 58 réac- L’industrie française de teurs nucléaires. La ligne mini-ordinateur l’informatique ré-organisée 16-bit apportée par la CII est le Mitra. Il en 1981 a été conçu pour les marchés télécom, militaire et industriel ; son OS, MMT2 À son arrivée au pouvoir en 1981, est un mini OS de mainframe, avec toute la gauche a nationalisé et fusionné sous la complexité associée. La direction tech-

148 149

Figure 1 - Généalogie de Bull en 1982 nique SEMS est regroupée à Echirolles, Mitra. Même si nous regardons avec en banlieue grenobloise. La partie Mitra a gourmandise les approches de type été mutée là en 1980/81. machine objet, comme l’IBM System/38 (sorti en 1979, de nos jours émulé sur une machine Power), les adressages à capa- La problématique mondiale cité de Multics et les projets de recherche vue de Grenoble comme le SCQM (680 000) de Jacques Leroudier, nous n’y croyons guère pour La « cellule architecture » (au sein nous-mêmes. C’est d’ailleurs Jacques de Bull SEMS) à Échirolles est petite. Leroudier qui nous a initiés à UNIX en On peut dire qu’elle se limite à Jacques 1980. Qu’il en soit remercié ! Febvre, mon chef à l’époque, brillant et sympathique, et moi-même. Notre Il s’agit de promouvoir des déve- culture technique est résolument celle loppements qui soient à la portée d’une de mini-informaticiens. Dans l’esprit du équipe grenobloise relativement modeste. temps, en matière d’architecture, nous Volem viure al pais6 reste la motivation croyons à une certaine simplicité, avec numéro un. Il faut donc d’abord sortir des en particulier des espaces virtuels grands et plats, à l’opposé de la segmentation 6 « Nous voulons vivre au pays ». C’est dans les années qui a été l’enfer du Solar et surtout du 1970 le slogan des paysans du Larzac. 64 Ko imposés par les adressages 16-bit, C, et documentée dans un listing source et nous sommes largement en retard sur fameux, le Lions7, qui frappe par sa DEC et Data General. En matière de petitesse (10 000 lignes de code). Elle langage, nous voulons bien sûr oublier est, encore pour quelque temps, libre de l’assembleur et autres PL/16 pour écrire droits, avant qu’AT&T ne réalise qu’on les OS. peut gagner de l’argent avec les licences UNIX. C’est la version qui va permettre Nous croyons aussi qu’il n’est plus à Sun de se lancer, et celle qui sera portée possible d’enfermer le client dans un sur Intel sous le nom . UNIX a filet propriétaire (mais cette conviction puisé des concepts dans Multics, mais n’est guère partagée par le management). vise la simplification, peu d’abstractions La raison principale pour ce faire est le et une certaine élégance. problème du catalogue d’applications. Comment attirer vers sa plateforme les En parallèle, une équipe à l’univer- industriels du logiciel (ISVs, Independent­ sité de Berkeley développe une version Software Vendor) qui émergent partout ? dite BSD. C’est la première à fonction- Il faut au minimum avoir une norma- ner en mode 32-bit sur le VAX et à gérer lisation des APIs (l’interface program- la pile TCP/IP (en 1983, avec 4.2 BSD). matique, Application Programming En France, dans la sphère universitaire, Interface), pour que l’ISV ait un code UNIX est à la mode, mais pour être in- source unique et un portage facile, et, dépendant de la licence AT&T, il faut le mieux, avoir en plus un ABI (Application­ réécrire et c’est le langage Pascal qui est Binary Interface) pour qu’un binaire choisi. C’est le projet SOL de Michel unique puisse fonctionner sur des OS Gien à l’INRIA, vers 1980. Comme divers. On verra que l’API normalisé exercice intellectuel, c’est intéressant, aura du succès, mais l’ABI restera un mais il ne nous semble guère raisonnable Graal inatteignable. De nos jours, cette de forker8 ainsi un UNIX français alors problématique semble bizarre puisqu’on qu’UNIX est loin de sa maturité. On peut a un catalogue d’application Google Play objecter bien sûr que c’est proche de ce Store : quel est le problème ? Cela n’est qu’a fait Linus Torvald en créant Linux pas problématique car il y a dessous un avec le succès que l’on sait, mais c’était OS unique, Android. en 1992 avec un UNIX stabilisé qui n’évoluait plus guère.

UNIX en 1982 7 Le Lions est en fait la V6. (N.D.E. : Un listing est une UNIX V7, publié en 1979 par les impression de lignes de code ou de données pour vérification et commentaires très utilisée à l’époque Bell Labs, est la première version réel- quand les écrans interactifs n’étaient pas encore lement portable, même si sa cible est le généralisés). DEC PDP/11. Elle est écrite en langage 8 N.D.E. : un fork est une version dérivée du code source.

150 151

Dans les rencontres UNIX de La pile ISO/OSI est chère au cœur l’époque, le gag favori était de rester coi des Français de Bull, car beaucoup de devant un transparent rempli de pipes, ses concepts sont issus des travaux de awk, grep, sed9 et de lignes de shell ou l’équipe menée par Louis Pouzin et de C cabalistiques à souhait. Puis on enle- Hubert Zimmermann à l’INRIA, du vait sa cravate en s’écriant « I forgot you CNET12 et de l’architecture DSA de can’t understand this with a tie on ! ». Ce Bull. Après moult tergiversations, les n’est pas aussi anecdotique qu’il y paraît. Européens se sont mis d’accord en mode UNIX s’est épanoui en tant que phé- « comité » (design by committee) sur ce nomène générationnel contre la culture modèle et ses sept couches, et l’ont vendu mainframe symbolisée par la cravate de à l’ISO. Le mode « comité » a l’inconvé- l’employé IBM modèle. nient de générer des protocoles très com- plets, trop compli­qués et mal testés.

Le contexte de À l’opposé, la démarche TCP/ la guerre des réseaux IP issue d’Arpanet privilégie, selon le slogan inventé a posteriori en 1992, un La synergie entre UNIX et TCP/IP « consensus approximatif et du code est un point capital pour l’histoire. Dans qui marche13 ». C’est moins ambitieux, les années 1980 se livre une guerre des mais plus simple. On sait que cette pile piles protocolaires qui oppose un modèle conquerra le monde avec Internet, mais normalisé à l’ISO et dénommé OSI et en 1982, la messe n’est pas dite. TCP/IP, développé à l’origine dans la DARPA10, puis géré par l’IETF11. Il s’agit Ainsi, avec le portage de TCP/IP de surmonter l’absurde prolifération des dans UNIX par Berkeley en 1983, un duo piles propriétaires, chaque constructeur très puissant voit le jour. ayant la sienne : l’industrie globalement dépense donc des fortunes pour faire de trop nombreuses passerelles plus ou moins dysfonctionnelles.

9 N.D.E. : commandes du système UNIX. 10 La DARPA est la « Defense Advanced Research Project Agency », une agence du département de la défense états-unien. (N.D.E. : ce développement a eu lieu au sein du projet ARPANET, considéré comme le 12 Le CNET était le laboratoire de recherche français prototype d’Internet.) en télécommunications. Son descendant actuel est Orange Labs. 11 L’IETF (Internet Engineering Task Force) est un groupe relativement informel qui gère les standards 13 « Rough consensus and running code », est le slogan Internet depuis 1986. de l’IETF. Retour sur terre : Jacques Febvre et moi-même nous retrou- UNIX à Bull vons à discuter ces objets avec quelques chercheurs et industriels. Le fait que la Cette deuxième partie décrit mission soit confiée à deux provinciaux quelques moments clés du point de vue est d’ailleurs symptomatique de sa faible grenoblois, jalonnant l’histoire d’UNIX crédibilité. Nous nous apercevons rapide- à Bull durant cette décennie. ment qu’on ne va nulle part, par manque de clarté des objectifs, et surtout manque Une fois refermée cette analyse du de leader crédible. L’industrie et la re- contexte stratégique de la mini-infor- cherche ont du mal à travailler ensemble, matique, revenons à Échirolles. Seules les méfiances réciproques, souvent injus- quelques personnes se préoccupent de tifiées, sont nombreuses. Cette initiative ces problèmes à moyen terme. Le stra- sera rapidement close par suppression tège en chef de la SEMS, Jean Helein, des crédits publics, sans avoir rien donné. est toujours basé à Louveciennes. Assez Nous en tirerons la leçon qu’une certaine âgé, très prudent, s’il a une vision, il ne modestie des ambitions est de mise. nous en fait pas part. Nous allons donc errer quelque temps dans différentes di- Dès novembre 1982, on nous rections avant d’emprunter résolument le demande de laisser de côté l’aspect chemin UNIX. « briques de base » et de nous concen- trer sur la « nouvelle gamme » Bull. Ce revirement rapide démontre d’ailleurs « Briques de base » que la direction SEMS n’a jamais cru aux et « nouvelle gamme Bull » briques. Nos partenaires de travail sont donc maintenant les équipes mainframe Dans l’euphorie de la prise de de CII-HB, qui étudient en particulier pouvoir, la gauche a lancé en 1981 un sur un bus à message, et aussi les équipes chantier national, les « Briques de base de recherche de Bull (Gérard Roucairol, de l’informatique française ». Il s’agit de Roland Balter). réunir industriels et universitaires pour définir des objets matériels et logiciels Là non plus, on n’aboutit pas à qui pourraient servir à un LEGO informa- grand-chose faute d’objectifs clairs et par- tique. C’est un épisode bien oublié, introu- tagés, par manque de vision du manage- vable sur le Web14. Le management des ment Bull cette fois encore. industriels n’y croit guère ; néanmoins, pour grappiller quelques subventions, La licence SM90 : un moment clef

14Comme quoi, même à l’heure des big data, des épisodes relativement récents disparaissent de notre Fin 1982, la direction SEMS signe mémoire commune. une licence avec le CNET sur la SM90 et

152 153 fait ainsi, sans vraiment mesurer son im- Officiellement, en octobre 1983, portance, le choix UNIX qui va se révéler un communiqué tombe : « Le groupe structurant et ce jusqu’à aujourd’hui. Le Bull, après analyse en profondeur des site grenoblois, maintenant intégré dans données techniques et des contraintes du ATOS, a dû à mon sens sa survie à son marché, a décidé en juin dernier de ne étiquette UNIX… et aux capacités de sur- pas entreprendre la mise au point d’une vivants de ses employés. gamme totalement nouvelle et intégrée de mini-ordinateurs ». Suite à cette déci- La SM90 est une machine conçue sion, François Michel démissionne de par le CNET, basée sur le processeur son poste de P.-D.G. de SEMS et va se Motorola 68000 et un SM-bus proprié- consacrer à la société Copernique qu’il a taire ; elle fonctionne avec un portage créée quelques années auparavant. Il est d’UNIX V7. remplacé par Georges Grunberg.

Jean-Pierre Brulé, ancien P.-D.G. de La mission confiée à Échirolles est CII HB de 1972 à 1981, indique dans son d’industrialiser la SM90. Contrairement livre L’informatique malade de l’état que à l’hypothèse de René Chevance15, nous l’État impose à Bull d’acheter auprès du étions tous très contents de cette décision CNET un 9e système d’exploitation, ac- et nullement accrochés à l’impasse des centuant ainsi la confusion. À mon avis, briques ou de la nouvelle gamme. Enfin, cette intervention étatique a en fait été, on faisait quelque chose qu’on pour- sans que cela ait été fait exprès, salutaire ! rait vendre ! Néanmoins, il nous a fallu On a là un exemple de décision clef prise deux ans pour faire un produit, puisque pour des raisons complètement tactiques le SPS7, dont Michel Véran était le chef et sans aucune vision sous-jacente. de projet, est sorti seulement en 1985. La première machine 32-bit, équipée d’un En mars 1983, un directeur tech- 68020, apparaîtra, elle, fin 1986. nique issu de la recherche, Jean-Claude Chupin, dynamique et sympathique, est nommé pour piloter la « Nouvelle UNIX oui, mais comment ? Gamme ». Pendant quelques mois, des études pour ce faire perdurent, mais c’est Le portage UNIX V7 n’était plus la licence SM90 qui va en fait être le fil pertinent sur le marché, trop ancien pour conducteur du futur. SEMS va de facto un objectif fixé à 1985. Rapidement, choisir de ne faire ni un microprocessur notre idée du Graal à viser est un UNIX en circuit intégré, ni une machine 32-bit, System V avec une pile TCP/IP de BSD : mais au contraire d’abandonner les ma- System V parce que c’est plus industriel tériels propriétaires et d’accrocher son destin à UNIX et aux microprocesseurs Motorola pour des années. 15 Voir le texte de René Chevance, déjà cité (note 4). et facile à vendre à la direction, et la pile Manufacturer) cette machine sur le BSD parce qu’elle marche. marché scientifique. Il n’est pas question de cannibaliser la base Bull sur le marché À Échirolles, à part l’équipe qui de la gestion. développe des protocoles ISO/OSI bien sûr, nous sommes résolument pro-TCP/ Les architectes « parisiens » IP, en partie par clarté de vision des équi- pensent17 soit qu’UNIX est un non-su­ libres stratégiques, et en partie parce que jet, soit qu’UNIX a bien des faiblesses ça nous arrange d’enfourcher ce cheval. et doit être « amélioré » dans les dimen­ Il va donc falloir refaire le portage16 de sions transactionnelles et de tolérance System V, ce qui va nous servir de for- aux fautes18. mation. Dans ces années-là en effet, un portage UNIX, dans l’esprit des mana- Les concepteurs des mainframe gers, ne peut être fait que par un gourou, aux États-Unis et en Europe ont, il faut de préférence américain. Nous aurons bien le reconnaître, presque tout inventé beaucoup de mal à convaincre notre en informatique dans les années 1960- direction que des Français de province 1970. La mini-informatique n’est qu’une peuvent aussi le faire pour moins cher. Il version simplifiée de la grande informa­ faudrait lister ici les développeurs clefs tique. UNIX n’apporte quasiment aucun de ce premier portage, mais j’ai trop peur nouveau concept vraiment important. Il d’en oublier. est donc normal qu’il soit regardé de haut par certains, ou qu’on rêve au « main­ frame UNIX ». Il a en effet nombre de Comment vendre UNIX faiblesses : en interne ? -- Le système de fichiers n’est pas On aura compris qu’UNIX a peu robuste (« journalisé »). À chaque de défenseurs dans Bull. La direction a crash, il faut le réparer longuement à eu la main forcée par l’État actionnaire. coup de fsck. Le corps commercial craint pour son -- Il ne marche pas sur un multiproces- parc de produits propriétaires DPS6, 7 et seur symétrique. 8 et autres Questar 400, et aller chasser -- Il ne connaît pas la notion de en hors-parc est plus difficile : dans un transaction. premier temps, il s’agit seulement de -- Il n’est pas en temps réel. distribuer en OEM (Original Equipment­

17 C’est une simplification, ils ne pensent bien sûr pas 16 N.D.E. : le portage est le fait de « porter » un système tous la même chose. dans un environnement matériel qui ne lui est pas d’origine. Il s’agit d’une adaptation matérielle et/ou 18 Sur Trix en particulier, voir le texte de René logicielle. Chevance, déjà cité (note 4).

154 155

-- La robustesse et la reprise sur erreurs tieux, il sera inéluctablement aspiré par sont négligées. « Paris ». Ces considérations de bon sens biaisent évidemment nos recommanda- Il n’y a aucun antagonisme per- tions techniques, au grand dam de cer- sonnel avec tous ces architectes « pari- tains. En un mot, la bannière UNIX est siens », car nous sommes tous unis par à notre mesure, il nous faut la dévelop- le virus (pas si courant) de l’architec- per et la garder. Un autre facteur humain ture, et beaucoup sont devenus des amis. joue en notre faveur. Les établissements Mais chacun défend loyalement sa bou- parisiens ont une culture délétère pour tique. René Chevance est de culture CII UNIX ; seuls des « cousins de province » et Transac ; Jean-Jacques Guillemaud, peuvent s’en saisir. Ce genre de raison- Jean-Jacques Pairault et Jean Papado- nement n’a rien de spécifique à Bull ; poulo sont de culture DPS7. pour faire de l’UNIX sérieusement, IBM a dû créer un site à Austin au fin fond du Seul l’établissement d’Échirolles Texas, loin des anticorps de MVS et de a vraiment intérêt à ce qu’UNIX dans l’AS/400. Les établissements HP et Sun Bull marche techniquement et commer- à Grenoble ont connu les mêmes soucis cialement, car il voit là une bannière à d’éloignement provincial. sa mesure. La logique d’établissement dans un grand groupe distribué géogra­ ­ Les faiblesses techniques mention- phi­quement est très puissante, que ce nées ci-dessus nous semblent surmon- soit à Bull ou ailleurs. Tout site périphé- tables ; le système de fichier robuste et le rique, dans un groupe Bull qui, à partir multiprocesseur viendront en leur temps de 1986, est en décroissance permanente, (après 1992 !) et les transactions ACID à est menacé de fermeture. Pour survivre, la mode commit à 2 phases ne rentreront il lui faut une mission et un marché. jamais dans l’OS. Les SGBDR et autres Bull Échirolles marche bien dans ce Tuxedo géreront cet aspect et le Web a contexte-là ; en général, on nomme alors dévalorisé les transactions ACID du un patron local qui a à cœur de déve- fait même de ses faiblesses en tant que lopper son pré carré. Dans les phases réseau19. La loi de Moore rendra accep- dépressives, l’établissement est coupé table l’aspect non-temps réel. en morceaux, rattachés à diverses hié- rarchies parisiennes. Aucune dynamique Notre crédibilité technique et com- locale de groupe ne peut émerger ; on se merciale auprès de la direction étant borne à survivre. Notre mission doit de faible, une partie de billard à trois bandes plus être à notre mesure, avec des pro- est plus efficace. C’est ce qui nous a duits assez pertinents pour être vendus ; amenés à nous appuyer sur une coopé- mais tout projet technique doit être assez petit pour pouvoir être développé 19 Il s’avérera d’ailleurs impossible dans les années localement. Si on élabore un projet ambi- 2000 de standardiser un WS-Transaction. ration européenne avec d’autres francs- Pour notre part, nous explorons la tireurs comme nous, pour qu’on parle Newcastle Connection, pendant que Sun positivement d’UNIX dans les cocktails est en train d’inventer NFS (Network de l’informatique (voir plus bas). File System), qui aura un succès certain et sera rapidement indispensable à tous les UNIX du marché. Néanmoins, du fait de son aspect « sans état », NFS ne res- UNIX distribué : pecte pas complètement la sémantique du une impasse féconde fichier UNIX, en particulier les verrous.

Ce paragraphe est quelque peu une Dans le cadre de son système distri- digression menée à la lumière de nos bué DCE, OSF introduira DFS, basé sur efforts de l’époque sur le thème des sys- une technologie Transarc et respectant, tèmes distribués. La morale me semble au prix d’une certaine complexité, la sé- intéressante. mantique UNIX. DCE comportait aussi d’autres mécanismes de distribution, un Une recherche de valeur ajoutée par RPC et un répertoire de nommage. Tout rapport à l’UNIX de « tout le monde » ça n’a eu aucun impact commercial et a est nécessaire dans un monde ouvert. On été balayé par le Web, comme la multi- se heurte bien sûr au fait que toute dif- tude de systèmes distribués concurrents. férentiation propriétaire est mal accep- tée par le client, qui veut précisément Le Web, à côté de ses énormes qua- éviter cet enfermement. On recherche lités de standardisation, a des propriétés donc une différentiation « à plusieurs ». particulières, plutôt médiocres, en termes Un des thèmes les plus porteurs dans ce de performance et de fiabilité. Il est im- milieu des années 1980 est l’UNIX dis- possible de reproduire sur ce réseau la sé- tribué. Pour les architectes d’OS, il s’agit mantique d’une machine ou même d’un d’étendre les abstractions de l’OS sur un réseau local. Le Web a de facto imposé réseau de machines. Pour les architectes une sémantique relâchée adaptée à ses réseau, comme notre collègue Michel défauts (pas de transactions ACID, pas Habert, il s’agit bien sûr d’étendre les de verrouillage). Ce sont donc les appli- abstractions du réseau dans les ma- cations qui se sont adaptées au Web, et chines. « The network is the computer », pas l’inverse. le slogan de Un20 peut d’ailleurs être entendu des deux manières. On se heurte Néanmoins, des clusters de ma- vite au fait que l’abstraction du processus chines UNIX ou Linux forment la base est peu distribuable et que la seule abs- des centres de calcul des grands acteurs de traction accessible est le fichier. l’Internet qui constituent le cloud, et aussi de nombre de supercalculateurs comme 20 Paternité attribuée en France à Hubert Zimmermann. Bull Sequana. Ces machines, du fait de

156 157 leurs spécificités, de leur petit nombre et de Berkeley et celles de chaque construc- de leur fonctionnement en mode service, teur, puisque tout le monde veut faire peuvent se permettre d’avoir des maté- de l’UNIX (sauf IBM, en tout cas avant riels et des logiciels « propriétaires ». 1990). Ces mainframe du xxie siècle sont donc des variantes d’UNIX distribuées sur une Sun est dès 1985 le leader du marché interconnexion locale. Ce sont eux qui UNIX avec ses stations de travail 68020 servent à réaliser la mutation de l’infor- puis SPARC. À ce titre, il n’a aucun matique vers « tout as a service ». intérêt à favoriser une standardisation des APIs. Il est plus pertinent de promouvoir Morale de l’histoire : TCP/IP et leur UNIX, SunOS21, comme standard. HTTP ont remodelé l’architecture infor- Dans ces années-là, IBM a décidé de faire matique mondiale « par le bas », du fait l’UNIX sans en faire, avec une machine de leur simplicité robuste, mais aussi de ridiculement bridée. Ils sont donc inactifs leurs limitations. La sémantique abstraite sur ce sujet. HP et DEC sont tiraillés entre ne gagne pas toujours. leur base propriétaire (MPE et VMS) et leurs équipes UNIX, et soufflent le chaud et le froid selon les moments.

La saga de la Les cinq Européens, assez en standardisation UNIX avance sur leur temps et sous le regard goguenard des Américains du secteur, Fin 1984 émerge la problématique vont donc élaborer des documents stan- du standard UNIX. Les cinq construc- dardisant l’interface de programmation teurs européens créent un groupe infor- d’UNIX. Ce sera un beau succès et tous mel dénommé BISON, pour Bull – ICL les constructeurs finiront par se rallier à – Siemens – Olivetti – Nixdorf. Jacques ces spécifications en 1990, sous la pres- Febvre et moi sommes les représentants sion des utilisateurs qui sont les victimes de Bull. C’est une opportunité incroyable de la guerre des UNIX menée par les pour nous de pouvoir influer à ce niveau. grands constructeurs.

La guerre des UNIX à partir de 1988 Définir un standard UNIX oppose Sun, le leader du marché, associé à AT&T et les autres (HP, DEC puis IBM Il s’agit de définir un standard de ayant finalement rallié les Européens). programmation UNIX. Cet effort va Le noyau étant stabilisé, la guerre a lieu donner naissance au consortium X/Open. autour des extensions et améliorations : En effet, à cette époque, il commence à y avoir des divergences entre les différentes variantes d’UNIX : celle d’AT&T, celle 21 SunOS sera renommé Solaris en 1991. le système de fichiers journalisé, le multi- mais il y a d’autres projets évoqués par thread, l’aspect multiprocesseur etc. ailleurs. DEC, HP et IBM bataillent pour imposer des morceaux de leur code On a vite découvert qu’un même API source UNIX. Bull, qui n’a rien d’origi- implémenté par plusieurs constructeurs ne nal en termes d’UNIX, fournit une équipe permet pas une vraie portabilité du code de développement à Cambridge : Gérard source des applications du fait d’effets Meyer la supervise et observe les évo- de bord difficilement maîtrisables. Pour lutions. Le noyau OSF/1 repose sur le avoir un vrai catalogue d’applications, il micronoyau issu de CMU (comme faudrait un standard binaire ABI en plus MacOS et iOS chez Apple) et incorporera du standard programmatique (API). Des entre autres la pile TCP/IP de BSD et le efforts pour élaborer un ABI Motorola et JFS d’IBM. Au final, seul DEC commer- Intel ont eu lieu, mais les difficultés tech- cialisera OSF/1 en 1992 sur ses machines niques ont rapidement démontré que ce Alpha sous le nom Tru64. HP et IBM problème est insoluble en pratique22. Il préféreront cultiver leur jardin HP-UX et faut une implémentation de l’OS, qui crée AIX, une fois la menace Solaris écartée. des ABIs de facto. Cette réalité s’impose encore aujourd’hui : Google Android, OSF a un centre de recherche, et Microsoft Windows, iOS et MacOS chez celui-ci a une antenne grenobloise, à l’ini- Apple sont des implémentations d’un OS, tiative de Jacques Stern qui est en 1988 le pas des spécifications, et néanmoins la président de Bull. Cette antenne est située portabilité d’une version à l’autre com- à proximité du centre de recherches Bull – porte encore des aléas. IMAG sur le campus grenoblois (Roland Balter), et est dirigée par Jacques Febvre, La solution serait donc de construire détaché de Bull à cette occasion. Ce une « base de source » avec une couche centre a réalisé pour le compte d’Apple la de portabilité sur les différents pro- première version de ce qui est aujourd’hui cesseurs cible. C’est le projet OSF/1 Mac OS, basé sur un micronoyau Mach auquel Sun s’oppose de toutes ses forces. qui sous-tend une personnalité UNIX et L’Open Software Foundation (Oppose une personnalité Apple. Sun Forever selon le P.-D.G. de Sun) est créée en 1988 par Bull, DEC, Hitachi, HP, La guerre des UNIX s’apaisera IBM, Nixdorf et Siemens (pour l’essen- vers 1994, sous la pression de l’ennemi tiel) ; elle est basée à Cambridge, près de commun Microsoft. X/Open et OSF Boston. Le projet OS se nomme OSF/1, fusionneront en 1996 dans The Open Group, lequel ne va d’ailleurs rien faire 22 Le projet ANDF de OSF est une tentative de définition de significatif. d’un langage intermédiaire normalisé, entre les langages de haut niveau (comme C ou Fortran) et le langage assembleur spécifique à une architecture matériel ; son Pour nous, il a été passionnant de échec a démontré l’inanité de tels efforts. comprendre comment faire converger les

158 159 besoins des partenaires X/Open, chacun de mauvaise humeur ». Qui se ressemble avec ses intérêts particuliers. Les discus- ne s’assemble pas forcément, les dou- sions dans les comités de normalisation blons sont innombrables en termes de sont une expérience unique qui permet matériel, micro-logiciel et logiciel. Pour d’imaginer les arcanes de la diplomatie. une fois, la finesse de la direction et la Cela a pris des années, mais on a abouti nécessité pour les parties de trouver un à la publication en 1985 puis 1987 des compromis pour survivre va permettre de divers tomes du X/Open Portability se partager le travail pendant plus de dix Guide. Le design by committee fonc- ans. tionne donc parfois. En 1987, il s’agit de renouveler la gamme UNIX avec un monoprocesseur Une idylle franco-italienne d’entrée de gamme et une variante24 de multiprocesseur en milieu de gamme. En 1987, Bull rachète Honeywell Le partage du travail désigne Échirolles Information Systems (HIS)23, qui com- pour faire le petit système et Pregnana le mercialise en partie les mêmes machines gros. Mais l’OS bien sûr, qu’on appellera DPS. Pour ce qui nous concerne, le point BOS (Bull Open System), est unique. À essentiel est que la filiale italienne de HIS, cette époque, le marketing a la passion de installée à Pregnana Milanese, a dévelop- « bulliser » les noms, alors que la marque pé et vend une gamme UNIX fort sem- UNIX, bien plus connue, serait utilisable blable à la nôtre. La direction demande et plus facile à vendre à notre avis. très logiquement de faire converger les deux gammes dans le cadre d’un pro- On devrait donc logiquement faire gramme appelé (comme toujours) New un seul portage de l’UNIX avec deux Common Line. Pour ce faire, elle crée cibles qui diffèrent légèrement au niveau une joint venture franco-italienne avec des entrées/sorties. Mais il y a deux tout pouvoir et un leader italien charis- équipes UNIX des deux côtés des Alpes, matique, Lucio Pinto. qui ont à peine trois ou quatre ans d’âge et ne sont pas prêtes à être euthanasiées L’aspect humain est ici plus inté- sur l’autel transalpin. Les deux chefs de ressant que l’aspect technique. Les deux projet (étant moi-même l’un d’eux) vont établissements d’Échirolles et de Pregna- donc s’échiner à prouver que, faute de na sont extrêmement semblables, avec pouvoir récupérer tout, il vaut mieux que la même culture de « survivants de pro- chaque établissement fasse son portage. vince » dans un groupe international. La seule différence est que, pour répondre ce bon mot, les « Français sont des Italiens­ 24 Ce n’est pas un vrai SMP (Symetric MultiProcessor) à mémoire commune, mais une variante originale avec mémoire locale et mémoire commune, sortie du cerveau 23 Financièrement, cette fusion s’étale de 1986 à 1988. fertile du génial architecte italien Angelo Ramolini. Les arguments techniques sont faibles, la vont concurrencer ses gammes proprié- direction elle-même n’est pas dupe, mais taires. Techniquement, le problème est de c’est le meilleur moyen de ne pas faire disposer d’un UNIX multiprocesseur ef- désespérer Billancourt ; et finalement, ficace. C’est un travail considérable que bien que techniquement irrationnel, ce de poser dans le code UNIX l’ensemble choix s’est révélé le bon. Les machines de verrous permettant de fonctionner sont sorties avec moins de six mois de avec beaucoup de processeurs (huit pour retard, ce qui est un exploit dans l’uni- commencer). vers informatique de l’époque. Débute alors une longue revue À partir de 1985, le cœur d’UNIX technique entre nous et les architectes n’évolue plus guère. Seul manque l’as- IBM d’Austin, une brochette de fellows pect multiprocesseur symétrique qui IBM brillants, sympathiques et pas du viendra dans la décennie suivante. tout arrogants (à notre grande surprise). Nous, côté Bull, privilégions un portage sur PowerPC de OSF/1 qui est raisonna- blement efficace en multiprocesseur et Épilogue : UNIX contient nombre de technologies IBM multiprocesseur (JFS etc.). De plus, un certain nombre de développeurs Bull ont participé au projet Bull a déjà fait deux tentatives pour OSF/1 et ont donc une compétence sur ce introduire une machine RISC dans sa sujet. IBM, malgré son implication signi- gamme UNIX, grâce à des collaborations ficative dans les développements OSF/1, avec de petites entreprises de la Silicon hésite et envisage de partir du code AIX Valley, d’abord avec Ridge commerciali- et de le rendre multiprocesseur. Sans sé sans grand succès sous le nom SPS9 fin surprise, la décision tombe finalement 1984, puis lors d’une alliance avec MIPS du côté AIX. Sa modification prendra qui a échoué en 1991. Réalisant alors que quelques années25 et s’étalera même sur le problème du catalogue d’applications une décennie, car quand on augmente le est insoluble sans être adossé à un acteur nombre de processeurs (192 cœurs de majeur, Bull négocie avec HP et IBM et nos jours26), il faut raffiner la finesse des décide finalement en 1992 d’une alliance verrous. avec Big Blue, son ennemi héréditaire.

Il s’agit de construire ensemble une gamme de machines UNIX multipro- 25 Talbot, J., 1995. « Turning the AIX Operating System cesseur à base de processeurs PowerPC. into an MP-capable OS », sur le site de USENIX [URL : www.usenix.org/publications/library/proceedings/ IBM s’est résigné à cette époque à lever neworl/full_papers/talbot.ps]. le veto, autorisant dès lors ses équipes à 26 Sans compter le multithread simultané à 8 voies concevoir de grosses machines UNIX qui interne à chaque cœur !

160 161

Moralité : c’est le plus gros qui gagne, et la rationalité technique est parfois voilée par l’attachement des équipes à leur bibliothèque de code.

Conclusion

À travers l’histoire d’UNIX à Bull Grenoble durant la décennie 1980, on tra- verse en fait l’histoire de l’informatique mondiale à cette époque, avec nombre de leçons réutilisables de nos jours.

On notera avec intérêt que pour l’essentiel, l’impact sur l’informatique actuelle de nos activités de l’époque est dû à des effets de levier à travers des par- tenaires plus importants que Bull : IBM, DEC et HP pour X/Open, Apple pour MacOS via OSF, IBM pour AIX.

163

Encadré Unix et les systèmes ouverts dans Bull, avant l’Internet

Michel Élie Responsable du département Architecture réseau et standards de systèmes distribués de Bull (1981-1989)1. Philippe Picard Président de l’Association pour l’Histoire des Télécommunications et de l’Informatique (AHTI).

Cette contribution se propose de résumer les grandes étapes de la stratégie du constructeur Bull dans le domaine des systèmes ouverts et plus particulièrement à propos du système Unix (en complément du témoignage de Jacques Talbot, « Unix vu de province », publié dans ce numéro). Elle insiste sur l’importance pour Bull d’avoir disposé d’une offre cohérente de matériel et de logiciel, malgré la diversité de ses composantes, dont Unix. Elle revient sur la chronologie de l’évolution de cette offre et de son environnement : usagers, autres constructeurs, Direction Générale des Télé- communications, Commission Européenne…

Elle repose largement sur des documents disponibles sur les sites historiques de la Fédération des Équipes Bull (FEB) [1] (en particulier Chevance, 2004 ; Guédé, n. d.), de l’Association pour l’Histoire des Télécom et de l’Informatique (AHTI) [2], ainsi que la documentation personnelle des auteurs.

Le point de départ : 1984

En 1984, l’offre de CII Honeywell Bull traduisait l’histoire mouvementée de Bull, après l’achat de Bull par General Electric en 1964, celui de Bull General Electric par Honeywell en 1970, la fusion de CII et Honeywell Bull en 1976, et l’intégration dans Bull de CIT Transac, filiale bureautique d’Alcatel en 1982.

1 Il est possible d’adresser des retours sur ce texte à [email protected]. L’offre de Bull était articulée autour de cinq lignes et systèmes d’exploitation (OS) stratégiques.

Trois lignes partageaient la dénomination commerciale GCOS : GCOS6, GCOS7, GCOS8. À l’origine, le nom GECOS (devenu GCOS) avait été créé pour désigner le système d’exploitation du système GE-635 introduit en 1964. L’acronyme signifiait General Electric Comprehensive Operating System. Chaque ligne GCOS avait une origine historique différente : Honeywell avec une équipe R&D (recherche et développement) à Boston pour GCOS6, Bull à Paris pour GCOS7, General Electric à Phoenix pour GCOS8. Les équipes de R&D de chaque ligne ont été maintenues sur leur implantation historique. On notera que malgré leur dénomination commerciale commune, les trois lignes GCOS étaient incompatibles et n’assuraient ni interopérabi- lité ni inter-portabilité. Seules les télécom permettaient un minimum d’échanges entre les trois systèmes.

Le système CTOS était un système multipostes développé par Convergent Tech- nology. CIT Transac en avait acquis la technologie et les droits de distributions, repris par Bull avec les restructurations industrielles.

Le dernier OS était le système DNS, le logiciel de télécom conforme à l’archi- tecture ISO/DSA et qui gérait les « couches basses » des télécom (protocoles X21 et X25, Ethernet, le transport, etc..) et les multiples types de terminaux. Le logiciel était implanté sur un frontal Datanet (commun à GCOS7 et GCOS8) et directement sous GCOS6 et CTOS.

Malgré le lointain héritage de Multics, encore largement utilisé par les équipes de R&D pour les échanges transatlantiques, la culture Unix était quasi absente chez Bull.

Axes stratégiques

Dès son arrivée à la tête de Bull, en 1982, Jacques Stern a compris que Bull n’aurait jamais la taille lui permettant de jouer un rôle mondial, quelle que soit la qualité de son offre de matériel et logiciel propriétaires qui était plus qu’honorable. Le premier coup de semonce fut observé dès la fin des années 1980 avec l’offre CTOS qui n’a pas résisté au monde plus ouvert « wintel » (c’est-à-dire un monde dominé par le système Windows de Microsoft et les microprocesseurs d’Intel), malgré ses qualités intrinsèques et sa bonne intégration dans l’offre Bull.

L’intérêt des systèmes ouverts était clairement exprimé par le marché (même s’ils ont longtemps été considérés comme utopiques) avec deux objectifs : la liberté de

164 165

choix vis-à-vis des fournisseurs et la richesse des applications disponibles. Le dilemme pour Bull était qu’il fallait à la fois soutenir et faire évoluer l’offre existante des sys- tèmes propriétaires tout en préparant l’avenir avec une offre de systèmes ouverts. D’où l’engagement de Bull sur deux axes stratégiques en faveur des systèmes ouverts : les communications et Unix.

La normalisation des réseaux et la position de la Commission Européenne

Bull menait avec Honeywell une stratégie visant à empêcher IBM d’imposer son architecture de réseaux SNA (Systems Network Architecture) comme un standard de facto du marché. Cette stratégie s’appuyait sur les concepts techniques mis en œuvre dans sa propre architecture de systèmes distribués : DSA (Distributed System Architecture).­ Sa position fut rejointe dès 1978 par la plupart des constructeurs européens regroupés dans l’ECMA (European Computer Manufacturer Association, basée à Genève).

Au milieu des années 1980, le protocole du modèle Internet, TCP/IP, n’était pas encore important : sa généralisation sur le réseau Internet aux États-Unis ne date que de 1983. La distribution gratuite des versions Unix BSD 4.2 et suivantes livrées à partir de 1983 par l’Université de Berkeley, incluant le support de TCP/IP, accéléra le dévelop- pement de l’Internet, d’abord aux États-Unis, puis, peu à peu, en Europe, chez les uni- versitaires, comme une alternative à des développements coûteux basés sur les normes internationales OSI d’interconnexion de systèmes ouverts.

Il faut bien avoir à l’esprit le contexte de politique industrielle européenne dans lequel on se situait, bien décrit début 1987 dans un numéro spécial de la Revue d’écono- mie industrielle, « Les nouvelles industries de l’information et de la communication », sous la direction de Marc Humbert & Laurent Gille, en particulier dans l’article de Emmanuel de Robien (1987) alors directeur de la prospective de Bull. Un mouvement en faveur du développement de l’industrie européenne informatique avait été lancé par Étienne Davignon, vice-président de la Communauté Économique Européenne (CEE) en créant la « Table ronde des 12 » (GEC, ICL, Plessey, AEG, Nixdorf, Siemens, Bull, Olivetti, CGE, Thomson, Stet, Philips).

La CEE, puis l’Union Européenne (UE) étaient favorables à la normalisation de l’interconnexion des systèmes ouverts (OSI). Elles ont favorisé une coopération régionale pour en développer des implémentations prototypes portables sous Unix dans le cadre du programme ESPRIT (« European Study Program in Information Technology », programme stratégique européen pour la recherche en technologie de l’information). Engagement de Bull vis-à-vis d’Unix

Les équipes de la direction Réseau de Bull ont joué un rôle important dans ces projets, en coopération avec leurs partenaires GEC, ICL, Olivetti, Siemens, Philips. Bull fut également très actif dans les instances internationales pour promouvoir le développement des systèmes ouverts, et faciliter la propagation d’Unix :

-- X OPEN créée en 1984 par Bull, ICL, Siemens, Olivetti, Nixdorf produit le X/ Open Portability Guide et fusionne avec l’OSF en février 1996, pour donner nais- sance à l’Open Group.

-- En 1988, Bull fit partie des fondateurs de l’OSF (Open System Fondation) avec Apollo Computer, Digital Equipment Corporation, Hewlett-Packard, IBM, Nixdorf Computer, et Siemens AG. L’objectif était de diffuser entre autres le code source d’une version de référence d’Unix.

Une opportunité : le SM 90

Dès 1980, le Centre national d’études des télécommunications (CNET), en parte- nariat avec l’Institut national de recherche en informatique et en automatique (INRIA), a lancé la conception d’une machine destinée à des applications techniques pour le réseau téléphonique. Ce fut le SM 90, une machine Unix architecturée autour d’un bus spécifique, le SM-Bus permettant l’adjonction facile de coupleurs spécifiques. Un Groupement d’intérêt public, le GIPSI-SM 90, fut créé entre l’INRIA, le CNET et Bull afin de promouvoir les applications sous Unix. Le GIPSI fut présidé par Jean-François Abramatic, qui deviendra en 1995 président du World Wide Web Consortium. De nom- breux industriels prirent le brevet du SM 90 : Bull, Thomson Telephone, TRT, CSEE, ESD Dassault, SMT-Goupil et Telmat. Le succès commercial de SM90 fut surtout dans le domaine de l’informatique technique dans le réseau de France Télécom plutôt que dans la bureautique. Dans ce domaine, le CNET avait lancé un projet de bureautique interne nommé Smartix, sur la base de SM 90 et d’un serveur Multics (Picard, 2017, annexe ii).

Unix avait déjà acquis une grande notoriété aux États-Unis du fait de la décision d’AT&T (forcée par un décret anti-trust) de le diffuser largement et gratuitement dans les milieux universitaires. Le marché Unix en France était encore balbutiant : milieux de chercheurs informatiques et autres « convertis », stations de travail… Quelques grands clients ont amorcé le marché, par exemple EDF et surtout la DGT pour des applications techniques spécifiques.

166 167

Malgré l’offre pléthorique en lignes de produit, Bull décida de démarrer une offre Unix en industrialisant le SM 90 sous le nom de SPS 7 et en achetant à AT&T la licence d’Unix, assez onéreuse à cette époque. Des améliorations devaient lui être apportées pour satisfaire les besoins d’un marché européen, dont une difficile interna- tionalisation pour supporter des jeux de caractères nationaux, ce que ni ses concepteurs ni les chercheurs de Berkeley n’avaient pris en compte, bien que ceux-ci aient été proches du centre de recherche de Xerox qui maîtrisait parfaitement ces questions.

Bull a développé des coupleurs informatiques ad hoc (X21, X25, Ethernet) et les couches ISO/DSA pour intégrer l’offre Unix dans l’architecture de Bull. Une coo- pération avec un téléphoniste (Jeumont Schneider) a même conduit Bull à développer des coupleurs en technologie de téléphonie RNIS, puis des protocoles spécifiques aux télécoms (comme le code CCITT n° 7).

Le décollage du marché Unix

Le SPS 7 a rapidement trouvé ses limites et Bull a décidé de développer une gamme Unix en profitant de développements en cours chez Bull Italie à base de Moto- rola 68000 et de Multibus. Il a été remplacé par les machines de la ligne DPX 2 dis- ponible au début des années 1990 qui connurent un succès très honorable. En dehors des milieux universitaires et des marchés spécifiques comme les télécom, Unix cor- respondait à un véritable souhait des utilisateurs de sortir du carcan des systèmes pro- priétaires des grands constructeurs. Des outils nouveaux sont en outre apparus, rendus disponibles sur Unix, à commencer par les Systèmes de gestion de bases de données (SGBD) relationnels (Ingres, Informix et surtout Oracle).

Les machines de la ligne DPX 2 ont été utilisées pour des grands déploiements techniques, par exemple chez France Télécom pour le système de collecte en temps réel des tickets de taxation du réseau (les célèbres « fadettes »), les messageries vocales du réseau mobile, le système de test des lignes, etc.

Les partenariats et alliances diverses

On sait qu’un des segments importants au démarrage commercial d’Unix fut celui des stations de travail (en particulier de Sun Microsystems). Bull tenta une incursion sur ce marché par des accords de distribution avec Ridge, vendu sous le nom SPS 9, sans grand succès. L’offre était moyenne face aux grands concurrents, mais surtout elle s’adressait à un segment de marché que Bull ne connaissait pas bien. Par ailleurs, Bull a recherché des alliances technologiques pour l’aider à monter en gamme :

-- avec MIPS, pour étudier les architectures multiprocesseurs ; -- avec Tolerant Systems, pour développer un système basé sur Unix et sécurisé (projet Trix).

Finalement les divers projets envisagés avec ces partenaires ont été abandonnés avec la décision stratégique d’alliance avec IBM.

L’alliance avec IBM

En effet, à partir de 1991, la Direction Générale de Bull a pris conscience de l’impossibilité de « suivre le mouvement » du marché Unix avec ses propres moyens et compte tenu de l’impasse du 68000. Elle a donc recherché une alliance avec un « grand ».

Le débat s’est rapidement concentré sur le choix entre Hewlett Packard et IBM. C’est finalement IBM qui a été choisi, l’un des critères étant la complémentarité tech- nologique et la valeur ajoutée pouvant être apportée par Bull qui a été chargé en parti- culier du développement des télécom (coupleurs et couches ISO) et de la coopération dans le domaine de multiprocesseurs. Ce choix a curieusement pris un tour politique, Abel Farnoux, conseiller spécial du premier Ministre de l’époque, Edith Cresson, étant très partisan de HP. Les patrons de Bull ont heureusement pu imposer leur choix. Le sujet avait été largement débattu lors d’une participation d’Edith Cresson à une réunion de l’AHTI en juin 2009 où elle était intervenue sur les problèmes industriels et écono- miques de l’innovation (Cresson, 2009).

Cette alliance, conclue en janvier 1992, a été assez fructueuse, Bull a non seu- lement assimilé rapidement le système AIX d’IBM inspiré d’Unix, mais a développé des configurations haut de gamme, multiprocesseurs grâce à ses compétences d’études de Grenoble, ainsi que les télécom pour le marché européen. Cependant, à la fin de la décennie 1990, les machines haut de gamme AIX furent nettement distancées par les machines HP et surtout les machines Solaris de SUN pour les applications demandant une forte puissance.

Unix et les systèmes propriétaires

Afin de ralentir l’érosion du parc des systèmes propriétaires ou de piloter la ré- cupération du parc, Bull a mis en place plusieurs familles d’outils. Pour GCOS 7 et

168 169

GCOS 8, a été développé un coprocesseur Unix, sorte de frontal fortement couplé avec le CPU propriétaire permettant par exemple d’adjoindre à une application transaction- nelle une base de données relationnelle ou un frontal web. Mais aussi pour GCOS 6, a été développé un émulateur sous AIX permettant la récupération du code ancien de très nombreuses applications « métier » ayant survécu au nettoyage de l’an 2000.

Les équipes Unix à Bull

Comme le montre la contribution de Jacques Talbot, l’équipe chargée des déve- loppements pour l’industrialisation d’Unix était localisée dans l’établissement de Bull à Échirolles dans la banlieue de Grenoble, et était très concernée par sa survie dans ce site. Elle était la lointaine héritière des compétences de l’équipe Télémécanique qui avait développé la gamme SOLAR. Cette équipe a donc participé, avec une grande compétence et d’autant plus de détermination, aux différents choix techniques et stra- tégiques de la ligne de produit Unix. Elle a pu pour cela s’appuyer sur une large com- munauté technique rassemblant des équipes de tout horizon bien au-delà de leur propre entreprise. Ainsi, sans doute pour une des premières fois, est apparu un communauta- risme technique susceptible d’exercer une pression sur la stratégie des entreprises. Des liens se sont établis entre équipes techniques d’entreprises concurrentes, aboutissant parfois à la mise en circulation « libre » de certains logiciels développés dans ce cadre. Chronologie

1982 Accord de licence ATT-Bull.

1984 Fondation de X/Open Group par Bull, ICL, Siemens, Olivetti et Nixdorf, Siemens Olivetti et peu après rejoints par Philips et Ericsson dans le but de développer une spécification commune aux systèmes d’exploitation dérivés d’Unix. Ce groupe publiera à partir de 1985 le X/Open Portability Guide.

Introduction par Bull-Sems de la ligne basée sur la SM 90 sous le nom de SPS 7 basé sur la technologie issue du CNET.

Introduction du système Unix RISC de la compagnie Ridge sous le nom de SPS 9, station de travail puissante.

1987 Bull-Transac, Bull-Sems et Bull-Micral sont réunis dans une seule entité Bull-MTS. Création d’une ligne de produits Unix.

1988 Création d’une filiale X3S commune à Bull SA et à Honeywell Bull Italia pour développer ensemble le marché Unix.

1989 Transfert de la maintenance de Multics : de Honeywell-Bull à l’ACTC de Calgary.

1990 Annonce de la ligne DPX 2, offre Unix basée sur 68000 et Multibus2, résultant des développements franco-italiens. Elle incluait une version « internationalisée » d’Unix.

1991 Annonce du Bull Computing Model (de nom de code PurpleWay) un concept d’informatique distribuée basé sur les standards Unix, mais applicable aussi aux systèmes GCOS et aux PC.

Bull arrête ses efforts pour baser ses systèmes Unix sur l’architecture MIPS et se met à la recherche de nouveaux partenaires.

1992 Annonce d’un accord entre Bull et IBM sur AIX.

Bull adopte l’architecture PowerPC (commune à IBM et à Motorola). Bull doit développer un multiprocesseur destiné à être vendu par IBM et Bull. IBM prend 4.5 % du capital de Bull (initialement prévu 5.7 %).

Premiers sites web ouverts en France : INRIA, Cnam, IN2P3…

1994 Annonce du multiprocesseur Escala (né sous le nom de code Pegasus) issu d’une coopération entre Bull Italie, Bull Echirolles et IBM Austin, opérant sous une nouvelle version de AIX.

170 171

Sources

[1] Site web de la Fédération des Équipes Bull (FEB) [URL : http://www.feb- patrimoine.com].

[2] Site web de l’Association pour l’Histoire des Télécoms et de l’Informatique (AHTI) [URL : http://www.ahti.fr].

Bibliographie

Chevance R. J. (2004). « Contribution à l’histoire d’Unix chez Bull ». En ligne sur le site Web de la Fédération des Équipes Bull [URL : http://www.feb-patrimoine. com/projet/unix/histoire_unix_chez_bull_12_2004.pdf].

Guédé J.L. (d’après). (n. d.). « Bull SPS 7 ». En ligne sur le site Web de la Fédé- ration des Équipes Bull [URL : http://www.feb-patrimoine.com/projet/unix/sps7.htm].

Cresson E. (2009). « Conférence de Mme Édith Cresson, ancien Premier Ministre ». Cahier de l’AHTI, n° 12, pp. 7-17 [URL : http://www.ahti.fr/cahiers/Cahier12.pdf].

De Robien E. (1987). « Les stratégies de normalisation dans le domaine de l’in- formation ». Revue d’économie industrielle, vol. 39, 1er trimestre, pp. 220-227 [URL : http://www.persee.fr/issue/rei_0154-3229_1987_num_39_1].

Picard P. (2017). « La bureautique des années 1980 et le projet Scribe ». Cahiers de l’AHTI, n° 22, pp. 17-18 [URL : http://www.ahti.fr/cahiers/Cahier 22.pdf].

173

Imprimé dans les ateliers d’impression du CNAM sur un papier agréé FSC/PEFC respectueux de l’environnement. Cahiers d’histoire du Cnam La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II coordonné par Camille Paloque-Berges et Loïc Petitgirard

Dossier : La recherche sur les systèmes : des pivots dans l’histoire de l’informatique – II/II

Camille Paloque-Berges et Loïc Petitgirard – Introduction au premier volume « Éléments d’histoire des systèmes d’exploitation des années 1960 aux années 1990 »

Maarten Bullynck – « Qu’est-ce qu’un système d’exploitation ? Une approche historique »

François Anceau – « La Saga des machines-langage et -système »

Claude Kaiser – « Émergence des systèmes d’exploitation comme discipline »

Thomas Haigh – « The History of Unix in the History of Software »

Warren Toomey – « Unix : construire un environnement de développement de A à Z »

Clement T. Cole – « Unix: A View from the Field as We Played the Game »

Laurent Bloch – « La conversion à Unix. Un exemple de prophétisme informatique ? »

Jacques Talbot – « Unix vu de province : 1982-1992 »

Michel Élie et Philippe Picard – « Unix et les systèmes ouverts dans Bull, avant l’Internet »

vol. 7-8 2017 / Second semestre

(nouvelle série) ISSN 1240-2745

174