Kenneth Thompson, ou comme on l’appelle « Ken », le créateur d’UNIX et co-inventeur du langage « C ». Il est né en février 1943 à la Nouvelle-Orléans, en Louisiane. Ken est un informaticien et co-lauréat du prix A.m. Turing avec Dennis Richie en 1983, ce prix est la plus haute distinction en informatique. Thompson et Ritchie ont été cités conjointement pour le développement de théories génériques sur les systèmes d’exploitation et en particulier pour la mise en œuvre du système d’exploitation UNIX qu’ils ont inventé aux laboratoires Bell. Ken a obtenu le baccalauréat en 1965 et la maîtrise en 1966 dans le domaine du génie électrique de l’Université de Californie à Berkeley (UCB). Il est allé travailler chez Bell Labs après l’obtention de son diplôme, où il a d’abord travaillé sur le projet Multics.
« Je pense que la bonne idée majeure dans UNIX était son interface simple et propre : ouvrir, fermer, lire et écrire. »
Ken Thompson
Bell Laboratories&UNIX
En 1966, Ken a été embauché par Bell Labs pour travailler sur le projet MULTICS (Le Service d’Information et de calcul Multiplexé). Le projet a été conçu avec un consortium comprenant General Electric (GE), le Massachusetts Institute of Technology (MIT) et Bell Labs en tant que successeur du système de partage de temps compatible du MIT (CTSS), MULTICS était un système d’exploitation ambitieux, innovant et volumineux qui était censé prendre en charge des centaines d’utilisateurs simultanés. Malheureusement, le projet est rapidement devenu lourd, ce qui, avec le fait qu’il avait du mal à accueillir plus de trois utilisateurs simultanés, a entraîné sa disparition progressive.
« Ce n’est que l’insuffisance du code pénal qui sauve les pirates de poursuites très sérieuses. »
Ken Thompson
1969 a été l’année magique où UNIX est né, les humains sont allés pour la première fois sur la lune, ARPANET a été publié (le précurseur sur Internet), ainsi qu’un certain nombre d’autres événements intéressants se sont produits. C’est également l’année où Thompson a écrit le jeu de voyage dans l’espace.
Le jeu de voyage spatial
Ce jeu a observé des paysages et des terres sur différentes planètes et leurs lunes, a permis au pilote de piloter un véhicule autour de la simulation du système solaire, a joué un rôle plus important dans le développement de l’industrie informatique que tout autre jeu. Ken Thompson a écrit le jeu à l’origine pour une utilisation sur MULTICS, mais il a rapidement commencé à le réécrire pour une utilisation sur un ordinateur PDP-7 peu utilisé et déjà obsolète qui était aux Bell Labs. Non seulement Space Travel a été l’un des premiers jeux à être utilisé sur n’importe quel ordinateur et l’un des premiers programmes d’application à fonctionner sous UNIX, mais il a également servi d’introduction précieuse à Ken au processus délicat de préparation des programmes pour le PDP-7. Cette maîtrise qu’il a acquise avec le PDP-7 a été l’un des principaux facteurs qui ont rendu son développement d’UNIX possible.
« J’ai toujours un travail de jour à temps plein, c’est pourquoi il m’a fallu cinq ans pour écrire Une oreille à terre, et pourquoi je n’aurai pas terminé un autre livre d’ici la semaine prochaine. »
Ken Thompson
Bell Labs se retire du projet MULTICS et Ken Thompson décide en 1969 d’écrire son propre système d’exploitation, car il voulait un système décent sur lequel il puisse exécuter son jeu sur le PDP-7. Il a accompli cela en un peu plus d’un mois, alors que son fils en bas âge Corey et sa femme Bonnie rendaient visite à la famille à San Diego, en Californie. Il a passé près d’une semaine à écrire le shell (Utilisé pour lire et exécuter des commandes qui sont tapées dans l’ordinateur), le noyau (le cœur du système d’exploitation), un éditeur et un assembleur (Programme pour convertir le code source en code machine qui peut être compris directement par le processeur de l’ordinateur). Ken a écrit tout cela en langage d’assemblage PDP-7.
« Je voulais séparer les données des programmes, car les données et les instructions sont très différentes. »
Ken Thompson
L’ordinateur PDP-7
Le PDP-7 était l’ordinateur sur lequel Ken a développé et a également fait fonctionner son système d’exploitation pour la première fois. Il avait une longueur de mot de 18 bits et seulement quatre kilo-octets de mémorie3, ce qui ne représentait qu’une petite fraction de la capacité d’une seule disquette moderne. Cette mémoire extrêmement petite a été un facteur majeur pour que Ken garde son système d’exploitation petit et lui procure également une simplicité élégante qui a joué un rôle très important dans le succès de celui-ci et de ses descendants spirituels.
Le développement d’UNIX
En 1970, Thompson a écrit un langage de programmation appelé langage « B », qui a commencé à améliorer le langage BCPL (basic combined programming language). La chose la plus importante que nous devons dire à propos de B est qu’il est devenu le précurseur du langage « C », qui a été achevé et publié par Dennis Ritchie en 1972. C’était l’insistance de Ken Thompson, pour garder sa philosophie sur la simplicité, qui était responsable du nom du nouveau langage de Dennis Ritchie à rester court et simple. « C » est devenu plus tard l’un des langages de programmation les plus puissants et les plus utilisés au monde et il le reste encore aujourd’hui. Dennis Ritchie a rejoint Bell Labs directement l’année suivant Ken Thompson et il a joué un rôle majeur dans le développement précoce de l’UNIX.
« Cela m’amène à Dennis Ritchie. Notre collaboration a été une chose de beauté. »
Ken Thompson
Ken Thompson a réécrit le noyau UNIX en langage « C » en 1972, ce qui a changé et assuré le succès futur de l’UNIX, car il a rendu l’UNIX plus portable. Cela signifie que « C » a permis à UNIX d’être adapté à différentes plates-formes avec une relative facilité, rompant ainsi la pratique de longue date consistant à lier les systèmes d’exploitation au matériel sur lequel ils pouvaient fonctionner.
En 1973, Ken Thompson a fait la première présentation publique sur UNIX. La publication de l’article de sa présentation dans une revue prestigieuse en 1974 a donné au système une autre grande visibilité au sein de la communauté universitaire. La publication a été remarquée par les bonnes personnes à l’UCB, l’alma mater de Ken, ce qui a conduit à la 1ère copie du système d’exploitation et était expédiée à cette université.
Cela a également conduit à un retour de Ken à l’UCB en 1975, où Thompson a été professeur invité jusqu’en 1976. Ils avaient commencé à utiliser UNIX, et Ken Thompson devait l’aider à développer davantage son système. Pour Ken, l’avantage était, en plus de la nostalgie, une opportunité de travailler avec de nouveaux groupes de personnes et une stimulation intellectuelle supplémentaire conséquente qui a permis à UCB de devenir l’un des deux principaux développeurs d’UNIX.
« Je dois suivre la littérature scientifique dans le cadre de mon travail, mais de plus en plus, je me suis retrouvé à lire des choses qui n’étaient pas vraiment pertinentes pour mon travail académique, mais qui étaient pertinentes pour le jardinage. »
Ken Thompson
Plus tard, et pendant que Ken Thompson retournait aux Bell Labs, lui et Rob Pike étaient les principaux créateurs du nouveau système d’exploitation appelé Plan 9, qui a été créé sur la base de l’UNIX mais incorporait un certain nombre d’innovations. Dans le cadre de ce travail, Ken a également créé le format de transformation Unicode à huit bits (UTF-8), qui est maintenant universellement utilisé à des fins de codage de caractères. Parmi les autres activités de Ken figurait également le développement du logiciel de jeu d’échecs amélioré.
Thompson et Ritchie ont reçu une reconnaissance supplémentaire de l’industrie en 1983 en recevant le prix ACM Turing, largement considéré comme le prix le plus prestigieux de la communauté universitaire de l’informatique.
Ken Thompson considère le grand succès de l’UNIX comme étant en grande partie une question de sérendipité. Mais en même temps, c’est aussi le cas, et en raison du fait qu’UNIX a facilité un énorme changement de paradigme de divers ordinateurs centraux hautement centralisés vers des ordinateurs moins chers, plus petits et décentralisés qui pourraient exécuter des systèmes d’exploitation standardisés plutôt que ces systèmes dictés par leurs fabricants. Ken considère son propre succès dans le développement de ce système au fait qu’il est un penseur ascendant. Thompson visualise des systèmes complexes en se concentrant d’abord sur leurs composants les plus élémentaires et sur la façon dont ces composants interagissent, plutôt que de se concentrer sur des systèmes complets.
« Le serveur X doit être le plus gros programme que j’ai jamais vu qui ne fait rien pour vous. »
Ken Thompson
Au début des années 1980, l’influence de l’UNIX dans les milieux universitaires a conduit à une adoption à grande échelle d’UNIX par de nombreuses startups commerciales, par exemple Solaris, HP-UX et AIX. En particulier de la version BSD, provenant de l’Université de Californie à Berkeley. De nos jours, en plus des systèmes UNIX certifiés que j’ai déjà mentionnés, des systèmes d’exploitation de type Unix comme Linux et les descendants de BSD (NetBSD, FreeBSD et OpenBSD) sont maintenant couramment rencontrés.
En 1983, Ken Thompson a été nommé fellow par Bell Labs. Il a également assisté Dennis Ritchie dans la création du système d’exploitation Plan 9 en 1995 et du système d’exploitation Inferno en 1996 aux Bell Labs. Plus tard en 1998, Ken Thompson et Dennis Ritchie ont reçu ensemble la Médaille Nationale de la Technologie des États-Unis pour leur développement UNIX.
« Vous ne pouvez pas faire confiance au code que vous n’avez pas totalement créé vous-même. »
Ken Thompson
Ken Thompson est un autre exemple réel de l’histoire façonnée par la bonne personne qui est prête au bon moment au bon endroit. Il est également un exemple de la façon dont une seule personne avec juste une idée et un dévouement pourrait accomplir quelque chose qui échappe aux grandes organisations avec d’énormes concentrations de talents et de budgets. De plus, Il est aussi un exemple de personne qui a créé un grand travail sans aucune intention de profit personnel, mais plutôt en raison de son dévouement à son métier et de son désir de l’améliorer, a abouti à ce que le monde soit également amélioré.
Ken Thompson a décidé de prendre sa retraite des laboratoires Bell en 2000 et a déménagé plus tard en Californie. Plus tard, il a travaillé chez Entrisphere, Inc en tant que fellow jusqu’en 2006 et maintenant il travaille chez Google en tant qu’ingénieur distingué. Ses travaux récents comprenaient la co-conception du langage de programmation Go.
Prix Thompson
- Académie Nationale d’Ingénierie en 1980
- Prix Turing en 1983
- Médaille Richard W. Hamming de l’IEEE en 1990
- Fellow du Musée d’histoire de l’Informatique en 1997
- Médaille Nationale de Technologie en 1999
- Prix Tsutomu Kanai en 1999
- Prix du Japon en 2011