aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/articles/explaining-bsd/article.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'en_US.ISO8859-1/articles/explaining-bsd/article.sgml')
-rw-r--r--en_US.ISO8859-1/articles/explaining-bsd/article.sgml542
1 files changed, 0 insertions, 542 deletions
diff --git a/en_US.ISO8859-1/articles/explaining-bsd/article.sgml b/en_US.ISO8859-1/articles/explaining-bsd/article.sgml
deleted file mode 100644
index ad1ba6cec5..0000000000
--- a/en_US.ISO8859-1/articles/explaining-bsd/article.sgml
+++ /dev/null
@@ -1,542 +0,0 @@
-<!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&amp;T's
- Research UNIX operating system. Several open source operating system
- projects are based on a release of this source code known as
- 4.4BSD-Lite. In addition, they comprise a number of packages from other
- Open Source projects, including notably the GNU project. The overall
- operating system comprises:</para>
-
- <itemizedlist>
- <listitem>
- <para>The BSD kernel, which handles process scheduling, memory
- management, symmetric multi-processing (SMP), device drivers,
- etc.</para>
-
- <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&amp;T's Research UNIX operating system, which is also
- the ancestor of the modern UNIX System V. This may surprise you. How
- could that happen when AT&amp;T has never released its code as open
- source?</para>
-
- <para>It's true that AT&amp;T UNIX is not open source, and in a copyright
- sense BSD is very definitely <emphasis>not</emphasis> UNIX, but on the
- other hand, AT&amp;T has imported sources from other projects,
- noticeably the Computer Sciences Research Group 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&amp;T themselves were allowed to sell UNIX commercially,
- they started with a somewhat bare-bones implementation called System
- III, to be quickly followed by System V. The System V code base did not
- include networking, so all 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&amp;T source code and thus required a
- UNIX source license. By 1990, the CSRG's funding was running out, and
- it faced closure. Some members of the group decided to release the BSD
- code, which was Open Source, without the AT&amp;T proprietary code.
- This finally happened with the <emphasis>Networking Tape 2</emphasis>,
- usually known as <emphasis>Net/2</emphasis>. Net/2 was not a complete
- operating system: about 20% of the kernel code was missing. One of the
- CSRG members, William F. Jolitz, wrote the remaining code and released
- it in early 1992 as <emphasis>386BSD</emphasis>. At the same time,
- another group of ex-CSRG members formed a commercial company called
- <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&amp;T sued
- <ulink url="http://www.bsdi.com">BSDI</ulink>,
- the vendor of BSD/386, alleging that the product contained
- AT&amp;T-copyrighted code. The case was settled out of court in
- 1994, but the spectre of the litigation continues to haunt people.
- 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&amp;T code from BSD, it
- also lost the right to the name UNIX. Thus you will see
- references in book titles to <quote>the 4.3BSD UNIX operating
- system</quote> and <quote>the 4.4BSD operating
- system</quote>.</para>
- </listitem>
-
- <listitem>
- <para>There is a perception that the BSD projects are fragmented and
- belligerent. The
- <ulink url="http://interactive.wsj.com/bin/login?Tag=/&amp;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:
--->