Split the handbook into individual files. Each chapter is in a file called

chapter.sgml in a directory named according to the value the id
attribute on that chapter.

Added chapters.ent, which lists the entities for each chapter.

Updated handbook.sgml to use these entities.
This commit is contained in:
Nik Clayton 1998-11-03 23:17:06 +00:00
parent 05dc329be3
commit 2207769022
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=3728
86 changed files with 118421 additions and 117435 deletions

View file

@ -0,0 +1,611 @@
<chapter id="introduction">
<title>Introduction</title>
<para>FreeBSD is a 4.4BSD-Lite based operating system for Intel
architecture (x86) based PCs. For an overview of FreeBSD, see
<xref linkend="nutshell" remap="FreeBSD in a nutshell">. For a
history of the project, read <xref linkend="history" remap="a brief
history of FreeBSD">. To see a description of the latest release,
read <xref linkend="relnotes" remap="about the current
release">. If you're interested in contributing something to the
FreeBSD project (code, equipment, sacks of unmarked bills), please see
about <xref linkend="contrib"
remap="contributing to FreeBSD">.</para>
<sect1 id="nutshell">
<title>FreeBSD in a Nutshell</title>
<para>FreeBSD is a state of the art operating system for personal
computers based on the Intel CPU architecture, which includes the
386, 486 and Pentium processors (both SX and DX versions). Intel
compatible CPUs from AMD and Cyrix are supported as well. FreeBSD
provides you with many advanced features previously available only
on much more expensive computers. These features include:</para>
<itemizedlist>
<listitem>
<para><emphasis>Preemptive multitasking</emphasis> with
dynamic priority adjustment to ensure smooth and fair sharing
of the computer between applications and users.</para>
</listitem>
<listitem>
<para><emphasis>Multiuser</emphasis> access means that
many people can use a FreeBSD system simultaneously for a
variety of things. System peripherals such as printers and
tape drives are also properly SHARED BETWEEN ALL users on the
system.</para>
</listitem>
<listitem>
<para>Complete <emphasis>TCP/IP networking</emphasis>
including SLIP, PPP, NFS and NIS support. This means that
your FreeBSD machine can inter-operate easily with other
systems as well act as an enterprise server, providing vital
functions such as NFS (remote file access) and e-mail services
or putting your organization on the Internet with WWW, ftp,
routing and firewall (security) services.</para>
</listitem>
<listitem>
<para><emphasis>Memory protection</emphasis> ensures
that applications (or users) cannot interfere with each other.
One application crashing will not affect others in any
way.</para>
</listitem>
<listitem>
<para>FreeBSD is a <emphasis>32-bit</emphasis>
operating system and was designed as such from the ground
up.</para>
</listitem>
<listitem>
<para>The industry standard <emphasis>X Window
System</emphasis> (X11R6) provides a graphical user
interface (GUI) for the cost of a common VGA card and monitor
and comes with full sources.</para>
</listitem>
<listitem>
<para><emphasis>Binary compatibility</emphasis> with
many programs built for SCO, BSDI, NetBSD, Linux and
386BSD.</para>
</listitem>
<listitem>
<para>Hundreds of <emphasis>ready-to-run</emphasis>
applications are available from the FreeBSD <emphasis>ports</emphasis> and <emphasis>packages</emphasis> collection. Why search the net
when you can find it all right here?</para>
</listitem>
<listitem>
<para>Thousands of additional and <emphasis>easy-to-port</emphasis> applications available on
the Internet. FreeBSD is source code compatible with most
popular commercial Unix systems and thus most applications
require few, if any, changes to compile.</para>
</listitem>
<listitem>
<para>Demand paged <emphasis>virtual memory</emphasis>
and &ldquo;merged VM/buffer cache&rdquo; design efficiently satisfies
applications with large appetites for memory while still
maintaining interactive response to other users.</para>
</listitem>
<listitem>
<para><emphasis>Shared libraries</emphasis> (the Unix
equivalent of MS-Windows DLLs) provide for efficient use of
disk space and memory.</para>
</listitem>
<listitem>
<para>A full compliment of <emphasis>C</emphasis>,
<emphasis>C++</emphasis> and <emphasis>Fortran</emphasis> development tools. Many
additional languages for advanced research and development are
also available in the ports and packages collection.</para>
</listitem>
<listitem>
<para><emphasis>Source code</emphasis> for the entire
system means you have the greatest degree of control over your
environment. Why be locked into a proprietary solution and at
the mercy of your vendor when you can have a truly Open
System?</para>
</listitem>
<listitem>
<para>Extensive <emphasis>on-line
documentation</emphasis>.</para>
</listitem>
<listitem>
<para><emphasis>And many more!</emphasis></para>
</listitem>
</itemizedlist>
<para>FreeBSD is based on the 4.4BSD-Lite release from Computer
Systems Research Group (CSRG) at the University of California at
Berkeley, and carries on the distinguished tradition of BSD systems
development. In addition to the fine work provided by CSRG, the
FreeBSD Project has put in many thousands of hours in fine tuning
the system for maximum performance and reliability in real-life load
situations. As many of the commercial giants struggle to field PC
operating systems with such features, performance and reliability,
FreeBSD can offer them <emphasis>now</emphasis>!</para>
<para>The applications to which FreeBSD can be put are truly limited
only by your own imagination. From software development to factory
automation, inventory control to azimuth correction of remote
satellite antennae; if it can be done with a commercial UNIX product
then it is more than likely that you can do it with FreeBSD, too!
FreeBSD also benefits significantly from the literally thousands of
high quality applications developed by research centers and
universities around the world, often available at little to no cost.
Commercial applications are also available and appearing in greater
numbers every day.</para>
<para>Because the source code for FreeBSD itself is generally
available, the system can also be customized to an almost unheard of
degree for special applications or projects, and in ways not
generally possible with operating systems from most major commercial
vendors. Here is just a sampling of some of the applications in
which people are currently using FreeBSD:</para>
<itemizedlist>
<listitem>
<para><emphasis>Internet Services:</emphasis> The
robust TCP/IP networking built into FreeBSD makes it an ideal
platform for a variety of Internet services such as:</para>
<itemizedlist>
<listitem>
<para>FTP servers</para>
</listitem>
<listitem>
<para>World Wide Web servers</para>
</listitem>
<listitem>
<para>Gopher servers</para>
</listitem>
<listitem>
<para>Electronic Mail servers</para>
</listitem>
<listitem>
<para>USENET News</para>
</listitem>
<listitem>
<para>Bulletin Board Systems</para>
</listitem>
<listitem>
<para>And more...</para>
</listitem>
</itemizedlist>
<para>You can easily start out small with an
inexpensive 386 class PC and upgrade as your enterprise
grows.</para>
</listitem>
<listitem>
<para><emphasis>Education:</emphasis> Are you a student
of computer science or a related engineering field? There is
no better way of learning about operating systems, computer
architecture and networking than the hands on, under the hood
experience that FreeBSD can provide. A number of freely
available CAD, mathematical and graphic design packages also
make it highly useful to those whose primary interest in a
computer is to get <emphasis>other</emphasis> work
done!</para>
</listitem>
<listitem>
<para><emphasis>Research:</emphasis> With source code
for the entire system available, FreeBSD is an excellent
platform for research in operating systems as well as other
branches of computer science. FreeBSD's freely available
nature also makes it possible for remote groups to collaborate
on ideas or shared development without having to worry about
special licensing agreements or limitations on what may be
discussed in open forums.</para>
</listitem>
<listitem>
<para><emphasis>Networking:</emphasis> Need a new
router? A name server (DNS)? A firewall to keep people out
of your internal network? FreeBSD can easily turn that unused
386 or 486 PC sitting in the corner into an advanced router
with sophisticated packet filtering capabilities.</para>
</listitem>
<listitem>
<para><emphasis>X Window workstation:</emphasis>
FreeBSD is a fine choice for an inexpensive X terminal
solution, either using the freely available XFree86 server or
one of the excellent commercial servers provided by X Inside.
Unlike an X terminal, FreeBSD allows many applications to be
run locally, if desired, thus relieving the burden on a
central server. FreeBSD can even boot &ldquo;diskless&rdquo;, making
individual workstations even cheaper and easier to
administer.</para>
</listitem>
<listitem>
<para><emphasis>Software Development:</emphasis> The
basic FreeBSD system comes with a full compliment of
development tools including the renowned GNU C/C++ compiler
and debugger.</para>
</listitem>
</itemizedlist>
<para>FreeBSD is available in both source and binary form on CDROM and
via anonymous ftp. See <xref linkend="mirrors" remap="Obtaining
FreeBSD"> for more details.</para>
</sect1>
<sect1 id="history">
<title>A Brief History of FreeBSD</title>
<para><emphasis>Contributed by &a.jkh;</emphasis>.</para>
<para>The FreeBSD project had its genesis in the early part of 1993,
partially as an outgrowth of the &ldquo;Unofficial 386BSD Patchkit&rdquo; by the
patchkit's last 3 coordinators: Nate Williams, Rod Grimes and
myself.</para>
<para>Our original goal was to produce an intermediate snapshot of
386BSD in order to fix a number of problems with it that the
patchkit mechanism just was not capable of solving. Some of you may
remember the early working title for the project being &ldquo;386BSD 0.5&rdquo;
or &ldquo;386BSD Interim&rdquo; in reference to that fact.</para>
<para>386BSD was Bill Jolitz's operating system, which had been up to
that point suffering rather severely from almost a year's worth of
neglect. As the patchkit swelled ever more uncomfortably with each
passing day, we were in unanimous agreement that something had to be
done and decided to try and assist Bill by providing this interim
&ldquo;cleanup&rdquo; snapshot. Those plans came to a rude halt when Bill
Jolitz suddenly decided to withdraw his sanction from the project
and without any clear indication of what would be done
instead.</para>
<para>It did not take us long to decide that the goal remained
worthwhile, even without Bill's support, and so we adopted the name
&ldquo;FreeBSD&rdquo;, coined by David Greenman. Our initial objectives were
set after consulting with the system's current users and, once it
became clear that the project was on the road to perhaps even
becoming a reality, I contacted Walnut Creek CDROM with an eye
towards improving FreeBSD's distribution channels for those many
unfortunates without easy access to the Internet. Walnut Creek
CDROM not only supported the idea of distributing FreeBSD on CD but
went so far as to provide the project with a machine to work on and
a fast Internet connection. Without Walnut Creek CDROM's almost
unprecedented degree of faith in what was, at the time, a completely
unknown project, it is quite unlikely that FreeBSD would have gotten
as far, as fast, as it has today.</para>
<para>The first CDROM (and general net-wide) distribution was FreeBSD
1.0, released in December of 1993. This was based on the
4.3BSD-Lite (&ldquo;Net/2&rdquo;) tape from U.C. Berkeley, with many components
also provided by 386BSD and the Free Software Foundation. It was a
fairly reasonable success for a first offering, and we followed it
with the highly successful FreeBSD 1.1 release in May of
1994.</para>
<para>Around this time, some rather unexpected storm clouds formed on
the horizon as Novell and U.C. Berkeley settled their long-running
lawsuit over the legal status of the Berkeley Net/2 tape. A
condition of that settlement was U.C. Berkeley's concession that
large parts of Net/2 were &ldquo;encumbered&rdquo; code and the property of
Novell, who had in turn acquired it from AT&amp;T some time
previously. What Berkeley got in return was Novell's &ldquo;blessing&rdquo;
that the 4.4BSD-Lite release, when it was finally released, would be
declared unencumbered and all existing Net/2 users would be strongly
encouraged to switch. This included FreeBSD, and the project was
given until the end of July 1994 to stop shipping its own Net/2
based product. Under the terms of that agreement, the project was
allowed one last release before the deadline, that release being
FreeBSD 1.1.5.1.</para>
<para>FreeBSD then set about the arduous task of literally
re-inventing itself from a completely new and rather incomplete set
of 4.4BSD-Lite bits. The &ldquo;Lite&rdquo; releases were light in part because
Berkeley's CSRG had removed large chunks of code required for
actually constructing a bootable running system (due to various
legal requirements) and the fact that the Intel port of 4.4 was
highly incomplete. It took the project until December of 1994 to
make this transition, and in January of 1995 it released FreeBSD 2.0
to the net and on CDROM. Despite being still more than a little
rough around the edges, the release was a significant success and
was followed by the more robust and easier to install FreeBSD 2.0.5
release in June of 1995.</para>
<para>We released FreeBSD 2.1.5 in August of 1996, and it appeared to
be popular enough among the ISP and commercial communities that
another release along the 2.1-stable branch was merited. This was
FreeBSD 2.1.7.1, released in February 1997 and capping the end of
mainstream development on 2.1-stable. Now in maintenance mode, only
security enhancements and other critical bug fixes will be done on
this branch (RELENG_2_1_0).</para>
<para>FreeBSD 2.2 was branched from the development mainline
(&ldquo;-current&rdquo;) in November 1996 as the RELENG_2_2 branch, and the
first full release (2.2.1) was released in April, 1997. Further
releases along the 2.2 branch were done in the Summer and Fall of
'97, the latest being 2.2.6 which appeared in late March of '98.
The first official 3.0 release will appear later in 1998.</para>
<para>Long term development projects for everything from SMP to DEC
ALPHA support will continue to take place in the 3.0-current branch
and SNAPshot releases of 3.0 on CDROM (and, of course, on the net).</para>
</sect1>
<sect1 id="goals">
<title>FreeBSD Project Goals</title>
<para><emphasis>Contributed by &a.jkh;</emphasis>.</para>
<para>The goals of the FreeBSD Project are to provide software that
may be used for any purpose and without strings attached. Many of
us have a significant investment in the code (and project) and would
certainly not mind a little financial compensation now and then, but
we're definitely not prepared to insist on it. We believe that our
first and foremost &ldquo;mission&rdquo; is to provide code to any and all
comers, and for whatever purpose, so that the code gets the widest
possible use and provides the widest possible benefit. This is, I
believe, one of the most fundamental goals of Free Software and one
that we enthusiastically support.</para>
<para>That code in our source tree which falls under the GNU Public
License (GPL) or GNU Library Public License (GLPL) comes with
slightly more strings attached, though at least on the side of
enforced access rather than the usual opposite. Due to the
additional complexities that can evolve in the commercial use of GPL
software, we do, however, endeavor to replace such software with
submissions under the more relaxed BSD copyright whenever possible.</para>
</sect1>
<sect1 id="development">
<title>The FreeBSD Development Model</title>
<para><emphasis>Contributed by &a.asami;</emphasis>.</para>
<para>The development of FreeBSD is a very open and flexible process,
FreeBSD being literally built from the contributions of hundreds of
people around the world, as can be seen from our <xref
linkend="staff" remap="list of contributors">. We are constantly
on the lookout for new developers and ideas, and those interested in
becoming more closely involved with the project need simply contact
us at the &a.hackers;. Those who prefer to work more independently
are also accommodated, and they are free to use our FTP facilities
at <ulink
URL="ftp://ftp.freebsd.org/pub/FreeBSD/incoming">ftp.freebsd.org</ulink> to distribute their own patches or work-in-progress sources. The &a.announce; is also available to those wishing to make other FreeBSD users aware of major areas of work.</para>
<para>Useful things to know about the FreeBSD project and its
development process, whether working independently or in close
cooperation:</para>
<variablelist>
<varlistentry><term>The CVS
repository<anchor id="development-cvs-repository"></term>
<listitem>
<para>The central source tree for FreeBSD is maintained by
<ulink
URL="http://www.cyclic.com/cyclic-pages/CVS-sheet.html">CVS</ulink> (Concurrent Version System), a freely available source code control tool which comes bundled with FreeBSD. The primary <ulink URL="http://www.freebsd.org/cgi/cvsweb.cgi">CVS repository</ulink> resides on a machine in Concord CA, USA from where it is replicated to numerous mirror machines throughout the world. The CVS tree, as well as the <xref linkend="current" remap="-current"> and <xref
linkend="stable" remap="-stable"> trees which are checked
out of it, can be easily replicated to your own machine as
well. Please refer to the
<xref linkend="synching" remap="Synchronizing your source
tree"> section for more information on doing this.</para>
</listitem>
</varlistentry>
<varlistentry><term>The committers
list<anchor id="development-committers"></term>
<listitem>
<para>The <xref linkend="staff-committers" remap="committers">
are the people who have <emphasis>write</emphasis> access to
the CVS tree, and are thus authorized to make modifications
to the FreeBSD source (the term &ldquo;committer&rdquo; comes from the
<citerefentry><refentrytitle>cvs</refentrytitle><manvolnum>1</manvolnum></citerefentry> <command>commit</command> command, which is used to
bring new changes into the CVS repository). The best way of
making submissions for review by the committers list is to
use the <citerefentry><refentrytitle>send-pr</refentrytitle><manvolnum>1</manvolnum></citerefentry> command, though if something appears to be jammed in the system then you may also reach them by sending mail to <email>committers@freebsd.org</email>.</para>
</listitem>
</varlistentry>
<varlistentry><term>The FreeBSD core
team<anchor id="development-core"></term>
<listitem>
<para>The <xref linkend="staff-core" remap="FreeBSD core
team"> would be equivalent to the board of directors if
the FreeBSD Project were a company. The primary task of the
core team is to make sure the project, as a whole, is in
good shape and is heading in the right directions. Inviting
dedicated and responsible developers to join our group of
committers is one of the functions of the core team, as is
the recruitment of new core team members as others move on.
Most current members of the core team started as committers
who's addiction to the project got the better of
them.</para>
<para>Some core team members also have specific <xref
linkend="staff-who" remap="areas of responsibility">,
meaning that they are committed to ensuring that some large
portion of the system works as advertised.</para>
<note>
<para>Most members of the core team are volunteers when it
comes to FreeBSD development and do not benefit from the
project financially, so &ldquo;commitment&rdquo; should also not be
misconstrued as meaning &ldquo;guaranteed support.&rdquo; The
&ldquo;board of directors&rdquo; analogy above is not
actually very accurate, and it may be more suitable to say
that these are the people who gave up their lives in favor
of FreeBSD against their better judgement! <!-- smiley --><emphasis>;)</emphasis></para>
</note>
</listitem>
</varlistentry>
<varlistentry><term>Outside
contributors</term>
<listitem>
<para>Last, but definitely not least, the largest group of
developers are the users themselves who provide feedback and
bug-fixes to us on an almost constant basis. The primary
way of keeping in touch with FreeBSD's more non-centralized
development is to subscribe to the &a.hackers; (see <xref
linkend="eresources-mail" remap="mailing list
info">) where such things are discussed.</para>
<para><xref linkend="contrib-additional" remap="The list"> of
those who have contributed something which made its way into
our source tree is a long and growing one, so why not join
it by contributing something back to FreeBSD today?
<!-- smiley --><emphasis>:-)</emphasis></para>
<para>Providing code is not the only way of contributing to
the project; for a more complete list of things that need
doing, please refer to the <xref linkend="contrib"
remap="how to
contribute"> section in this handbook.</para>
</listitem>
</varlistentry>
</variablelist>
<para>In summary, our development model is organized as a loose set of
concentric circles. The centralized model is designed for the
convenience of the <emphasis>users</emphasis> of FreeBSD, who are
thereby provided with an easy way of tracking one central code base,
not to keep potential contributors out! Our desire is to present a
stable operating system with a large set of coherent <xref
linkend="ports"
remap="application programs"> that the users can easily install
and use, and this model works very well in accomplishing
that.</para>
<para>All we ask of those who would join us as FreeBSD developers is
some of the same dedication its current people have to its continued
success!</para>
</sect1>
<sect1 id="relnotes">
<title>About the Current Release</title>
<para>FreeBSD is a freely available, full source 4.4BSD-Lite based
release for Intel i386/i486/Pentium/PentiumPro/Pentium II (or
compatible) based PC's. It is based primarily on software from U.C.
Berkeley's CSRG group, with some enhancements from NetBSD, OpenBSD,
386BSD, and the Free Software Foundation.</para>
<para>Since our release of FreeBSD 2.0 in January of 95, the
performance, feature set, and stability of FreeBSD has improved
dramatically. The largest change is a revamped virtual memory
system with a merged VM/file buffer cache that not only increases
performance, but reduces FreeBSD's memory footprint, making a 5MB
configuration a more acceptable minimum. Other enhancements include
full NIS client and server support, transaction TCP support,
dial-on-demand PPP, an improved SCSI subsystem, early ISDN support,
support for FDDI and Fast Ethernet (100Mbit) adapters, improved
support for the Adaptec 2940 (WIDE and narrow) and many hundreds of
bug fixes.</para>
<para>We have also taken the comments and suggestions of many of our
users to heart and have attempted to provide what we hope is a more
sane and easily understood installation process. Your feedback on
this (constantly evolving) process is especially welcome!</para>
<para>In addition to the base distributions, FreeBSD offers a new
ported software collection with hundreds of commonly sought-after
programs. At the end of March 1998 there were more than 1300 ports!
The list of ports ranges from http (WWW) servers, to games,
languages, editors and almost everything in between. The entire
ports collection requires approximately 26MB of storage, all ports
being expressed as &ldquo;deltas&rdquo; to their original sources. This
makes it much easier for us to update ports, and greatly reduces
the disk space demands made by the older 1.0 ports collection. To
compile a port, you simply change to the directory of the program
you wish to install, type <command>make all</command> followed by <command>make install</command>
after successful compilation and let the system do the rest. The
full original distribution for each port you build is retrieved
dynamically off the CDROM or a local ftp site, so you need only
enough disk space to build the ports you want. (Almost) every port
is also provided as a pre-compiled &ldquo;package&rdquo; which can be installed
with a simple command (pkg_add) by those who do not wish to compile
their own ports from source.</para>
<para>A number of additional documents which you may find very helpful
in the process of installing and using FreeBSD may now also be found
in the <filename>/usr/share/doc</filename> directory on any machine
running FreeBSD 2.1 or later. You may view the locally installed
manuals with any HTML capable browser using the following
URLs:</para>
<variablelist>
<varlistentry><term>The FreeBSD handbook</term>
<listitem>
<para><ulink
URL="file:/usr/share/doc/handbook/handbook.html">file:/usr/share/doc/handbook/handbook.html</ulink></para>
</listitem>
</varlistentry>
<varlistentry><term>The FreeBSD FAQ</term>
<listitem>
<para><ulink
URL="file:/usr/share/doc/FAQ/FAQ.html">file:/usr/share/doc/FAQ/FAQ.html</ulink></para>
</listitem>
</varlistentry>
</variablelist>
<para>You can also visit the master (and most frequently updated)
copies at <ulink
URL="http://www.freebsd.org">http://www.freebsd.org</ulink>.</para>
<para>The core of FreeBSD does not contain DES code which would
inhibit its being exported outside the United States. There is an
add-on package to the core distribution, for use only in the United
States, that contains the programs that normally use DES. The
auxiliary packages provided separately can be used by anyone. A
freely (from outside the U.S.) exportable European distribution of
DES for our non-U.S. users also exists and is described in the
<ulink URL="../FAQ/FAQ.html">FreeBSD FAQ</ulink>.</para>
<para>If password security for FreeBSD is all you need, and you have
no requirement for copying encrypted passwords from different hosts
(Suns, DEC machines, etc) into FreeBSD password entries, then
FreeBSD's MD5 based security may be all you require! We feel that
our default security model is more than a match for DES, and without
any messy export issues to deal with. If you are outside (or even
inside) the U.S., give it a try!</para>
</sect1>
</chapter>