Été 1969, Murray Hill, New Jersey. Ken Thompson traverse un couloir des Bell Labs avec un rouleau de bande perforée à la main. Il vient de le faire sortir du GE 635 du centre de calcul et il va le charger dans un PDP-7 rangé au département de recherche visuelle et acoustique. C'est un mini-ordinateur 18 bits lancé en 1964, que ses propriétaires n'utilisent presque plus et que Dennis Ritchie qualifiera de « déjà obsolète ». Bonnie, la femme de Thompson, est partie un mois chez les parents de Ken avec leur fils d'environ un an. Il a devant lui une maison vide, une machine de seconde main et un calendrier qu'il s'est fixé lui-même : une semaine par morceau.
Le projet dont Bell Labs se retire
Quelques mois plus tôt. Depuis fin 1964, les Bell Labs participent avec le MIT et General Electric à Multics, un grand système à temps partagé prévu pour un GE 645. Le projet est ambitieux, lent, et quand la date prévue passe, il n'y a toujours rien d'utilisable. Au printemps 1969, la direction des Bell Labs se retire. Pour un petit groupe du centre de recherche en informatique, Thompson, Ritchie, Joe Ossanna, Doug McIlroy, c'est la fin d'un service de calcul interactif confortable qu'ils n'ont aucune envie de perdre.
Toute l'année 1969, ils réclament donc une machine de taille moyenne, un PDP-10 ou un Sigma 7, et promettent d'écrire le système d'exploitation qui ira avec. La réponse n'est jamais oui. Ritchie résumera l'affaire sans amertume : on demandait aux Labs de dépenser trop d'argent pour trop peu de gens avec un plan trop vague. La direction sortait d'un système d'exploitation raté et se débarrassait du centre de calcul.
Un jeu à 75 dollars la partie
Thompson, pendant ce temps, joue. Il a écrit sur Multics un jeu, Space Travel, où l'on pose un vaisseau sur les planètes du système solaire. Transposé en Fortran sur le GE 635, le jeu a un défaut : chaque partie coûte environ 75 dollars de temps processeur sur la facture interne. C'est en cherchant une machine moins chère pour y jouer que Thompson tombe sur le PDP-7 et son excellent processeur d'affichage. Ritchie et lui réécrivent Space Travel en assembleur pour cette machine, en repartant de zéro. Chaque modification oblige à retourner sur le GE 635 pour assembler le programme, puis à redescendre le couloir avec la bande.
Pour ne plus dépendre du gros ordinateur, Thompson décide d'écrire sur le PDP-7 de quoi s'en passer : un système de fichiers, un assembleur, un interpréteur de commandes. Autrement dit, un système d'exploitation. C'est à ce moment que Bonnie s'en va.
J'ai alloué une semaine à chacun : le système d'exploitation, le shell, l'éditeur et l'assembleur […]. Pendant le mois où elle était partie […], le tout a été entièrement réécrit sous une forme qui ressemblait à un système d'exploitation.
Ce qu'il construit tient en trois pièces qui existent encore dans chaque machine qu'on utilise. Le système de fichiers range les données dans des répertoires. Le noyau découpe le temps du processeur entre des processus, des programmes en cours qui s'ignorent les uns les autres. Et le shell, l'interpréteur de commandes, n'est qu'un programme parmi d'autres : il lit une ligne tapée au clavier, trouve le programme demandé, le charge à sa place et revient quand il se termine. C'est cette séparation qui lui permettra de survivre à toutes ses machines.
Un Multics castré
Pendant près d'un an, la chose n'a pas de nom. Elle vit sur une machine empruntée et ne sert qu'une ou deux personnes à la fois, là où Multics devait servir une foule. Ce n'est qu'au cours de 1970, « assez avant dans l'année » selon Ritchie, que Brian Kernighan propose « Unics », pour Uniplexed Information and Computing Service : un calembour sur Multics (Multiplexed Information and Computing Service) qui se prononce comme eunuchs, les eunuques. Un Multics émasculé. Kernighan revendique l'idée, et ajoute que plus personne ne se souvient de qui a transformé le « cs » final en « x ». Ritchie, lui, parlait d'un jeu de mots « quelque peu perfide ».
Un traitement de texte comme alibi
Le PDP-7 est trop petit et trop vieux pour aller plus loin, et la demande de 1969 a échoué. Le groupe change de tactique. En 1970, il propose à la direction une machine dix fois moins chère, un PDP-11 à environ 65 000 dollars, et surtout un objectif qui n'est plus un système d'exploitation. Le projet devient un système de saisie et de mise en forme de textes, un traitement de texte, dont le service des brevets des Bell Labs sera le premier client. L'impulsion vient surtout de Joe Ossanna. Ritchie l'écrira avec sa pudeur habituelle : promettre un système dédié au traitement de texte avait semblé « naturel, ou peut-être opportun ».
La commande part en mai 1970. Le processeur arrive à la fin de l'été, mais le PDP-11 est un produit si neuf qu'aucun disque n'est disponible avant décembre. Unix et le formateur de texte roff sont portés sur la nouvelle machine, et pendant le second semestre 1971, trois dactylos du service des brevets passent leurs journées à taper, corriger et mettre en page des demandes de brevet sous Unix. Le service des brevets adopte le système, « le premier de nombreux groupes des Laboratoires à ratifier notre travail », écrira Ritchie. Le premier manuel du programmeur Unix est daté du 3 novembre 1971. Son noyau tient en 4 200 lignes d'assembleur et 16 kilooctets de mémoire.
La direction n'a jamais acheté un système d'exploitation. Les Labs ont acheté une machine à écrire, et le système est venu avec.
Minuit, le 1er janvier 1970
L'année 1970 laisse une autre trace, plus discrète, dans chaque ordinateur du monde. Le manuel de 1971 définit l'heure Unix comme le nombre de soixantièmes de seconde écoulés depuis le 1er janvier 1971 à minuit. Sur 32 bits, ce compteur déborde au bout de 2,27 années, et l'origine change d'une édition à l'autre. Les ingénieurs finissent par compter en secondes et fixent l'origine au 1er janvier 1970 à 00:00:00 UTC, une date choisie, raconte-t-on, parce qu'elle était commode. Rien ne s'est passé ce jour-là. Mais depuis, chaque serveur et chaque téléphone de la famille Unix compte les secondes à partir de cet instant, et le compteur signé sur 32 bits atteindra sa limite le 19 janvier 2038 à 03:14:07 UTC.
En 1973, le noyau est réécrit en C, « peut-être le tournant le plus important » selon Ritchie. Le langage a sa propre note.
Vendu au prix de la bande
Unix aurait pu rester un outil interne. Ce qui l'en empêche est un texte de 1956. Cette année-là, pour clore un procès antitrust, AT&T, la maison mère des Bell Labs, signe un décret de consentement qui lui interdit toute activité en dehors des services de télécommunications et l'oblige à licencier ses brevets à qui le demande. Unix ne peut donc pas devenir un produit. À partir de la cinquième édition, en 1974, les Bell Labs l'expédient aux universités, code source compris, pour le prix du support et du port. La politique maison tient sur une diapositive :
Pas de publicité, pas de support, pas de correction de bugs, paiement d'avance.
Les universités reçoivent un système complet et lisible, sans aucune aide ; elles le modifient et s'échangent les corrections. En 1975, la sixième édition est aussi licenciée aux entreprises, pour 20 000 dollars.
La suite se vérifie sur n'importe quelle machine. Le 17 septembre 1991, Linus Torvalds publie la première version d'un noyau qui imite Unix : Linux. Android, le système le plus utilisé au monde, repose sur une version modifiée de ce noyau. macOS descend de FreeBSD et d'OPENSTEP, et porte depuis 2007 la certification UNIX de l'Open Group. Depuis novembre 2017, les 500 superordinateurs les plus puissants de la planète tournent tous sous Linux. En octobre 2026, 92 % des sites web dont on connaît le système d'exploitation tournent sur un système de la famille Unix.
Reste la scène du départ. Un couloir, une bande perforée, une machine oubliée dans un coin, un homme seul pendant un mois. La direction des Bell Labs n'a jamais commandé Unix. Elle a refusé l'ordinateur qui devait le faire naître, puis a laissé financer une machine à écrire. Le système s'est écrit entre les deux, pendant qu'elle regardait ailleurs.