Code Yarns ‍👨‍💻
Tech Blog ❖ Personal Blog

UNIX: A History and a Memoir

📅 2022-May-15 ⬩ ✍️ Ashwin Nanjappa ⬩ 🏷️ book ⬩ 📚 Archive

How can I not read a book written by Brian Kernighan, especially about Unix? In Unix: A History and a Memoir, BK walks down memory lane to his time at Bell Labs and being an instrumental part of the creation of Unix there.

The magic all happened in the late 1960s and early 1970s at the Computing Science Research Center, commonly called Center 1127 at the labs. Excellent funding from AT&T’s monopoly, freedom to research anything, and hiring of the best minds of that age meant that 1127 (and other research centers at Bell Labs) ended up in the creation of almost everything instrumental to computing in the 1970s. 1127 had just then dropped out of the Multics time-sharing OS project, which had many innovative features. The minds who worked on that were buzzing with ideas which they applied on a PDP-7 they found in the 1127 attic.

Within a few weeks in 1969, Ken Thompson, Dennis Ritchie and Doug McIlroy would distill their ideas into a novel OS. The core idea, revolutionary for that time, was to abstract away the processor/memory/storage details behind universal system calls. Also revolutionary was a hierarchical file system, files as just a byte stream, directories as files, a shell for command invocation, pipes and composing tools together. Members of 1127 contributed to the shell (Bourne took inspiration from Algol 68 to create sh), editor (ed), grep, lex and yacc (by Aho), make and many others.

Though a 1st edition was available internally in 1971, the outside world would only see the 6th edition in 1975, whose source code was licensed to universities. 1127 folks convinced management to buy them a PDP-11 for the patent department and now needed to port Unix to it. To achieve that, Dennis Ritchie drew on his experience with BCPL (in Multics) to create Fortran-like B, then further polished it to the C programming language. The 7th edition of Unix, now ported to PDP-11 and VAX-11 using C, with all the now-familiar tools was licensed to universities in 1979 and would change the world for ever!

The 1980s would lead to many variants of Unix and fragmentation. Bill Joy at UC Berkeley worked on BSD, created vi, implemented TCP/IP (with his socket interface) and created Sun and Sun OS for powerful Unix workstations. AT&T woke up to Unix’s potential late and created System V Release 4 (SVR4). Microsoft created Xenix OS and Tanenbaum created Minix. All of this was possible since AT&T only owned the Unix source code, but everyone was free to reimplement the same interface, tools and ideas (POSIX would emerge later to standardize this mess). The ideas behind Unix would reach their ultimate potential with Linux, which brought them to personal computers and pretty much every single computing device on this planet.

For anyone in computing, this book is a must read to discover the people, places and evolution of ideas that led to Unix. Reading that first hand from the very person who was in the midst of it is an opportunity not to be missed. It has great insights into the daily working life, thinking processes and fun at 1127 of that era. BK has added in personal biographies of all the main actors, which are great to read. Opening this book is a familiar experience, since BK still used troff for typesetting here (first created for patent applications and the first Unix/C books). The people involved in this story are all either retired or passed away, so we are lucky that BK took the effort to bring together this first-person collage before it was too late. Filled with nostalgia, this book is ultimately a paean by the author to the fruitful and joyful experiences he had with his friends at 1127.

Rating: 4/4