The History of BSD Unix

updated 4/3/2001


I do enjoy posting on Slashdot, especially when something I write gets moderated up. And I guess I'm just presumptuous enough to assume that if I do get moderated up, then someone is actually likely to want to read what I have to say.

This is a story that I think a lot of people have forgotten these days, one that's especially important to pull out when your bosses take issue with you using open-source software on a project. Today, the dominant force in the Open Source world is Linux, and well it should be since Linus Torvalds knows the Open Source game better than anyone except Eric Raymond himself. But the spirit of Open Source goes back much further than that, and this article is the story.

A bit of background: the discussion this post came from was a discussion of Apple's MacOS X, which for those of you hiding under a rock is a rock-solid and extremely slick blend of Mac and Unix built on top of the NextStep foundation that Apple acquired when it bought out NeXT. NextStep (now MacOS X Server, aka Rhapsody), in turn, is an operating system built from a BSD environment over a Mach microkernel; as you'll see, the evolution to MacOS X includes an update to the last version of BSD, 4.4BSDlite. This BSD/Mach layer, in turn, has been split off to create Darwin, an open-source Apple-branded Unix. If you wish to play, Darwin 1.0, the current release of this layer, is available at publicsource.apple.com. Now, sit back and enjoy the story.


Anyone gonna get this one right? BSD is older than Linux by a decade and a half, and there's a lot of story there that it doesn't seem like anyone still remembers...

Okay, flames off. Grab some cocoa and rally 'round, and ol' Uncle Brian gonna tell you about some other guy named Bill and his friends...

Unix didn't really become Unix until John Lions wrote the Lions book (and any Slashdotter who doesn't have a copy should be shaken mercilessly until enough money to either buy or photocopy a copy falls out; about US$30 should do it for a legit copy, and a trip to Kinko's would be much cheaper, not to mention totally appropriate if you know the story :-) ). At that point, people started banging on the Unix kernel all over, and the Open Source culture as we know it began.

It's easy enough with all the Linux hype these days to lose sight of where it all began, but here's the story: back around '76, when AT&T shipped Unix V6, the University of California at Berkeley got its hands on a source license and its students started hacking away at it. Somewhere along the way, BSD supplanted TENEX and its proprietary brethren as the OS running the backbone of the then-ARPANET; as a result, it became THE wide-area network OS for the eighties. Software such as the BSD TCP/IP stack (still the standard outside the Linux world) and sendmail are still at the core of much of the net, and most of it came out of Berkeley. 

Along the line, many of these students struck out on their own (most notably Bill Joy at Sun), and when they went off to build their workstation systems, they took BSD with them, thus bringing about systems such as SunOS and HP/UX, as well as several that are now long forgotten; not only was the BSD license in effect a donation to the public domain, the code itself was something that the engineers themselves had developed, which was more than could be said about the multiple permutations of Unix coming out of Murray Hill, NJ. BSD even came to the PC, in the form of Bill and Lynne Jolitz' 386BSD, a precursor to the modern BSD designs. 

The modern BSD era began in 1994, when UC-Berkeley's Computer Science Research Group, disbanded a few years earlier, regrouped to finish the BSD story at Berkeley. The release they made was called 4.4BSDlite, and was actually quite widely available in bookstores at the time. It consisted of a CD-ROM containing a mostly-complete AT&T-free source tree (with a few unreplaced but critical AT&T files removed) and four books containing man pages and other docs. 

This event is what created two of the four modern BSD variants (FreeBSD and NetBSD); OpenBSD was a fork off of NetBSD that stressed security concerns, while the newest major variant, Darwin/MacOS X, came out of Apple's post-acquisition merging of NeXT's Mach/BSD hybrid OS and the 4.4lite codebase. BSD was also the base for OSF/1, the only major variant of which is Compaq's Tru64 Unix. 

Today, I think BSD is viewed as a one-off, a newcomer in a world dominated by Linux. I suspect most of the history I've just related simply isn't all that well known anymore, and it certainly isn't media-friendly (what, no underdog-makes-good? No flashy technology? No David-vs.-Goliath? HACKERS?! Not interested, sorry...). This is a shame; that's why I'm posting this.

I think the reason that BSD persists today (apart from having about the best TCP/IP stack available) is because it's a link to the past that most commercial Unices haven't preserved. By running a BSD, you're expressing solidarity with some random hacker poring over a third-generation photocopy of the Lions book on a brand-new VAX twenty years ago. And hey, I prefer penguins to daemons myself, but that's a connection that we Linux users can't make. 

Saying that BSD is related to Linux is wrong on many levels. Apart from both being open-source Unices, there is no real connection. Linux is its own beast, and I think over the long term it will eventually evolve away from its Unixness somewhat. Minix, now freed from its old copyright restrictions, will probably morph into an embedded-systems OS; I'd love to see it on a WinCE (MinCE?) unit, for example, since it's just about the perfect size. But BSD will still be carrying the Free Unix torch years from now. Long may it. 

/Brian


After having read the above synopsis, you might like a little more detail. Below are links to all four major BSDs; check them out.

And some links to more information:


Click here to return to 2266 Research Triangle. 1