Ken Thompson ist eine lebende Legende der Computerwissenschaft
Als Mitschöpfer des Unix-Betriebssystems, Erfinder der B-Programmiersprache und Wegbereiter der C-Sprache hat er die digitale Welt, wie wir sie heute kennen, fundamental geprägt. Seine Ideen stecken in Smartphones, Großrechnern und der Infrastruktur des Internets. Dieser Artikel zeichnet ein umfassendes Bild des Ausnahmeprogrammierers – von seiner Kindheit als „Navy Brat“ über seine bahnbrechenden Erfindungen bis hin zu seinen charakteristischen Stärken und menschlichen Schwächen.
Kindheit und Jugend: Die Wurzeln eines Tüftlers
Kenneth Lane Thompson wurde am 4. Februar 1943 in New Orleans, Louisiana, geboren . Seine Kindheit war von der militärischen Karriere seines Vaters geprägt, der in der United States Navy diente. Die Familie zog häufig um, und Thompson beschrieb sich selbst später als „Navy Brat“ (Marine-Gör), der nie länger als ein oder zwei Jahre am selben Ort blieb . Diese frühe Erfahrung des ständigen Wechsels könnte seinen unabhängigen Geist und seine Fähigkeit gefördert haben, sich schnell in neuen Umgebungen zurechtzufinden. Die Familie ließ sich schließlich in Kalifornien nieder, wo Thompson in Chula Vista die High School abschloss .
Schon in jungen Jahren zeigte sich seine tiefe Faszination für Logik und Technik. Er brachte sich selbst Elektronik und den Bau von Radios bei, oft angeleitet durch Magazine wie Popular Electronics . Anstatt nur zu konsumieren, wollte er verstehen, wie die Dinge funktionieren. Diese Neugierde erstreckte sich auch auf Spiele und Rätsel. Er verschlang Bücher über verschiedene Spiele, löste leidenschaftlich gern Kreuzworträtsel und spielte gelegentlich Bridge mit der Familie, obwohl ihm das Spiel selbst nicht zusagte .
Eine besondere Leidenschaft entwickelte er um die sechste oder siebte Klasse herum für Schach. Nachdem er sich in Lehrbücher vertieft hatte, trat er für etwa sechs Monate der Schulschachmannschaft bei und ließ sich von Größen wie Bobby Fischer inspirieren . Obwohl er bald darauf den Wettkampfschach aufgab, blieb das Spiel ein lebenslanges Interesse, das sein strategisches Denken schärfte. Auf die Frage, wie er Programmieren lernte, antwortete Thompson einmal: „Ich war schon immer von Logik fasziniert, und schon in der Grundschule rechnete ich arithmetische Probleme im Binärsystem aus, einfach so. Nur weil es mich faszinierte.“ .
Nach der Highschool zog es Thompson an die University of California, Berkeley. Er studierte Elektrotechnik und Informatik und erwarb 1965 einen Bachelor of Science . Sein Masterstudium schloss er nur ein Jahr später, 1966, ebenfalls in Berkeley ab. Sein akademischer Betreuer war der berühmte Mathematiker Elwyn Berlekamp . Während seiner Zeit in Berkeley sammelte Thompson nicht nur theoretisches Wissen, sondern auch praktische Erfahrungen. Er half bei der Wartung von Compilern und arbeitete am Project Genie mit, einem frühen ARPA-finanzierten Forschungsprojekt zur Entwicklung von Timesharing-Systemen auf einem SDS-930-Computer . Diese Arbeit, die innovative Ansätze der Computerarchitektur und -simulation beinhaltete, legte den Grundstein für sein späteres Schaffen.
Die Bell-Labs-Ära: Die Geburt von Unix
Nach seinem Masterabschluss wurde Thompson 1966 von den Bell Laboratories angeheuert, der Forschungsabteilung des Telekommunikationsriesen AT&T . Er trat der renommierten Computing Sciences Research Center bei und begann seine Arbeit an einem ehrgeizigen Projekt namens Multics (Multiplexed Information and Computing Service) . Dieses Gemeinschaftsprojekt von MIT, General Electric und Bell Labs sollte ein revolutionäres Timesharing-Betriebssystem schaffen, das vielen Nutzern gleichzeitig die Interaktion mit dem Computer erlaubte. Die Erfahrungen mit den komplexen Konzepten von Multics waren prägend, doch das Projekt galt bald als überambitioniert und kostspielig. 1969 zog sich Bell Labs aus dem Konsortium zurück .
Für Thompson und seinen Kollegen Dennis Ritchie, den er bei Bell Labs kennengelernt hatte, hätte dies das Ende ihrer Arbeit an modernen Betriebssystemen bedeuten können. Doch Thompson hatte in seiner Freizeit ein Spiel für Multics geschrieben: Space Travel, eine Simulation des Sonnensystems. Um das Spiel auf einer veralteten, wenig genutzten PDP-7-Minirechner weiterlaufen zu lassen, begann er, ein eigenes Betriebssystem für diesen Rechner zu entwickeln . Was als vertriebene Spielerei begann, wurde zur Geburtsstunde von Unix .
Gemeinsam mit Ritchie und einem kleinen Team, zu dem auch Rudd Canaday gehörte, entwickelte Thompson auf der PDP-7 die grundlegenden Konzepte des neuen Systems . Sie schufen ein hierarchisches Dateisystem, das die Daten in einer Baumstruktur von Verzeichnissen und Dateien organisierte – ein Konzept, das heute selbstverständlich ist. Sie führten Pipes ein, mit denen die Ausgabe eines Programms direkt als Eingabe für ein anderes dienen konnte, was die Kombination einfacher Werkzeuge zu komplexen Befehlsfolgen ermöglichte. Dazu kamen eine Kommandozeilen-Shell und einfache Dienstprogramme. 1970 prägte Brian Kernighan den Namen „Unix“ als Wortspiel zu Multics .
In den folgenden Jahren entwickelte sich Unix rasant weiter. 1971 portierten Thompson und Ritchie das System auf die leistungsfähigere PDP-11, was seine Verbreitung enorm beschleunigte . Um die Programmierung zu erleichtern, schuf Thompson zunächst die Programmiersprache B, einen stark vereinfachten Ableger von BCPL . Doch B stieß auf der neuen Hardware schnell an seine Grenzen. Ritchie erweiterte B daher ab 1971 zur Sprache C, die sowohl die Eleganz von B als auch die nötige Hardware-Nähe für ein Betriebssystem bot. 1973 schrieben Thompson und Ritchie den Unix-Kernel in C neu . Dies war der entscheidende Durchbruch: Unix wurde damit zur ersten Betriebssystem-Plattform, die relativ einfach auf verschiedene Rechnerarchitekturen übertragen (portiert) werden konnte.
Die Partnerschaft zwischen Thompson und Ritchie war legendär produktiv. Doug McIlroy, ein weiterer Bell-Labs-Kollege, schrieb später: „Die Namen Ritchie und Thompson können getrost mit fast allem in Verbindung gebracht werden, was nicht anders zugeschrieben wird.“ . Thompson selbst beschrieb ihre Arbeitsteilung in einem Interview: „Die ersten zwei oder drei Versionen von UNIX habe ich ganz alleine gemacht. Und Dennis wurde ein Evangelist. […] Bei der Neufassung in einer höheren Sprache, die später C heißen sollte, arbeitete er hauptsächlich an der Sprache und am E/A-System, und ich arbeitete am ganzen Rest des Betriebssystems.“ .
Erfindungen und Innovationen: Ein Leben für die Systemprogrammierung
Thompson hörte nie auf, neue Ideen zu entwickeln und umzusetzen. Sein Wirken erstreckt sich über Jahrzehnte und zahlreiche Disziplinen der Informatik.
🔧 Die Frühen Werkzeuge: Reguläre Ausdrücke, QED und grep
Bereits in den 1960er Jahren, während seiner Arbeit an Multics, entwickelte Thompson eine Version des Texteditors QED, die eine revolutionäre Funktion enthielt: die Suche nach Textmustern mithilfe von regulären Ausdrücken . Er erfand einen Algorithmus (bekannt als Thompson’s Construction), der diese Ausdrücke in effiziente, endliche Automaten übersetzte, um die Suche zu beschleunigen . Dieser Ansatz war seiner Zeit weit voraus. Für Unix schrieb er dann den Editor ed, der diese mächtigen Muster ebenfalls nutzte. Um bequem in Dateien nach Mustern suchen zu können, extrahierte er diese Funktionalität aus ed und schuf daraus den eigenständigen Befehl grep (global/regular expression/print) . grep wurde zu einem der bekanntesten und am häufigsten verwendeten Unix-Werkzeuge und machte reguläre Ausdrücke in der Programmierwelt populär.
♟️ Schach, Belle und Endspiel-Datenbanken
Thompsons lebenslange Liebe zum Schach fand auch in seiner Arbeit einen Platz. 1971 schrieb er ein einfaches Schachprogramm für die erste Unix-Version . Später, in den 1970er und 1980er Jahren, entwickelte er zusammen mit Joe Condon die Schachmaschine Belle . Belle war kein reines Softwareprogramm mehr, sondern kombinierte Software mit speziell entwickelter Hardware (z. B. für die Zuggenerierung), um eine damals unerreichte Spielstärke zu erreichen. 1980 gewann Belle die Weltmeisterschaft der Computerschachprogramme in Linz, Österreich .
Darüber hinaus leistete Thompson Pionierarbeit bei den sogenannten Endspiel-Datenbanken (Endgame Tablebases) . Er entwickelte Methoden, um für alle Positionen mit nur wenigen verbleibenden Figuren (zuerst 4, später 5 und 6 Figuren) den perfekten Zug zu berechnen und in Datenbanken abzulegen. Sobald ein Schachprogramm eine solche Position erreicht, kann es „perfekt“ spielen. Diese Arbeit revolutionierte das Computerschach und das Verständnis von Schachendspielen.
🔐 „Reflections on Trusting Trust“ – Ein Weckruf für die Sicherheit
Bei der Verleihung des Turing Awards 1983 hielt Thompson eine denkwürdige und verstörende Rede mit dem Titel „Reflections on Trusting Trust“ . In ihr demonstrierte er eine besonders hinterhältige Form eines Hintertürchens (Backdoor). Er zeigte, wie man einen Compiler so manipulieren kann, dass er, wenn er sich selbst übersetzt, eine Hintertür in sich und in bestimmte andere Programme (wie den Login-Befehl) einbaut – und das, ohne dass eine Spur dieser Hintertür jemals im Quellcode des Compilers oder der betroffenen Programme sichtbar ist.
Dieses Gedankenexperiment, auch als „Thompson Hack“ bekannt, ist zu einem Meilenstein der Computersicherheit geworden . Es legt den grundlegenden Mangel offen: Man kann einem Compiler nur dann vollständig vertrauen, wenn man seinen Binärcode aus einem vertrauenswürdigen Quellcode selbst erstellt hat. Die Rede war nicht nur eine technische Meisterleistung, sondern auch eine kritische Reflexion über das Wesen von Vertrauen in komplexen Systemen und endete mit einer scharfen Rüge für Journalisten, die Hacker unkritisch als Helden feierten .
🌍 Plan 9, Inferno und UTF-8
In den 1980er und 1990er Jahren, als Unix bereits kommerzialisiert wurde und sich in viele Varianten aufspaltete, forschte Thompson bei Bell Labs an der Zukunft. Zusammen mit Kollegen wie Rob Pike entwickelte er Plan 9 from Bell Labs . Plan 9 sollte Unix‘ Ideen auf die Welt der vernetzten Computer übertragen. Sein Leitsatz war, alle Ressourcen, ob lokal oder im Netzwerk, als Dateien in einem einzigen, prozessspezifischen Namensraum darzustellen. Das dazugehörige Protokoll 9P ermöglichte den transparenten Zugriff auf entfernte Ressourcen . Plan 9 war seiner Zeit weit voraus, fand aber nie eine breite Anwendung außerhalb von Forschungskreisen.
Aus Plan 9 ging später das portable Betriebssystem Inferno hervor, das für eingebettete Systeme und Set-Top-Boxen gedacht war . Eine der folgenreichsten Erfindungen dieser Zeit gelang Thompson 1992 gemeinsam mit Rob Pike: die Entwicklung der Zeichenkodierung UTF-8 . Sie ermöglicht es, alle Zeichen des Unicode-Standards platzsparend und abwärtskompatibel mit der älteren ASCII-Kodierung darzustellen. UTF-8 ist heute die mit Abstand dominierende Zeichenkodierung im World Wide Web und auf vielen Computersystemen .
Die Google-Ära und die Geburt von Go
Im Jahr 2000 ging Ken Thompson nach 34 Jahren bei Bell Labs in den Ruhestand . Die Ruhe währte jedoch nicht lange. Nach einer kurzen Station bei Entrisphere, Inc. wechselte er 2006 zu Google, wo er bis heute als Distinguished Engineer tätig ist .
Bei Google arbeitete er zunächst an Projekten wie Google Books, wo er seine Expertise in der Textverarbeitung einbrachte . Sein bedeutendster Beitrag in dieser Zeit war jedoch die Mitschöpfung einer neuen Programmiersprache: Go . Ende 2007 kamen Thompson, Rob Pike und Robert Griesemer zusammen, um eine Sprache zu entwerfen, die die Nachteile komplexer Sprachen wie C++ vermeiden und gleichzeitig die Anforderungen an moderne, nebenläufige (concurrent) Softwarearchitekturen erfüllen sollte. Im November 2009 wurde Go als Open Source veröffentlicht.
In einem Interview erklärte Thompson augenzwinkernd: „Als wir drei anfingen, war es reine Forschung. Wir kamen zusammen und beschlossen, dass wir C++ hassen. [Gelächter] […] Wir begannen mit der Idee, dass jeder von uns von jedem Feature in der Sprache überzeugt werden musste, also wurde kein überflüssiger Mist aus irgendeinem Grund in die Sprache eingebaut.“ . Go hat sich seitdem zu einer der wichtigsten Sprachen für Cloud-Dienste, Netzwerktools und verteilte Systeme entwickelt und wird bei Google selbst intensiv genutzt.
Stärken und Schwächen: Der Mensch hinter dem Code
Ken Thompson gilt als einer der größten Programmierer aller Zeiten . Seine Stärken liegen in einem fast schon intuitiven Verständnis für Systeme. Er besitzt die seltene Gabe, komplexe Probleme zu durchdringen und einfache, elegante und effiziente Lösungen zu finden. Der Unix-Philosophie der Einfachheit und Klarheit fühlt er sich bis heute verpflichtet . Seine Arbeitsweise ist pragmatisch und ergebnisorientiert. Er scheut sich nicht davor, auf verschiedenen Ebenen zu arbeiten – von der Hardware-Entwicklung bei Belle über Compilerbau bis hin zur Anwendungsprogrammierung.
Er ist für seine tiefe technische Integrität bekannt. Er sagt, was er denkt, und seine Abneigung gegen unnötige Komplexität ist legendär. Seine vernichtende Kritik an C++ („ein Müllhaufen von Ideen, die sich gegenseitig ausschließen“) ist ein geflügeltes Wort in der Branche .
Zu seinen Schwächen könnte man zählen, dass er oft wenig Geduld für Dinge hat, die er für überflüssig hält. Seine hohen Ansprüche an sich selbst und andere können fordernd sein. Zudem war sein Interesse stets forschungsgetrieben; die Kommerzialisierung seiner Ideen überließ er lieber anderen. Dies zeigt sich in der Geschichte von Unix, das AT&T lange Zeit als Forschungsprojekt betrachtete, während andere daraus ein Geschäft machten.
Seine vielleicht größte Stärke ist aber seine Bescheidenheit. In der Oral History des Computer History Museum von 2024 spricht er detailreich und reflektiert über seine Arbeit, ohne jemals in Selbstbeweihräucherung zu verfallen . Er bleibt der neugierige Tüftler aus New Orleans, der einfach verstehen will, wie die Welt funktioniert – und sie dabei ein Stück weit neu erschafft.
Ehrungen und Vermächtnis
Ken Thompsons Arbeit wurde mit nahezu jeder erdenklichen Auszeichnung gewürdigt, die die Informatik zu vergeben hat:
- 1980: Wahl in die National Academy of Engineering und die National Academy of Sciences .
- 1983: Gemeinsam mit Dennis Ritchie der A.M. Turing Award, die „Nobelmedaille“ der Informatik .
- 1990: IEEE Richard W. Hamming Medal .
- 1997: Fellow des Computer History Museum .
- 1999: National Medal of Technology, überreicht von US-Präsident Bill Clinton .
- 2011: Japan Prize .
- 2019: Aufnahme in die National Inventors Hall of Fame .
Sein Vermächtnis ist allgegenwärtig. Unix und sein Ableger Linux bilden das Rückgrat des modernen Internets, der Cloud-Infrastruktur und von Supercomputern. Die Sprache C und ihre Syntax beeinflussen fast jede nachfolgende Programmiersprache. UTF-8 sorgt dafür, dass Menschen in aller Welt problemlos digital kommunizieren können. Und seine Ideen zu Compilern, Sicherheit und Systemdesign sind fester Bestandteil des Informatik-Kanons. Ken Thompson hat nicht nur Werkzeuge gebaut; er hat die Art und Weise, wie wir mit Computern denken und interagieren, für immer verändert.
Kommentar abschicken