- À 82 ans, Ken Thompson revient sur les débuts de la naissance du système d’exploitation Unix et la culture d’expérimentation libre chez Bell Labs
- Il explique comment, après l’échec du projet Multics, il a construit presque par hasard la structure centrale d’Unix en réutilisant les ordinateurs restants
- L’équipe Unix a obtenu un PDP-11 et fait évoluer le système d’exploitation de manière officieuse, formant une « Unix Room » pleine d’humour et d’esprit de camaraderie
- L’environnement ouvert de Bell Labs a servi de base à la croissance du langage C et d’Unix, puis à la culture de collaboration qui mènera plus tard au développement du langage Go
- Thompson souligne qu’Unix était une expérience communautaire mettant en pratique une “ouverture d’avant l’open source”, et estime que cet esprit perdure dans la culture technologique moderne
La naissance d’Unix et la culture d’expérimentation chez Bell Labs
- Ken Thompson raconte qu’il a participé au projet Multics chez Bell Labs au milieu des années 1960, mais se souvient du système comme d’un « projet énorme, lent, coûteux et voué à l’échec »
- Après l’arrêt de Multics, il a poursuivi ses expériences avec les gros ordinateurs restants, en essayant d’améliorer le dispositif de stockage de données CRAM et la mémoire à tambour
- En expérimentant pour accélérer la vitesse de lecture mémoire, il a fini, presque sans s’en rendre compte, par créer un système ayant la forme d’un système d’exploitation
- Il explique qu’en dépit des consignes de Bell Labs demandant de « cesser la recherche sur les systèmes d’exploitation », il a officieusement achevé les bases d’Unix
- C’est ainsi qu’est né un Unix initial doté des composants essentiels comme le système de fichiers, les pilotes de disque et les périphériques d’E/S
La première communauté Unix et l’arrivée du PDP-11
- Les premiers utilisateurs d’Unix étaient Dennis Ritchie, Doug McIlroy, Robert Morris, Brian Kernighan et quelques autres, dans une communauté si réduite que les identifiants utilisateur ne comptaient qu’un seul chiffre
- Thompson a conçu le système de fichiers avec Rudd Canaday sur un tableau noir, et s’est servi du système d’enregistrement téléphonique de Bell Labs pour la documentation
- Joe Ossanna a contourné les procédures bureaucratiques de Bell Labs pour obtenir un ordinateur PDP-11, marquant un tournant pour le développement d’Unix
- Officiellement acheté « pour le traitement de texte », le PDP-11 a en réalité servi d’équipement central pour le développement d’Unix
- Des secrétaires du service brevets ont commencé à rédiger des documents sur le système Unix, formant une première base d’utilisateurs externes
La « Unix Room » et une communauté libre
- Le PDP-11 a été installé dans un espace du 6e étage de Bell Labs, qui est rapidement devenu le centre des développeurs connu sous le nom de “Unix Room”
- Après avoir vidé un vieux distributeur et un local de stockage, l’équipe y a ajouté un second PDP-11, et le lieu est devenu un centre des discussions sur le networking et la composition de documents
- Avec même son propre système PBX relié à des lignes téléphoniques, l’endroit fonctionnait comme un hub de recherche officieux
- Thompson se souvient de « l’époque où l’on crochetaient les serrures et faisaient des farces dans l’Unix Room »
- Il décrit une ambiance expérimentale mêlant humour et esprit de rébellion, allant jusqu’à voler et cacher un sabot de roue posé pour stationnement interdit
- Il raconte comment l’affaire s’est terminée par une négociation, le responsable de la sécurité proposant de « rendre les sabots et on laissera les secrétaires tranquilles »
- Dennis Ritchie décrivait Unix comme « un système dans lequel une communauté pouvait se former », et les “Unix Lunch” réguliers sont devenus un lieu d’échange d’idées
L’ouverture de Bell Labs et la croissance d’Unix
- Thompson estime que l’absence de pression et l’autonomie dans l’environnement de recherche ont conduit au succès d’Unix et du langage C
- Chez Bell Labs, l’ambiance était telle qu’on pouvait « tout essayer », avec des personnes de formations très diverses travaillant ensemble
- Le linguiste Lee McMahon a contribué au développement d’Unix en obtenant un dictionnaire lisible par machine et une version électronique des Federalist Papers
- Quand ces textes n’entraient pas dans l’éditeur ed, Thompson a développé l’outil de recherche par motif grep
- Unix s’est diffusé au sein de Bell Labs dans l’administration et les systèmes de commutation téléphonique, devenant une infrastructure clé à l’échelle de l’organisation
Une philosophie d’ouverture avant l’open source
- Thompson mentionne que Richard Stallman a développé la philosophie open source, mais que cet esprit existait déjà dans Unix
- À l’époque, Unix disposait bien de fonctions de protection des fichiers, mais dans les faits tout le code source restait modifiable par tout le monde
- Selon une règle implicite du type « si tu y touches, c’est à toi », une culture de développement faite de création collective et d’expérimentation quotidienne s’est installée
- L’exemple du brouillon de roman stocké dans le répertoire de son collègue P. J. Plauger, que tout le monde lisait et commentait, est présenté comme une anecdote emblématique de collaboration et d’ouverture
- Cette culture a donné naissance à une manière communautaire de développer, comme écrire ensemble sur un tableau noir
- Plus tard, certaines idées issues du projet Plan 9 de Bell Labs ont évolué vers le standard UTF-8, devenu l’un des fondements du Web moderne
Le parcours après Bell Labs et le langage Go
- Thompson explique qu’après le démantèlement du système Bell en 2000, il a quitté Bell Labs en évoquant l’évolution de la culture interne
- Il estime que l’ambiance était devenue celle où il fallait « justifier ce que l’on fait », et que la liberté de recherche avait disparu
- Il a ensuite travaillé six ans chez Entrisphere, une entreprise d’équipements réseau, avant de rejoindre Google
- Son supérieur chez Entrisphere étant parti chez Google, il l’a encouragé à venir, et Eric Schmidt était un ancien collègue de l’époque Bell Labs
- Chez Google, après avoir participé à la revue de sécurité d’Android, il a formé l’équipe de développement du langage Go avec Rob Pike
- C’est présenté comme un exemple où une relation de collaboration née chez Bell Labs a conduit, 30 ans plus tard, à la création d’un nouveau langage de programmation
Conclusion : un héritage technologique forgé par la curiosité et la communauté
- Les souvenirs de Ken Thompson montrent qu’Unix n’était pas seulement une technologie, mais le produit d’une exploration libre et d’un esprit communautaire
- L’environnement ouvert de Bell Labs a servi de matrice à la culture open source moderne
- Son expérience rappelle que la créativité et la collaboration sont les moteurs essentiels de l’innovation technologique
1 commentaires
Commentaires sur Hacker News
L’esprit de collaboration créative et de forte confiance partagé par plusieurs projets logiciels à succès est frappant
Cette culture va dans une direction totalement opposée à la mentalité façon MBA ou à l’environnement bureaucratique des grandes entreprises
Cela fait penser à Unix, GNU, Linux, Python à ses débuts, et même aux débuts de Rockstar Games
La bureaucratie finit par tout envahir, et les managers érigent des murs tout en minant la confiance par une culture du secret
Les nouveaux ont du mal à comprendre le système, et les nouvelles idées meurent avant même d’avoir commencé
Les grandes organisations peuvent toujours gagner de l’argent, mais si l’on veut provoquer du changement, la confiance est indispensable
L’ambiance ressemblait un peu à celle d’aujourd’hui, quand les VC arrosent le marché d’argent
Il est intéressant de noter que les premiers utilisateurs d’Unix étaient des secrétaires brevets ou du personnel administratif
Comme c’était un système que les gens avaient commencé à utiliser de leur plein gré, cela a créé des contraintes très concrètes, qui ont eu un effet sain
Même en essayant des idées expérimentales, on ne pouvait pas casser un système utilisé chaque jour par de vrais utilisateurs
Tout comme Linux a commencé comme « juste un hobby », les débuts d’Unix sont partis non pas d’une grande vision, mais d’une expérimentation visant à fabriquer un outil utile
Bien sûr, l’environnement de Bell Labs lui a donné un avantage considérable
L’affaire des chaussures de sécurité volées était intéressante
Il est frappant que cela ait été réglé non par une procédure officielle, mais par une négociation directe avec un agent de sécurité
L’anecdote selon laquelle Thompson a conçu le système de fichiers Unix au tableau avec Rudd Canaday, en utilisant le service téléphonique de dictée de Bell Labs, est excellente
Aujourd’hui, même le grand public peut facilement utiliser des services de reconnaissance vocale, mais à l’époque c’était vraiment révolutionnaire
Bien sûr, à ce moment-là, ce n’était pas de l’IA mais sans doute une secrétaire qui prenait la dictée, mais vu la puissance technologique de Bell Labs, cela ne semble pas totalement impossible non plus
Quand j’écris, j’ai sans cesse envie de réviser, et cela devient plutôt un obstacle
Il est intéressant que les premiers outils comme mesg et talk aient été conçus avec à l’esprit la formation d’une communauté
Grâce à une structure à moitié ouverte, il était même possible d’entrer dans le répertoire personnel d’autres personnes et de regarder leurs fichiers
ITS n’imposait pas de restrictions d’accès et encourageait la collaboration, alors que la plupart des serveurs Unix verrouillaient les répertoires personnels en 0700
Dans la légende de la photo où Ken et dmr se tiennent ensemble, on trouve la phrase : « nous voulions créer un système dans lequel une communauté puisse se former »
Cela rappelle la citation du Seigneur des anneaux placée en tête du fichier source de Perl
Le code correspondant peut être vu via ce lien GitHub
On peut voir l’ensemble des contributions de Ken au langage Go dans le dépôt Git
Sans spoiler, il y a du code assez amusant
Je me demande d’où vient le titre « Radio UNIX USA », morceau de l’album de hardcore punk de 1981 This is Boston not LA
Les paroles n’ont absolument rien à voir avec Unix, mais comme le groupe venait de Boston, il y a peut-être un lien avec le MIT
Le titre pourrait aussi parodier la règle des indicatifs radio américains à 4 lettres
Si cet article vous a intéressé, je recommande 《Hackers》 de Steven Levy
Le livre retrace l’histoire de la culture hacker, du MIT AI Lab au Homebrew Computer Club, jusqu’aux premiers programmeurs de jeux
Je l’ai lu jeune, cela m’a donné le virus de la programmation, et aujourd’hui encore je retrouve dans les startups le même plaisir de collaboration
Lien Goodreads
《Unix: A History and a Memoir》 de Brian Kernighan est aussi une excellente lecture