"UNIX: A History and a Memoir" is from the perspective of Brian Kernighan, who was around at the inception of UNIX, and is well-known in computing himself as one of the three authors of the AWK language and the author of a number of other influential books (e.g. "The C Programming Language" by Kernighan and Ritchie). The title covers most of what the book deals with: the formative years of UNIX, with explanation of the key software that was developed as part of it.
It explains where UNIX was developed and who did that work. Initially, UNIX was one of Ken Thompson's side projects, quickly capturing wider interest and sparking collaboration within Bell Labs. This was all amid a milieu of Bell Labs having considerable operating system development experience as a collective, yet having no operating system to work on. (Bell Labs had been working on the Multics project, but eventually withdrew its support.) Eventually, management managed to gather funding for UNIX, initially with a view to improving how patent applications within Bell Labs were prepared.
From there, UNIX developed sufficiently that it found wider use within Bell Labs, within AT&T — Bell Labs' then parent company — and within many universities. Eventually UNIX was sold commercially. Later, while various commercial UNIX vendors expended much efforts in commercial wrangling of various parties, the appearance of the free Linux kernel in the early 1990s paved the way for Linux distributions to render the commercial squabbles largely obsolete.
Kernighan's rundown of the features that made UNIX distinct from many of the competitors at the time explains why UNIX was a key development that transformed computing at the time, offering:
- a hierarchical file system;
- accessible system calls;
- abstraction of other concepts, such as hardware devices, that they could be worked with much as regular files;
- a command-line shell that could be used composably, along with a suite of programs as useful tools, pipes and scripting to connect those programs together to effectively create new commands or programs.
Half a century on and these features are still evident in Linux and other descendants that are still being developed today.
Kernighan closes the book by describing factors that made Bell Labs such a successful research institution. That in itself is an interesting story that entwines with the development of UNIX. My distillation is that Bell Labs had an extended period where the organisation:
- had interesting and challenging problems to solve;
- hired very talented staff to solve those problems;
- had sufficient resources that the staff did not need to worry about funding, while management could take a longer view on projects without demanding immediate results;
- had a technically competent management;
- offered a collaborative and fun environment for this research.
All easier written than done, of course. If it were so simple, that research model would be simply replicated everywhere given the resources. Nonetheless, this goes some way to summarise why Bell Labs were so extraordinarily influential and tremendously prolific in 20th century technology developments.
Finally, the book also puts the development of UNIX into context in modern-day computing. Many computing devices today run operating systems that have some connection back to UNIX. Even Microsoft has adopted several of the ideas made popular by UNIX, and has, at times, veered closer to UNIX and its descendants, offering Windows Services for UNIX in the past, Windows Subsystem for Linux in the present and, long ago, even distributing XENIX, Microsoft's very own UNIX distribution! While UNIX is over 50 years old, it continues to influence today's computing: this well-written book certainly helps to understand why that is so.