Get email delivery of the Cadence blog featured here
I wrote recently about Brian Kernighan's memoir and history in Brian Kernighan's Memoirs. He was at Bell Labs during the most important period for computer science, when the Unix operating system and the C programming language were created. It has turned out that Unix is far and away the most influential operating system ever. A derivative of it is running in your pocket right now.
Almost everything today, except Windows PCs, runs on a derivative of Unix. I've pointed out before that the database of supercomputers in the world has a dropdown menu to limit your search to specific operating systems—but there is only one choice, Linux.
It was never planned to be that way. Unix was written by a group of the best computer scientists of the era at Bell Labs for their own use. AT&T, the owner of Bell Labs, was not even allowed to enter the computer industry as part of an antitrust consent decree, they were restricted to communications.
I think there are four key milestones in the history of Unix:
The backstory: MIT created a very successful operating system called CTSS. They then did a second project called Multics. This is always risky, there is a phenomenon known as "the second-system effect" where second systems get bloated and are not successful. Multics expanded the organizations involved to include General Electric (in those days in the computer business) and Bell Labs. In particular, Ken Thompson and Dennis Ritchie worked on Multics. When Bell Labs pulled out of Multics, in 1969, Ken found an old unused PDP7 and did a project on it. To test his project, he needed a basic operating system, and so in three weeks, while his wife was away on vacation, he wrote what would turn out to be the first version of Unix. Others pleaded with him to make it multi-user, so in another day's programming, he did. Brian Kernighan suggested the name Unics as a play on Multics, and it morphed into Unix.
Next, they managed to get their hands on a PDP11 and created what was known as the "first edition". Thompson and Ritchie wrote the new version in C, as opposed to using assembly language. That's them in the picture (Ritchie standing). There were several more versions, perhaps the most famous being the "sixth edition" in 1975. It became well-known since it was widely used in academia (but not really outside). Moreover, a professor in Australia, John Lions, wrote a fully annotated version of the source code for his operating system class. Since it contained the source code, AT&T considered it proprietary and so only Unix licensees could get their hands on the book. As I pointed out in my blog post /* You Are Not Expected to Understand This */, when eventually the restrictions were lifted and anyone could buy it, the cover showed students illegally photocopying the original version. I owned a bootleg copy myself in that era.
The "seventh edition", 1976-79, was the one that became widespread. It was portable and ran on a variety of 16-bit systems. This edition is really the grandfather of all the Unix-like systems that came later. By then, it came with a lot of tools for programming, document preparation, and more.
Ken Thompson did a sabbatical year at Berkeley in 1975-6 where he taught courses on operating systems. Bill Joy was there, a grad student, and he added some programs of his own to Unix (including the vi text editor still widely used today, over 40 years later). He also added the "sockets" interface, adding network connectivity.
In 1978, DEC came out with the Vax 11/780, which was (roughly) a 32-bit version of the PDP11 with virtual memory. Bell Labs did an initial port to the Vax but they kept the memory management of the old 16-bit Unix and didn't make any use of the virtual memory. Bill Joy and others added virtual memory and paging. This release was known as BSD (Berkeley System Distribution).
Bill then co-founded Sun (with Vinod Khosla, Andy Bechtolsheim, and Scott McNealy) and used BSD as the basis for the first operating system, originally called SunOS.
Linus Torvalds, a Finnish student, decided to start to port Unix to the PC. Once he got the basics working, he sent out a famously low-key email:
This ended up becoming Linux (named after Linus), so the "just a hobby, won't be anything big" has to count as one of the understatements of all time. Linux has gone on to be the main operating system for non-windows PCs, most servers, the cloud, and all supercomputers. Almost all EDA software runs on Linux, so all semiconductor design is done on Linux.
By the way, in addition to starting Linux and steering its development for years, Linus also created git, the widely used distributed source-code-control system, and the basis of Github that Microsoft purchased for $7.5B.
When Steve Jobs founded NeXT Computer, the team took the Mach microkernel from CMU and developed the Unix-like NeXTSTEP operating system. When Apple acquired NeXT and Jobs returned to Apple as CEO, NeXTSTEP formed the basis of MacOS. In fact, you can still find "NS" in lots of the type names in the Objective-C code (NS standing for NeXTSTEP). Subsequently, when the iPhone development was started, Apple took MacOS and "shrunk it" (as opposed to taking the iPod software and growing it) to create iOS, the iPhone operating system. So every iPhone and every Mac runs a derivative of Unix. Indeed, on the Mac (but not the iPhone, as far as I know), you can bring up a terminal window and type Unix commands such as "cat" or "ls".
An independent company called Android Inc originally developed Android. In 2005, Google acquired them, and the operating system was finally revealed in 2007. Of course, derivatives of it are in every "Android phone", which is approximately 85% of all the smartphones in the world, all the ones that are not iPhones. Android was based on the Linux kernel, so in some sense, all Android phones are running a very cut-down version of Linux, in any case, a Unix-derivative system.
As a result of these developments, all smartphones run a descendant of that original Unix system. Since there are about 3.5B smartphones in the world, that's a lot of copies. All cloud datacenters run Linux, but just how many servers that totals is a closely guarded secret of each cloud provider. But each data center has 50-100,000 servers. So that's a lot of copies too. Almost everything else runs a Unix-like operating system, from Alexa speakers to Nest thermostats. Unix is far and away the most influential operating system ever. Ritchie and Thompson received the 1983 Turing Award, and this year were inducted into the Inventors Hall of Fame (posthumously for Ritchie, since he passed away in 2011).
Ken Thompson and Dennis Ritchie could have written an email very similar to Linus Torvalds when they created Unix: "won't be big and professional". Neither Ken and Dennis, nor Linus, set out to change the world, but they did anyway.
I have a rich friend who made a lot of money in one of the early internet startups, and when I asked him what he thought was the most important factor, he answered "luck". There is clearly some of that in the success of Unix in general, and Linux in particular. But some is just being in the right place at the right time, and being first. For example, if Linus had not decided to create "Unix for the PC" then somebody else would have done it eventually. But once Linus had started Linux, there was no reason for anyone else to start over as opposed to contributing to Linux.
The version 6 Unix operating system was about 9,000 lines of code.
Linux is 20M lines of code. Android is about 15M lines of code. iOS is something similar (guesses on the net are 8-10M). But the roots of that code go all the way back to those 9,000 lines of Unix, and much of the operating system interface and the command names that come from there are unchanged 50 years later.
Sign up for Sunday Brunch, the weekly Breakfast Bytes email.