581 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			581 lines
		
	
	
	
		
			25 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="iso-8859-1"?>
 | |
| <!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
 | |
| 	"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
 | |
| <!-- $FreeBSD$ -->
 | |
| <!-- The FreeBSD Documentation Project -->
 | |
| <article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
 | |
|   <info><title>Explaining BSD</title>
 | |
|     
 | |
| 
 | |
|     <author><personname><firstname>Greg</firstname><surname>Lehey</surname></personname><affiliation>
 | |
| 	<address><email>grog@FreeBSD.org</email></address>
 | |
|       </affiliation></author>
 | |
| 
 | |
|     <legalnotice xml:id="trademarks" role="trademarks">
 | |
|       &tm-attrib.freebsd;
 | |
|       &tm-attrib.amd;
 | |
|       &tm-attrib.apple;
 | |
|       &tm-attrib.intel;
 | |
|       &tm-attrib.linux;
 | |
|       &tm-attrib.opengroup;
 | |
|       &tm-attrib.sparc;
 | |
|       &tm-attrib.sun;
 | |
|       &tm-attrib.unix;
 | |
|       &tm-attrib.general;
 | |
|     </legalnotice>
 | |
| 
 | |
|     <pubdate>$FreeBSD$</pubdate>
 | |
| 
 | |
|     <releaseinfo>$FreeBSD$</releaseinfo>
 | |
| 
 | |
|     <abstract>
 | |
|       <para>In the open source world, the word <quote>Linux</quote> is almost
 | |
| 	synonymous with <quote>Operating System</quote>, but it is not the only
 | |
| 	open source &unix; operating system.  According
 | |
| 	to the <link xlink:href="http://www.leb.net/hzo/ioscount/data/r.9904.txt">Internet
 | |
| 	  Operating System Counter</link>, 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 <link xlink:href="http://www.yahoo.com/">Yahoo!</link>, run BSD.  The world's
 | |
| 	busiest FTP server of 1999 (now defunct), <link xlink:href="ftp://ftp.cdrom.com/">ftp.cdrom.com</link>, used 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 is the secret?  Why is BSD not better known?  This white
 | |
| 	paper addresses these and other questions.</para>
 | |
| 
 | |
|       <para>Throughout this paper, differences between BSD and Linux will be
 | |
| 	noted <emphasis>like this</emphasis>.</para>
 | |
|     </abstract>
 | |
|   </info>
 | |
| 
 | |
|   <sect1 xml:id="what-is-bsd">
 | |
|     <title>What is BSD?</title>
 | |
| 
 | |
|     <para>BSD stands for <quote>Berkeley Software Distribution</quote>.  It is
 | |
|       the name of distributions of source code from the University of
 | |
|       California, Berkeley, which were originally extensions to AT&T's
 | |
|       Research &unix; operating system.  Several open source operating system
 | |
|       projects are based on a release of this source code known as
 | |
|       4.4BSD-Lite.  In addition, they comprise a number of packages from other
 | |
|       Open Source projects, including notably the GNU project.  The overall
 | |
|       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 the
 | |
| 	  <link xlink:href="http://www.X.org/">X.Org project</link>.
 | |
| 	  &os; allows the user to choose from a variety of desktop
 | |
| 	  environments, such as <application>Gnome</application>,
 | |
| 	  <application>KDE</application>, or <application>Xfce</application>;
 | |
| 	  and lightweight window managers like
 | |
| 	  <application>Openbox</application>,
 | |
| 	  <application>Fluxbox</application>, or
 | |
| 	  <application>Awesome</application>.</para>
 | |
|       </listitem>
 | |
| 
 | |
|       <listitem>
 | |
| 	<para>Many other programs and utilities.</para>
 | |
|       </listitem>
 | |
|     </itemizedlist>
 | |
|   </sect1>
 | |
| 
 | |
|   <sect1 xml:id="what-a-real-unix">
 | |
|     <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 is true that AT&T &unix; is not open source, and in a copyright
 | |
|       sense BSD is very definitely <emphasis>not</emphasis> &unix;, but on the
 | |
|       other hand, AT&T has imported sources from other projects,
 | |
|       noticeably the Computer Sciences Research Group (CSRG) of the University of
 | |
|       California in Berkeley, CA.  Starting in 1976, the CSRG started
 | |
|       releasing tapes of their software, calling them <emphasis>Berkeley
 | |
| 	Software Distribution</emphasis> or <emphasis>BSD</emphasis>.</para>
 | |
| 
 | |
|     <para>Initial BSD releases consisted mainly of user programs, but that
 | |
|       changed dramatically when the CSRG landed a contract with the Defense
 | |
|       Advanced Research Projects Agency (DARPA) to upgrade the communications
 | |
|       protocols on their network, ARPANET.  The new protocols were known as
 | |
|       the <emphasis>Internet Protocols</emphasis>, later
 | |
|       <emphasis>TCP/IP</emphasis> after the most important protocols.  The
 | |
|       first widely distributed implementation was part of 4.2BSD, in
 | |
|       1982.</para>
 | |
| 
 | |
|     <para>In the course of the 1980s, a number of new workstation companies
 | |
|       sprang up. Many preferred to license &unix; rather than developing
 | |
|       operating systems for themselves.  In particular, Sun Microsystems
 | |
|       licensed &unix; and implemented a version of 4.2BSD, which they called
 | |
|       &sunos;.  When AT&T themselves were allowed to sell &unix; commercially,
 | |
|       they started with a somewhat bare-bones implementation called System
 | |
|       III, to be quickly followed by System V.  The System V code base did not
 | |
|       include networking, so all implementations included additional software
 | |
|       from the BSD, including the TCP/IP software, but also utilities such as
 | |
|       the <emphasis>csh</emphasis> shell and the <emphasis>vi</emphasis>
 | |
|       editor.  Collectively, these enhancements were known as the
 | |
|       <emphasis>Berkeley Extensions</emphasis>.</para>
 | |
| 
 | |
|     <para>The BSD tapes contained AT&T source code and thus required a
 | |
|       &unix; source license.  By 1990, the CSRG's funding was running out, and
 | |
|       it faced closure. Some members of the group decided to release the BSD
 | |
|       code, which was Open Source, without the AT&T proprietary code.
 | |
|       This finally happened with the <emphasis>Networking Tape 2</emphasis>,
 | |
|       usually known as <emphasis>Net/2</emphasis>.  Net/2 was not a complete
 | |
|       operating system: about 20% of the kernel code was missing.  One of the
 | |
|       CSRG members, William F. Jolitz, wrote the remaining code and released
 | |
|       it in early 1992 as <emphasis>386BSD</emphasis>.  At the same time,
 | |
|       another group of ex-CSRG members formed a commercial company called
 | |
|       <link xlink:href="http://www.bsdi.com/">Berkeley Software Design Inc.</link>
 | |
|       and released a beta version of an operating system called
 | |
|       <link xlink:href="http://www.bsdi.com/">BSD/386</link>, which was based on
 | |
|       the same sources.  The name of the operating system was later changed
 | |
|       to BSD/OS.</para>
 | |
| 
 | |
|     <para>386BSD never became a stable operating system.  Instead, two other
 | |
|       projects split off from it in 1993:
 | |
|       <link xlink:href="http://www.NetBSD.org/">NetBSD</link> and
 | |
|       <link xlink:href="&url.base;/index.html">FreeBSD</link>.  The two projects
 | |
|       originally diverged due to differences in patience waiting for
 | |
|       improvements to 386BSD: the NetBSD people started early in the year,
 | |
|       and the first version of FreeBSD was not ready until the end of the
 | |
|       year.  In the meantime, the code base had diverged sufficiently to
 | |
|       make it difficult to merge.  In addition, the projects had different
 | |
|       aims, as we will see below.  In 1996,
 | |
|       <link xlink:href="http://www.OpenBSD.org/">OpenBSD</link> split off from
 | |
| 	NetBSD, and in 2003,
 | |
|       <link xlink:href="http://www.dragonflybsd.org/">DragonFlyBSD</link> split
 | |
| 	off from FreeBSD.</para>
 | |
|   </sect1>
 | |
| 
 | |
|   <sect1 xml:id="why-is-bsd-not-better-known">
 | |
|     <title>Why is BSD not 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
 | |
| 	  <link xlink:href="http://www.bsdi.com/">BSDI</link>,
 | |
| 	  the vendor of BSD/386, alleging that the product contained
 | |
| 	  AT&T-copyrighted code.  The case was settled out of court in
 | |
| 	  1994, but the spectre of the litigation continues to haunt people.
 | |
| 	  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
 | |
| 	  <link xlink:href="http://interactive.wsj.com/bin/login?Tag=/&URI=/archive/retrieve.cgi%253Fid%253DSB952470579348918651.djm&">Wall Street
 | |
| 	    Journal</link> 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 xml:id="comparing-bsd-and-linux">
 | |
|     <title>Comparing BSD and Linux</title>
 | |
| 
 | |
|     <para>So what is really the difference between, say, Debian Linux and
 | |
|       FreeBSD?  For the average user, the difference is surprisingly small:
 | |
|       Both are &unix; like operating systems.  Both are developed by
 | |
|       non-commercial projects (this does not apply to many other Linux
 | |
|       distributions, of course).  In the following section, we will look at BSD
 | |
|       and compare it to Linux.  The description applies most closely to
 | |
|       FreeBSD, which accounts for an estimated 80% of the BSD installations,
 | |
|       but the differences from NetBSD, OpenBSD and DragonFlyBSD are small.
 | |
|       </para>
 | |
| 
 | |
|     <sect2>
 | |
|       <title>Who owns BSD?</title>
 | |
| 
 | |
|       <para>No one person or corporation owns BSD. It is created and
 | |
| 	distributed by a community of highly technical and committed
 | |
| 	contributors all over the world. Some of the components of BSD are
 | |
| 	Open Source projects in their own right and managed by different
 | |
| 	project maintainers.</para>
 | |
|     </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
 | |
| 	<link xlink:href="http://www.cvshome.org/">Concurrent Versions
 | |
| 	  System</link> (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><firstterm>Contributors</firstterm> write code or documentation.
 | |
| 	    They are not permitted to commit (add code) directly to the source
 | |
| 	    tree.  In order for their code to be included in the system, it
 | |
| 	    must be reviewed and checked in by a registered developer, known
 | |
| 	    as a <emphasis>committer</emphasis>.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para><firstterm>Committers</firstterm> are developers with write
 | |
| 	    access to the source tree.  In order to become a committer, an
 | |
| 	    individual must show ability in the area in which 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 <firstterm>backing out</firstterm>.  All committers
 | |
| 	    receive mail describing each individual commit, so it is not
 | |
| 	    possible to commit secretly.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para>The <firstterm>Core team</firstterm>.  FreeBSD and
 | |
| 	    NetBSD each have a core team which manages the project.  The
 | |
| 	    core teams developed in the course of the projects, and their role
 | |
| 	    is not always well-defined.  It is not necessary to be a developer
 | |
| 	    in order to be a core team member, though it is normal.  The rules
 | |
| 	    for the core team vary from one project to the other, but in
 | |
| 	    general they have more say in the direction of the project than
 | |
| 	    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 Principal Architect
 | |
| 	    can require that code be backed out, and even in the Linux project
 | |
| 	    several people are permitted to make changes.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para>On the other hand, there <emphasis>is</emphasis> a central
 | |
| 	    repository, a single place where you can find the entire operating
 | |
| 	    system sources, including all older versions.</para>
 | |
| 	</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>FreeBSD, NetBSD and OpenBSD provide the system in three different
 | |
| 	<quote>releases</quote>.  As with Linux, releases are assigned a
 | |
| 	number such as 1.4.1 or 3.5.  In addition, the version number has a
 | |
| 	suffix indicating its purpose:</para>
 | |
| 
 | |
|       <orderedlist>
 | |
| 	<listitem>
 | |
| 	  <para>The development version of the system is called
 | |
| 	    <firstterm>CURRENT</firstterm>.  FreeBSD assigns a number to
 | |
| 	    CURRENT, for example FreeBSD 5.0-CURRENT.  NetBSD uses a slightly
 | |
| 	    different naming scheme and appends a single-letter suffix which
 | |
| 	    indicates changes in the internal interfaces, for example NetBSD
 | |
| 	    1.4.3G.  OpenBSD does not assign a number (<quote>OpenBSD-current</quote>).
 | |
| 	    All new development on the system goes into this branch.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para>At regular intervals, between two and four times a year, the
 | |
| 	    projects bring out a <firstterm>RELEASE</firstterm> version of the
 | |
| 	    system, which is available on CD-ROM and for free download from
 | |
| 	    FTP sites, for example OpenBSD 2.6-RELEASE or NetBSD 1.4-RELEASE.
 | |
| 	    The RELEASE version is intended for end users and is the normal
 | |
| 	    version of the system.  NetBSD also provides <emphasis>patch
 | |
| 	      releases</emphasis> with a third digit, for example NetBSD
 | |
| 	    1.4.2.</para>
 | |
| 	</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 <firstterm>STABLE</firstterm> version, while in NetBSD and OpenBSD
 | |
| 	    it continues to be called the RELEASE version.  Smaller new
 | |
| 	    features can also be added to this branch after a period of test
 | |
| 	    in the CURRENT branch.</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
 | |
|         four major open source BSDs.  Each BSD project maintains its own source
 | |
| 	tree and its own kernel.  In practice, though, there appear to be
 | |
| 	fewer divergences between the userland code of the projects than there
 | |
| 	is in Linux.</para>
 | |
| 
 | |
|       <para>It is difficult to categorize the goals of each project: the
 | |
| 	differences are very subjective.  Basically,</para>
 | |
| 
 | |
|       <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 a number of platforms, including &i386; based systems (<quote>PCs</quote>),
 | |
| 	    systems based on the AMD 64-bit processors, &ultrasparc; based systems,
 | |
| 	    systems based on Compaq's Alpha processors and systems based around
 | |
| 	    the NEC PC-98 specification.  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>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para>DragonFlyBSD aims for high performance and scalability under
 | |
| 	    everything from a single-node UP system to a massively clustered system.
 | |
| 	    DragonFlyBSD has several long-range technical goals, but focus lies on
 | |
| 	    providing a SMP-capable infrastructure that is easy to understand,
 | |
| 	    maintain and develop for.</para>
 | |
| 	</listitem>
 | |
|       </itemizedlist>
 | |
| 
 | |
|       <para>There are also two additional BSD &unix; operating systems which are not
 | |
| 	open source, BSD/OS and Apple's &macos; X:</para>
 | |
| 
 | |
|       <itemizedlist>
 | |
| 	<listitem>
 | |
| 	  <para>BSD/OS was the oldest of the 4.4BSD derivatives.  It
 | |
| 	    was not open source, though source code licenses were
 | |
| 	    available at relatively low cost.  It resembled FreeBSD in
 | |
| 	    many ways.  Two years after the acquisition of BSDi by
 | |
| 	    Wind River Systems, BSD/OS failed to survive as an
 | |
| 	    independent product.  Support and source code may still
 | |
| 	    be available from Wind River, but all new development is
 | |
| 	    focused on the VxWorks embedded operating system.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para><link xlink:href="http://www.apple.com/macosx/server/">&macos;
 | |
| 	      X</link> is the latest version of the operating system for
 | |
| 	      &apple;'s
 | |
| 	      &mac; line.  The BSD core of this operating
 | |
| 	      system, <link xlink:href="http://developer.apple.com/darwin/">Darwin</link>,
 | |
| 	      is available as a fully functional open source operating
 | |
| 	      system for x86 and PPC computers.  The Aqua/Quartz
 | |
| 	      graphics system and many other proprietary aspects of
 | |
| 	      &macos; X remain closed-source, however.  Several Darwin
 | |
| 	      developers are also FreeBSD committers, and
 | |
| 	      vice-versa.</para>
 | |
| 	</listitem>
 | |
|       </itemizedlist>
 | |
|     </sect2>
 | |
| 
 | |
|     <sect2>
 | |
|       <title>How does the BSD license differ from the GNU Public
 | |
| 	license?</title>
 | |
| 
 | |
|       <para>Linux is available under the
 | |
| 	<link xlink:href="http://www.fsf.org/copyleft/gpl.html">GNU General Public
 | |
| 	  License</link> (GPL), which is designed to eliminate closed
 | |
| 	source software.  In particular, any derivative work of a product
 | |
| 	released under the GPL must also be supplied with source code if
 | |
| 	requested.  By contrast, the
 | |
| 	<link xlink:href="http://www.opensource.org/licenses/bsd-license.html">BSD
 | |
| 	  license</link> is less restrictive: binary-only distributions are
 | |
| 	  allowed.  This is particularly attractive for embedded
 | |
| 	  applications.</para>
 | |
|     </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 is probably no good reason to change.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para>BSD systems, in particular FreeBSD, can have notably higher
 | |
| 	    performance than Linux.  But this is not across the board.  In many
 | |
| 	    cases, there is little or no difference in performance.  In some
 | |
| 	    cases, Linux may perform better than FreeBSD.</para>
 | |
| 	</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>BSD projects have a better reputation for the quality and
 | |
| 	    completeness of their documentation. The various documentation
 | |
| 	    projects aim to provide actively updated documentation, in many
 | |
| 	    languages, and covering all aspects of the system.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para>The BSD license may be more attractive than the GPL.</para>
 | |
| 	</listitem>
 | |
| 
 | |
| 	<listitem>
 | |
| 	  <para>BSD can execute most Linux binaries, while Linux can not execute BSD
 | |
| 	    binaries.  Many BSD implementations can also execute binaries
 | |
| 	    from other &unix; like systems.  As a result, BSD may present an
 | |
| 	    easier migration route from other systems than
 | |
| 	    Linux would.</para>
 | |
| 	</listitem>
 | |
|       </itemizedlist>
 | |
|     </sect2>
 | |
| 
 | |
|     <sect2>
 | |
|       <title>Who provides support, service, and training for BSD?</title>
 | |
| 
 | |
|       <para>BSDi / <link xlink:href="http://www.freebsdmall.com">FreeBSD
 | |
| 	Mall, Inc.</link> have been providing support contracts for
 | |
| 	FreeBSD for nearly a decade.</para>
 | |
| 
 | |
|       <para>In addition, each of the projects has a list of consultants for
 | |
| 	hire:
 | |
| 	<link xlink:href="&url.base;/commercial/consult_bycat.html">FreeBSD</link>,
 | |
| 	<link xlink:href="http://www.netbsd.org/gallery/consultants.html">NetBSD</link>,
 | |
| 	and <link xlink:href="http://www.openbsd.org/support.html">OpenBSD</link>.</para>
 | |
|     </sect2>
 | |
|   </sect1>
 | |
| </article>
 |