17

Background

Although BSD and its source code was freely available under the original BSD licenses, but it only covered the portion of the code which copyright was owned by Regents of the University of California. BSD as a whole, was "encumbered" - all BSD releases up to 4.3BSD-Tahoe and 4.3BSD-Reno contained proprietary AT&T code owned by Unix System Laboratories (USL) - a subsidiary of AT&T. As a result, the BSD operating system was not freely available, since it was not legal to run BSD without obtaining an Unix license from AT&T.

The first "unencumbered" BSD release free from such restrictions was BSD Net/1, which was a BSD release based on 4.3BSD-Tahoe. By removing all proprietary AT&T code, the entire system became freely available, an AT&T's Unix license was not required and users were not subjected to any additional restrictions aside from the BSD license itself. Similarly, BSD Net/2 was an "unencumbered" release of 4.3BSD-Reno (although USL argued on the court that it still contained proprietary AT&T code, the lawsuit finally settled largely in Berkeley's favor).

Finally, BSD 4.4-Lite and BSD 4.4-Lite2 were released after the lawsuit has been settled. As a result, they are considered unencumbered and free from legal threats.

The following graph shows the relation of different "unencumbered" BSD releases - encumbered BSDs are colored yellow, and unencumbered BSDs are colored green (Source link, author: Eraserhead1, Infinity0, Sav_vas on Wikimedia Commons, CC BY-SA 3.0 Unported).

Relation of BSD releases

These "unencumbered" releases proved to be crucial to the continued development, innovation and mass adoption of the BSD operation systems, and were directly responsible to the later projects, such as 386BSD, NetBSD, FreeBSD and OpenBSD, as their starting points.

Question

What AT&T code was removed in BSD Net/1, BSD Net/2, BSD 4.4-Lite, and BSD 4.4-Lite2 from the original 4.3BSD? By removing the AT&T code, what was its impact on the features and functionalities of BSD? Was it a complete removal, or was it a partial replacement with reimplementation of affected features?

In particular, BSD Net/1 and BSD Net/2 is the version-of-interest here, since they were released prior to the legal settlement and the removal of AT&T code can be considered an independent development, unlike BSD 4.4 Lite (/2), which was influenced by the legal settlements that granted Berkeley rights to distribute some files that USL claimed copyright on.

5
  • 2
    I remember vi being a problem because it still included parts of ed. – user722 Apr 26 '20 at 16:41
  • @RossRidge ed? Are you sure it wasn't ex? – 比尔盖子 Apr 26 '20 at 16:44
  • ex and vi are the same program. If invoked as vi, it starts up in visual mode. – user722 Apr 26 '20 at 16:53
  • @RossRidge I see what you meant. – 比尔盖子 Apr 26 '20 at 16:55
  • 1
    The settlement between USL and BSDi was published at groklaw, ten years later: groklaw.net/pdf/USLsettlement.pdf – ninjalj Apr 26 '20 at 17:30
11

A Brief History of BSD Net/1, Net/2

I found the answers while browsing the old OpenBSD release notes today. The release note of OpenBSD 4.4 contains a brief history of BSD Net/1 and Net/2. While it doesn't answer exactly what code or which features were removed and rewritten from the BSD codebase (time for me to start digging up the source code and Usenet archives?), but still offers much historical insight on its development process.

Nearly 10 years ago Kirk McKusick wrote a history of the Berkeley Unix distributions for the O'Reilly book "Open Sources: Voices from the Open Source Revolution". We recommend you read his story, entitled "Twenty Years of Berkeley Unix From AT&T-Owned to Freely Redistributable" first, to see how Kirk remembers how we got here. Sadly, since it showed up in book form originally, this text has probably not been read by enough people.

The USL(AT&T) vs BSDI/UCB court case settlement documents were not public until recently; their disclosure has made the facts more clear. But the story of how three people decided to free the BSD codebase of corporate pollution — and release it freely — is more interesting than the lawsuit which followed. Sure, a stupid lawsuit happened which hindered the acceptance of the BSD code during a critical period. But how did a bunch of guys go through the effort of replacing so much AT&T code in the first place? After all, companies had lots of really evil lawyers back then too — were they not afraid?

After a decade of development, most of the AT&T code had already been replaced by university researchers and their associates. So Keith Bostic, Mike Karels and Kirk McKusick (the main UCB CSRG group) started going through the 4.3BSD codebase to cleanse the rest. Keith, in particular, built a ragtag team (in those days, USENIX conferences were a gold mine for such team building) and led these rebels to rewrite and replace all the Imperial AT&T code, piece by piece, starting with the libraries and userland programs. Anyone who helped only got credit as a Contributor — people like Chris Torek and a cast of .. hundreds more.

Then Mike and Kirk purified the kernel. After a bit more careful checking, this led to the release of a clean tree called Net/2 which was given to the world in June 1991 — the largest dump of free source code the world had ever received (for those days — not modern monsters like OpenOffice).

Some of these ragtags formed a company (BSDi) to sell a production system based on this free code base, and a year later Unix System Laboratories (basically AT&T) sued BSDi and UCB. Eventually AT&T lost and after a few trifling fixes (described in the lawsuit documents) the codebase was free. A few newer developments (and more free code) were added, and released in June 1994 as 4.4BSD-Lite. Just over 14 years later OpenBSD is releasing its own 4.4 release (and for a lot less than $1000 per copy).

The OpenBSD 4.4 release is dedicated to Keith Bostic, Mike Karels, Kirk McKusick, and all of those who contributed to making Net/2 and 4.4BSD-Lite free.

My following answer with more details was based on the OpenBSD release note and Kirk McKusick's article.

BSD Net/1

The first "unencumbered" BSD release free from such restrictions was BSD Net/1, which was a BSD release based on 4.3BSD-Tahoe. By removing all proprietary AT&T code, the entire system became freely available,

This is incorrect. BSD Net/1 was not a full operating system, it was only a small part of it - namely the TCP/IP networking code from 4.3BSD kernel and its userspace utilities. It was copied from the main BSD codebase and released as an independent software package. Because the TCP/IP code was BSD's original work and didn't exist in the original Unix 32/V (a 32-bit VAX port of Unix v7) at all, Berkeley had the rights to release it under the free BSD license. The motivation was to allow PC software vendors to implement TCP/IP in their products using the existing BSD code, without an expensive Unix license (which was required to use the "full" BSD).

So the answer to the first question is clear: What code was removed from BSD/Net1? The entire operating system.

BSD Net/2

By removing the AT&T code, what was its impact on the features and functionalities of BSD? Was it a complete removal, or was it a partial replacement with reimplementation of affected features?

TL;DR: It was a heroic effort to replace and reimplement nearly all affected features in the system.

BSD Net/2 was a further progression of the campaign to free BSD, after the success of Net/1, naturally, BSD developers started to take the idea further to release not just the TCP/IP stack, but a free version of the entire operating system.

In fact, BSD had a major advantage here. By the time 4.3BSD has released, the development of BSD has already been independent from AT&T for more than a decade - ever since the commercialization of Unix, Berkeley quickly stepped into the clearing-house role previously provided by the Bell Laboratories - thus, many components in the kernel from AT&T had already been replaced by university researchers and their associates at this point.

Nevertheless, freeing the entire system was still not an easy task, a major rewrite was needed for the entire userland. So developers at Berkeley started a major campaign, lead by Keith Bostic, Mike Karels and Kirk McKusick. To attack this problem, Keith Bostic organized an informal team with hundreds of contributors recruited from the Internet and USENIX conferences, pioneered the use of online community which would later become the norm in free and open source software.

Their mission was to replace and rewrite Unix utilities from scratch solely based on their public descriptions, one binary at a time. And as always, should they choose to accept it, their only compensation would be to have their name listed among the Berkeley contributors next to the name of the utility that they rewrote, and nothing more. Initially, progress was slow and only trivial utilities were being rewritten, but as time went by, the list of freed Unix utilities soon exceeded 100 - more and more contributors joined the project. It was a spectacular success - within just 18 months, "nearly all the important utilities and libraries had been rewritten."

The next step was painstakingly going through the BSD kernel and checking hundreds of files, one by one, for their copyright status. And after several months of audit, it turned out that the entire kernel was almost clean; the vast majority of code were either developed at BSD, or could be rewritten easily. Only 6 files were technically challenging, thus the affected code was implemented and those 6 files were removed. The University administration gave clearance to the release of BSD Net/2. And the rest was history.

Closing the gap from the Networking Release 2 distribution to a fully functioning system did not take long. Within six months of the release, Bill Jolitz had written replacements for the six missing files. He promptly released a fully compiled and bootable system for the 386-based PC architecture which he called 386/BSD. Jolitz's 386/BSD distribution was done almost entirely on the Net. He simply put it up for anonymous FTP and let anyone who wanted it download it for free. Within weeks he had a huge following.

Unfortunately, the demands of keeping a full-time job meant that Jolitz could not devote the time needed to keep up with the flood of incoming bug fixes and enhancements to 386/BSD. So, within a few months of the release of 386/BSD, a group of avid 386/BSD users formed the NetBSD group [...] The FreeBSD group was formed a few months after the NetBSD group with a charter to support just the PC architecture and to go after a larger and less technically advanced group of users, much as Linux had done.

Lawsuits

After the release of BSD Net/2, a for-profit company, Berkeley Software Design, Incorporated (BSDi) also formed to sell a Net/2-based commercial Unix. It presented itself as a serious competitor, with an independent system free from AT&T/USL's copyright. And in their early aggressive advertising campaign, it marketed that the system was available at $995, just 1% of the USL's price. BSDi also used the phone number 1-800-ITS-Unix for sales and marketing (the "ITS Unix" phone number was later dropped due to trademark infringement, which is part of the puzzling legal history of the Unix trademark).

Seeing USL's monopoly was being threatened, it was at this point that USL started its lawsuits.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.