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