diff options
Diffstat (limited to 'en_US.ISO8859-1/articles/explaining-bsd/article.sgml')
| -rw-r--r-- | en_US.ISO8859-1/articles/explaining-bsd/article.sgml | 542 |
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&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: ---> |
