Style cleanup:

- wrap long lines
- put two spaces after a sentence stop
- put <info> and <title> on lines on their own
- in one instance, put the text right next to the <para> tag and not below it

I did not change the capitalizations in this file, so the file should not have
any visible changes.
This commit is contained in:
Benedict Reuschling 2018-06-17 16:57:57 +00:00
parent 836b254188
commit 9d68ff030b
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=51864

View file

@ -3,9 +3,11 @@
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<!-- $FreeBSD$ -->
<!-- The FreeBSD Documentation Project -->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
<info><title>Explaining BSD</title>
<article xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:lang="en">
<info>
<title>Explaining BSD</title>
<author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation>
<address><email>grog@FreeBSD.org</email></address>
@ -29,42 +31,43 @@
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>In the open source world, the word <quote>Linux</quote> is almost
synonymous with <quote>Operating System</quote>, but it is not the only
open source &unix; operating system.</para>
<para>In the open source world, the word <quote>Linux</quote> is
almost synonymous with <quote>Operating System</quote>, but it
is not the only open source &unix; operating system.</para>
<para>So what is the secret? Why is BSD not better known? This white
paper addresses these and other questions.</para>
<para>So what is the secret? Why is BSD not better known? This
white paper addresses these and other questions.</para>
<para>Throughout this paper, differences between BSD and Linux will be
noted <emphasis>like this</emphasis>.</para>
<para>Throughout this paper, differences between BSD and Linux
will be noted <emphasis>like this</emphasis>.</para>
</abstract>
</info>
<sect1 xml:id="what-is-bsd">
<title>What is BSD?</title>
<para>BSD stands for <quote>Berkeley Software Distribution</quote>. It is
the name of distributions of source code from the University of
California, Berkeley, which were originally extensions to AT&amp;T's
Research &unix; operating system. Several open source operating system
projects are based on a release of this source code known as
4.4BSD-Lite. In addition, they comprise a number of packages from other
Open Source projects, including notably the GNU project. The overall
<para>BSD stands for <quote>Berkeley Software
Distribution</quote>. It is the name of distributions of
source code from the University of California, Berkeley, which
were originally extensions to AT&amp;T's Research &unix;
operating system. Several open source operating system projects
are based on a release of this source code known as 4.4BSD-Lite.
In addition, they comprise a number of packages from other Open
Source projects, including notably the GNU project. The overall
operating system comprises:</para>
<itemizedlist>
<listitem>
<para>The BSD kernel, which handles process scheduling, memory
management, symmetric multi-processing (SMP), device drivers,
etc.</para>
management, symmetric multi-processing (SMP), device
drivers, etc.</para>
</listitem>
<listitem>
<para>The C library, the base API for the system.</para>
<para><emphasis>The BSD C library is based on code from Berkeley, not
the GNU project.</emphasis></para>
<para><emphasis>The BSD C library is based on code from
Berkeley, not the GNU project.</emphasis></para>
</listitem>
<listitem>
@ -76,16 +79,17 @@
</listitem>
<listitem>
<para>The X Window system, which handles graphical display.</para>
<para>The X Window system, which handles graphical
display.</para>
<para>The X Window system used in most versions of BSD is maintained
by the
<link xlink:href="http://www.X.org/">X.Org project</link>.
&os; allows the user to choose from a variety of desktop
environments, such as <application>Gnome</application>,
<application>KDE</application>, or <application>Xfce</application>;
and lightweight window managers like
<application>Openbox</application>,
<para>The X Window system used in most versions of BSD is
maintained by the <link xlink:href="http://www.X.org/">X.Org
project</link>. &os; allows the user to choose from a
variety of desktop environments, such as
<application>Gnome</application>,
<application>KDE</application>, or
<application>Xfce</application>; and lightweight window
managers like <application>Openbox</application>,
<application>Fluxbox</application>, or
<application>Awesome</application>.</para>
</listitem>
@ -100,71 +104,77 @@
<title>What, a real &unix;?</title>
<para>The BSD operating systems are not clones, but open source
derivatives of AT&amp;T's Research &unix; operating system, which is also
the ancestor of the modern &unix; System V. This may surprise you. How
could that happen when AT&amp;T has never released its code as open
source?</para>
derivatives of AT&amp;T's Research &unix; operating system,
which is also the ancestor of the modern &unix; System V. This
may surprise you. How could that happen when AT&amp;T has never
released its code as open source?</para>
<para>It is true that AT&amp;T &unix; is not open source, and in a copyright
sense BSD is very definitely <emphasis>not</emphasis> &unix;, but on the
other hand, AT&amp;T has imported sources from other projects,
noticeably the Computer Sciences Research Group (CSRG) of the University of
California in Berkeley, CA. Starting in 1976, the CSRG started
releasing tapes of their software, calling them <emphasis>Berkeley
Software Distribution</emphasis> or <emphasis>BSD</emphasis>.</para>
<para>It is true that AT&amp;T &unix; is not open source, and in a
copyright sense BSD is very definitely <emphasis>not</emphasis>
&unix;, but on the other hand, AT&amp;T has imported sources
from other projects, noticeably the Computer Sciences Research
Group (CSRG) of the University of California in Berkeley, CA.
Starting in 1976, the CSRG started releasing tapes of their
software, calling them <emphasis>Berkeley Software
Distribution</emphasis> or <emphasis>BSD</emphasis>.</para>
<para>Initial BSD releases consisted mainly of user programs, but that
changed dramatically when the CSRG landed a contract with the Defense
Advanced Research Projects Agency (DARPA) to upgrade the communications
protocols on their network, ARPANET. The new protocols were known as
the <emphasis>Internet Protocols</emphasis>, later
<emphasis>TCP/IP</emphasis> after the most important protocols. The
first widely distributed implementation was part of 4.2BSD, in
1982.</para>
<para>Initial BSD releases consisted mainly of user programs, but
that changed dramatically when the CSRG landed a contract with
the Defense Advanced Research Projects Agency (DARPA) to upgrade
the communications protocols on their network, ARPANET. The new
protocols were known as the <emphasis>Internet
Protocols</emphasis>, later <emphasis>TCP/IP</emphasis> after
the most important protocols. The first widely distributed
implementation was part of 4.2BSD, in 1982.</para>
<para>In the course of the 1980s, a number of new workstation companies
sprang up. Many preferred to license &unix; rather than developing
operating systems for themselves. In particular, Sun Microsystems
licensed &unix; and implemented a version of 4.2BSD, which they called
&sunos;. When AT&amp;T themselves were allowed to sell &unix; commercially,
they started with a somewhat bare-bones implementation called System
III, to be quickly followed by System V. The System V code base did not
include networking, so all implementations included additional software
from the BSD, including the TCP/IP software, but also utilities such as
the <emphasis>csh</emphasis> shell and the <emphasis>vi</emphasis>
editor. Collectively, these enhancements were known as the
<emphasis>Berkeley Extensions</emphasis>.</para>
<para>In the course of the 1980s, a number of new workstation
companies sprang up. Many preferred to license &unix; rather
than developing operating systems for themselves. In
particular, Sun Microsystems licensed &unix; and implemented a
version of 4.2BSD, which they called &sunos;. When AT&amp;T
themselves were allowed to sell &unix; commercially, they
started with a somewhat bare-bones implementation called System
III, to be quickly followed by System V. The System V code base
did not include networking, so all implementations included
additional software from the BSD, including the TCP/IP software,
but also utilities such as the <emphasis>csh</emphasis> shell
and the <emphasis>vi</emphasis> editor. Collectively, these
enhancements were known as the <emphasis>Berkeley
Extensions</emphasis>.</para>
<para>The BSD tapes contained AT&amp;T source code and thus required a
&unix; source license. By 1990, the CSRG's funding was running out, and
it faced closure. Some members of the group decided to release the BSD
code, which was Open Source, without the AT&amp;T proprietary code.
This finally happened with the <emphasis>Networking Tape 2</emphasis>,
usually known as <emphasis>Net/2</emphasis>. Net/2 was not a complete
operating system: about 20% of the kernel code was missing. One of the
CSRG members, William F. Jolitz, wrote the remaining code and released
it in early 1992 as <emphasis>386BSD</emphasis>. At the same time,
another group of ex-CSRG members formed a commercial company called
<link xlink:href="http://www.bsdi.com/">Berkeley Software Design Inc.</link>
and released a beta version of an operating system called
<link xlink:href="http://www.bsdi.com/">BSD/386</link>, which was based on
the same sources. The name of the operating system was later changed
to BSD/OS.</para>
<para>The BSD tapes contained AT&amp;T source code and thus
required a &unix; source license. By 1990, the CSRG's funding
was running out, and it faced closure. Some members of the
group decided to release the BSD code, which was Open Source,
without the AT&amp;T proprietary code. This finally happened
with the <emphasis>Networking Tape 2</emphasis>, usually known
as <emphasis>Net/2</emphasis>. Net/2 was not a complete
operating system: about 20% of the kernel code was missing. One
of the CSRG members, William F. Jolitz, wrote the remaining code
and released it in early 1992 as <emphasis>386BSD</emphasis>.
At the same time, another group of ex-CSRG members formed a
commercial company called <link
xlink:href="http://www.bsdi.com/">Berkeley Software Design
Inc.</link> and released a beta version of an operating system
called <link xlink:href="http://www.bsdi.com/">BSD/386</link>,
which was based on the same sources. The name of the operating
system was later changed to BSD/OS.</para>
<para>386BSD never became a stable operating system. Instead, two other
projects split off from it in 1993:
<link xlink:href="http://www.NetBSD.org/">NetBSD</link> and
<link xlink:href="&url.base;/index.html">FreeBSD</link>. The two projects
originally diverged due to differences in patience waiting for
improvements to 386BSD: the NetBSD people started early in the year,
and the first version of FreeBSD was not ready until the end of the
year. In the meantime, the code base had diverged sufficiently to
make it difficult to merge. In addition, the projects had different
aims, as we will see below. In 1996,
<link xlink:href="http://www.OpenBSD.org/">OpenBSD</link> split off from
NetBSD, and in 2003,
<link xlink:href="http://www.dragonflybsd.org/">DragonFlyBSD</link> split
off from FreeBSD.</para>
<para>386BSD never became a stable operating system. Instead, two
other projects split off from it in 1993: <link
xlink:href="http://www.NetBSD.org/">NetBSD</link> and <link
xlink:href="&url.base;/index.html">FreeBSD</link>. The two
projects originally diverged due to differences in patience
waiting for improvements to 386BSD: the NetBSD people started
early in the year, and the first version of FreeBSD was not
ready until the end of the year. In the meantime, the code base
had diverged sufficiently to make it difficult to merge. In
addition, the projects had different aims, as we will see below.
In 1996, <link
xlink:href="http://www.OpenBSD.org/">OpenBSD</link> split off
from NetBSD, and in 2003, <link
xlink:href="http://www.dragonflybsd.org/">DragonFlyBSD</link>
split off from FreeBSD.</para>
</sect1>
<sect1 xml:id="why-is-bsd-not-better-known">
@ -174,39 +184,41 @@
<orderedlist>
<listitem>
<para>The BSD developers are often more interested in polishing their
code than marketing it.</para>
<para>The BSD developers are often more interested in
polishing their code than marketing it.</para>
</listitem>
<listitem>
<para>Much of Linux's popularity is due to factors external to the
Linux projects, such as the press, and to companies formed to
provide Linux services. Until recently, the open source BSDs had no
such proponents.</para>
<para>Much of Linux's popularity is due to factors external to
the Linux projects, such as the press, and to companies
formed to provide Linux services. Until recently, the open
source BSDs had no such proponents.</para>
</listitem>
<listitem>
<para>BSD developers tend to be more experienced than Linux
developers, and have less interest in making the system easy to use.
Newcomers tend to feel more comfortable with Linux.</para>
developers, and have less interest in making the system easy
to use. Newcomers tend to feel more comfortable with
Linux.</para>
</listitem>
<listitem>
<para>In 1992, AT&amp;T sued
<link xlink:href="http://www.bsdi.com/">BSDI</link>,
the vendor of BSD/386, alleging that the product contained
AT&amp;T-copyrighted code. The case was settled out of court in
1994, but the spectre of the litigation continues to haunt people.
In March 2000 an article published on the web claimed
that the court case had been <quote>recently settled</quote>.</para>
<para>In 1992, AT&amp;T sued <link
xlink:href="http://www.bsdi.com/">BSDI</link>, the vendor
of BSD/386, alleging that the product contained
AT&amp;T-copyrighted code. The case was settled out of
court in 1994, but the spectre of the litigation continues
to haunt people. In March 2000 an article published on the
web claimed that the court case had been <quote>recently
settled</quote>.</para>
<para>One detail that the lawsuit did clarify is the naming: in the
1980s, BSD was known as <quote>BSD &unix;</quote>. With the
elimination of the last vestige of AT&amp;T code from BSD, it
also lost the right to the name &unix;. Thus you will see
references in book titles to <quote>the 4.3BSD &unix; operating
system</quote> and <quote>the 4.4BSD operating
system</quote>.</para>
<para>One detail that the lawsuit did clarify is the naming:
in the 1980s, BSD was known as <quote>BSD &unix;</quote>.
With the elimination of the last vestige of AT&amp;T code
from BSD, it also lost the right to the name &unix;. Thus
you will see references in book titles to <quote>the 4.3BSD
&unix; operating system</quote> and <quote>the 4.4BSD
operating system</quote>.</para>
</listitem>
</orderedlist>
</sect1>
@ -214,113 +226,123 @@
<sect1 xml:id="comparing-bsd-and-linux">
<title>Comparing BSD and Linux</title>
<para>So what is really the difference between, say, Debian Linux and
FreeBSD? For the average user, the difference is surprisingly small:
Both are &unix; like operating systems. Both are developed by
non-commercial projects (this does not apply to many other Linux
distributions, of course). In the following section, we will look at BSD
and compare it to Linux. The description applies most closely to
FreeBSD, which accounts for an estimated 80% of the BSD installations,
but the differences from NetBSD, OpenBSD and DragonFlyBSD are small.
</para>
<para>So what is really the difference between, say, Debian Linux
and FreeBSD? For the average user, the difference is
surprisingly small: Both are &unix; like operating systems.
Both are developed by non-commercial projects (this does not
apply to many other Linux distributions, of course). In the
following section, we will look at BSD and compare it to Linux.
The description applies most closely to FreeBSD, which accounts
for an estimated 80% of the BSD installations, but the
differences from NetBSD, OpenBSD and DragonFlyBSD are
small.</para>
<sect2>
<title>Who owns BSD?</title>
<para>No one person or corporation owns BSD. It is created and
distributed by a community of highly technical and committed
contributors all over the world. Some of the components of BSD are
Open Source projects in their own right and managed by different
project maintainers.</para>
contributors all over the world. Some of the components of
BSD are Open Source projects in their own right and managed by
different project maintainers.</para>
</sect2>
<sect2>
<title>How is BSD developed and updated?</title>
<para>The BSD kernels are developed and updated following the Open
Source development model. Each project maintains a publicly
accessible <emphasis>source tree</emphasis>
which contains all source files for the
project, including documentation and other incidental files.
Users can obtain a complete copy of any version.</para>
<para>The BSD kernels are developed and updated following the
Open Source development model. Each project maintains a
publicly accessible <emphasis>source tree</emphasis> which
contains all source files for the project, including
documentation and other incidental files. Users can obtain a
complete copy of any version.</para>
<para>A large number of developers worldwide contribute to improvements
to BSD. They are divided into three kinds:</para>
<para>A large number of developers worldwide contribute to
improvements to BSD. They are divided into three
kinds:</para>
<itemizedlist>
<listitem>
<para><firstterm>Contributors</firstterm> write code or documentation.
They are not permitted to commit (add code) directly to the source
tree. In order for their code to be included in the system, it
must be reviewed and checked in by a registered developer, known
as a <emphasis>committer</emphasis>.</para>
<para><firstterm>Contributors</firstterm> write code or
documentation. They are not permitted to commit (add
code) directly to the source tree. In order for their
code to be included in the system, it must be reviewed and
checked in by a registered developer, known as a
<emphasis>committer</emphasis>.</para>
</listitem>
<listitem>
<para><firstterm>Committers</firstterm> are developers with write
access to the source tree. In order to become a committer, an
individual must show ability in the area in which they are
active.</para>
<para><firstterm>Committers</firstterm> are developers with
write access to the source tree. In order to become a
committer, an individual must show ability in the area in
which they are active.</para>
<para>
It is at the individual committer's discretion whether they should
obtain authority before committing changes to the source tree. In
general, an experienced committer may make changes which are
obviously correct without obtaining consensus. For example, a
documentation project committer may correct typographical or
grammatical errors without review. On the other hand, developers
making far-reaching or complicated changes are expected to submit
their changes for review before committing them. In extreme
cases, a core team member with a function such as Principal
Architect may order that changes be removed from the tree, a
process known as <firstterm>backing out</firstterm>. All committers
receive mail describing each individual commit, so it is not
possible to commit secretly.</para>
<para>It is at the individual committer's discretion whether
they should obtain authority before committing changes to
the source tree. In general, an experienced committer may
make changes which are obviously correct without obtaining
consensus. For example, a documentation project committer
may correct typographical or grammatical errors without
review. On the other hand, developers making far-reaching
or complicated changes are expected to submit their
changes for review before committing them. In extreme
cases, a core team member with a function such as
Principal Architect may order that changes be removed from
the tree, a process known as <firstterm>backing
out</firstterm>. All committers receive mail describing
each individual commit, so it is not possible to commit
secretly.</para>
</listitem>
<listitem>
<para>The <firstterm>Core team</firstterm>. FreeBSD and
NetBSD each have a core team which manages the project. The
core teams developed in the course of the projects, and their role
is not always well-defined. It is not necessary to be a developer
in order to be a core team member, though it is normal. The rules
for the core team vary from one project to the other, but in
general they have more say in the direction of the project than
NetBSD each have a core team which manages the project.
The core teams developed in the course of the projects,
and their role is not always well-defined. It is not
necessary to be a developer in order to be a core team
member, though it is normal. The rules for the core team
vary from one project to the other, but in general they
have more say in the direction of the project than
non-core team members have.</para>
</listitem>
</itemizedlist>
<para>This arrangement differs from Linux in a number of ways:</para>
<para>This arrangement differs from Linux in a number of
ways:</para>
<orderedlist>
<listitem>
<para>No one person controls the content of the system. In
practice, this difference is overrated, since the Principal Architect
can require that code be backed out, and even in the Linux project
several people are permitted to make changes.</para>
practice, this difference is overrated, since the
Principal Architect can require that code be backed out,
and even in the Linux project several people are permitted
to make changes.</para>
</listitem>
<listitem>
<para>On the other hand, there <emphasis>is</emphasis> a central
repository, a single place where you can find the entire operating
system sources, including all older versions.</para>
<para>On the other hand, there <emphasis>is</emphasis> a
central repository, a single place where you can find the
entire operating system sources, including all older
versions.</para>
</listitem>
<listitem>
<para>BSD projects maintain the entire <quote>Operating
System</quote>, not only the kernel. This distinction is only
marginally useful: neither BSD nor Linux is useful without
applications. The applications used under BSD are frequently the
same as the applications used under Linux.</para>
System</quote>, not only the kernel. This distinction
is only marginally useful: neither BSD nor Linux is useful
without applications. The applications used under BSD are
frequently the same as the applications used under
Linux.</para>
</listitem>
<listitem>
<para>As a result of the formalized maintenance of a single SVN
source tree, BSD development is clear, and it is possible to
access any version of the system by release number or by date.
SVN also allows incremental updates to the system: for example,
the FreeBSD repository is updated about 100 times a day. Most of
these changes are small.</para>
<para>As a result of the formalized maintenance of a single
SVN source tree, BSD development is clear, and it is
possible to access any version of the system by release
number or by date. SVN also allows incremental updates to
the system: for example, the FreeBSD repository is updated
about 100 times a day. Most of these changes are
small.</para>
</listitem>
</orderedlist>
</sect2>
@ -328,105 +350,115 @@
<sect2>
<title>BSD releases</title>
<para>FreeBSD, NetBSD and OpenBSD provide the system in three different
<quote>releases</quote>. As with Linux, releases are assigned a
number such as 1.4.1 or 3.5. In addition, the version number has a
suffix indicating its purpose:</para>
<para>FreeBSD, NetBSD and OpenBSD provide the system in three
different <quote>releases</quote>. As with Linux, releases
are assigned a number such as 1.4.1 or 3.5. In addition, the
version number has a suffix indicating its purpose:</para>
<orderedlist>
<listitem>
<para>The development version of the system is called
<firstterm>CURRENT</firstterm>. FreeBSD assigns a number to
CURRENT, for example FreeBSD 5.0-CURRENT. NetBSD uses a slightly
different naming scheme and appends a single-letter suffix which
indicates changes in the internal interfaces, for example NetBSD
1.4.3G. OpenBSD does not assign a number (<quote>OpenBSD-current</quote>).
All new development on the system goes into this branch.</para>
<firstterm>CURRENT</firstterm>. FreeBSD assigns a number
to CURRENT, for example FreeBSD 5.0-CURRENT. NetBSD uses
a slightly different naming scheme and appends a
single-letter suffix which indicates changes in the
internal interfaces, for example NetBSD 1.4.3G. OpenBSD
does not assign a number (<quote>OpenBSD-current</quote>).
All new development on the system goes into this
branch.</para>
</listitem>
<listitem>
<para>At regular intervals, between two and four times a year, the
projects bring out a <firstterm>RELEASE</firstterm> version of the
system, which is available on CD-ROM and for free download from
FTP sites, for example OpenBSD 2.6-RELEASE or NetBSD 1.4-RELEASE.
The RELEASE version is intended for end users and is the normal
version of the system. NetBSD also provides <emphasis>patch
releases</emphasis> with a third digit, for example NetBSD
1.4.2.</para>
<para>At regular intervals, between two and four times a
year, the projects bring out a
<firstterm>RELEASE</firstterm> version of the system,
which is available on CD-ROM and for free download from
FTP sites, for example OpenBSD 2.6-RELEASE or NetBSD
1.4-RELEASE. The RELEASE version is intended for end
users and is the normal version of the system. NetBSD
also provides <emphasis>patch releases</emphasis> with a
third digit, for example NetBSD 1.4.2.</para>
</listitem>
<listitem>
<para>As bugs are found in a RELEASE version, they are fixed, and
the fixes are added to the SVN tree. In FreeBSD, the resultant
version is called the <firstterm>STABLE</firstterm> version, while in NetBSD and OpenBSD
it continues to be called the RELEASE version. Smaller new
features can also be added to this branch after a period of test
in the CURRENT branch. Security and other important bug fixes
are also applied to all supported RELEASE versions.</para>
<para>As bugs are found in a RELEASE version, they are
fixed, and the fixes are added to the SVN tree. In
FreeBSD, the resultant version is called the
<firstterm>STABLE</firstterm> version, while in NetBSD and
OpenBSD it continues to be called the RELEASE version.
Smaller new features can also be added to this branch
after a period of test in the CURRENT branch. Security
and other important bug fixes are also applied to all
supported RELEASE versions.</para>
</listitem>
</orderedlist>
<para><emphasis>By contrast, Linux maintains two separate code trees:
the stable version and the development version. Stable versions
have an even minor version number, such as 2.0, 2.2 or 2.4.
Development versions have an odd minor version number, such as 2.1,
2.3 or 2.5. In each case, the number is followed by a further
number designating the exact release. In addition, each vendor adds
their own userland programs and utilities, so the name of the
distribution is also important. Each distribution vendor also
assigns version numbers to the distribution, so a complete
description might be something like <quote>TurboLinux 6.0 with kernel
2.2.14</quote></emphasis></para>
<para><emphasis>By contrast, Linux maintains two separate code
trees: the stable version and the development version.
Stable versions have an even minor version number, such as
2.0, 2.2 or 2.4. Development versions have an odd minor
version number, such as 2.1, 2.3 or 2.5. In each case, the
number is followed by a further number designating the exact
release. In addition, each vendor adds their own userland
programs and utilities, so the name of the distribution is
also important. Each distribution vendor also assigns
version numbers to the distribution, so a complete
description might be something like <quote>TurboLinux 6.0
with kernel 2.2.14</quote></emphasis></para>
</sect2>
<sect2>
<title>What versions of BSD are available?</title>
<para>In contrast to the numerous Linux distributions, there are only
four major open source BSDs. Each BSD project maintains its own source
tree and its own kernel. In practice, though, there appear to be
fewer divergences between the userland code of the projects than there
is in Linux.</para>
<para>In contrast to the numerous Linux distributions, there are
only four major open source BSDs. Each BSD project maintains
its own source tree and its own kernel. In practice, though,
there appear to be fewer divergences between the userland code
of the projects than there is in Linux.</para>
<para>It is difficult to categorize the goals of each project: the
differences are very subjective. Basically,</para>
<para>It is difficult to categorize the goals of each project:
the differences are very subjective. Basically,</para>
<itemizedlist>
<listitem>
<para>&os; aims for high performance and ease of use by
end users, and is a favourite of web content providers. It runs
on a <link xlink:href="&url.base;/platforms/">number of platforms</link>
and has significantly more users than the other projects.</para>
<para>&os; aims for high performance and ease of use by end
users, and is a favourite of web content providers. It
runs on a <link xlink:href="&url.base;/platforms/">number
of platforms</link> and has significantly more users
than the other projects.</para>
</listitem>
<listitem>
<para>NetBSD aims for maximum portability: <quote>of course it runs
NetBSD</quote>. It runs on machines from palmtops to large
servers, and has even been used on NASA space missions. It is a
particularly good choice for running on old non-&intel;
hardware.</para>
<para>NetBSD aims for maximum portability: <quote>of course
it runs NetBSD</quote>. It runs on machines from
palmtops to large servers, and has even been used on NASA
space missions. It is a particularly good choice for
running on old non-&intel; hardware.</para>
</listitem>
<listitem>
<para>OpenBSD aims for security and code purity: it uses a
combination of the open source concept and rigorous code reviews
to create a system which is demonstrably correct, making it the
choice of security-conscious organizations such as banks, stock
exchanges and US Government departments. Like NetBSD, it runs on
a number of platforms.</para>
combination of the open source concept and rigorous code
reviews to create a system which is demonstrably correct,
making it the choice of security-conscious organizations
such as banks, stock exchanges and US Government
departments. Like NetBSD, it runs on a number of
platforms.</para>
</listitem>
<listitem>
<para>DragonFlyBSD aims for high performance and scalability under
everything from a single-node UP system to a massively clustered system.
DragonFlyBSD has several long-range technical goals, but focus lies on
providing a SMP-capable infrastructure that is easy to understand,
<para>DragonFlyBSD aims for high performance and scalability
under everything from a single-node UP system to a
massively clustered system. DragonFlyBSD has several
long-range technical goals, but focus lies on providing a
SMP-capable infrastructure that is easy to understand,
maintain and develop for.</para>
</listitem>
</itemizedlist>
<para>There are also two additional BSD &unix; operating systems which are not
open source, BSD/OS and Apple's &macos; X:</para>
<para>There are also two additional BSD &unix; operating systems
which are not open source, BSD/OS and Apple's &macos;
X:</para>
<itemizedlist>
<listitem>
@ -435,23 +467,24 @@
available at relatively low cost. It resembled FreeBSD in
many ways. Two years after the acquisition of BSDi by
Wind River Systems, BSD/OS failed to survive as an
independent product. Support and source code may still
be available from Wind River, but all new development is
independent product. Support and source code may still be
available from Wind River, but all new development is
focused on the VxWorks embedded operating system.</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.apple.com/macosx/server/">&macos;
X</link> is the latest version of the operating system for
&apple;'s
&mac; line. The BSD core of this operating
system, <link xlink:href="http://developer.apple.com/darwin/">Darwin</link>,
is available as a fully functional open source operating
system for x86 and PPC computers. The Aqua/Quartz
graphics system and many other proprietary aspects of
&macos; X remain closed-source, however. Several Darwin
developers are also FreeBSD committers, and
vice-versa.</para>
<para><link
xlink:href="http://www.apple.com/macosx/server/">&macos;
X</link> is the latest version of the operating system
for &apple;'s &mac; line. The BSD core of this operating
system, <link
xlink:href="http://developer.apple.com/darwin/">Darwin</link>,
is available as a fully functional open source operating
system for x86 and PPC computers. The Aqua/Quartz
graphics system and many other proprietary aspects of
&macos; X remain closed-source, however. Several Darwin
developers are also FreeBSD committers, and
vice-versa.</para>
</listitem>
</itemizedlist>
</sect2>
@ -460,58 +493,63 @@
<title>How does the BSD license differ from the GNU Public
license?</title>
<para>Linux is available under the
<link xlink:href="http://www.fsf.org/copyleft/gpl.html">GNU General Public
License</link> (GPL), which is designed to eliminate closed
source software. In particular, any derivative work of a product
released under the GPL must also be supplied with source code if
requested. By contrast, the
<link xlink:href="http://www.opensource.org/licenses/bsd-license.html">BSD
license</link> is less restrictive: binary-only distributions are
allowed. This is particularly attractive for embedded
applications.</para>
<para>Linux is available under the <link
xlink:href="http://www.fsf.org/copyleft/gpl.html">GNU
General Public License</link> (GPL), which is designed to
eliminate closed source software. In particular, any
derivative work of a product released under the GPL must also
be supplied with source code if requested. By contrast, the
<link
xlink:href="http://www.opensource.org/licenses/bsd-license.html">BSD
license</link> is less restrictive: binary-only
distributions are allowed. This is particularly attractive
for embedded applications.</para>
</sect2>
<sect2>
<title>What else should I know?</title>
<para>Since fewer applications are available for BSD than Linux, the BSD
developers created a Linux compatibility package, which allows Linux
programs to run under BSD. The package includes both kernel
modifications, in order to correctly perform Linux system calls, and
Linux compatibility files such as the C library. There is no
noticeable difference in execution speed between a Linux application
running on a Linux machine and a Linux application running on a BSD
machine of the same speed.</para>
<para>Since fewer applications are available for BSD than Linux,
the BSD developers created a Linux compatibility package,
which allows Linux programs to run under BSD. The package
includes both kernel modifications, in order to correctly
perform Linux system calls, and Linux compatibility files such
as the C library. There is no noticeable difference in
execution speed between a Linux application running on a Linux
machine and a Linux application running on a BSD machine of
the same speed.</para>
<para>The <quote>all from one supplier</quote> nature of BSD means that
upgrades are much easier to handle than is frequently the case with
Linux. BSD handles library version upgrades by providing
compatibility modules for earlier library versions, so it is possible
to run binaries which are several years old with no problems.</para>
<para>The <quote>all from one supplier</quote> nature of BSD
means that upgrades are much easier to handle than is
frequently the case with Linux. BSD handles library version
upgrades by providing compatibility modules for earlier
library versions, so it is possible to run binaries which are
several years old with no problems.</para>
</sect2>
<sect2>
<title>Which should I use, BSD or Linux?</title>
<para>What does this all mean in practice? Who should use BSD, who
should use Linux?</para>
<para>What does this all mean in practice? Who should use BSD,
who should use Linux?</para>
<para>This is a very difficult question to answer. Here are some
guidelines:</para>
<para>This is a very difficult question to answer. Here are
some guidelines:</para>
<itemizedlist>
<listitem>
<para><quote>If it ain't broke, don't fix it</quote>: If you already
use an open source operating system, and you are happy with it,
there is probably no good reason to change.</para>
<para><quote>If it ain't broke, don't fix it</quote>: If you
already use an open source operating system, and you are
happy with it, there is probably no good reason to
change.</para>
</listitem>
<listitem>
<para>BSD systems, in particular FreeBSD, can have notably higher
performance than Linux. But this is not across the board. In many
cases, there is little or no difference in performance. In some
cases, Linux may perform better than FreeBSD.</para>
<para>BSD systems, in particular FreeBSD, can have notably
higher performance than Linux. But this is not across the
board. In many cases, there is little or no difference in
performance. In some cases, Linux may perform better than
FreeBSD.</para>
</listitem>
<listitem>
@ -521,38 +559,43 @@
</listitem>
<listitem>
<para>BSD projects have a better reputation for the quality and
completeness of their documentation. The various documentation
projects aim to provide actively updated documentation, in many
languages, and covering all aspects of the system.</para>
<para>BSD projects have a better reputation for the quality
and completeness of their documentation. The various
documentation projects aim to provide actively updated
documentation, in many languages, and covering all aspects
of the system.</para>
</listitem>
<listitem>
<para>The BSD license may be more attractive than the GPL.</para>
</listitem>
<para>The BSD license may be more attractive than the
GPL.</para> </listitem>
<listitem>
<para>BSD can execute most Linux binaries, while Linux can not execute BSD
binaries. Many BSD implementations can also execute binaries
from other &unix; like systems. As a result, BSD may present an
easier migration route from other systems than
Linux would.</para>
<para>BSD can execute most Linux binaries, while Linux can
not execute BSD binaries. Many BSD implementations can
also execute binaries from other &unix; like systems. As
a result, BSD may present an easier migration route from
other systems than Linux would.</para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>Who provides support, service, and training for BSD?</title>
<title>Who provides support, service, and training for
BSD?</title>
<para>BSDi / <link xlink:href="http://www.freebsdmall.com">FreeBSD
Mall, Inc.</link> have been providing support contracts for
<para>BSDi / <link
xlink:href="http://www.freebsdmall.com">FreeBSD Mall,
Inc.</link> have been providing support contracts for
FreeBSD for nearly a decade.</para>
<para>In addition, each of the projects has a list of consultants for
hire:
<link xlink:href="&url.base;/commercial/consult_bycat.html">FreeBSD</link>,
<link xlink:href="http://www.netbsd.org/gallery/consultants.html">NetBSD</link>,
and <link xlink:href="http://www.openbsd.org/support.html">OpenBSD</link>.</para>
<para>In addition, each of the projects has a list of
consultants for hire: <link
xlink:href="&url.base;/commercial/consult_bycat.html">FreeBSD</link>,
<link
xlink:href="http://www.netbsd.org/gallery/consultants.html">NetBSD</link>,
and <link
xlink:href="http://www.openbsd.org/support.html">OpenBSD</link>.</para>
</sect2>
</sect1>
</article>