Berkeley Software
Distribution (BSD, sometimes called
Berkeley Unix) is the UNIX
operating system derivative
developed and distributed by the Computer Systems Research
Group of the University of California,
Berkeley
, from 1977 to 1995.
Historically, BSD has been considered a branch of UNIX — "BSD
UNIX", because it shared the initial codebase and design with the
original
AT&T UNIX operating system. In
the 1980s, BSD was widely adopted by vendors of
workstation-class systems in the form
of proprietary UNIX variants such as
DEC ULTRIX and
Sun
Microsystems SunOS. This can be attributed
to the ease with which it could be licensed, and the familiarity it
found among the founders of many technology companies of this
era.
Though these commercial BSD derivatives were largely superseded by
the UNIX
System V Release 4 and
OSF/1 systems in the 1990s (both of which
incorporated BSD code), later BSD releases provided a basis for
several
open source development projects
which continue to this day.
Today, the term of "BSD" is often non-specifically used to refer to
any of these BSD descendants, e.g.
FreeBSD,
NetBSD or
OpenBSD,
which together form a branch of the family of
Unix-like operating systems.
History
File:Unix history-simple.png|250px|thumb|Evolution of
Unix systemsdefault
PDP-11 beginnings
The
earliest distributions of Unix from Bell Labs
in the 1970s included the source code to the operating system, allowing
researchers at universities to modify and
extend Unix. The first Unix system at Berkeley was a
PDP-11 installed in 1974, and the
computer science department used it for
extensive research thereafter.
Other universities became interested in the software at Berkeley,
and so in 1977
Bill Joy, then a graduate
student at Berkeley, assembled and sent out tapes of the
first Berkeley Software Distribution
(
1BSD). 1BSD was an add-on to
Sixth Edition Unix rather than a complete
operating system in its own right; its main components were a
Pascal compiler and Joy's
ex
line editor.
The
Second Berkeley Software Distribution
(
2BSD), released in 1978, included updated
versions of the 1BSD software as well as two new programs by Joy
that persist on Unix systems to this day: the
vi
text editor (a
visual version of
ex) and the
C
shell.
Later releases of 2BSD contained ports of changes to the
VAX-based releases of BSD back to the PDP-11
architecture. 2.9BSD from 1983 included code from 4.1cBSD, and was
the first release that was a full OS (a modified
Version 7 Unix) rather than a set of
applications and patches. The most recent release,
2.11BSD, was first released in 1992. As of 2008,
maintenance updates from volunteers are still continuing, with
patch 447 being released on December 31, 2008.
VAX versions
A
VAX computer was installed at Berkeley in
1978, but the
port of Unix to the VAX
architecture,
UNIX/32V, did not take
advantage of the VAX's
virtual memory
capabilities. The
kernel
of 32V was largely rewritten by Berkeley students to include a
virtual memory implementation, and a complete operating system
including the new kernel, ports of the 2BSD utilities to the VAX,
and the utilities from 32V was released as
3BSD at
the end of 1979. 3BSD was also alternatively called Virtual
VAX/UNIX or VMUNIX (for Virtual Memory Unix), and BSD kernel images
were normally called
/vmunix until 4.4BSD.
The success of 3BSD was a major factor in the
Defense Advanced
Research Projects Agency's (DARPA) decision to fund Berkeley's
Computer Systems
Research Group (CSRG), which would develop a standard Unix
platform for future DARPA research in the
VLSI Project. CSRG released
4BSD, containing numerous improvements to the 3BSD
system, in October 1980.
4BSD (November 1980) offered a number of
enhancements over 3BSD, notably
job
control in the previously released
csh,
delivermail (the antecedent of
sendmail), "reliable"
signals, and the
Curses programming
library.
4.1BSD (June 1981) was a response to criticisms of
BSD's performance relative to the dominant VAX operating system,
VMS. The 4.1BSD kernel was systematically
tuned up by
Bill Joy until it could perform
as well as VMS on several benchmarks. (The release would have been
called
5BSD, but after objections from
AT&T the name was changed; AT&T feared
confusion with
AT&T's
UNIX System V. One early, never-released test
version was in fact called 4.5BSD.)
4.2BSD would take over two years to implement and
contained several major overhauls. Before its official release came
three intermediate versions:
4.1a incorporated a modified
version of
BBN's
preliminary
TCP/IP implementation;
4.1b included the new
Berkeley Fast File System,
implemented by
Marshall Kirk
McKusick; and
4.1c was an interim release during the
last few months of 4.2BSD's development.
To guide
the design of 4.2BSD Duane Adams of
DARPA formed a "steering committee" consisting
of Bob Fabry, Bill
Joy and Sam Leffler from UCB, Alan Nemeth and Rob Gurwitz from BBN,
Dennis Ritchie from Bell Labs
, Keith Lantz from
Stanford
, Rick Rashid from Carnegie-Mellon
, Bert Halstead from
MIT
, Dan Lynch from ISI, and Gerald J. Popek of UCLA
. The
committee met from April 1981 to June 1983.
The official 4.2BSD release came in August 1983. It was notable as
the first version released after the 1982 departure of Bill Joy to
co-found
Sun Microsystems;
Mike Karels and
Marshall Kirk McKusick took on
leadership roles within the project from that point forward. On a
lighter note, it also marked the debut of
BSD's daemon mascot in a drawing by
John Lasseter that appeared on the cover of
the printed manuals distributed by
USENIX.
4.3BSD
4.3BSD was released in June 1986. Its main changes
were to improve the performance of many of the new contributions of
4.2BSD that had not been as heavily tuned as the 4.1BSD code. Prior
to the release, BSD's implementation of TCP/IP had diverged
considerably from BBN's official implementation. After several
months of testing, DARPA determined that the 4.2BSD version was
superior and would remain in 4.3BSD. (See also
History of the Internet.)
After 4.3BSD, it was determined that BSD would move away from the
aging VAX platform. The
Power
6/32 platform (codenamed "Tahoe") developed by
Computer Consoles Inc. seemed
promising at the time, but was abandoned by its developers shortly
thereafter. Nonetheless, the
4.3BSD-Tahoe port
(June 1988) proved valuable as it led to a separation of
machine-dependent and machine-independent code in BSD which would
improve the system's future portability.
Apart from
portability, the CSRG worked on an implementation of the OSI network protocol stack,
improvements to the kernel virtual memory system and (with Van Jacobson of LBL
) new TCP/IP algorithms to accommodate the growth of
the internet.
Until this point, all versions of BSD incorporated proprietary
AT&T Unix code and were therefore subject to an AT&T
software license. Source code licenses had become very expensive by
this point, and several outside parties had expressed interest in a
separate release of the networking code, which had been developed
entirely outside AT&T and would not be subject to the licensing
requirement. This led to
Networking Release 1
(
Net/1), which was made available to non-licensees
of AT&T code and was
freely
redistributable under the terms of the
BSD license. It was released in June 1989.
4.3BSD-Reno came in early 1990.
It was an interim
release during the early development of 4.4BSD, and its use was
considered a "gamble", hence the naming after the gambling center of Reno, Nevada
. This release was explicitly moving towards
POSIX compliance, and, according to some, away
from the BSD philosophy (as POSIX is very much based on System V,
and Reno was quite bloated compared to previous releases).
Among the
new features was an NFS
implementation from the University of Guelph
.
In August 2006,
Information Week magazine rated 4.3BSD as
the "Greatest Software Ever Written". They commented: "BSD 4.3
represents the single biggest theoretical undergirder of the
Internet."
Net/2 and legal troubles
After Net/1, BSD developer
Keith Bostic
proposed that more non-AT&T sections of the BSD system be
released under the same license as Net/1. To this end, he started a
project to reimplement most of the standard Unix utilities without
using the AT&T code. For example,
vi, which
had been based on the original Unix version of
ed, was rewritten as
nvi (new
vi). Within eighteen months, all the AT&T utilities had been
replaced, and it was determined that only a few AT&T files
remained in the kernel. These files were removed, and the result
was the June 1991 release of
Networking Release 2
(Net/2), a nearly complete operating system that was
freely distributable.
Net/2 was the basis for two separate ports of BSD to the
Intel 80386 architecture: the free
386BSD by
William
Jolitz and the
proprietary
BSD/386 (later renamed BSD/OS) by
Berkeley Software Design (BSDi).
386BSD itself was short-lived, but became the initial code base of
the
NetBSD and
FreeBSD
projects that were started shortly thereafter.
BSDi soon found itself in legal trouble with AT&T's
Unix System Laboratories
subsidiary, then the owners of the System V
copyright and the Unix
trademark. The
USL
v. BSDi lawsuit was
filed in 1992 and led to an
injunction on
the distribution of Net/2 until the validity of USL's copyright
claims on the source could be determined.
The lawsuit slowed development of the free-software descendants of
BSD for nearly two years while their legal status was in question,
and as a result systems based on the
Linux
kernel, which did not have such legal ambiguity, gained greater
support. Although not released until 1992, development of
386BSD predated that of Linux, and
Linus Torvalds has said that if 386BSD had
been available at the time, he probably would not have created
Linux.
4.4BSD and descendants
The lawsuit was settled in January 1994, largely in Berkeley's
favor. Of the 18,000 files in the Berkeley distribution, only 3 had
to be removed and 70 modified to show USL copyright notices. A
further condition of the settlement was that USL would not file
further lawsuits against users and distributors of the
Berkeley-owned code in the upcoming 4.4BSD release.
In June 1994,
4.4BSD was released in two forms:
the freely distributable
4.4BSD-Lite contained no
AT&T source, whereas
4.4BSD-Encumbered was
available, as earlier releases had been, only to AT&T
licensees.
The final release from Berkeley was 1995's
4.4BSD-Lite
Release 2, after which the CSRG was dissolved and
development of BSD at Berkeley ceased. Since then, several variants
based directly or indirectly on 4.4BSD-Lite (such as
FreeBSD,
NetBSD,
OpenBSD and
DragonFly
BSD) have been maintained.
In addition, the permissive nature of the BSD license has allowed
many other operating systems, both free and proprietary, to
incorporate BSD code. For example,
Microsoft Windows has used BSD-derived
code in its implementation of TCP/IP and bundles recompiled
versions of BSD's
command-line networking tools with
its current releases. Also
Darwin, the system on which
Apple's
Mac OS X is built, is partly
derived from 4.4BSD-Lite2 and FreeBSD. Various commercial
UNIXes, such as
Solaris, also contain varying
amounts of BSD code.
Technology
BSD pioneered many of the advances of modern computing. Berkeley's
Unix was the first Unix to include libraries supporting the
Internet Protocol stacks:
Berkeley sockets. By
integrating sockets with the Unix operating system's
file descriptors, it became almost as easy
to read and write data across a
network as it was to access a disk. The
AT&T laboratory eventually released their own
STREAMS library, which incorporated much of the same
functionality in a software stack with a better architecture, but
the wide distribution of the existing sockets library, together
with the unfortunate omission of a function call for polling a set
of open sockets equivalent to the
select call in the
Berkeley library, reduced the impact of the new
API. Early versions of BSD
were used to form
Sun Microsystems'
SunOS, founding the first wave of popular Unix
workstations.
Today, BSD continues to be used as a testbed for technology by
academic organizations, as well as finding uses in a lot of
commercial and free products and, increasingly, in
embedded devices. The general quality of its
source code, as well as its documentation (especially reference
manual pages, commonly referred to as
man pages), make it well-suited for many
purposes.
The permissive nature of the
BSD license
allows companies to distribute derived products as
proprietary software without exposing
source code and sometimes
intellectual property to competitors.
Searching for strings containing "University of California,
Berkeley" in the documentation of products, in the static data
sections of
binaries and
ROMs, or as part of other information about
a software program, will often show BSD code has been used. This
permissiveness also makes BSD code suitable for use in
open source products, and the license is
compatible with many other
open
source licenses.
BSD operating systems can run much native software of several other
operating systems on the same
architecture, using a binary
compatibility layer. Much simpler and
faster than
emulation, this allows, for
instance, applications intended for
Linux to
be run at effectively full speed. This makes BSDs not only suitable
for server environments, but also for workstation ones, given the
increasing availability of commercial or closed-source software for
Linux only. This also allows administrators to migrate legacy
commercial applications, which may have only supported commercial
Unix variants, to a more modern operating system, retaining the
functionality of such applications until they can be replaced by a
better alternative.
Current BSD operating system variants support many of the common
IEEE,
ANSI,
ISO, and
POSIX standards, while retaining most of the
traditional BSD behavior. Like
AT&T
Unix, the BSD kernel is
monolithic, meaning that device drivers in
the kernel run in
privileged mode,
as part of the core of the operating system.
Significant BSD descendants
- See also: :Category:BSD and
Comparison of BSD
operating systems
BSD has been the base of a large number of operating systems. Most
notable among these today are perhaps the major
open source BSDs:
FreeBSD,
NetBSD and
OpenBSD, which are all derived from
386BSD and
4.4BSD-Lite by
various routes. Both NetBSD and FreeBSD started life in 1993,
initially derived from 386BSD, but in 1994 migrating to a
4.4BSD-Lite code base. OpenBSD was
forked in 1995 from NetBSD. The
three most notable descendants in current use —sometimes known as
the BSDs— have themselves spawned a number of children,
including
DragonFly BSD,
FreeSBIE,
MirOS BSD,
DesktopBSD, and
PC-BSD. They are targeted at an array of systems for
different purposes and are common in government facilities,
universities and in commercial use.
A number of commercial operating systems
are also partly or wholly based on BSD or its descendants,
including Sun's SunOS and Apple
Inc.
's Mac OS X.
Most of the current BSD operating systems are
open source and available for download, free of
charge, under the
BSD License, the most
notable exception being Mac OS X. They also generally use a
monolithic kernel architecture,
apart from Mac OS X and DragonFly BSD which feature
hybrid kernels. The various open source BSD
projects generally develop the kernel and
userland programs and libraries together, the
source code being managed using a single central source
repository.
In the past, BSD was also used as a basis for several proprietary
versions of UNIX, such as
Sun's
SunOS,
Sequent's
Dynix,
NeXT's
NeXTSTEP,
DEC's
Ultrix and OSF/1 AXP (now
Tru64
UNIX). Of these, only the last is still currently supported in
its original form. Parts of NeXT's software became the foundation
for
Mac OS X, among the most commercially
successful BSD variants in the general market.
A selection of significant Unix versions and
Unix-like operating systems that descend from BSD
includes:
- FreeBSD, a major open source effort
focusing on performance and the x86 platform.
- DragonFly BSD, a fork of FreeBSD
to follow an alternative design, particularly related to SMP.
- PC-BSD and DesktopBSD, distributions of FreeBSD with
emphasis on ease of use and user friendly interfaces for the
desktop/laptop PC user.
- Nokia IPSO (IPSO SB variant), the
FreeBSD-based OS used in Nokia Firewall
Appliances.
- Juniper Networks JunOS, the
operating system for Juniper routers, a customized version of
FreeBSD, and a variety of other embedded operating systems
- Apple
Inc.
's Darwin,
the core of Mac OS X; built on the XNU kernel (part Mach, part
FreeBSD, part Apple-derived code) and a userland much of which comes from
FreeBSD
- NetApp's ONTAP GX, the operating system
for NetApp filers, is a customized version of FreeBSD with the
ONTAP GX architecture built on top.
- NetBSD, an open source BSD with an
emphasis on portability and clean design.
- OpenBSD, a 1995 fork of NetBSD, focuses on
portability, standardization, correctness, proactive security and
integrated cryptography.
- F5 Networks, All F5 BIGIP Appliances
use Free BSD as the underlying OS.
- DEC's Ultrix, the official version of
Unix for its PDP-11, VAX,
and DECstation systems
- OSF/1, a microkernel-based UNIX developed by the Open Software Foundation,
incorporating the Mach kernel and parts
of 4BSD
- Early versions of Sun
Microsystems SunOS (up to SunOS 4.1.4), an
enhanced version of 4BSD for the Sun Motorola 68k-based Sun-2 and Sun-3 systems, SPARC-based systems, and x86-based
Sun386i systems.
- NeXT NEXTSTEP and
OPENSTEP, based on the Mach kernel and
4BSD; the ancestor of Mac OS X
- 386BSD, the first open source BSD-based
operating system and the ancestor of most current BSD systems
- DEMOS, a Soviet
BSD clone
- BSD/OS, a (now defunct) proprietary BSD
for PCs
See also
References
- M.K. McKusick in Open Sources, O'Reilly.
- M.K. McKusick, M.J. Karels, Keith Sklower, Kevin Fall, Marc
Teitelbaum and Keith Bostic (1989). Current Research by The
Computer Systems Research Group of Berkeley. Proc. European Unix
Users Group.
Bibliography
- Marshall K. McKusick, Keith Bostic, Michael J. Karels, John S.
Quartermain, The Design and Implementation of the 4.4BSD
Operating System (Addison Wesley, 1996; ISBN
978-0-201-54979-9)
- Marshall K. McKusick, George V. Neville-Neil, The Design
and Implementation of the FreeBSD Operating System (Addison
Wesley, August 2, 2004; ISBN 978-0-201-70245-3)
- Samuel J. Leffler, Marshall K. McKusick, Michael J. Karels,
John S. Quarterman, The Design and
Implementation of the 4.3BSD UNIX Operating System (Addison
Wesley, November, 1989; ISBN 978-0-201-06196-3)
- Chris DiBona, Mark Stone, Sam Ockman, Open Source
(Organization), Brian Behlendorf and J. Scott Bradner,
Open Sources: Voices from the Open Source Revolution.
O'Reilly &
Associates, 1999. Trade paperback, 272 pages. ISBN
978-1-565-92582-3. Online version; Marshall
Kirk McKusick, chapter on BSD, "Twenty Years of Berkeley Unix - From
AT&T-Owned to Freely Redistributable"
- Peter H. Salus, The Daemon, the GNU & The
Penguin (Forthcoming - currently being serialised on the
Groklaw website)
- Peter H. Salus, A Quarter Century of UNIX
(Addison Wesley, June 1, 1994; ISBN 978-0-201-54777-1)
- Peter H. Salus, Casting the Net
(Addison-Wesley, March 1995; ISBN 978-0-201-87674-1)
External links