About Contribute GitHub
Menu

Ken Thompson

Ken Thompson is an American computer scientist who co-created the Unix operating system with Dennis Ritchie at Bell Labs, later co-designed the Go programming language at Google, and authored the seminal 1984 Turing Award lecture "Reflections on Trusting Trust," which exposed how a compiler could be backdoored to insert undetectable trojans into software.

Ken Thompson (born February 4, 1943, in New Orleans, Louisiana) is an American computer scientist whose work at Bell Labs and later at Google shaped the foundations of modern computing and computer security. He earned a BS (1965) and MS (1966) in Electrical Engineering and Computer Sciences from the University of California, Berkeley, before joining Bell Labs in 1966.

At Bell Labs, Thompson worked alongside Dennis Ritchie on the Multics operating system project. After Bell Labs withdrew from Multics, Thompson and Ritchie began work in 1969 on what became the Unix operating system, initially implemented on a spare PDP-7 minicomputer. Thompson designed much of Unix's early architecture and tools, including the QED and ed text editors and early regular-expression support. He also created the B programming language, a simplified successor to BCPL, which served as a direct precursor to Ritchie's C language—the language in which Unix was famously rewritten starting around 1973, making it one of the first portable operating systems. Unix was announced outside Bell Labs in 1973 and went on to become the ancestor of a vast family of modern operating systems, including Linux and macOS's Darwin/BSD lineage.

Turing Award and "Reflections on Trusting Trust"

In 1983, Thompson and Ritchie jointly received the ACM A.M. Turing Award, computing's highest honor, "for their development of generic operating systems theory and specifically for the implementation of the UNIX operating system." Thompson's Turing Award lecture, delivered in 1984 and published in Communications of the ACM as "Reflections on Trusting Trust," remains one of the most cited papers in computer security. In it, Thompson described how he had modified a C compiler binary to recognize when it was compiling the Unix login program and insert a backdoor, and further modified the compiler to recognize when it was compiling itself and reproduce both malicious behaviors—so that no trace of the tampering would appear in any source code, even the compiler's own source. His conclusion—"You can't trust code that you did not totally create yourself... No amount of source-level verification or scrutiny will protect you from using untrusted code"—became a foundational statement on supply-chain trust and remains directly relevant to modern discussions of build reproducibility, toolchain integrity, and software supply-chain attacks.

Later Work

Thompson made numerous other contributions during his Bell Labs tenure, including co-developing the UTF-8 character encoding with Rob Pike in 1992 and contributing to the Plan 9 and Inferno distributed operating systems. He was also a serious computer chess researcher, building the dedicated chess hardware/software system Belle and pioneering endgame tablebase techniques. After leaving Bell Labs (which he left in 2000), Thompson joined Google, where in 2007 he co-designed the Go programming language together with Rob Pike and Robert Griesemer; Go was announced publicly in November 2009 and reached its 1.0 release in March 2012.

Thompson's other honors include the IEEE Richard W. Hamming Medal (1990), the U.S. National Medal of Technology (1998, awarded jointly with Ritchie), and the Japan Prize (2011, jointly with Ritchie). His work spans the creation of foundational operating-systems and language technology and, through "Reflections on Trusting Trust," the articulation of one of security culture's most enduring and unsettling ideas about the limits of trust in software toolchains.

Timeline

  • 1943-02-04Born in New Orleans, Louisiana.
  • 1966Earns MS in Electrical Engineering and Computer Sciences from UC Berkeley; joins Bell Labs.
  • 1969Begins developing the Unix operating system with Dennis Ritchie at Bell Labs, initially on a PDP-7.
  • 1973Unix is rewritten in the C programming language and announced outside Bell Labs, becoming portable across hardware.
  • 1983Receives the ACM A.M. Turing Award jointly with Dennis Ritchie for the development of Unix.
  • 1984Delivers Turing Award lecture "Reflections on Trusting Trust," published in Communications of the ACM, describing a self-propagating compiler backdoor.
  • 1990Receives the IEEE Richard W. Hamming Medal.
  • 1992Co-develops the UTF-8 character encoding with Rob Pike.
  • 1998Receives the U.S. National Medal of Technology, jointly with Dennis Ritchie.
  • 2000Leaves Bell Labs after over three decades there.
  • 2006Joins Google.
  • 2007Co-designs the Go programming language with Rob Pike and Robert Griesemer at Google.
  • 2009-11-10Go programming language is publicly announced.
  • 2011Receives the Japan Prize, jointly with Dennis Ritchie.
  • 2012Go reaches its 1.0 release.
Ken Thompson
Type
Person
Era
1969-Present
Born
1943-02-04
Known for
Co-creating the Unix operating system with Dennis Ritchie at Bell Labs (development began 1969); Inventing the B programming language, a direct precursor to C; Co-designing the Go programming language with Rob Pike and Robert Griesemer at Google; Winning the 1983 ACM A.M. Turing Award jointly with Dennis Ritchie; Authoring the 1984 Turing Award lecture "Reflections on Trusting Trust," a foundational text on compiler backdoors and trusting trust; Co-developing UTF-8 encoding with Rob Pike (1992); Building the Belle computer chess machine and pioneering endgame tablebases; Contributing to Plan 9 and Inferno operating systems at Bell Labs
Key date
1943-02-04
Tags
Unix, Bell Labs, C programming language, Go programming language, Turing Award, compiler security, computer chess, operating systems
Created by Joas A Santos · Something wrong or want it removed? Open an issue.