This presentation offers Geoff Collyer's subjective oral history of Plan 9, tracing its evolution from its Unix roots at Bell Labs through its various iterations, technical challenges, and key innovations. Collyer details the development of core components like the Gnot terminal, the 9P file protocol, and the Venti block store, alongside the people who shaped its progress. He discusses hardware adaptations for multiprocessors and different architectures (x86, Alpha, PowerPC, ARM, RISC-V), networking advancements, and efforts to modernize the system, such as addressing the 2038 problem and reducing APE reliance. The talk also covers the project's institutional shifts, licensing changes under the Plan 9 Foundation, and concludes with Collyer's strong opinions on software development paradigms, notably his stance against Git.
The Evolution of Plan 9: A Personal History
0:02 Unix as a Precursor: The speaker highlights Unix's groundbreaking impact, particularly its novel pipes and elegant service on modest hardware, inspiring his early engagement with operating systems.
1:31 The Birth of Plan 9: Collyer first learned about Plan 9 (then "Gnot terminal" software) in 1986 during an interview with Rob Pike at Bell Labs. He found Rob's vision of a network-bootable terminal that imports resources and customizes namespaces very inspiring.
2:40 Seminal Papers: The 1990 UKUUG Plan 9 papers were as impactful as the 1974 CACM Unix paper, presenting Plan 9 as a refined evolution of Unix for modern, distributed hardware.
3:16 Early PC Distribution: Collyer obtained an early bootable floppy PC distribution at a 1993 Usenix conference, which offered a compelling glimpse into the system's potential.
3:42 Bell Labs and Homecenter: In 1994, Collyer joined Bell Labs, working on the Homecenter set-top box operating system, which borrowed elements from Plan 9.
4:03 Plan 9 Second Edition and Alef: The Second Edition of Plan 9 was released in 1995, featuring components like the 8Β½ window system and Acme, written in the concurrent programming language Alef.
4:50 Multiprocessor Challenges: The rise of Pentium Pro processors presented new challenges for Plan 9's sleep/wakeup mechanisms due to longer CPU pipelines and store buffers, necessitating fixes for memory ordering and cache coherence issues.
6:18 Brazil and Inferno: Phil Winterbottom led the Brazil branch, focusing on efficiency and raster graphics, eventually merging with the main Plan 9 line. Inferno, a Plan 9 kernel with a Limbo bytecode interpreter, emerged to meet set-top box needs (7:03).
7:34 Mesa Multimedia System: Collyer worked on Mesa (1996), a multimedia messaging system built on Inferno, capable of handling fax, mail, and voice with conversions like OCR, though deliberately lacking AI.
8:31 Network Performance Improvements: Switched Ethernet significantly boosted network performance (8:36), more so than just moving to 100 Mbps.
8:55 Pathstar Project & Lucent Decline: Phil Winterbottom's Pathstar project aimed to be a combined telephony/IP router. Its cancellation (2000), Ken Thompson and Phil's departure, and the 2001 dot-com crash marked a period of decline for Lucent.
9:57 Inferno's Sale: The Inferno business unit sold Inferno to Vita Nova, Charles Forsyth's company, who made serious efforts to promote it.
10:11 Alef Replacement & Third Edition: Alef was replaced by libthread in C, leading to the release of Plan 9 Third Edition in 2000 under an open-source license.
10:36 New 9P Protocol & Venti: The 9P2000 file server protocol was created, and Venti, a hash-addressed block store with deduplication, was introduced (11:04).
11:28 Researcher Buyouts & Fourth Edition: In 2001, Lucent offered buyouts to senior researchers; Rob Pike and others joined Google, and Collyer left for a startup. Plan 9 Fourth Edition was issued in 2002.
11:51 Fossil File Server: Sean Quinlan, Jim McKie, and Russ Cox developed Fossil, a new user-mode file server capable of using Venti for automatic backup and versioning (12:00).
12:24 64-bit File Support: Collyer modified Ken Thompson's file server kernel to support 64-bit file and device sizes, addressing limitations for large archives.
13:08 Greylisting for Spam: Collyer implemented greylisting in smtpd to combat email spam.
13:17 Alpha PC Port: Collyer ran Plan 9 on a used DEC Alpha PC (2004), noting the challenges of porting due to varying hardware models and OS-specific microcode.
14:10 Return to Research & Venti Reliability: In 2006, Collyer returned to Bell Labs. With Russ Cox's help, he made Venti reliable, resolving issues that caused block store destruction upon restart.
15:19 User-Mode File Server: Collyer converted the old file server kernel into a user-mode file server (cwfs), retiring the kernel version and the IL protocol (15:24).
15:47 64-bit 9K Kernel & 10Gb/s Ethernet: Jim McKie created the 64-bit 9K kernel for AMD64 systems, intended for high-performance computing. Collyer recounts the amusing struggle to acquire a 10Gb/s Ethernet switch due to internal procurement hurdles (16:33).
17:42 32-bit Architecture Ports: Collyer worked on ports for various 32-bit architectures (PowerPC, ARM, MIPS) for small, portable terminals.
18:10 Kernel Build Optimization: Parallel kernel builds on 24-core Xeon systems initially performed poorly due to lock contention, but later fixes using semaphores and monitor/mwait instructions improved performance.
18:41 Bootstrap Improvements: New, compressed bootstraps (9load, 9boot) were created, reducing maintenance load and allowing direct PXE booting of kernels.
19:13 IPv6 Support: Collyer worked on improving IPv6 support in Plan 9, aiming for full site operation using only IPv6.
19:32 Dennis Ritchie's Passing: Dennis Ritchie died in 2011; Collyer remembers him as a major supporter of Plan 9, Unix, and C, noting his role in keeping C "small and simple."
19:57 Move to Google and Retirement: Collyer moved to Google in 2014 and retired at the end of 2018, continuing his Plan 9 work from his home lab.
21:08 9K for AMD K10: Collyer adapted the 9K kernel for modern AMD64 systems, fixing traps, updating drivers, enabling larger memory usage (gigabytes of RAM for Fossil and Venti), and addressing thread stack issues.
21:40 2038 Problem Resolution: The system was converted to use ulong for times, extending the date range to 2106 and preventing the 2038 issue without changing disk formats (24:14).
25:03 Reduced APE Reliance: Collyer worked to reduce Plan 9's reliance on the ANSI/POSIX Emulation environment (APE), converting most APE programs to native ones.
25:57 Jim McKie's Passing: Jim McKie, a key developer and maintainer for PC support, died in 2020. Collyer praises his work on the "most obnoxious" aspects of PC hardware.
26:39 Plan 9 Foundation & Licensing: The Plan 9 Foundation formed in 2020, and in 2021, Nokia transferred Plan 9 ownership to the foundation, which relicensed historical releases under the MIT open-source license.
27:12 RISC-V Port: Collyer ported 9K to 64-bit RISC-V systems (2020), hoping to eventually replace x86 servers with simpler RISC-V hardware.
28:09 Opposition to Jumbo Packets: Collyer expresses his strong opposition to Ethernet jumbo packets, citing various technical drawbacks and preferring larger RPC sizes for throughput.
28:42 Plan 9's Legacy & "Defeat Git": Plan 9, while not taking the world by storm, has seen success with UTF and influenced other projects. Collyer highlights underappreciated features like the cpu command and TLS as a kernel device. He concludes with a strong personal opinion: "We must defeat Git" (31:39), arguing it promotes a bureaucratic, unpredictable version control and a flawed model of collaborative software development.