Domain: History of Computer Science and Operating Systems Architecture
Expert Persona: Senior Operating Systems Analyst and Computer Science Historian
Abstract:
This fireside chat features Ken Thompson, co-inventor of the UNIX operating system, interviewed by Brian Kernighan, detailing the pivotal developments in early operating system and language design at Bell Labs. Thompson recounts his unintentional transition into graduate school and subsequent recruitment by Bell Labs Research. The narrative traces the group's involvement and withdrawal from the over-engineered Multics project, leading directly to the independent development of UNIX on an otherwise unused PDP-7. Thompson emphasizes the rapid, three-week creation cycle for the core OS components (editor, assembler, kernel). Key architectural contributions—specifically the invention and immediate utility of "pipes" for inter-process communication—are detailed. The discussion also covers the evolution of programming languages, from the resource-constrained 'B' language (designed to fit within 4K of memory on the PDP-7) to the subsequent development of 'C' by Dennis Ritchie. Finally, Thompson discusses his extensive work in computer chess, culminating in the creation of specialized, micro-coded hardware that achieved US and World Championship titles during the 1970s and 1980s, alongside an infamous story of hardware detention by US Customs during a 1980 Moscow trip.
Summarization:
11:02 Arrival at Bell Labs: Thompson describes his early life as a "professional student" at Berkeley, where his electrical hobbyist background led him to computers. He was recruited by Bell Labs following multiple missed interviews, eventually accepting a position after being impressed by the concentration of notable experts (names he recognized) in the research corridor.
17:25 The Multics Experience: Thompson characterized Multics as a "monster, hugely over-engineered" system suffering from second-system syndrome. Bell Labs eventually backed out due to management dissatisfaction, leaving a "nasty taste" regarding operating systems development.
19:30 Transition to PDP-7: Following the Multics withdrawal, Thompson commandeered a remote job entry PDP-7 workstation (which uniquely had a disk) to develop games, then used it to test a disk scheduling algorithm.
22:42 Creation of UNIX (Three Weeks): Thompson realized he was three weeks away from a functional OS. During his wife’s three-week vacation, he dedicated one week each to writing an editor, an assembler, and the core kernel. This rapid development resulted in the system named UNIX.
24:58 Funding UNIX: Early attempts to secure funding for a PDP-10 to port UNIX were rejected due to the institutional aversion to operating systems following Multics. The project was finally funded after Joe Ossanna framed a second proposal as a cost-saving solution for the Patent Office's specialized editing complex, requiring a PDP-11.
29:27 The PDP-11: The first machine received was a rare PDP-11/20. Thompson and the team immediately ported UNIX, aided by an assembler written by Morris (DC being the first program).
32:47 The Invention of Pipes: Thompson’s implementation of pipes was inspired by Doug McIlroy’s conceptual idea of linking programs. The feature was implemented in the OS kernel in approximately "an hour" due to its trivial nature when combined with existing IO redirection. The subsequent "frenzy" involved Dennis Ritchie and Thompson converting almost all existing utilities into "filters" to maximize the utility of the pipe structure.
35:49 Origins of GREP: Thompson initially kept the search utility, originally called 'S' (for search), in his personal directory. He presented it to McIlroy, who wanted a general file search tool. Thompson refined the code in "an hour" and it was moved to the system's bin directory, becoming the tool now known as grep.
41:06 Evolution of Languages (TMG, B, C): Thompson described his foray into language design, starting with TMG (a compiler compiler written in TMG by McIlroy). Thompson wrote a Fortran compiler in TMG, but due to the PDP-7's 4K memory limitation (half of the total 8K words), he aggressively stripped features, naming the resulting system 'B'. Dennis Ritchie later developed 'C' by adding data types to 'B' to optimize memory use on the byte-addressable PDP-11, succeeding after Thompson failed three separate attempts to rewrite the kernel in the early typed version of 'C'.
46:26 Chess Computers: Thompson, an avid chess spectator, focused on speed as the critical factor in computer chess. He designed and built custom hardware, starting with a PDP-11 plugged board, evolving to a micro-coded machine, and finally a large wire-wrapped machine built with Joe Condon's tools.
49:53 Championship Wins: Thompson's chess machine won the ACM tournament in 1978 and secured the US Champion title from roughly 1980 to 1986.
52:52 The Moscow Incident (1980): Following the World Championship win in 1980, Thompson was invited to Moscow. His custom hardware, labeled "Computer Moscow," was seized by US authorities at the Kennedy freight terminal due to a newly announced federal policy targeting "hemorrhage of technology." The computer was eventually returned after a widely published story, and Bell Labs paid a small fine (10% of the parts cost) for the technical violation of exporting restricted technology.