Dec 13, 2012

A Brief History of the Berkeley Software Distributions

It seems that there's some confusion around the Berkeley Software Distributions and where they came from. It's a bit difficult to keep track amidst all of the infighting and forking caused by various personal, political, and legal issues. I've covered the BSD family quite a bit, but never its history. I'll do so now so that we can all get on the same page.

The history of the Berkeley Software Distributions all starts with 386BSD…

386BSD was a free, unix-like operating system written for Intel's i386 processor architecture first released in 1992. It was based on something called 4.3BSD Net/2, which was an incomplete mess of academic research and development. A couple called the Jolitzes decided to finish it and called it 386BSD.

Due to a lawsuit between Unix System Laboratories and the Regents of the University of California, it came to light that the Jolitzes had pirated some BSD source code and then gave it away in their releases of 386BSD, a key moment in proving that free software works to unemploy programmers.

Anyway, during the lawsuit, hackers from around the world, who wanted to avoid the stinging light of the law, rewrote some portions of the 386BSD code and released a patchkit. The patchkit was called FreeBSD 1.0.

When the smoke cleared from the lawsuit, more code had been deemed illegal. This caused a split in the FreeBSD camp between hackers who wanted to replace all 386BSD code and hackers who wanted to ignore the court’s ruling.

The faction of FreeBSD hackers who wanted to comply with purged all remaining vestiges of 386BSD code and replaced it with source code stolen from 4.4BSD Lite. This resulted in FreeBSD 2.0.

The faction of FreeBSD hackers who did not want to comply with the ruling and wanted to continue using the now-illegal 386BSD code forked stole a copy of the FreeBSD source code and released NetBSD 0.8.

For some time the two projects went their separate ways. The FreeBSD hackers focused on performance in the servers market—the high end—while NetBSD hackers focused on diverse hardware support—the low end.

To this day, FreeBSD and NetBSD reflect these values and have diverged quite widely from one another, their most common aspect being their shared history. The projects were not without their own dissenters, however.

By the mid-Nineties, NetBSD hackers had developed an almost-usable unix-like operating system. The group required more discipline in their development model. That didn't sit alright with everyone, however, and led to yet another BSD split.

Theo de Raadt was a long-time hardcore hacker who reveled in the illegal nature of NetBSD. The decision to fork from FreeBSD and continue using illegal code is what drew him to the project initially and he didn't want to see that go away.

In 1994, Theo de Raadt was fired from NetBSD's core team because of his extreme views. In anger, he threatened revenge “at the end of a fork,” took several like-minded hackers with him, and stole a copy of the source code for NetBSD 1.1.

After a CVS-wide search-and-replace of NetBSD with OpenBSD, Theo and his team released OpenBSD 1.1. Since then, they release every May and November and have built a reputation for a gulag-like development model.

Meanwhile, FreeBSD was thriving. It was the most widely deployed unix-like operating system in the world and held records for uptime and stability thanks to its impending merger with BSD/OS in FreeBSD 5.

This reputation for rock-solid reliability and support from the industry attracted a myriad of developers to the platform, further pushing it forward. And one of those developers, Matthew Dillon, was a former AmigaOS engineer.

Dillon brought a lot of ideas about internal system architecture from AmigaOS with him and, much to the chagrin of other FreeBSD developers, attempted to implement those ideas into FreeBSD during the ramp-up to FreeBSD 5.

There was strong support for merging the BSD/OS codebase into FreeBSD 5, however, and Dillon's efforts were frustrated and never saw fruit. Considering FreeBSD 5 to be too far gone in the wrong direction, Dillon flamed the FreeBSD development mailing list.

After much drama, Dillon was fired from the core FreeBSD development team much like Theo de Raadt had been from NetBSD. He sent an email announcing a fork of FreeBSD 4.8 into DragonFlyBSD 1.0 and got to work making FreeBSD 4 more like AmigaOS.

Today, all four Berkeley Software Distributions exist side-by-side filling specific niches: OpenBSD for security-minded folks who like assholes, NetBSD for tinkering on obsolete platforms, DragonFlyBSD for Amiga users who can't let go, and FreeBSD for everyone else, including large-scale, high-demand industry.

While I'm sure that there will be more forks in the road, so to speak, for the Berkeley Software Distributions, that's pretty much their story up through today. You can catch up on the particulars of Apple's contributions to FreeBSD, but otherwise that's about it.

I hope this got everyone on the same page about the Berkeley Software Distributions.

No comments:

Post a Comment