926 lines
37 KiB
Text
926 lines
37 KiB
Text
<!--
|
|
The FreeBSD Documentation Project
|
|
|
|
$FreeBSD$
|
|
-->
|
|
|
|
<chapter id="introduction">
|
|
<chapterinfo>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Jim</firstname>
|
|
<surname>Mock</surname>
|
|
<contrib>Restructured, reorganized, and parts
|
|
rewritten by </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</chapterinfo>
|
|
|
|
<title>Introduction</title>
|
|
|
|
<sect1>
|
|
<title>Synopsis</title>
|
|
|
|
<para>Thank you for your interest in FreeBSD! The following chapter
|
|
covers various aspects of the FreeBSD Project, such as its history,
|
|
goals, development model, and so on.</para>
|
|
|
|
<para>After reading this chapter, you will know:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>How FreeBSD relates to other computer operating systems.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The history of the FreeBSD Project.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The goals of the FreeBSD Project.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The basics of the FreeBSD open-source development model.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>And of course: where the name <quote>FreeBSD</quote> comes from.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="nutshell">
|
|
<title>Welcome to FreeBSD!</title>
|
|
<indexterm><primary>4.4BSD-Lite</primary></indexterm>
|
|
|
|
<para>FreeBSD is a 4.4BSD-Lite based operating system for the Intel
|
|
architecture (x86) and DEC Alpha based systems. Ports to other
|
|
architectures are also underway. For a brief overview of FreeBSD,
|
|
see the <link linkend="nutshell">next section</link>. You can also
|
|
read about <link linkend="history">the history of FreeBSD</link>,
|
|
or the <link linkend="relnotes">current release</link>. If you
|
|
are interested in contributing something to the Project (code,
|
|
hardware, unmarked bills), see the <ulink
|
|
url="../../articles/contributing/index.html">Contributing to FreeBSD</ulink> article.</para>
|
|
|
|
<sect2>
|
|
<title>What Can FreeBSD Do?</title>
|
|
|
|
<para>FreeBSD has many noteworthy features. Some of these
|
|
are:</para>
|
|
|
|
<itemizedlist>
|
|
<indexterm><primary>preemptive multitasking</primary></indexterm>
|
|
<listitem>
|
|
<para><emphasis>Preemptive multitasking</emphasis> with
|
|
dynamic priority adjustment to ensure smooth and fair
|
|
sharing of the computer between applications and users, even
|
|
under the heaviest of loads.</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>multi-user facilities</primary></indexterm>
|
|
<listitem>
|
|
<para><emphasis>Multi-user facilities</emphasis> which allow many
|
|
people to use a FreeBSD system simultaneously for a variety
|
|
of things. This means, for example, that system peripherals
|
|
such as printers and tape drives are properly shared between
|
|
all users on the system or the network and that individual
|
|
resource limits can be placed on users or groups of users,
|
|
protecting critical system resources from over-use.</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>TCP/IP networking</primary></indexterm>
|
|
<listitem>
|
|
<para>Strong <emphasis>TCP/IP networking</emphasis> with
|
|
support for industry standards such as SLIP, PPP, NFS, DHCP,
|
|
and NIS. This means that your FreeBSD machine can
|
|
interoperate easily with other systems as well as act as an
|
|
enterprise server, providing vital functions such as NFS
|
|
(remote file access) and email services or putting your
|
|
organization on the Internet with WWW, FTP, routing and
|
|
firewall (security) services.</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>memory protection</primary></indexterm>
|
|
<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 (<emphasis>64-bit</emphasis> on the Alpha) and was
|
|
designed as such from the ground up.</para>
|
|
</listitem>
|
|
|
|
<indexterm>
|
|
<primary>X Window System</primary>
|
|
<seealso>XFree86</seealso>
|
|
</indexterm>
|
|
|
|
<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>
|
|
|
|
<indexterm>
|
|
<primary>binary compatibility</primary>
|
|
<secondary>Linux</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>binary compatibility</primary>
|
|
<secondary>SCO</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>binary compatibility</primary>
|
|
<secondary>SVR4</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>binary compatibility</primary>
|
|
<secondary>BSD/OS</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>binary compatibility</primary>
|
|
<secondary>NetBSD</secondary>
|
|
</indexterm>
|
|
<listitem>
|
|
<para><emphasis>Binary compatibility</emphasis> with many
|
|
programs built for Linux, SCO, SVR4, BSDI and NetBSD.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Thousands 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 are 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>
|
|
|
|
<indexterm><primary>virtual memory</primary></indexterm>
|
|
<listitem>
|
|
<para>Demand paged <emphasis>virtual memory</emphasis> and
|
|
<quote>merged VM/buffer cache</quote> design efficiently
|
|
satisfies applications with large appetites for memory while
|
|
still maintaining interactive response to other users.</para>
|
|
</listitem>
|
|
|
|
<indexterm>
|
|
<primary>Symetric Multi-Processing (SMP)</primary>
|
|
</indexterm>
|
|
<listitem>
|
|
<para><emphasis>SMP</emphasis> support for machines with
|
|
multiple CPUs.</para>
|
|
</listitem>
|
|
|
|
<indexterm>
|
|
<primary>compilers</primary>
|
|
<secondary>C</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>compilers</primary>
|
|
<secondary>C++</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>compilers</primary>
|
|
<secondary>Fortran</secondary>
|
|
</indexterm>
|
|
<listitem>
|
|
<para>A full complement of <emphasis>C</emphasis>,
|
|
<emphasis>C++</emphasis>, <emphasis>Fortran</emphasis>, and
|
|
<emphasis>Perl</emphasis> development tools.
|
|
Many additional languages for advanced research
|
|
and development are also available in the ports and packages
|
|
collection.</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>source code</primary></indexterm>
|
|
<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
|
|
at the mercy of your vendor when you can have a truly open
|
|
system?</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>Extensive <emphasis>online
|
|
documentation</emphasis>.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><emphasis>And many more!</emphasis></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<indexterm><primary>4.4BSD-Lite</primary></indexterm>
|
|
<indexterm>
|
|
<primary>Computer Systems Research Group (CSRG)</primary>
|
|
</indexterm>
|
|
<indexterm><primary>U.C. Berkeley</primary></indexterm>
|
|
<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
|
|
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>
|
|
<indexterm><primary>FTP servers</primary></indexterm>
|
|
<listitem>
|
|
<para>FTP servers</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>web servers</primary></indexterm>
|
|
<listitem>
|
|
<para>World Wide Web servers (standard or secure
|
|
[SSL])</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>firewall</primary></indexterm>
|
|
<indexterm><primary>IP masquerading</primary></indexterm>
|
|
<listitem>
|
|
<para>Firewalls and NAT (<quote>IP masquerading</quote>)
|
|
gateways</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>electronic mail</primary></indexterm>
|
|
<listitem>
|
|
<para>Electronic Mail servers</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>USENET</primary></indexterm>
|
|
<listitem>
|
|
<para>USENET News or Bulletin Board Systems</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>And more...</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>With FreeBSD, you can easily start out small with an
|
|
inexpensive 386 class PC and upgrade all the way up to a
|
|
quad-processor Xeon with RAID storage 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>
|
|
|
|
<indexterm><primary>router</primary></indexterm>
|
|
<indexterm><primary>DNS Server</primary></indexterm>
|
|
<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>
|
|
|
|
<indexterm>
|
|
<primary>X Window System</primary>
|
|
<secondary>XFree86</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>X Window System</primary>
|
|
<secondary>Accelerated-X</secondary>
|
|
</indexterm>
|
|
<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 <quote>diskless</quote>, making
|
|
individual workstations even cheaper and easier to
|
|
administer.</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>GNU Compiler Collection</primary></indexterm>
|
|
<listitem>
|
|
<para><emphasis>Software Development:</emphasis> The basic
|
|
FreeBSD system comes with a full complement 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. Please see <xref linkend="mirrors">
|
|
for more information about obtaining FreeBSD.</para>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Who uses FreeBSD?</title>
|
|
|
|
<indexterm>
|
|
<primary>Users</primary>
|
|
<secondary>Large sites running FreeBSD</secondary>
|
|
</indexterm>
|
|
|
|
<para>FreeBSD is used to power some of the biggest sites on the
|
|
Internet, including:</para>
|
|
|
|
<itemizedlist>
|
|
<indexterm><primary>Yahoo!</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.yahoo.com/">Yahoo!</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Apache</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.apache.org/">Apache</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Blue Mountain Arts</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.bluemountain.com/">Blue Mountain
|
|
Arts</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Pair Networks</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.pair.com/">Pair
|
|
Networks</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Sony Japan</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.sony.co.jp/">Sony
|
|
Japan</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Netcraft</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.netcraft.com/">Netcraft</ulink>
|
|
</para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Orange</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.orange.co.uk/">Orange</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Weathernews</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.wni.com/">Weathernews</ulink>
|
|
</para></listitem>
|
|
|
|
<indexterm><primary>Supervalu</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink
|
|
url="http://www.supervalu.com/">Supervalu</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>TELEHOUSE America</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.telehouse.com/">TELEHOUSE
|
|
America</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>Sophos Anti-Virus</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink url="http://www.sophos.com/">Sophos
|
|
Anti-Virus</ulink></para>
|
|
</listitem>
|
|
|
|
<indexterm><primary>JMA Wired</primary></indexterm>
|
|
<listitem>
|
|
<para><ulink
|
|
url="http://www.jmawired.com/">JMA Wired</ulink></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>and many more.</para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|
|
<sect1 id="history">
|
|
<title>About the FreeBSD Project</title>
|
|
|
|
<para>The following section provides some background information on
|
|
the project, including a brief history, project goals, and the
|
|
development model of the project.</para>
|
|
|
|
<sect2 id="intro-history">
|
|
<sect2info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Jordan</firstname>
|
|
<surname>Hubbard</surname>
|
|
<contrib>Contributed by </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title>A Brief History of FreeBSD</title>
|
|
|
|
<indexterm><primary>386BSD Patchkit</primary></indexterm>
|
|
<indexterm><primary>Hubbard, Jordan</primary></indexterm>
|
|
<indexterm><primary>Williams, Nate</primary></indexterm>
|
|
<indexterm><primary>Grimes, Rod</primary></indexterm>
|
|
<indexterm>
|
|
<primary>FreeBSD Project</primary>
|
|
<secondary>History</secondary>
|
|
</indexterm>
|
|
<para>The FreeBSD project had its genesis in the early part of 1993,
|
|
partially as an outgrowth of the <quote>Unofficial 386BSD
|
|
Patchkit</quote> by the patchkit's last 3 coordinators: Nate
|
|
Williams, Rod Grimes and myself.</para>
|
|
|
|
<indexterm><primary>386BSD</primary></indexterm>
|
|
<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
|
|
<quote>386BSD 0.5</quote> or <quote>386BSD Interim</quote> in
|
|
reference to that fact.</para>
|
|
|
|
<indexterm><primary>Jolitz, Bill</primary></indexterm>
|
|
<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 assist Bill by providing
|
|
this interim <quote>cleanup</quote> snapshot. Those plans came to
|
|
a rude halt when Bill Jolitz suddenly decided to withdraw his
|
|
sanction from the project without any clear indication of what
|
|
would be done instead.</para>
|
|
|
|
<indexterm><primary>Greenman, David</primary></indexterm>
|
|
<indexterm><primary>Walnut Creek CDROM</primary></indexterm>
|
|
<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 <quote>FreeBSD</quote>, 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 also 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>
|
|
|
|
<indexterm><primary>4.3BSD-Lite</primary></indexterm>
|
|
<indexterm><primary>Net/2</primary></indexterm>
|
|
<indexterm><primary>U.C. Berkeley</primary></indexterm>
|
|
<indexterm><primary>386BSD</primary></indexterm>
|
|
<indexterm><primary>Free Software Foundation</primary></indexterm>
|
|
<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 (<quote>Net/2</quote>) 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>
|
|
|
|
<indexterm><primary>Novell</primary></indexterm>
|
|
<indexterm><primary>U.C. Berkeley</primary></indexterm>
|
|
<indexterm><primary>Net/2</primary></indexterm>
|
|
<indexterm><primary>AT&amp;T</primary></indexterm>
|
|
<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 <quote>encumbered</quote>
|
|
code and the property of Novell, who had in turn acquired it from
|
|
AT&T some time previously. What Berkeley got in return was
|
|
Novell's <quote>blessing</quote> 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 <quote>Lite</quote> 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
|
|
November of 1994 to make this transition, at which point it
|
|
released FreeBSD 2.0 to the net and on CDROM (in late December).
|
|
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
|
|
(<quote>-CURRENT</quote>) 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 last of which (2.2.8) appeared in
|
|
November 1998. The first official 3.0 release appeared in
|
|
October 1998 and spelled the beginning of the end for the 2.2
|
|
branch.</para>
|
|
|
|
<para>The tree branched again on Jan 20, 1999, leading to the
|
|
4.0-CURRENT and 3.X-STABLE branches. From 3.X-STABLE, 3.1 was
|
|
released on February 15, 1999, 3.2 on May 15, 1999, 3.3 on
|
|
September 16, 1999, 3.4 on December 20, 1999, and 3.5 on
|
|
June 24, 2000, which was followed a few days later by a minor
|
|
point release update to 3.5.1, to incorporate some last-minute
|
|
security fixes to Kerberos. This will be the final release in the
|
|
3.X branch.</para>
|
|
|
|
<para>There was another branch on March 13, 2000, which saw the
|
|
emergence of the 4.X-STABLE branch, now considered to be the
|
|
"current -stable branch". There have been several releases
|
|
from it so far: 4.0-RELEASE came out in March 2000, 4.1 was
|
|
released in July 2000, 4.2 in November 2000, 4.3 in April
|
|
2001, and 4.4 in September 2001. There will be more releases
|
|
along the 4.X-stable (RELENG_4) branch well into 2002.</para>
|
|
|
|
<para>Long-term development projects continue to take place in the
|
|
5.0-CURRENT (trunk) branch, and SNAPshot releases of 5.0 on
|
|
CDROM (and, of course, on the net) are continually made available
|
|
from <ulink url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">
|
|
the snapshot server</ulink> as work progresses.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="goals">
|
|
<sect2info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Jordan</firstname>
|
|
<surname>Hubbard</surname>
|
|
<contrib>Contributed by </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title>FreeBSD Project Goals</title>
|
|
|
|
<indexterm>
|
|
<primary>FreeBSD Project</primary>
|
|
<secondary>Goals</secondary>
|
|
</indexterm>
|
|
<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 are definitely not prepared to insist on it. We
|
|
believe that our first and foremost <quote>mission</quote> 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>
|
|
|
|
<indexterm>
|
|
<primary>GNU General Public License (GPL)</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>GNU Lesser General Public License (LGPL)</primary>
|
|
</indexterm>
|
|
<indexterm><primary>BSD Copyright</primary></indexterm>
|
|
<para>That code in our source tree which falls under the GNU
|
|
General Public License (GPL) or Library General Public License
|
|
(LGPL) 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, prefer
|
|
software submitted under the more relaxed BSD copyright when
|
|
it is a reasonable option to do so.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="development">
|
|
<sect2info>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Satoshi</firstname>
|
|
<surname>Asami</surname>
|
|
<contrib>Contributed by </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title>The FreeBSD Development Model</title>
|
|
|
|
<indexterm>
|
|
<primary>FreeBSD Project</primary>
|
|
<secondary>Development Model</secondary>
|
|
</indexterm>
|
|
<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 <ulink
|
|
url="../../articles/contributors/article.html">list of
|
|
contributors</ulink>. 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;. 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>
|
|
|
|
<indexterm>
|
|
<primary>CVS</primary>
|
|
<secondary>repository</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>Concurrent Versions System</primary>
|
|
<see>CVS</see>
|
|
</indexterm>
|
|
<listitem>
|
|
<para>The central source tree for FreeBSD is maintained by
|
|
<ulink url="http://www.cvshome.org/">CVS</ulink>
|
|
(Concurrent Versions System), a freely available source code
|
|
control tool that comes bundled with FreeBSD. The primary
|
|
<ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVS
|
|
repository</ulink> resides on a machine in Santa Clara CA, USA
|
|
from where it is replicated to numerous mirror machines
|
|
throughout the world. The CVS tree, as well as the <link
|
|
linkend="current">-CURRENT</link> and <link
|
|
linkend="stable">-STABLE</link> trees which are checked out
|
|
of it, can be easily replicated to your own machine as well.
|
|
Please refer to the <link linkend="synching">Synchronizing
|
|
your source tree</link> section for more information on
|
|
doing this.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>The committers list<anchor
|
|
id="development-committers"></term>
|
|
|
|
<indexterm><primary>committers</primary></indexterm>
|
|
<listitem>
|
|
<para>The <firstterm>committers</firstterm>
|
|
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 <quote>committer</quote>
|
|
comes from the &man.cvs.1; <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 &man.send-pr.1;
|
|
command, though if something appears to be jammed in the
|
|
system then you may also reach them by sending mail to
|
|
the &a.committers;.</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>The FreeBSD core team<anchor id="development-core"></term>
|
|
|
|
<indexterm><primary>core team</primary></indexterm>
|
|
<listitem>
|
|
<para>The <firstterm>FreeBSD core team</firstterm>
|
|
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.
|
|
The current core team was elected from a pool of committer
|
|
candidates in June 2002. Elections are held every 2 years.
|
|
</para>
|
|
|
|
<para>Some core team members also have specific areas of
|
|
responsibility, meaning that they are committed to
|
|
ensuring that some large portion of the system works as
|
|
advertised. For a complete list of FreeBSD developers
|
|
and their areas of responsibility, please see the <ulink
|
|
url="../../articles/contributors/article.html">Contributors
|
|
List</ulink></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 <quote>commitment</quote> should
|
|
also not be misconstrued as meaning <quote>guaranteed
|
|
support.</quote> The <quote>board of directors</quote>
|
|
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
|
|
judgment!</para>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Outside contributors</term>
|
|
|
|
<indexterm><primary>contributors</primary></indexterm>
|
|
<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 <link
|
|
linkend="eresources-mail">mailing list info</link>) where
|
|
such things are discussed.</para>
|
|
|
|
<para><citetitle><ulink
|
|
url="../../articles/contributors/article.html">The
|
|
FreeBSD Contributors List</ulink></citetitle> is a long
|
|
and growing one, so why not join it by contributing
|
|
something back to FreeBSD today?</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 <ulink
|
|
url="../../../../index.html">FreeBSD Project web
|
|
site</ulink>.</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
|
|
<link linkend="ports">application programs</link> 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>
|
|
</sect2>
|
|
|
|
<sect2 id="relnotes">
|
|
<title>The Current FreeBSD Release</title>
|
|
|
|
<indexterm><primary>NetBSD</primary></indexterm>
|
|
<indexterm><primary>OpenBSD</primary></indexterm>
|
|
<indexterm><primary>386BSD</primary></indexterm>
|
|
<indexterm><primary>Free Software Foundation</primary></indexterm>
|
|
<indexterm><primary>U.C. Berkeley</primary></indexterm>
|
|
<indexterm>
|
|
<primary>Computer Systems Research Group (CSRG)</primary>
|
|
</indexterm>
|
|
<para>FreeBSD is a freely available, full source 4.4BSD-Lite based
|
|
release for Intel i386, i486, Pentium, Pentium Pro, Celeron,
|
|
Pentium II, Pentium III, Pentium IV (or compatible),
|
|
Xeon, DEC Alpha and SPARC64 based computer
|
|
systems. 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 late 94, the performance,
|
|
feature set, and stability of FreeBSD has improved dramatically.
|
|
<!-- XXX is the rest of this paragraph still true ? -->
|
|
The largest change is a revamped virtual memory system with a merged
|
|
VM/file buffer cache that not only increases performance, but also
|
|
reduces FreeBSD's memory footprint, making a 5 MB configuration a
|
|
more acceptable minimum. Other enhancements include full NIS client
|
|
and server support, transaction TCP support, dial-on-demand PPP,
|
|
integrated DHCP support, an improved SCSI subsystem, ISDN support,
|
|
support for ATM, FDDI, Fast and Gigabit Ethernet (1000 Mbit)
|
|
adapters, improved support for the latest Adaptec controllers, 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
|
|
ported software collection with thousands of commonly
|
|
sought-after programs. At the time of this printing, there
|
|
were over &os.numports; 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 &ports.size; of storage, all ports being expressed as
|
|
<quote>deltas</quote> 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
|
|
install</command>, 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
|
|
<quote>package</quote>, which can be installed with a simple
|
|
command (<command>pkg_add</command>) 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://localhost/usr/share/doc/handbook/index.html">/usr/share/doc/handbook/index.html</ulink></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>The FreeBSD FAQ</term>
|
|
|
|
<listitem>
|
|
<para><ulink
|
|
url="file://localhost/usr/share/doc/faq/index.html">/usr/share/doc/faq/index.html</ulink></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>You can also view the master (and most frequently updated)
|
|
copies at <ulink
|
|
url="../../../../index.html">http://www.FreeBSD.org/</ulink>.</para>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|
|
|
|
<!--
|
|
Local Variables:
|
|
mode: sgml
|
|
sgml-declaration: "../chapter.decl"
|
|
sgml-indent-data: t
|
|
sgml-omittag: nil
|
|
sgml-always-quote-attributes: t
|
|
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
|
End:
|
|
-->
|