History of BSD
From Chaos
Contents |
Summary
BSD is older than Linux by a decade and a half, and there's a lot of story there that nobody remembers anymore.
Once upon a time, 386 processors were the leading edge, so it was natural that a BSD port to this architecture would be made. Bill Jolitz released 386BSD 0.0 in June 1992. But his unwillingness to accept work and patches from other people was what lead to the two main forks in the x86 BSD world: FreeBSD and NetBSD. Each project had different goals from the very beginning. NetBSD's aim was to run on every platform available, while FreeBSD concentrated on performance on x86 hardware. Below are brief descriptions of the 3 current branches of BSD: FreeBSD, NetBSD, and OpenBSD.
FreeBSD
FreeBSD is the most popular of the BSD's. It currently runs on i386, alpha and SPARC, although there are ongoing efforts to make it work in PowerPC. In my experience FreeBSD is the fastest UNIX-like OS for the x86 architecture. It also has excellent hardware support in most areas, and a big number of packages available. Currently, over 10,000. The two available releases are 4.9 and 5.2. 5.2 is considered 'early adopters' and should not be used for production servers. 5.2 is a 'new technology' release, whereas 4.9 builds on the tried and tested RELENG_4 branch of the source tree. 5.2 offers better SMP support, new RC'ing system (imported from NetBSD), experimental RAIDframe support, KSE, and many other interesting features.
NetBSD
NetBSD's aim is to run on as many architectures as possible, and they make an excellent job at that. (For a complete list of supported architectures, please refer to the “Addition Readings” section below). Not only is NetBSD the most portable BSD, but the one from which most innovations come from. NetBSD is currently at 1.6.1. One of the most interesting features will be Scheduler Activations, which is an implemention of kernel assisted threads, quite similar to FreeBSD's KSE. It already supports SMP on several platforms as well. The number of packages keeps growing fast, currently at about 3,500.
OpenBSD
OpenBSD was created when Theo de Raadt was kicked out of NetBSD. Unless you live under a rock, you've heard of OpenBSD. The recent DARPA/UPenn fiasco (DARPA dropped funding for OpenBSD, for “their own reasons”) made quite some noise in national newspapers in Canada (where Theo lives) and the US. OpenBSD has a very rigorous 6-month release schedule (which allows for quick security updates). OpenBSD focuses on security, with “Only one remote hole in the default install, in more than 7 years!” as quoted on their front page. They constantly audit the code for bugs and insecure functions. It ships with Apache in the base system, and is configured to run it in a chrooted environment. This is the team of people that brought us the excellent OpenSSH, the de-facto standard for remote access. OpenBSD is not as fast a FreeBSD, and has less packages, but makes a very fine firewall box.
In Depth History
It's easy enough with all the Linux hype these days to lose sight of where it all began, but here's the story (Note: if you get easily confused by these events, there is a simple timeline below, and a much more advanced one here): 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 (in 1973, an operating system for the PDP-10 [which was a computer manufactured by Digital Equipment Corporation {DEC} from the late 1960s on; the name stands for "Programmed Data Processor model 10". It looms large in hacker folklore because of its adoption in the mid-1970s by many university computing facilities and research labs, including MIT's AI Lab and Project MAC, Stanford's SAIL, and CMU]) 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 un-replaced 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 code-base. BSD was also the base for OSF/1, the only major variant of which is Compaq's Tru64 Unix.
Today, 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...).
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 pouring over a third-generation photocopy of the Lions book on a brand-new VAX twenty years ago. BSD easily allows a level of maturity that Linux can't even begin to say it has.
Saying that BSD is related to Linux is wrong on many levels. Apart from both being open-source Unices, there is no real connection; Penguins do not equal Daemons, and Daemons do not equal Penguins.
BSD Chronological Time Line
- 1973
- Ken Thompson/Dennis Richie deliver a paper on UNIX.
- Dr. Bob Fabry from Berkeley attends and later obtains a copy of UNIX.
- UNIX is installed on several Berkeley PDP/11’s.
- Ken Thompson takes a sabbatical at Berkeley, install Version 6 on a PDP/11, and writes a Pascal compiler.
- 1975
- Bill Joy and Chuck Haley are Berkeley students, improve Pascal compiler.
- 1976
- Joy/Haley explore kernel and make modifications which are sent to Bell Labs.
- 1977
- Bill Joy puts together 1st Berkeley Software Distribution (Version 1).
- Contains Pascal compiler, ex editor (about 30 copies shipped).
- Joy works on interpreter for screen management (later becomes termcap) and writes vi editor.
- 1978
- 2BSD released with improved Pascal, termcap, vi (about 75 shipped).
- More work is done and the final PDP/11 version 2.11BSD is shipped.
- Berkeley obtains a VAX-11/780.
- A copy of AT&T 32/V UNIX is installed - does not take advantage of virtual memory.
- Ozalp Babaoglu starts work on paging.
- Joy helps and decides to port BSD to VAX.
- 1979
- VAX/BSD distribution assembled includes
- Virtual memory.
- STD 32/V utilities.
- All BSD additions.
- Bill Joy ships about 100 tapes of 3BSD.
- 32/V is last UNIX released by Bell Labs.
- UNIX becomes a commercial product (System III and later System V).
- DARPA becomes interested in BSD
- Wants to have common platform (reduced porting costs on different hardware and OS’s).
- Desires distributed network.
- UNIX chosen to solidify DARPA user base.
- VAX/BSD distribution assembled includes
- 1980
- DARPA grants Berkeley 18 month contract to add DARPA contractors features.
- Formation of Computer System Research Group (CSRG) at Berkeley (Joy gets Ph.D.).
- AT&T/Berkeley work out BSD distribution license (user’s must buy AT&T license).
- Joy adds:
- Jim Kulp’s job control.
- Auto Reboot.
- 1K block file system.
- Support for new VAX 11/750.
- Oct. 1980
- 4BSD distribution includes:
- Pascal.
- Franz Lisp system.
- Enhanced mail.
- June 1981
- 4.1BSD released includes
- Tuned up kernel.
- Auto Config.
- ~400 Shipped.
- DARPA happy with 4.1BSD, grants 2 yr contract with 5 times funding.
- Road map for future versions created
- Faster file system (Marshall McKusick).
- Interprocess communication (Joy/Leffler IPC).
- Networking support for ARPANET (R.Gurwitz TCP/IP, tuned by Joy).
- 4.1BSD released includes
- June 1982
- Fast file system, TCP/IP, IPC operational.
- Joy joins SUN. Splits his time between Berkeley and SUN.
- Leffler takes over Joy’s duties as lead.
- 1983
- 4.2BSD is released.
- Over 1000 shipped - Very popular .
- AT&T did not have networking/fast file system. These were later incorporated into System V using BSD code (which turned out to be a good thing).
- 1985
- BSD fights BBN over whose TCP/IP stack to use.
- BSD wins after testing.
- 1986
- 4.3BSD released w/ BSD TCP/IP stack.
- VAX reaching end of life. BSD kernel split into machine-dependent and machine independent parts.
- 1988
- 4.3BSD-Tahoe released.
- Up through the release of 4.3BSD-Tahoe, users were required to purchase an AT&T source license. AT&T continued to increase the license cost. PC vendors wanted the TCP/IP stack code, so this was split out.
- 1989
- Networking Release 1 - first freely distributed code form Berkeley (open source).
- 1990
- 4.3BSD-Reno released.
- Virtual Memory System from the MACH kernel.
- SUN-compatible NFS
- Keith Bostic proposes having BSD become freely-distributed with most source code included.
- Bostic pioneers the technique of mass net-based development.
- All UNIX utilities re-written from scratch.
- Within 18 months, most lib’s/utilities rewritten.
- Karels, Bostic, and McKusick go through kernel, file-by-file rewriting 32/V code and removing it from the release.
- When this work was completed, only 6 of the original files remained (not easy to rewrite).
- License slightly modified.
- 4.3BSD-Reno released.
- 1991
- Networking Release 2 begins distribution
- 1992
- Bill Jolitz re-writes the 6 files and begins distributing 386/BSD for the PC via the Internet.
- Several open source groups form to continue the BSD work.
- 1993
- AT&T files suit against Berkeley Software Design Inc. (BSDi).
- BSDi heavily discounts source/binary products over System V.
- AT&T suit alleges BSDi products contain USL code/trade secrets.
- Counter suit is filed in California.
- Berkeley and AT&T end up settling after it turned out AT&T had removed UC-Berkeley copyright notices out of the BSD code (TCP/IP and fast file system) it had incorporated years earlier.
- NetBSD group is formed to work together to maintain and enhance BSD.
- NetBSD is focused on supporting as many platforms as possible.
- FreeBSD was formed a few months later and focuses on PC’s.
- OpenBSD spun off NetBSD group.
- OpenBSD is focused on improving the security of BSD
- 1994
- 4.4BSD-Lite released (terms similar to Networking code releases).
- 4.4BSD-Encumbered which requires UNIX System Lab’s source code license.
- Money received is used to fund bug fixes.
- After 2 years, the rate of problems dies down to a trickle.
- 4.4BSD-Lite Release 2 is issued. CSRG is disbanded.
- Today
- Work continues on BSD through the NetBSD, FreeBSD and OpenBSD distributions.
- These are available via downloading over the Internet or through retail outlets. Funds obtained are used to continue work on BSD.
Why BSD was so important
- Allowed research environment to grow UNIX.
- Pioneered Internet based open source development.
- Released programs with code or as code.
- Open source has attracted a lot of attention.
- Linux is probably the most well know, however, about half of the utilities come from the BSD distribution.
References
- http://en.wikipedia.org/wiki/PDP-10
- http://www.geocities.com/connorbd/bsd.html
- http://www.energyhq.es.eu.org/bsd.html
- http://www.stlbsd.org/html/history/history_of_bsd.htm
- http://www.levenez.com/unix/
Additional Reading
General History
- http://www.oreilly.com/catalog/opensources/book/kirkmck.html
- http://www.faqs.org/faqs/unix-faq/faq/part6/
- http://www.daemonnews.org/199903/history.html
- http://www.bell-labs.com/history/unix