Add "Explaining BSD", an article by Greg Lehey.
This commit is contained in:
parent
2416674cec
commit
12450ef32d
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=9009
4 changed files with 1130 additions and 0 deletions
23
en_US.ISO8859-1/articles/explaining-bsd/Makefile
Normal file
23
en_US.ISO8859-1/articles/explaining-bsd/Makefile
Normal file
|
@ -0,0 +1,23 @@
|
|||
#
|
||||
# $FreeBSD: doc/en_US.ISO_8859-1/articles/freebsd-questions/Makefile,v 1.1 2001/02/16 00:22:33 nik Exp $
|
||||
#
|
||||
|
||||
MAINTAINER=grog@FreeBSD.org
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
SRCS= article.sgml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
542
en_US.ISO8859-1/articles/explaining-bsd/article.sgml
Normal file
542
en_US.ISO8859-1/articles/explaining-bsd/article.sgml
Normal file
|
@ -0,0 +1,542 @@
|
|||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
|
||||
%man;
|
||||
]>
|
||||
|
||||
<article>
|
||||
<articleinfo>
|
||||
<title>Explaining BSD</title>
|
||||
|
||||
<author>
|
||||
<firstname>Greg</firstname>
|
||||
<surname>Lehey</surname>
|
||||
|
||||
<affiliation>
|
||||
<address><email>grog@FreeBSD.org</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
|
||||
<abstract>
|
||||
<para>In the open source world, the word <quote>Linux</quote> is almost
|
||||
synonymous with <quote>Operating System</quote>, but it's not the only
|
||||
open source <trademark>UNIX</trademark> operating system. According
|
||||
to the <ulink
|
||||
url="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
|
||||
Operating System Counter</ulink>, as of April 1999 31.3% of the
|
||||
world's network connected machines run Linux. 14.6% run BSD UNIX.
|
||||
Some of the world's largest web operations, such as <ulink
|
||||
url="http://www.yahoo.com">Yahoo!</ulink>, run BSD. The world's
|
||||
busiest ftp server, <ulink
|
||||
url="ftp://ftp.cdrom.com">ftp.cdrom.com</ulink>, uses BSD to
|
||||
transfer 1.4 TB of data a day. Clearly this is not a niche
|
||||
market: BSD is a well-kept secret.</para>
|
||||
|
||||
<para>So what's the secret? Why isn't BSD 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>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<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
|
||||
operating system comprises:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The BSD kernel, which handles process scheduling, memory
|
||||
management, symmetric multi-processing (SMP), device drivers,
|
||||
etc.</para>
|
||||
|
||||
<para><emphasis>Unlike the Linux kernel, there are several different
|
||||
BSD kernels with differing capabilities.</emphasis></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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Utilities such as shells, file utilities, compilers and
|
||||
linkers.</para>
|
||||
|
||||
<para><emphasis>Some of the utilities are derived from the GNU
|
||||
project, others are not.</emphasis></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The X Window system, which handles graphical display.</para>
|
||||
|
||||
<para>The X Window system used in most versions of BSD is maintained
|
||||
by a separate project, the
|
||||
<ulink url="http://www.XFree86.org/">XFree86 project</ulink>.
|
||||
This is the same code as Linux uses. BSD does not normally
|
||||
specify a <quote>graphical desktop</quote> such as GNOME or KDE,
|
||||
though these are available.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Many other programs and utilities.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<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>
|
||||
|
||||
<para>It's 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 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 Projects Research 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 implementions 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
|
||||
<ulink url="http://www.bsdi.com">Berkeley Software Design Inc.</ulink>
|
||||
and released a beta version of an operating system called
|
||||
<ulink url="http://www.bsdi.com">BSD/386</ulink>, which was based on
|
||||
the same sources. The name of the operating system has since changed
|
||||
to BSD/OS.</para>
|
||||
|
||||
<para>386BSD never became a stable operating system. Instead, two other
|
||||
projects split off from it in 1993:
|
||||
<ulink url="http://www.NetBSD.org">NetBSD</ulink> and
|
||||
<ulink url="http://www.FreeBSD.org">FreeBSD</ulink>. 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 wasn't 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'll see below. In 1996, a further project,
|
||||
<ulink url="http://www.OpenBSD.org">OpenBSD</ulink>, split off from
|
||||
NetBSD.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Why isn't BSD better known?</title>
|
||||
|
||||
<para>For a number of reasons, BSD is relatively unknown:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<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>
|
||||
</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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>In 1992, AT&T sued
|
||||
<ulink url="http://www.bsdi.com">BSDI</ulink>,
|
||||
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.
|
||||
As recently as 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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>There is a perception that the BSD projects are fragmented and
|
||||
belligerent. The
|
||||
<ulink url="http://interactive.wsj.com/bin/login?Tag=/&URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&">Wall Street
|
||||
Journal</ulink> spoke of <quote>balkanization</quote> of the
|
||||
BSD projects. Like the law suit, this perception bases mainly
|
||||
on ancient history.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Comparing BSD and Linux</title>
|
||||
|
||||
<para>So what's 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 doesn't apply to many other Linux
|
||||
distributions, of course). In the following section, we'll 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 and OpenBSD 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 managed by a different project maintainer.</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> under the
|
||||
<ulink url="http://www.sourcegear.com/CVS">Concurrent Versions
|
||||
System</ulink> (CVS), which contains all source files for the
|
||||
project, including documentation and other incidental files. CVS
|
||||
allows users to <quote>check out</quote> (in other words, to
|
||||
extract a copy of) any desired version of the system.</para>
|
||||
|
||||
<para>A large number of developers worldwide contribute to improvements
|
||||
to BSD. They are divided into three kinds:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>Contributors</emphasis> 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><emphasis>Committers</emphasis> 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 he is
|
||||
active.</para>
|
||||
|
||||
<para>
|
||||
It is at the individual committer's discretion whether he 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 <emphasis>backing out</emphasis>. All committers
|
||||
receive mail describing each individual commit, so it is not
|
||||
possible to commit secretly.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Core team</emphasis> In addition, 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
|
||||
non-core team members have.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<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 Chief 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>
|
||||
</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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>As a result of the formalized maintenance of a single CVS
|
||||
source tree, BSD development is clear, and it is possible to
|
||||
access any version of the system by release number or by date.
|
||||
CVS 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>
|
||||
|
||||
<sect2>
|
||||
<title>BSD releases</title>
|
||||
|
||||
<para>Each BSD project provides 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
|
||||
<emphasis>CURRENT</emphasis>. 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 ("OpenBSD-current").
|
||||
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 <emphasis>RELEASE</emphasis> 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 CVS tree. In FreeBSD, the resultant
|
||||
version is called the STABLE 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.</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>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>What versions of BSD are available?</title>
|
||||
|
||||
<para>In contrast to the numerous Linux distributions, there are only
|
||||
three 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's difficult to categorize the goals of each project: the
|
||||
differences are very subjective. Basically,</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>FreeBSD aims for high performance and ease of use by
|
||||
end users, and is a favourite of web content providers. It runs
|
||||
on PCs and Compaq's Alpha processors. The FreeBSD project 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>
|
||||
</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>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>There are also two additional BSD operating systems which are not
|
||||
open source, BSD/OS and Apple's Mac OS X:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>BSD/OS is the oldest of the 4.4BSD derivatives. It
|
||||
is not open source, though source code licenses are available at
|
||||
relatively low cost. It resembles FreeBSD in many ways.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.apple.com/macosx/server/">Mac OS
|
||||
X</ulink> is the latest version of the operating system for
|
||||
<ulink url="http://www.apple.com">Apple Computer Inc.'s</ulink>
|
||||
Macintosh line. Unlike the rest of the operating system, the
|
||||
kernel is open source. As part of this development, key Apple
|
||||
developers have commit access to the FreeBSD source tree.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>How does the BSD license differ from the GNU Public
|
||||
license?</title>
|
||||
|
||||
<para>Linux is available under the
|
||||
<ulink url="http://www.fsf.org/copyleft/gpl.html">GNU General Public
|
||||
License</ulink> (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
|
||||
<ulink url="http://www.opensource.org/licenses/bsd-license.html">BSD
|
||||
license</ulink> 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>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>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's probably no good reason to change.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD systems, in particular FreeBSD, can have notably higher
|
||||
performance than Linux. But this isn't 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>
|
||||
<para>In general, BSD systems have a better reputation for
|
||||
reliability, mainly as a result of the more mature code
|
||||
base.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The BSD license may be more attractive than the GPL.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD can execute Linux code, while Linux can't execute BSD
|
||||
code. As a result, more software is available for BSD than for
|
||||
Linux.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Who provides support, service, and training for BSD?</title>
|
||||
|
||||
<para>BSDi have always supported BSD/OS, and they have recently
|
||||
announced support contracts for FreeBSD.</para>
|
||||
|
||||
<para>In addition, each of the projects has a list of consultants for
|
||||
hire:
|
||||
<ulink url="http://www.freebsd.org/commercial/consulting_bycat.html">FreeBSD</ulink>,
|
||||
<ulink url="http://www.netbsd.org/gallery/consultants.html">NetBSD</ulink>,
|
||||
and <ulink url="http://www.openbsd.org/support.html">OpenBSD</ulink>.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
End:
|
||||
-->
|
23
en_US.ISO_8859-1/articles/explaining-bsd/Makefile
Normal file
23
en_US.ISO_8859-1/articles/explaining-bsd/Makefile
Normal file
|
@ -0,0 +1,23 @@
|
|||
#
|
||||
# $FreeBSD: doc/en_US.ISO_8859-1/articles/freebsd-questions/Makefile,v 1.1 2001/02/16 00:22:33 nik Exp $
|
||||
#
|
||||
|
||||
MAINTAINER=grog@FreeBSD.org
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
#
|
||||
|
||||
# SGML content
|
||||
SRCS= article.sgml
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
542
en_US.ISO_8859-1/articles/explaining-bsd/article.sgml
Normal file
542
en_US.ISO_8859-1/articles/explaining-bsd/article.sgml
Normal file
|
@ -0,0 +1,542 @@
|
|||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
|
||||
%man;
|
||||
]>
|
||||
|
||||
<article>
|
||||
<articleinfo>
|
||||
<title>Explaining BSD</title>
|
||||
|
||||
<author>
|
||||
<firstname>Greg</firstname>
|
||||
<surname>Lehey</surname>
|
||||
|
||||
<affiliation>
|
||||
<address><email>grog@FreeBSD.org</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
|
||||
<abstract>
|
||||
<para>In the open source world, the word <quote>Linux</quote> is almost
|
||||
synonymous with <quote>Operating System</quote>, but it's not the only
|
||||
open source <trademark>UNIX</trademark> operating system. According
|
||||
to the <ulink
|
||||
url="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
|
||||
Operating System Counter</ulink>, as of April 1999 31.3% of the
|
||||
world's network connected machines run Linux. 14.6% run BSD UNIX.
|
||||
Some of the world's largest web operations, such as <ulink
|
||||
url="http://www.yahoo.com">Yahoo!</ulink>, run BSD. The world's
|
||||
busiest ftp server, <ulink
|
||||
url="ftp://ftp.cdrom.com">ftp.cdrom.com</ulink>, uses BSD to
|
||||
transfer 1.4 TB of data a day. Clearly this is not a niche
|
||||
market: BSD is a well-kept secret.</para>
|
||||
|
||||
<para>So what's the secret? Why isn't BSD 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>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<sect1>
|
||||
<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
|
||||
operating system comprises:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>The BSD kernel, which handles process scheduling, memory
|
||||
management, symmetric multi-processing (SMP), device drivers,
|
||||
etc.</para>
|
||||
|
||||
<para><emphasis>Unlike the Linux kernel, there are several different
|
||||
BSD kernels with differing capabilities.</emphasis></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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Utilities such as shells, file utilities, compilers and
|
||||
linkers.</para>
|
||||
|
||||
<para><emphasis>Some of the utilities are derived from the GNU
|
||||
project, others are not.</emphasis></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The X Window system, which handles graphical display.</para>
|
||||
|
||||
<para>The X Window system used in most versions of BSD is maintained
|
||||
by a separate project, the
|
||||
<ulink url="http://www.XFree86.org/">XFree86 project</ulink>.
|
||||
This is the same code as Linux uses. BSD does not normally
|
||||
specify a <quote>graphical desktop</quote> such as GNOME or KDE,
|
||||
though these are available.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Many other programs and utilities.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<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>
|
||||
|
||||
<para>It's 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 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 Projects Research 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 implementions 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
|
||||
<ulink url="http://www.bsdi.com">Berkeley Software Design Inc.</ulink>
|
||||
and released a beta version of an operating system called
|
||||
<ulink url="http://www.bsdi.com">BSD/386</ulink>, which was based on
|
||||
the same sources. The name of the operating system has since changed
|
||||
to BSD/OS.</para>
|
||||
|
||||
<para>386BSD never became a stable operating system. Instead, two other
|
||||
projects split off from it in 1993:
|
||||
<ulink url="http://www.NetBSD.org">NetBSD</ulink> and
|
||||
<ulink url="http://www.FreeBSD.org">FreeBSD</ulink>. 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 wasn't 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'll see below. In 1996, a further project,
|
||||
<ulink url="http://www.OpenBSD.org">OpenBSD</ulink>, split off from
|
||||
NetBSD.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Why isn't BSD better known?</title>
|
||||
|
||||
<para>For a number of reasons, BSD is relatively unknown:</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<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>
|
||||
</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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>In 1992, AT&T sued
|
||||
<ulink url="http://www.bsdi.com">BSDI</ulink>,
|
||||
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.
|
||||
As recently as 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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>There is a perception that the BSD projects are fragmented and
|
||||
belligerent. The
|
||||
<ulink url="http://interactive.wsj.com/bin/login?Tag=/&URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&">Wall Street
|
||||
Journal</ulink> spoke of <quote>balkanization</quote> of the
|
||||
BSD projects. Like the law suit, this perception bases mainly
|
||||
on ancient history.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Comparing BSD and Linux</title>
|
||||
|
||||
<para>So what's 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 doesn't apply to many other Linux
|
||||
distributions, of course). In the following section, we'll 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 and OpenBSD 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 managed by a different project maintainer.</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> under the
|
||||
<ulink url="http://www.sourcegear.com/CVS">Concurrent Versions
|
||||
System</ulink> (CVS), which contains all source files for the
|
||||
project, including documentation and other incidental files. CVS
|
||||
allows users to <quote>check out</quote> (in other words, to
|
||||
extract a copy of) any desired version of the system.</para>
|
||||
|
||||
<para>A large number of developers worldwide contribute to improvements
|
||||
to BSD. They are divided into three kinds:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para><emphasis>Contributors</emphasis> 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><emphasis>Committers</emphasis> 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 he is
|
||||
active.</para>
|
||||
|
||||
<para>
|
||||
It is at the individual committer's discretion whether he 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 <emphasis>backing out</emphasis>. All committers
|
||||
receive mail describing each individual commit, so it is not
|
||||
possible to commit secretly.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><emphasis>Core team</emphasis> In addition, 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
|
||||
non-core team members have.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<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 Chief 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>
|
||||
</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>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>As a result of the formalized maintenance of a single CVS
|
||||
source tree, BSD development is clear, and it is possible to
|
||||
access any version of the system by release number or by date.
|
||||
CVS 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>
|
||||
|
||||
<sect2>
|
||||
<title>BSD releases</title>
|
||||
|
||||
<para>Each BSD project provides 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
|
||||
<emphasis>CURRENT</emphasis>. 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 ("OpenBSD-current").
|
||||
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 <emphasis>RELEASE</emphasis> 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 CVS tree. In FreeBSD, the resultant
|
||||
version is called the STABLE 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.</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>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>What versions of BSD are available?</title>
|
||||
|
||||
<para>In contrast to the numerous Linux distributions, there are only
|
||||
three 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's difficult to categorize the goals of each project: the
|
||||
differences are very subjective. Basically,</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>FreeBSD aims for high performance and ease of use by
|
||||
end users, and is a favourite of web content providers. It runs
|
||||
on PCs and Compaq's Alpha processors. The FreeBSD project 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>
|
||||
</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>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>There are also two additional BSD operating systems which are not
|
||||
open source, BSD/OS and Apple's Mac OS X:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>BSD/OS is the oldest of the 4.4BSD derivatives. It
|
||||
is not open source, though source code licenses are available at
|
||||
relatively low cost. It resembles FreeBSD in many ways.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink url="http://www.apple.com/macosx/server/">Mac OS
|
||||
X</ulink> is the latest version of the operating system for
|
||||
<ulink url="http://www.apple.com">Apple Computer Inc.'s</ulink>
|
||||
Macintosh line. Unlike the rest of the operating system, the
|
||||
kernel is open source. As part of this development, key Apple
|
||||
developers have commit access to the FreeBSD source tree.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>How does the BSD license differ from the GNU Public
|
||||
license?</title>
|
||||
|
||||
<para>Linux is available under the
|
||||
<ulink url="http://www.fsf.org/copyleft/gpl.html">GNU General Public
|
||||
License</ulink> (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
|
||||
<ulink url="http://www.opensource.org/licenses/bsd-license.html">BSD
|
||||
license</ulink> 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>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>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's probably no good reason to change.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD systems, in particular FreeBSD, can have notably higher
|
||||
performance than Linux. But this isn't 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>
|
||||
<para>In general, BSD systems have a better reputation for
|
||||
reliability, mainly as a result of the more mature code
|
||||
base.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>The BSD license may be more attractive than the GPL.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>BSD can execute Linux code, while Linux can't execute BSD
|
||||
code. As a result, more software is available for BSD than for
|
||||
Linux.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Who provides support, service, and training for BSD?</title>
|
||||
|
||||
<para>BSDi have always supported BSD/OS, and they have recently
|
||||
announced support contracts for FreeBSD.</para>
|
||||
|
||||
<para>In addition, each of the projects has a list of consultants for
|
||||
hire:
|
||||
<ulink url="http://www.freebsd.org/commercial/consulting_bycat.html">FreeBSD</ulink>,
|
||||
<ulink url="http://www.netbsd.org/gallery/consultants.html">NetBSD</ulink>,
|
||||
and <ulink url="http://www.openbsd.org/support.html">OpenBSD</ulink>.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</article>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
End:
|
||||
-->
|
Loading…
Reference in a new issue