# Ken Thompson

> 1943– · Computer Scientist, Co-creator of UNIX, Go
>
> **Recorded contribution:** UNIX; B language; Go language; UTF-8; Plan 9; regular expression implementation

## How to use this dossier

Read for a causal chain, not a hero story: inherited problem → contribution → mechanism → downstream capability → limit. Then close the page and complete the reconstruction exercise from memory.

## 1. Historical orientation

Ken Thompson (born 1943) co-created Unix with Dennis Ritchie at Bell Labs, created the B language, built influential regular-expression and text tools, co-designed Plan 9, and later co-designed Go and UTF-8 with collaborators. Early Unix joined a hierarchical file system, processes, small commands, and pipes into an environment that programmers could extend with ordinary programs. Doug McIlroy proposed pipelines, Ritchie created C and co-developed Unix, and the Bell Labs community supplied tools and ideas. Thompson's Turing lecture 'Reflections on Trusting Trust' also showed that malicious behavior can survive source inspection if the compiler that builds the source is compromised.

## 2. The problem inherited

Large time-sharing systems were complex and inaccessible, while programmers needed a smaller interactive environment whose tools could be composed and modified on modest hardware.

## 3. The central contribution

Thompson built Unix's early kernel, file system, command environment, and language lineage, demonstrating a small composable operating system that could become its own development platform.

## 4. Reconstruct the mechanism

1. Represent devices and persistent data through a hierarchical file interface with byte-stream operations.
2. Create isolated processes that inherit open files and can replace their program image with another executable.
3. Connect one process's output to another's input with pipes, composing simple tools without a shared application API.
4. Use the system's own editor, compiler, shell, and utilities to rebuild and extend the environment from within.

## 5. What changed downstream

- Unix shaped Linux, BSD, macOS, POSIX, shells, and server infrastructure.
- Pipes and small tools established a durable compositional software culture.
- Thompson's later language and encoding work influenced Go and global text interoperability.

## 6. Attribution, limits, and uncertainty

- Ritchie is Unix's co-creator; McIlroy, Kernighan, Bell Labs colleagues, and later communities supplied major mechanisms.
- Unix's byte-stream simplicity can lose schema, transactional, and security information between tools.
- Trusting Trust demonstrates a supply-chain possibility, not that source review is useless; reproducible diverse builds can mitigate it.

## 7. Reconstruction lab

Implement a shell pipeline using fork, exec, pipe, and file-descriptor duplication. Trace every descriptor in parent and children, deliberately keep one end open to cause a hang, and explain the lifecycle invariant that fixes it.

## 8. Evidence trail

- [The UNIX Time-Sharing System](https://doi.org/10.1145/361011.361061) — Communications of the ACM
- [Reflections on Trusting Trust](https://doi.org/10.1145/358198.358210) — Communications of the ACM

---

*Research checked 2026-08-09. Dates, roles, and claims about living people are historical snapshots. Linked sources remain the authority; this dossier is original instructional synthesis.*
