A New Hope
In 1969, Ken Thompson, and Dennis Ritchie put the lion’s share of drive and effort into creating the first version of the Unix operating system for a small pdp-7 they’d gotten a hold of at Bell labs. They wrote most of it in a GECOS (a GE operating system) cross-assembler for the dec pdp-7 that produced paper tapes which had to be carried to the other machine to be run. Dennis Ritchie has said “the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.”
Some interesting language work got done too, which ended up being driven forward largely by the move to a PDP-11. Thompson first set out to write a Fortran, but as Ritchie says, “the intent to handle Fortran lasted about a week.” This effort became a mash of BCPL, spartan syntax, and the tiny space requirements (particularly on the PDP-7) which took the name B. A much expanded and improved version known as C was written on the PDP-11 itself, and the Unix operating system was slowly rewritten in C from the bottom up (excepting the assembler).
For the next ten years (and beyond), the Unix operating system blossomed through intense amounts of communication, sharing, and tinkering with the open system. Nearly all of the key contributions which made Unix a success came out of the openness, readability, and modularity of the system — particularly the early sharing of the system to Berkeley and the exploits of Bill Joy and Bob Fabry.
The Empire Strikes Back
In 1974, the United States congress reclassified computer programs as copyrightable material. Whereas they had once been considered analogs to blueprints/constructions (as in, source/compilation), they were eventually classed as similar to literary works. This led to the use of licensing instead of sale to preserve First Sale Rights, and that’s where EULAs come from.
Unix had become very popular. It had been programmed in a high level language, which meant it lent itself very well to teaching Operating System design, and it was being constantly improved and upgraded by the cool folks at Berkely (and others as well – the source was just part of the package in those days. What had started as a research effort grew and flourished into a successful tool used by academics and businesses worldwide almost entirely through its openness and hacking.
So of course, AT&T felt it best commercialize and sell the system. They did their best job (with new copyright powers!) to see that the hacking around and openness got snubbed – particularly at Berkeley. The BSD had been fed largely by military money (it was the OS for nationwide upgrades to DARPAnet hardware), but after being left on its own just became a target for a copyright suit from Ma Bell.
The community largely collapsed as everyone began taking posts at large companies (they had changed the world, after all), and the younger generation was left alone wondering, “What gives?”
(Actually, AT&T probably isn’t that evil – but they didn’t want to let Berkeley make stuff based off of their own stuff; regardless of how okay it had been previously. This put BSD in the legal dumps as they tried to sort everything out with AT&T, and kind of killed BSD’s popularity.)
Return of the Jedi
This is where Richard Stallman comes in. He seems to have been peeved that he missed the boat, so he stood up and shouted that he was building his own boat; and now was the time to get in line. In October of 1985 he announced the creation of the Free Software Foundation, whose intention was to build a free Unix from scratch. Things really went very well, (they often do for the hardworking MIT type), and tools like gcc and emacs came out of his efforts. But he needed a kernel; the original had been written from scratch in C in 1973 and had undergone revision and improvement by the best minds of computer science for over a decade. All of it was copyrighted.
In late 1991, a university student happened to create a simplistic kernel for the 386, and after posting it to some MINIX related discussion boards (as it was based loosely on MINIX) and working for a few months, others began to help. Within a few years, the GPL’d Linux Kernel version 1.0 was available and integrated into a number of collections of GNU tools – an example of one such distribution is Debian.
Linux now ‘competes’ with less open variations of Unix, but for all intensive purposes, old Unix has been wiped out of relevance. True BSD and System V releases are unheard of, and OpenBSD, NetBSD, and FreeBSD (open source variations of the free but long lawsuit-encumbered Berkeley Software Distribution of the original Unix OS) are still around with tiny user bases, on the same open model of software as linux. A different variant, OpenSolaris, is dead (thanks a lot, Oracle), but the closed Solaris system exists widely. The closed Macintosh OSX is really just a revamping of NeXT, which was a proprietary Unix-like from the early 1990’s – it is the only popular surviving relative of Linux, and fortunately it internally still utilizes many of the same standards and tools.
Surrounding the GNU system (and later the GNU/Linux distributions) has been a tremendous amount of what Ritchie originally spoke of as being the important aspect of a remotely accessible, time-shared environment: a tight-knit community with high levels of communication has been forged around the use and modification of these systems. It is an open community, and the materials it works upon and processes by which it operates are transparent. While by no means perfect, it has continued to be a pinnacle of innovation and has fueled tremendous amounts of new software and is responsible for tools that run the vast amount of the business and internet infrastructure across the world.
(it is 6:00 AM and I do not possess the mental capacity required to write these out in the correct formats — I’ll do my best to go back and inline them at relevant spots though)
- http://cm.bell-labs.com/cm/cs/who/dmr/hist.html – this is actually written by Dennis Ritchie. It’s a great read; please go look at this if you have any interest at all in the topic.
- http://www.dwheeler.com/secure-programs/Secure-Programs-HOWTO/history.html – this is a short Unix history in a HOWTO on someone’s web-based guide to secure unix programming. I think that this kind of community narrative which is being passed down through the generations is right there at the heart of what Ritchie meant.
- http://www.crackmonkey.org/unix.html – this guy seems to have glanced around a bit and done the same thing I did; he quotes the Ritchie paper and basically just restates it with a little bit of extra stuff.
- http://oreilly.com/catalog/opensources/book/kirkmck.html – a lot of really good information on the BSD side. This article touches on just how much of a champ Bill Joy is.
- Lemley, Menell, Merges and Samuelson. Software and Internet Law, p. 35