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:
parent
836b254188
commit
9d68ff030b
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=51864
1 changed files with 350 additions and 307 deletions
|
@ -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&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&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&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&T has never released its code as open
|
||||
source?</para>
|
||||
derivatives of AT&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&T has never
|
||||
released its code as open source?</para>
|
||||
|
||||
<para>It is true that AT&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&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&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&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&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&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&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&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&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&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&T sued
|
||||
<link xlink:href="http://www.bsdi.com/">BSDI</link>,
|
||||
the vendor of BSD/386, alleging that the product contained
|
||||
AT&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&T sued <link
|
||||
xlink:href="http://www.bsdi.com/">BSDI</link>, the vendor
|
||||
of BSD/386, alleging that the product contained
|
||||
AT&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&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&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>
|
||||
|
|
Loading…
Reference in a new issue