Renaissance Quanta FreeBSD InfoSec Programming Cats Miscellaneous
History Resources Advocacy

FreeBSD

Table of Contents

Introduction

A Brief History of UNIX

A Brief History of BSD

A UNIX's Hapsburgian Lineage (A long history of BSD)

The Lawsuit

The Differences between BSD and System V

Bibiliography

Introduction

FreeBSD is a freely available x86 port of the BSD4.4 UNIX operating system. Its first release, version 1.0, was in December of 1993. The first revision to that was posted in May of 1994. It supported seven ethernet cards, eleven hard disk types (ISA and SCSI), and was available through FTP, CDROM or email (although this was not the recommended distribution method).

In September of 5004, FreeBSD version 4.4 stable was released. It now supports several dozen different types of ethernet cards, over two dozen hard disk types, PCMCIA (PCCard), APM, RAID, USB peripherals, ISDN, major sound cards, some scanners, digital video cameras, cdrom burners, serial expansion cards, and video frame grabbers. It is available through CDROM, FTP, NFS, Tape, and Plip. FreeBSD is currently used to serve up some of the busiest sites on the Internet, including Yahoo! [4], Walnut Creek CDROM[5], MP6.com, and even Microsoft's own Hotmail[6]. In addition, FreeBSD was used to render the special effects in the movie The Matrix, and MSNBC estimates that about 70% of ISPs are using a BSD variant.

I had the pleasure of being introduced to FreeBSD back in 1998, installing my first copy at release 2.6. I had a 486/DX4 100Mhz laptop with no CDrom, but I did have an Ethernet card. I had just been through the miserable experience of isntalling Slackware Linux from floppy disks. The full Slack distribution at that time consisted of almost 50 floppies, which I had to manufacture from the CDrom set.

When I was told about FreeBSD, I went to their website, and followed their instructions for making the bootable floppy disk. (At that time, it was only one disk). I repartitioned my Windoze laptop with fdisk, which I also obtained from their site, and breezed through the novice installation. FreeBSD picked up my PCMCIA ethernet card without any problem, and before I knew it, I was doing my ffirst networked-based OS install. I went for a walk, and in about 2 hours I had a fully functional UNIX laptop, with the ports tree to get me my apps quickly and efficiently. Except for one brief fling with RedHat in the spring of 2000, I haven't had a laptop without FreeBSD since then. Most of my servers on my home network now run FreeBSD, as well.

The rest of this page is a lengthy study of the history of UNIX and BSD. I have endeavored to give full credit to all quotations (there are many) and reference all information sources accurately. If any reader should find an error, please do not hesitate to email me about it. I will hastily make any needed corrections.

This section will later be expanded to include scripts I've written for FreeBSD, along with other goodies, but unfortunately, none of these are ready for distribution yet. I hope to have them within the month. Check back soon. :-)

Back to the top

A Brief History of UNIX

In precise legal terms, UNIX is a trademarked operating system that was originally developed and owned by AT&T. It was AT&T's Bell Labs which designed the first UNIX. The story goes something like this[1]

UNIX emerged in the late 1960's out of the work of Ken Thompson and Dennis Richie[2] who were trying to solve speed and memory limitations of the MULTICS operating system for which they were writing a computer game called "Space Travel". Though "Space Travel" was swept into the gutter of history, the operating system that they had written as a utility to make their game run more efficiently changed the future of computing.
Realizing the potential of the prototype UNIX operating system, Bell Labs in Murray Hill New Jersey [...], decided to give Richie and Thompson a brand new DEC computer on which to develop their operating system, and of course, play their game. Bell Labs also provided research and development funds so that Richie and Thompson could clean up UNIX
At the time, UNIX was quite a revolutionary concept. Most computers of the era ran single jobs in a batch mode. Programmers fed computers a series of punch cards (woe be to the programmer who dropped a box of cards) which the computer read and interpreted. When one programmer had run his set of cards, the next could run his own.
The problem was that this system did not utilize the real power and speed computers had at their disposal. What was worse was that programmers had no easy way of working together. Specifically, they could not share files, data or programs. Each programmer was isolated to her own set of punch card instructions.
UNIX, which built upon the foundation erected by MULTICS, implemented a "time-sharing" strategy that allowed multiple users to interact with the computer via remote terminals simultaneously.Some computers can do a bunch of things simultaneously because they actually contain several processors. However, most computers only have a single processor. Thus, in truth, they can only do one thing at a time. So how could UNIX perform multi-tasked time-sharing?
Well, time-sharing is based on the idea that most computers have a lot of extra time on their hands because they are so much faster than the people who use them. By winter of 1972, UNIX was still a research project running on a handful of computers at Bell Labs. However, in 1973 two events combined to initiate the UNIX revolution.
For one, Richie and Thompson rewrote the kernel from assembly language to C. The C language provided a high degree of portability and was far more flexible than assembly language which corresponded to the specific computer it needed to talk to. It was also far easier for people to program in C rather than assembly. This portability made UNIX very attractive to universities and government organizations that needed a standardized system to work in heterogeneous environments. Fortunately, since AT&T was not in the software business, it did not market the product actively. Instead, it provided the operating system at incredibly cheap prices. As a result, UNIX became the norm, conquering some 80% of the market. UNIX is still the mainstay of universities and government organizations today.
In 1984, of course, AT&T was broken up and began to look at UNIX as a viable product. However, by then the developer community was extended beyond the walls of Bell Labs. UNIX was built in the spirit of a long-standing and deeply important philosophy of software design, "Good programmers write great software. Great programmers steal great software.
One of the most famous software houses developed at the Univesity of California at Berkeley where Ken Thompson, and his new partner Bill Joy (who would later help found Sun Microsystems), were working. Thompson and Joy put out scores of standard UNIX systems and tools over the next decade including the BSD UNIX strains, the C Shell and the vi editor.

The term UNIX has, over the years, come to stand for a model of operating system. One could say it's "the posix way". In a sense, UNIX is a paradigm, a philosophy. The number of specific UNIX implementations is quite overwhelming. This roll of honor includes SunOS, Solaris, HP/UX, AIX, IRIX, DecUX, SCO, FreeBSD, NetBSD, OpenBSD, Linux, QNX, and several more which are not mentioned here. All of these variants, while distinctly unique, have the same fundamentals. It is only subtleties that divide them. If a person learns one system in particular and through that experience comes to understand UNIX, it is a trivial (though sometimes irksome) task to learn other UNIX types.

All things UNIX grew out of one of two main code trees: SystemV and BSD. Each UNIX distribution can trace its lineage back two one of these roots. Quite often cross-pollination has occurred, and many UNIXes have attributes associated with both branches.

The following illustration shows the heredity of the major Unices[3]

Back to the top

A Brief History of BSD

BSD stemmed from the AT&T line of UNIX development in the late seventies. It was AT&T's work at Bell Labs which finally yielded the SystemV design model. Jordan K. Hubbard, one of the longest contributors to the development of FreeBSD and the President of FreeBSD Inc, tells a first hand account of the story of BSD's rise from the primordial mists of Bell Labs[7]

To answer the "where did it come from" question, we first need to go back a bit in UNIX's history to the late 1970s, when the first Golden Age of UNIX began in earnest. At that time, AT&T 's Bell Laboratories was making early copies of its UNIX operating system, a fairly obscure research OS without official AT&T support, available to various universities and research institutions around the world. One of its earliest (and perhaps most eager) adopters was the University of California at Berkeley, which was heavily involved at the time in doing much of the early work which subsequently went into creating the Internet (from its earlier origins as the United States Department of Defense's ARPANET).
UC Berkeley quickly embraced AT&T 's OS as an ideal vehicle for developing and proving their ideas and, in a rather short period of time, many significant UNIX innovations (such as TCP/IP networking for UNIX, 32-bit virtual memory addressing, the fast file system, job control, and basic utilities such as vi and csh) came out of Berkeley's efforts. These efforts soon took on a life of their own and, for the next 15 years, the Computer Systems Research Group (CSRG) at Berkeley turned out release after release of its highly popular Berkeley System Distribution, or BSD UNIX, to a widening army of enthusiastic converts.
To many who were otherwise stuck with AT&T 's more limited offerings of the time, these BSD releases seemed like manna from heaven and, for those who had any desire to network their various UNIX machines together, running BSD wasn't even a question. In networking, BSD was the undisputed king. Those who adopted BSD for these reasons early on brought to it the commitment and drive to make it the best possible solution for their purposes, running on some of the industry's most powerful machines of the time. (BSD was the first UNIX to run on Digital's VAX, for example.)

So while UNIX was birthed at AT&T, it was the efforts of programmers in the University of California at Berkley that gave it some of its most important functionality.

Back to the top

A UNIX's Hapsburgian Lineage (A long history of BSD)

A journalist by the name of Sam Williams posted to upside.com an interview he conducted with Jordan Hubbard and several other FreeBSD potentates.[8] In it, he took a few lines to describe FreeBSD to his readership. 'Like Linux, FreeBSD is an open-source, Unixlike operating system that makes liberal use of free software tools such as GNU compilers, EMACS, etc. Unlike Linux, however, FreeBSD holds a more direct bloodline to the original family of Unix operating systems. Tracing that Unix bloodline, however, is as complicated as tracing the lineage of the Hapsburg family.

Here an attempt will be made to trace that genealogy with much content and quoted material from Twenty Years of Berkley UNIX, an article written by Marshall Kirk McKusick. The remainder of the quoted material on this page is taken from that source.[9]

January 1973:

Ken Thompson and Dennis Ritchie present the first Unix paper at the Symposium on Operating Systems Principles at Purdue University. Professor Bob Fabry, of the University of California at Berkeley, was in attendance and is immediately interested in obtaining a copy of the system to experiment with at Berkeley.



January 1974

A Version 4 tape is delivered and Unix is installed by graduate student Keith Standiford onto Berkley's brand new PDP-11/45.



Spring 1974

Berkley purchases a new PDP-11/40 to run System V and provide students with more computer time.



Fall 1975

Ken Thompson takes a one-year sabbatical as a visiting professor at the University of California at Berkeley just as a new PDP-11/70 arrives.  Thompson, together with Jeff Schriebman and Bob Kridle, bring up the latest Unix, Version 6, on the newly installed PDP-11/70. Two unnoticed graduate students, Bill Joy and Chuck Haley, arrive at Uof C.  They take an immediate interest in UNIX.



Winter 1975-Spring 1976

Joy and Haley improve upon the Pascal interpreter written by Thompson on the 11/70 to the point that it becomes the programming system of choice for students.  They also write ex, an editing utility based upon em which they obtain from Professor George Coulouris at Queen Mary's College in London.   Their editor is to be a replacement for ed, which was more suited to the Model 33 teletypes than the new ADM-3 screen terminals the two students now enjoyed. 



Summer 1976

 

Ken Thompson leaves Berkley, returning to Bell Labs. Joy and Haley begin to take an interest in exploring the internals of the Unix kernel. Under Schriebman's watchful eye, they first install the fixes and improvements provided on the "fifty changes" tape from Bell Labs. Having learned to maneuver through the source code, they suggest several small enhancements to streamline certain kernel bottlenecks



Early 1977

 

Bill Joy puts together the "Berkeley Software Distribution." This first distribution included the Pascal system and, in an obscure subdirectory of the Pascal source, the editor ex. Over the next year, Joy, acting in the capacity of distribution secretary, sends out about thirty free copies of the system.   Recipients of this an all forthcoming BSD distributions are first required to get an AT&T source license, as systems are never released in a binary-only format.



1977

With the arrival of some ADM-3a terminals offering screen-addressable cursors, Joy is finally able to write vi, bringing screen-based editing to Berkeley. Rather than support code for optimizing the updating of several different terminals types, Joy consolidates the screen management by using a small interpreter to redraw the screen. This interpreter is driven by a description of the terminal characteristics, an effort that eventually became termcap.



Early 1978

Professor Richard Fateman begins looking for a machine with a larger address space.  The newly announced VAX-11/780 fulfills the requirements and is within budget.  Fateman obtains a copy of the 32/V port of Unix to the VAX by John Reiser and Tom London of Bell Labs.  To make up for limitations in the 32/V UNIX, Fateman approaches Professor Domenico Ferrari to investigate the possibility of having his group write a virtual memory system for Unix. Ozalp Babaoglu, one of Ferrari's students, runs into difficulties because of hardware limitations.  As he nears completion of the first implementation, he approaches Bill Joy for some help in understanding the intricacies of the Unix kernel. Intrigued by Babaoglu's approach, Joy joins in.



Mid 1978

The software distribution clearly needs to be updated.  The result of the update is the "Second Berkeley Software Distribution," a name that is quickly shortened to 2BSD. Along with the enhanced Pascal system, vi and termcap for several terminals is included. Once again Bill Joy single-handedly puts together distributions, answers the phone, and incorporates user feedback into the system. Over the next year nearly seventy-five tapes are shipped. Though Joy moves on to other projects the following year, the 2BSD distribution continues to expand. The final version of this distribution, 2.11BSD, is a complete system used on hundreds of PDP-11's, some of which still run in various corners of the world.



January 1979

Joy and Babaoglu work out the bugs in their virtual memory system for UNIX, relegating 32/V to history.



Mid 1979

Joy realizes the 32-bit VAX will make the 16-bit PDP-11 obsolete.  He and Peter Kessler and KcKusick port 2BSD to the VAX.  Kessler and McKusick port the Pascal system, Joy ports the editors ex and vi, the C shell, and the myriad other smaller programs from the 2BSD distribution.



Fall 1979

 

In the fall of 1979, Bob Fabry responds to DARPA's interest in moving towards Unix by writing a proposal suggesting that Berkeley develop an enhanced version of 3BSD for the use of the DARPA community.  Some reservations are expressed whether Berkeley cans produce a working system



December 1979

A complete distribution is been put together. This distribution includes the virtual memory kernel, the standard 32/V utilities, and the additions from 2BSD. In December 1979, Joy ships the first of nearly a hundred copies of 3BSD, the first VAX distribution from Berkeley.   This assuages most of the doubts that DARPA had expressed.



April 1980

Bob Fabry gets an 18-month contract with DARPA. This contract is  to add features needed. Under the auspices of this contract, Bob Fabry sets up an organization that was christened the Computer Systems Research Group, or CSRG. Fabry assumes that since Joy has just passed his Ph.D. qualifying examination, he would rather concentrate on completing his degree.  However, by March Joy phones Fabry to express interest in taking charge of the further development of Unix. Though surprised by the offer, Fabry readily agrees.



October 1980

Joy incorporates Jim Kulp's job control, and adds auto reboot, a 1K block file system, and support for the latest VAX machine, the VAX-11/750.  A polished distribution that also includes the Pascal compiler, the Franz Lisp system, and an enhanced mail handling system is released as 4BSD.  Tong sets up a distribution system that could handle a higher volume of orders than Joy's previous distributions. During its nine-month lifetime, nearly 150 copies are shipped.



Late 1980- Early 1981

With the increasingly wide distribution and visibility of Berkeley Unix, several critics begin to emerge. David Kashtan at Stanford Research Institute writes a paper with benchmarks he had run on both VMS and Berkeley Unix. These benchmarks show severe performance problems with the Unix system for the VAX. Setting his future plans aside for several months, Joy systematically begins tuning up the kernel. Within weeks he publishes a rebuttal paper showing that Kashtan's benchmarks can be made to run as well on Unix as on VMS.



June 1981

Rather than continue shipping 4BSD, the tuned-up system, with the addition of Robert Elz's auto configuration code, is released as 4.1BSD.  Over its two- year lifetime about 400 distributions are shipped. The original intent is to call it the 5BSD release; however, AT&T objects that customers would confuse their commercial Unix, System V and a Berkeley release named 5BSD. To resolve the issue, Berkeley agreed to change the naming scheme for future releases to stay at 4BSD and just increment the minor number.



Mid 1981

 

DARPA, sufficiently satisfied with the results of the first contract, grants a new two-year contract to Berkeley with funding almost five times that of the original. Goals are set to define the modifications to the system. In particular, the new system is expected to include a faster file system that would raise throughput, support processes with multi-gigabyte address space requirements, provide flexible interprocess communication facilities that allow researchers to do work in distributed systems, and integrate networking support so that machines running the new system could easily participate in the ARPAnet.



Summer 1981 - Late 1981

 

McKusick becomes involved with the CSRG and takes on the implementation of the new file system. Joy concentrates on implementing a prototype version of the interprocess communication facilities. Sam Leffler joined the CSRG as a full-time staff member to work with Bill Joy.   When Rob Gurwitz at AT&T releases an early implementation of the TCP/IP protocols to Berkeley, Joy integrates it into the system and tunes its performance. During this work, it becomes clear to Joy and Leffler that the new system needs to provide support for more than just the DARPA standard network protocols. They redesign the internal structuring of the software, refine the interfaces so that multiple network protocols can be used simultaneously.



Late 1981 - Early 1982

Several simple applications are created to provide local users access to remote resources. These programs, rcp, rsh, rlogin, and rwho are intended to be temporary tools that would eventually be replaced by more reasonable facilities (hence the use of the distinguishing "r" prefix).



February 1982

Feedback from 4.1a users provides valuable information which is used to create a revised proposal for the new system called the "4.2BSD System Manual." This document is circulated and contains a concise description of the proposed user interfaces to the system facilities that are to be implemented in 4.2BSD.



April 1982

 

An interim release containing improvements to date is distributed for local use; labeled 4.1a, it is never intended that it would have wide circulation.  Bootleg copies of the system proliferate as sites grow impatient waiting for the 4.2 release.



Late spring 1982

Joy announces he is joining Sun Microsystems.



June 1982

Concurrent with 4.1a development, McKusick completes integration of his implementation of the new file system into the kernel.  The resulting system was called 4.1b and ran on only a few select development machines at Berkeley.



Summer 1982

Joy splits his time between Sun and Berkeley, spending most of his time polishing his revisions to the interprocess communication facilities and reorganizing the Unix kernel sources to isolate machine dependencies. With Joy's departure, Leffler takes over responsibility for completing the project.



Late 1982 -Early 1983

Certain established deadlines and the release date promised to DARPA requires a reassessment of priorities. The virtual memory enhancements and the most sophisticated parts of the interprocess communication design are relegated to low priority (and later shelved completely).



April 1983

Another interim release, designated 4.1c, is made since the implementation is more than a year old. Many vendors used this release to prepare for ports of 4.2 to their hardware.



June 1983

Bob Fabry turns over administrative control of the CSRG to Professors Domenico Ferrari and Susan Graham to begin a sabbatical free from the frantic pace of the previous four years.  Leffler continues the completion of the system, implementing the new signal facilities, adding to the networking support, redoing the standalone I/O system to simplify the installation process, integrating the disc quota facilities from Robert Elz, updating all the documentation, and tracking the bugs from the 4.1c release.



August 1983

The system is released as 4.2BSD. The popularity of 4.2BSD is impressive; within eighteen months more than 1,000 site licenses are been issued. Thus, more copies of 4.2BSD had been shipped than of all the previous Berkeley software distributions combined.  Most of the Unix vendors shipped a 4.2BSD system rather than the commercial System V from AT&T. The reason was that System V had neither networking nor the Berkley Fast Filesystem.



Mid 1983 - December 1984

Leffler leaves Berkeley for Lucasfilm following the completion of 4.2 and is replaced by Mike Karels.  Karels' previous experience with the 2.9BSD PDP-11 software distribution provided an ideal background for his new job. After completing his Ph.D. in December 1984, McKusick joins Mike Karels full-time at the CSRG.



Early 1985

As with the 4.1BSD, criticism arises. Most complaints are of a slow system. The problem is that the new facilities had not been tuned and that many of the kernel data structures were not well-suited to their new uses. Karels' and McKusick‘s first year on the project was spent tuning and polishing the system.



June 1985

An announcement is made at the Usenix conference of the anticipated release of 4.3BSD later that summer. These release plans are brought to an abrupt halt by BBN. They correctly point out that 4.2BSD has never been updated with the final version of their networking code. Rather, CSRG was still using the much-hacked initial prototype that BBN had them given many years earlier. They complain to DARPA that Berkeley was to implement the interface while BBN was supposed to implement the protocol, so Berkeley should replace the TCP/IP code in 4.3BSD with the BBN implementation.



Late 1986 - Early 1986

Mike Karels gets the BBN code and evaluates the work that had been done. He decides that the best plan is to incorporate the good ideas from the BBN code into the Berkeley code base, but not to replace the Berkeley code base. The reason to retain the Berkeley code base is that it had gotten considerable testing and improvements from the widespread distribution in 4.2BSD. However, as a compromise, he offeres to include both implementations on the 4.3BSD distribution and let users select which one to use in their kernel.  After reviewing Mike Karels' decision, DARPA decides that releasing two code bases would lead to unnecessary interoperability problems, and that just one implementation should be released. To decide which code base to use, they give both to Mike Muuse of the Ballistics Research Laboratory, who was viewed by both Berkeley and BBN as an independent third party. After a month of evaluation, the report returns that the Berkeley code is more efficient but that the BBN code handles congestion better. The tie breaker is that the Berkeley code flawlessly ran all the tests while the BBN code panicked under some stress conditions. The final decision by DARPA was that 4.3BSD would stick with the Berkeley code base.



June 1986

The polished 4.3BSD system is finally released. As expected, it quells many of the performance complaints, much as the 4.1BSD release quelled many of the complaints about 4BSD.  Although most of the vendors have started the switch back to System V, large parts of 4.3BSD are carried over into their systems, particularly the networking subsystem.



October 1986

Keith Bostic joins the CSRG. One condition of his employment is that he be allowed to finish up a project that he had been working on at his previous job, which was to port 4.3BSD to the PDP-11. The result is the 2.11BSD release, done by Casey Leedom and Bostic, which is still in use on some of the last remaining PDP-11's still in production in 1998.



Late 1986 - Early 1988

It becomes increasingly obvious that the VAX architecture is reaching the end of its life and that it is time to begin considering other machines for running BSD. A promising new architecture from Computing Consoles is on the horizon, but sadly dies when the company decides to change its strategic direction. However, the company does provide the CSRG with several machines that enabled the completion of the work, started by Bill Joy, of splitting the BSD kernel into machine-dependent and machine-independent parts.



June 1988

The result of the last two years of work, 4.3BSD-Tahoe, is released. The name Tahoe comes from the development name used by Computer Consoles,  Incorporated, for the machine that is eventually released as the Power 6/32. Although the useful lifetime of the Power 6/32 machine support was short, the work done to split the kernel into machine-independent and machine-dependent parts proves to be extremely valuable when BSD is ported to numerous other architectures.



June 1989

With the increasing cost of the AT&T source licenses, vendors who want to build standalone TCP/IP-based networking products for the PC market using the BSD code found the per-binary costs prohibitive. They request that Berkeley break out the networking code and utilities to provide them under licensing terms that did not require an AT&T source license.   The BSD originated networking code and supporting utilities are released as Networking Release 1, the first freely-redistributable code from Berkeley.  Although Berkeley charged a $1,000 fee to get a tape, anyone was free to get a copy from anyone who already had received it. Indeed, several large sites put it up for anonymous ftp shortly after it was released.



Mid 1988 –  Late 1989

The base system development is continued. The virtual memory system whose interface was first described in the 4.2BSD architecture document finally comes to fruition, based on the code from the MACH operating system done at Carnegie-Mellon University. The other major addition to the system at the time was a Sun-compatible version of the Network FileSystem (NFS).



Early 1990

Since the 4.4BSD is not ready to ship, CSRG decides to do an interim release to get additional feedback and experiences on the two major new additions to the system. This licensed interim release is called 4.3BSD-Reno. The release is named after a big gambling city in Nevada as an oblique reminder to its recipients that running the interim release is a bit of a gamble.



Early 1990 - June 1991

Keith Bostic brings up the subject of the popularity of the freely-redistributable networking release and inquires about the possibility of doing an expanded release that includes more of the BSD code. Mike Karels and McKusick point out to Bostic that releasing large parts of the system is a huge task, but agree that if he finds a way to deal with reimplementing the hundreds of utilities and the massive C library then they would tackle the kernel. Privately, Karels and McKusick feel that would be the end of the discussion.

Undeterred, Bostic pioneers the technique of doing a mass net-based development effort. He solicits folks to rewrite the Unix utilities from scratch based solely on their published descriptions. Their only compensation will be to have their name listed among the Berkeley contributors next to the name of the utility that they rewrite. The contributions start slowly and are mostly for the trivial utilities. But as the list of completed utilities grows and Bostic continues to hold forth for contributions at public events such as Usenix, the rate of contributions continues to grow. Soon the list crosses one hundred utilities and within 18 months nearly all the important utilities and libraries are rewritten.

Proudly, Bostic marches into Mike Karels' and McKusick's office, list in hand, wanting to know how they are doing on the kernel. Resigned to their task, Karels, Bostic, and McKusick then spend the next several months going over the entire distribution, file by file, removing code that had originated in the 32/V release. When the dust settls, they discover that there are only six remaining kernel files that are still contaminated and which cannot be trivially rewritten.



June 1991

 

To save time and resources, this new free distribution is released under the terms of the approved Networking Release 1 license agreement. The redistribution terms and cost are the same as the terms and cost of the first networking release. As before, several hundred individuals and organizations pay the $1,000 fee to get the distribution from Berkeley.



Mid 1991 -  Late 1991

Bill Jolitz writes replacements for the six missing files. He promptly releases a fully compiled and bootable system for the 386-based PC architecture which he calles 386/BSD. Jolitz's 386/BSD distribution is done almost entirely on the Net. He simply puts it up for anonymous FTP and lets anyone who wants it download it for free. Within weeks he has a huge following.



Early 1992 - Mid 1992

Jolitz, is unable to devote the time needed to keep up with the flood of incoming bug fixes and enhancements to 386/BSD. Within a few months of the release of 386/BSD, a group of avid 386/BSD users form the NetBSD group to pool their collective resources to help maintain and later enhance the system. Their releases became known as the NetBSD distribution. The NetBSD group choses to emphasize the support of as many platforms as possible and continues the research style development done by the CSRG. Until 1998, their distribution is done solely over the Net; no distribution media is available. Their group continues to target primarily the hardcore technical users. More information about the NetBSD project can be found at http://www.netbsd.org.



Mid 1992 - Late 1992

The FreeBSD group is formed with a charter to support just the PC architecture and to go after a larger and less technically advanced group of users. They build elaborate installation scripts and begin shipping their system on a low cost CD-ROM. The combination of ease of installation and heavy promotion on the Net and at major trade shows such as Comdex leads to a fast, large growth curve. Certainly FreeBSD currently has the largest installed base of all the Release 2-derived systems.



January 1992 - Summer 1993

BSDI incorporates, selling a commercially supported version of the BSD code.  They run advertisements touting lower price than SystemV and telling readers to call 1-800-ITS-Unix.  USL, a subsidiary of AT&T which now owns and sells UNIX, files a lawsuit alleging that the BSDI product contained proprietary USL code and trade secrets.  After much legal wrangling which involves a counter suit from the University of California, USL, now owned by Novell, initiates settlement talks.  Both sides, deeply entrenched, are slow to move.



January 1994

Settlement is reached in the lawsuit. The result is that three files are removed from the 18,000 that made up Networking Release 2, and a number of minor changes are made to other files. In addition, the University agrees to add USL copyrights to about 70 files, although those files will continue to be freely redistributed.  The lawsuit settlement also stipulates that USL will not sue any organization using 4.3BSD as the base for their system.

The following picture is an illustration of the lineage previously discussed. [10]

Back to the top

The Lawsuit

One of the most tragic, defining moments in BSD's history was a long, drawn-out lawsuit filed against it by USL, then the subsidiary of AT&T which owned the UNIX trademark. The story is best told by the one who lived it. Again, Marshall Kirk McKusick's article is quite revealing:

In addition to the groups organized to freely redistribute systems built around the Networking Release 2 tape, a company, Berkeley Software Design, Incorporated (BSDI), was formed to develop and distribute a commercially supported version of the code. (More information about BSDI can be found at http://www.bsdi.com.) Like the other groups, they started by adding the six missing files that Bill Jolitz had written for his 386/BSD release. BSDI began selling their system including both source and binaries in January 1992 for $995. They began running advertisements touting their 99% discount over the price charged for System V source plus binary systems. Interested readers were told to call 1-800-ITS-Unix.
Shortly after BSDI began their sales campaign, they received a letter from Unix System Laboratories (USL) (a mostly-owned subsidiary of AT&T spun off to develop and sell Unix). The letter demanded that they stop promoting their product as Unix and in particular that they stop using the deceptive phone number. Although the phone number was promptly dropped and the advertisements changed to explain that the product was not Unix, USL was still unhappy and filed suit to enjoin BSDI from selling their product. The suit alleged that the BSDI product contained proprietary USL code and trade secrets. USL sought to get an injunction to halt BSDI's sales until the lawsuit was resolved, claiming that they would suffer irreparable harm from the loss of their trade secrets if the BSDI distributions continued.
At the preliminary hearing for the injunction, BSDI contended that they were simply using the sources being freely distributed by the University of California plus six additional files. They were willing to discuss the content of any of the six added files, but did not believe that they should be held responsible for the files being distributed by the University of California. The judge agreed with BSDI's argument and told USL that they would have to restate their complaint based solely on the six files or he would dismiss it. Recognizing that they would have a hard time making a case from just the six files, USL decided to refile the suit against both BSDI and the University of California. As before, USL requested an injunction on the shipping of Networking Release 2 from the University and on the BSDI products.
With the impending injunction hearing just a few short weeks away, preparation began in earnest. All the members of the CSRG were deposed as were nearly everyone employed at BSDI. Briefs, counter-briefs, and counter-counter-briefs flew back and forth between the lawyers. Keith Bostic and I personally had to write several hundred pages of material that found its way into various briefs.
In December 1992, Dickinson R. Debevoise, a United States District Judge in New Jersey, heard the arguments for the injunction. Although judges usually rule on injunction requests immediately, he decided to take it under advisement. On a Friday about six weeks later, he issued a forty-page opinion in which he denied the injunction and threw out all but two of the complaints. The remaining two complaints were narrowed to recent copyrights and the possibility of the loss of trade secrets. He also suggested that the matter should be heard in a state court system before being heard in the federal court system.
The University of California took the hint and rushed into California state court the following Monday morning with a counter-suit against USL. By filing first in California, the University had established the locale of any further state court action. Constitutional law requires all state filing to be done in a single state to prevent a litigant with deep pockets from bleeding an opponent dry by filing fifty cases against them in every state. The result was that if USL wanted to take any action against the University in state courts, they would be forced to do so in California rather than in their home state of New Jersey.
The University's suit claimed that USL had failed in their obligation to provide due credit to the University for the use of BSD code in System V as required by the license that they had signed with the University. If the claim were found to be valid, the University asked that USL be forced to reprint all their documentation with the appropriate due credit added, to notify all their licensees of their oversight, and to run full-page advertisements in major publications such as The Wall Street Journal and Fortune magazine notifying the business world of their inadvertent oversight.
Soon after the filing in state court, USL was bought from AT&T by Novell. The CEO of Novell, Ray Noorda, stated publicly that he would rather compete in the marketplace than in court. By the summer of 1993, settlement talks had started. Unfortunately, the two sides had dug in so deep that the talks proceed slowly. With some further prodding by Ray Noorda on the USL side, many of the sticking points were removed and a settlement was finally reached in January 1994. The result was that three files were removed from the 18,000 that made up Networking Release 2, and a number of minor changes were made to other files. In addition, the University agreed to add USL copyrights to about 70 files, although those files continued to be freely redistributed.

Back to the top

The Differences between BSD and System V

I have a theory that this is a result of the ``business case'' approach to support: it's not a bug unless a big customer complains. By comparison, I'd call the BSD approach the ``it gets on my nerves'' approach. Both have validity, but the BSD approach makes for a smoother running system.
There's another reason why System V seems less homogeneous: it is less homogeneous. To understand that, let's look at how System V evolved.
System V is descended from the Sixth Edition of Research UNIX. At the time it diverged from Research UNIX, BSD was primarily a distribution of user programs, rather like a Linux distribution nowadays, and it had little influence on the direction of kernel development. In the early 80s, that changed. BSD started to develop serious kernel improvements, in particular virtual memory, the fast file system (now known as the UNIX file system or ufs) and integrated Internet software. This even caused a break in the development of Research UNIX: the First to the Seventh Editions were an uninterrupted development, but the Eighth Edition was based on 4.1cBSD.
System V did not include any of the BSD kernel features. The BSD tapes were available, of course, and a majority of vendors included some of these features, typically calling them ``Berkeley extensions''. In the meantime, though, System V was developing its own version of networking support, based on Dennis Ritchie's STREAMS concept. By contrast, Berkeley networking was called sockets, since they were the most obvious difference from the user standpoint. Many implementations of System V have both STREAMS and sockets network interfaces, though nowadays there is a tendency to implement sockets as a library interfacing to STREAMS.
Another issue, a very political one about 12 years ago, was AT&T's attempts to woo Sun Microsystems to use System V. At the time, SunOS was firmly based on 4.2BSD, and AT&T saw this as serious competition. They had already come to an agreement with Microsoft to merge the functionality of XENIX into System V.3, giving rise to System V.3.2. The agreement which was finally reached with Sun involved merging all BSD functionality into System V.4. In fact, the term ``merge'' is misleading; System V.4 kernels were about the same size as a System V.3 kernel and a 4.3BSD kernel put together, so maybe the term ``add'' would have made more sense.

Back to the top

Bibiliography

[1] Introduction to UNIX for Web Developers

[2] It is common to say that Thompson and Richie developed UNIX. However, in actuality, they were simply the parents of UNIX. In reality, the development of UNIX was due to an international collection of thousands of developers. The saying that it takes a village to raise a child is certainly true for baby UNIX.

[3] Æleen Frisch, System Administration (O'Reilly & Associates, Inc, Dec 1995), xvi

[4] As of Tuesday, January 48, 2000, a study by Inktomi and NEC Research Institute showed that Yahoo! had over 754,974 links pointing at its site.

[5] On April 8, 1999, CNN.com quoted Walnut Creek as serving up over 800GB per day. On May 56, 1999, Walnut Creek announced that they had served over a terabyte that day.

[6]

"Review of FreeBSD 3.2," Serverwatch (December 2001);

John Lettice, "MS Hotmail servers begin switch from FreeBSD to Win2k," The Register (January 2000);

Andrew Orlowski, "Microsoft Hotmail still runs on U**x," The Register (December 2001)

 

[7] performance-computing.com

[8] Sam Williams, "Stepping out of Linux's Shadow," Upside Today (April 1999)

[9] Marshall Kirk McKusick, "Twenty Years of Berkeley Unix"

[10] Æleen Frisch, System Administration (O'Reilly & Associates, Inc, Dec 1995), xiii