Ken Thompson

Introduction


Kenneth Lane Thompson (né le 4 février 1943) est un pionnier américain de l'informatique. Thompson a travaillé aux Bell Labs pendant la majeure partie de sa carrière, où il a conçu et mis en œuvre le système d'exploitation Unix original. Il a également inventé le langage de programmation B, prédécesseur direct du langage de programmation C et a été l'un des créateurs et des premiers développeurs du système d'exploitation Plan 9. Plan 9. Depuis 2006, M. Thompson travaille chez Google, où il a co-développé le langage de programmation Go.o.

Parmi ses autres contributions notables, on peut citer ses travaux sur les expressions régulières et les premiers éditeurs de texte informatique QED et ed, la définition de l'encodage UTF-8, et ses travaux sur les échecs sur ordinateur, notamment la création de bases de données de fin de partie. la création de tables de fin de partie et de la machine à échecs Belle. Il a remporté le prix Turing en 1983 avec son collègue de longue date Dennis Ritchie.


Enfance et éducation


Thompson est né à la Nouvelle-Orléans, en Louisiane. Lorsqu'on lui a demandé comment il avait appris à programmer, Thompson a déclaré : « J'ai toujours été fasciné par la logique et, même à l'école primaire, je travaillais sur des problèmes arithmétiques en binaire, des choses comme ça. Tout simplement parce que j'étais fasciné".

Thompson a obtenu une licence en 1965 et une maîtrise en 1966, toutes deux en génie électrique et en sciences informatiques, à l'université de Californie à Berkeley, où son directeur de thèse était Elwyn Berlekamp.


Carrière et recherches


Thompson a été engagé par les Bell Labs en 1966. Dans les années 1960, Thompson et Dennis Ritchie ont travaillé sur le système d'exploitation Multics. En écrivant Multics, Thompson a créé le langage de programmation Bon. Il a également créé un jeu vidéo appelé Space Travel. Plus tard, Bell Labs s'est retiré du projet MULTICS[8] et, pour pouvoir continuer à jouer, Thompson a trouvé une vieille machine PDP-7 sur laquelle il a réécrit Space Travel. Les outils développés par Thompson ont fini par devenir le système d'exploitation Unix :

Travaillant sur un PDP-7, une équipe de chercheurs des Bell Labs dirigée par Thompson et Ritchie, et comprenant Rudd Canaday, a développé un système de fichiers hiérarchique, les concepts de processus informatiques et de fichiers de périphériques, un interpréteur de ligne de commande, des tuyaux pour faciliter la communication entre les processus, et quelques petits programmes utilitaires. En 1970, Brian Kernighan a suggéré le nom « Unix », dans un jeu de mots sur le nom « Multics ». Après les premiers travaux sur Unix, Thompson a décidé qu'Unix avait besoin d'un langage de programmation système et a créé B, un précurseur du C de Ritchie.


Années 1970


Tout au long des années 1970, Thompson et Ritchie ont collaboré sur le système d'exploitation Unix ; ils ont été si prolifiques sur Research Unix que Doug McIlroy a écrit plus tard : « On peut supposer sans risque que les noms de Ritchie et de Thompson sont attachés à presque tout ce qui n'est pas autrement attribué ». Lors d'une interview en 2011, Thompson a déclaré que les premières versions d'Unix avaient été écrites par lui, et que Ritchie avait commencé à plaider en faveur du système et avait contribué à son développement :
J'ai écrit la première des deux ou trois versions d'UNIX tout seul. Et Dennis est devenu un évangéliste. Puis il y a eu une réécriture dans un langage de plus haut niveau langage de plus haut niveau qui allait s'appeler C. Il a surtout travaillé sur le langage et sur le système d'E/S, et j'ai travaillé sur tout le reste du système d'exploitation. C'était pour le PDP-11, ce qui était fortuit, car c'est l'ordinateur qui a conquis la communauté universitaire.

Le retour d'information sur le développement d'Unix par Thompson a également joué un rôle déterminant dans le développement du langage de programmation C. Thompson dira plus tard que le langage C « a grandi avec l'une des réécritures du système et, en tant que tel, il est devenu parfait pour écrire des systèmes ».

En 1975, Thompson prend un congé sabbatique chez Bell Labs et se rend à son alma mater, l'université de Berkeley. Là, il a aidé à installer la version 6 d'Unix sur un PDP-11/70. Unix à Berkeley deviendra plus tard un système à part entière, connu sous le nom de Berkeley Software Distribution (BSD).

Au début de l'année 1976, Thompson a écrit la version initiale de Berkeley Pascal à la Computer Science Division, Department of Electrical Engineering and Computer Science, UC Berkeley (avec des modifications et des ajouts importants plus tard dans l'année par William Joy, Charles B. Haley et Susan Graham, conseillère de la faculté).

Thompson a écrit un programme de jeu d'échecs appelé « chess » pour la première version d'Unix (1971). Plus tard, avec Joseph Condon, Thompson a créé le programme Belle, un ordinateur champion du monde d'échecs. Il a également écrit des programmes pour générer l'énumération complète des fins de parties d'échecs, connues sous le nom de tables de fin de partie, pour toutes les fins à 4, 5 et 6 pièces, ce qui permet aux programmes informatiques de jeu d'échecs d'effectuer des mouvements « parfaits » une fois qu'une position stockée dans ces tables est atteinte. Plus tard, avec l'aide de John Roycroft, expert en fin de partie d'échecs, Thompson a diffusé ses premiers résultats sur CD-ROM. En 2001, le journal de l'ICGA a consacré presque tout un numéro aux diverses contributions de Thompson aux échecs sur ordinateur.


Années 1980


En 1983, Thompson et Ritchie ont reçu conjointement le prix Turing « pour leur développement de la théorie des systèmes d'exploitation génériques et plus particulièrement pour la mise en œuvre du système d'exploitation UNIX ». Son discours de remerciement, intitulé « Reflections on Trusting Trust » (Réflexions sur la confiance), présente l'attaque par porte dérobée persistante du compilateur, aujourd'hui connue sous le nom de « Thompson hack » ou « trusting trust attack » (attaque par confiance), et est largement considérée comme un travail fondateur en matière de sécurité informatique. En 2023, le code source annoté de la porte dérobée a été publié en ligne.

Tout au long des années 1980, Thompson et Ritchie poursuivent la révision de Research Unix, qui adopte une base de code BSD pour les 8e, 9e et 10e éditions. Au milieu des années 1980, les Bell Labs ont commencé à travailler sur un nouveau système d'exploitation destiné à remplacer Unix. Thompson a joué un rôle déterminant dans la conception et la mise en œuvre du Plan 9 de Bell Labs, un nouveau système d'exploitation utilisant les principes d'Unix, mais les appliquant plus largement à toutes les installations majeures du système. Certains programmes qui faisaient partie des versions ultérieures de Research Unix, tels que mk et rc, ont également été incorporés dans le Plan 9.

Thompson a testé les premières versions du langage de programmation C++ pour Bjarne Stroustrup en écrivant des programmes dans ce langage, mais il a ensuite refusé de travailler en C++ en raison des fréquentes incompatibilités entre les versions. Lors d'une interview en 2009, Thompson a exprimé une opinion négative sur le C++, déclarant : « Il fait beaucoup de choses à moitié bien et c'est juste un amas d'idées qui s'excluent mutuellement ».


Années 1990


En 1992, Thompson a développé le système de codage UTF-8 avec Rob Pike. Le codage UTF-8 est depuis devenu le codage de caractères dominant pour le World Wide Web, représentant plus de 90 % de toutes les pages web en 2019.

Dans les années 1990, les travaux ont commencé sur le système d'exploitation Inferno, un autre système d'exploitation de recherche basé sur une machine virtuelle portable. Thompson et Ritchie ont poursuivi leur collaboration avec Inferno, ainsi qu'avec d'autres chercheurs des laboratoires Bell.

En 1995, Thompson a collaboré avec Sean Dorward sur la compression musicale, sur la base des travaux de recherche originaux de Jim Johnston, sous la direction de Joe Hall et de Jont Allen.


Années 2000


À la fin de l'année 2000, Thompson a pris sa retraite des laboratoires Bell.

En 2004, il a participé à la mise en œuvre de Turochamp, un programme d'échecs conçu par Alan Turing en 1948, avant qu'il n'existe d'ordinateurs capables de l'exécuter.

Il a travaillé à Entrisphere, Inc. en tant que boursier jusqu'en 2006. À partir de 2024, il travaille chez Google, d'abord en tant qu'ingénieur distingué, puis en tant que conseiller de Google. Il a récemment participé à la conception du langage de programmation Go. Se référant à lui-même et aux autres auteurs originaux de Go, il déclare :
Lorsque nous avons commencé à trois [Thompson, Rob Pike et Robert Griesemer], il s'agissait de recherche pure. Nous nous sommes réunis tous les trois et avons décidé que nous détestions le C++. [rires] ... [Pour en revenir à Go, nous sommes partis de l'idée que nous devions tous les trois être impliqués dans toutes les fonctionnalités du langage, afin qu'il n'y ait pas de déchets inutiles introduits dans le langage pour quelque raison que ce soit.