Early on, developers working on Unix created a set of ideals that acted as a roadmap for the programs they wrote. They didn’t always follow these ideals, but they set the tone for the Unix project. Keep programs simple, design programs to work together, test early and often – are only some of these ideals. To this day, the Unix Philosophy impacts many projects.
History of FreeBSD – Part 3: Early Days of FreeBSD
History of FreeBSD
Part 3: Early Days of FreeBSD
In this third part of our series on the history of FreeBSD, we start tracing the early days of FreeBSD and the events that would eventually shape the project and the future of open source software.
386BSD Gets a Patch Kit
Bill Jolitz’s 386BSD grew in popularity because it was the first time that many had to collaborate on BSD without having to worry about violating AT&T copyrights.
Even with all of the improvements that Bill had made, there were still some issues. Users created their own patches to fix the issues that they encountered and uploaded them to Usenet. (N.B. Usenet is a network of servers that is divided into newsgroups to which a user can subscribe. It was the primary form of mass communications and file sharing on the early internet. Usenet was very popular in the 1980s and 1990s. It still exists but is not quite as popular as it once was.)
To make it easier to install all of these disparate patches, Terry Lambert created what became known as the “Unofficial Patch Kit”. Here are a couple of links to announcements about the patch kit so you can get an idea of what they contained.
The “Unofficial Patch Kit” had a slight quirk. It had a primitive version control system that “relied on a human being, rather than software, to ensure that order of operation was maintained”.
At the time, it was the only tool available to apply multiple patches to the system. The UPK was designed to make sure that patches would not fail due to two users attempting to edit the same file. Unfortunately, it didn’t keep a history of which files had been edited.
Terry also created an unofficial FAQ (Frequently Asked Questions) document for 386BSD. Terry called it an unofficial FAQ because he assumed that it would soon be replaced by an official one, but that never happened. It was later expanded to cover early NetBSD and FreeBSD, as well. You can find a version from 1994 here. In what would become common in many open source projects, Terry eventually turned both the UPK and the FAQ over to others who carried on the work.
The 386BSD Snapshot Project
A year after 386BSD 0.1 was released, the patch kit had gotten too large to handle comfortably. The three patch kit coordinators (Nate Williams, Rod Grimes, and Jordan Hubbard) went to Bill Jolitz with a plan to create a snapshot of 386BSD that was cleaned up and had all of the accumulated patches included. It would have been called “386BSD 0.5 or 386BSD Interim”. However, all work on the project came to a halt after Bill withdrew his support for the idea.
FreeBSD co-founder Jordan Hubbard was asked about these events in 2002. He said that “I don’t think any of us really understood Bill or how his somewhat byzantine mental processes worked. He was definitely a smart guy who was capable of banging out some difficult code, but he was also one of those people who, if he worked for your company, would be kept locked in a room with a workstation and fed on flat food like pizza and pita bread, anything which could be shoved under the door without having to unlock it.” Jordan later joined Apple’s Darwin team. Darwin is the Unix-like operating system that macOS, iOS, watchOS, and tvOS are based on.
Terry Lambert also noted that Bill and his wife got involved in a disagreement with the community that led to bad blood.
FreeBSD Rises from the Ashes
After Bill Jolitz pulled his support from the snapshot project, the patchkit maintainers decided to carry on anyway under a new name. They considered several names (BSDFree86 and Free86BSD) before settling on FreeBSD.
In order to reach more people, the FreeBSD people decided to contact Walnut Creek CDROM about creating a distribution partnership. Walnut Creek liked the idea so much that they proceeded “to provide the project with a machine to work on and a fast Internet connection”. Walnut Creek went on to demonstrated FreeBSD at Comdex and other computer tradeshows, which “led to a fast, large growth curve”.
FreeBSD 1.0 was released in November of 1993. According to the FreeBSD Handbook, it was “based on the 4.3BSD-Lite (“Net/2”) tape from U.C. Berkeley, with many components also provided by 386BSD and the Free Software Foundation”.
It was available to download for free from the FreeBSD servers. For those with a poor internet connection, they could purchase a CD (which became available the following month) from Walnut Creek for $39.95 plus shipping. Since users were not required to purchase a license, this price was very cheap for an operating system.
The FreeBSD developer created a tool to make it possible to upgrade from 386BSD to FreeBSD 1.0. The tool’s mailing list announcements stated: “This script allows you to ‘upgrade’ your 386BSD 0.1 machine to FreeBSD without having to re-install and re-partition your hard disk.” Interestingly, it didn’t have the ability to change the size of the swap partition or reorganize partitions on the hard disk.
Before the FreeBSD team had decided to create their own project, another group had started working on a BSD based on 386BSD. This was NetBSD. Early on, there were efforts to merge the two projects to hopefully avoid duplication of effort. In the long run, these efforts were fruitless because the two groups have very different ideologies and goals.
FreeBSD 2.0 is Released
Following the UNIX System Laboratories, Inc. v. Berkeley Software Design, Inc. lawsuit, U.C. Berkeley released 4.4 BSD Lite. This version was free of the code that has caused the lawsuit and had Novell’s blessing. Novell had purchased USL from AT&T before the lawsuit ended.
Part of the settlement was that “existing Net/2 users would be strongly encouraged to switch” to 4.4 BSD Lite. The FreeBSD developers immediately started working to rebase their work on 4.4 BSD Lite. It was not easy. Their new base had lite in the name “in part because Berkeley’s CSRG had removed large chunks of code required for actually constructing a bootable running system (due to various legal requirements) and the fact that the i386 port of 4.4 was highly incomplete.”
FreeBSD 2.0 was released in November of 1994. It represented 18 months of hard work. According to the release notes, this release contained “Legal approval of Novell & U.C. Berkeley…Many new filesystem types…64bit offsets (support for files larger than 4 GB)…and Further work towards full POSIX compliance.”
The FreeBSD maintainers continue to build on and improve the 4.4 BSD Lite based branch to this day.
From there on FreeBSD continued to grow in popularity. Today it is used in millions of servers all across the world. It is used in everything from streaming movies for Netflix, to research at universities across the world, to powering firewalls to keep your data safe. FreeBSD 13.0 is expected to be released in early spring of 2021.
Like this article? Share it!
You might also be interested in
Getting expert FreeBSD advice is as easy as reaching out to us!
At Klara, we have an entire team dedicated to helping you with your FreeBSD projects. Whether you’re planning a FreeBSD project, or are in the middle of one and need a bit of extra insight, we’re here to help!
We continue our series of articles on the history of Unix with the events led to the creation of BSD. Find out about the first Unix editions, how C evolved, and how Unix was first licensed.
In his 1999 book In the Beginning… Was the Command Line, Neal Stephenson said the following about Unix: “Windows 95 and MacOS are products, contrived by engineers in the service of specific companies. Unix, by contrast, is not so much a product as it is a painstakingly compiled oral history of the hacker subculture. It is our Gilgamesh epic.”
Read more about how the story of UNIX actually goes.