Home › Technology & Building › Technology & Invention
Ken Thompson
b. 1943 Tier II
A video game needed a machine, and the machine grew Unix
He was doing arithmetic in binary in grade school, for no reason except that logic interested him. Thompson took a bachelor's degree at Berkeley in 1965 and a master's in 1966, both in electrical engineering and computer sciences, with the coding theorist Elwyn Berlekamp supervising his thesis. Bell Labs hired him the same year and put him on Multics, the enormous shared time-sharing system that Bell eventually walked away from. While it lasted he wrote a language called Bon and a game called Space Travel that flew a ship around a simulated solar system. When Bell pulled out of the project, the machine the game ran on went with it, and Thompson went looking for another one.
He found a cast-off PDP-7 to run the game on, and what grew up around it was Unix. With Dennis Ritchie and Rudd Canaday he built a hierarchical file system, processes, device files, a command-line interpreter and pipes — the idea that one program's output is the next program's input. Brian Kernighan named the thing in 1970 as a pun on Multics. Thompson wrote B, which became Ritchie's C, and the editors QED and ed, which carried regular expressions out of theory and into everyday text handling. With Joseph Condon he built Belle, a chess machine in custom hardware that won the World Computer Chess Championship in 1980 and in 1983 became the first machine to play at master strength. He also computed the complete solution to every four, five and six-piece chess ending.
His Turing Award lecture in 1983 was not a victory speech. Under the title Reflections on Trusting Trust he described teaching a compiler to slip a backdoor into a login program, and to slip the backdoor-inserting code into any future compiler, so that both instructions vanish from any source anyone can read. The conclusion was that you cannot trust code you did not write entirely yourself, and that inspecting the source is no defense. He closed by criticizing journalists for treating teenage intruders as folk heroes. The annotated source of the hack was finally published in 2023. Thompson has been just as flat about tools he dislikes — he tested early C++ for Bjarne Stroustrup, then refused to work in it, and has said the three designers of Go agreed at the outset that they hated C++.
Almost everything he built is still load-bearing. The file system, the shell, the pipe and the small-tools habit are the shape of Linux, macOS, Android and most of what runs in a server rack. UTF-8, which he and Rob Pike defined in 1992, carried more than nine out of ten web pages. The trusting-trust attack remains an unsolved problem in computer security, and the standard answer — diverse double compilation, worked out by David A. Wheeler — is a way around it rather than a cure. Thompson retired from Bell Labs in late 2000, spent six years at a startup, and joined Google in 2006, where he co-designed Go and was still listed as an advisor in the mid-2020s.
Lifespan
Ken Thompson's life against the full span of the corpus — the fading end marks a life still in progress.
Notable works
-
Unix
invention
Begun on a discarded PDP-7 with Dennis Ritchie and Rudd Canaday 1969 -
The B programming language
invention
The direct predecessor of Dennis Ritchie's C 1969 -
Belle
invention
Built with Joseph Condon — world computer chess champion, later donated to the Smithsonian 1980 -
Reflections on Trusting Trust
speech
His Turing Award lecture, and a founding text of computer security 1984 -
UTF-8
invention
Defined with Rob Pike — now the encoding of most of the web 1992 -
The Go programming language
invention
Designed at Google with Rob Pike and Robert Griesemer 2009
Life in brief
with age at each point- February 4, 1943 aged 0 Born in New Orleans
- 1966 aged ~23 Takes a master's at Berkeley and is hired by Bell Labs His thesis advisor was the coding theorist Elwyn Berlekamp.
- 1969 aged ~26 Rewrites Space Travel on a discarded PDP-7, and Unix grows around it A file system, processes, a shell and pipes.
- 1970 aged ~27 Brian Kernighan suggests the name Unix, as a pun on Multics
- 1975 aged ~32 Takes a sabbatical at Berkeley and installs Version 6 Unix there What Berkeley did with it afterward became BSD.
- 1980 aged ~37 Belle wins the World Computer Chess Championship The first system to win using purpose-built chess hardware.
- 1983 aged ~40 Shares the Turing Award with Dennis Ritchie His lecture explained how to hide a backdoor inside a compiler.
- 1992 aged ~49 Defines UTF-8 with Rob Pike
- 2006 aged ~63 Joins Google, where he co-designs Go He had retired from Bell Labs in late 2000 after 34 years.
Related
Contemporaries
Technology & Building, born within 25 years
Vint Cerf b. 1943Technology & BuildingCo-designer of the TCP/IP protocols that form the foundation of the internet.
Dennis Ritchie 1941–2011Technology & BuildingCreated the C programming language and co-developed Unix at Bell Labs.
Federico Faggin b. 1941Technology & BuildingLed design of the Intel 4004 microprocessor and later co-founded Zilog.
Alan Kay b. 1940Technology & BuildingLed Smalltalk development at Xerox PARC and advanced graphical interfaces and personal computing concepts.
Robert Metcalfe b. 1946Technology & BuildingCo-invented Ethernet at Xerox PARC and founded 3Com to commercialize local area networking.
Barbara Liskov b. 1939Technology & BuildingDeveloped data abstraction in the CLU language and formulated the Liskov substitution principle.