|
| FreeBSD | InfoSec | Programming | Cats | Miscellaneous | |
|
|
History | Resources | Advocacy | |||
A UNIX's Hapsburgian Lineage (A long history of BSD)
The Differences between BSD and System V
![]()
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. :-)
![]()
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]
![]()
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.
![]()
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]
![]()
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.
![]()
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.
![]()
[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."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)
[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