1048 lines
40 KiB
XML
1048 lines
40 KiB
XML
<?xml version="1.0" encoding="ISO8859-1" standalone="no"?>
|
|
<!--
|
|
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 id="introduction-synopsis">
|
|
<title>Synopsis</title>
|
|
|
|
<para>Thank you for your interest in &os;! The following chapter
|
|
covers various aspects of the &os; 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 &os; relates to other computer operating systems.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The history of the &os; Project.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The goals of the &os; Project.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>The basics of the &os; open-source development model.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>And of course: where the name <quote>&os;</quote> comes
|
|
from.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1 id="nutshell">
|
|
<title>Welcome to &os;!</title>
|
|
<indexterm><primary>4.4BSD-Lite</primary></indexterm>
|
|
|
|
<para>&os; is a 4.4BSD-Lite based operating system for
|
|
Intel (x86 and &itanium;), AMD64, Sun
|
|
&ultrasparc; computers. Ports to other
|
|
architectures are also underway. You can also
|
|
read about <link linkend="history">the history of &os;</link>,
|
|
or the <link linkend="relnotes">current release</link>. If you
|
|
are interested in contributing something to the Project (code,
|
|
hardware, funding), see the <ulink
|
|
url="&url.articles.contributing;/index.html">Contributing to &os;</ulink> article.</para>
|
|
|
|
<sect2 id="os-overview">
|
|
<title>What Can &os; Do?</title>
|
|
|
|
<para>&os; has many noteworthy features. Some of these
|
|
are:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<indexterm><primary>preemptive multitasking</primary></indexterm>
|
|
|
|
<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>
|
|
|
|
<listitem>
|
|
<indexterm><primary>multi-user facilities</primary></indexterm>
|
|
|
|
<para><emphasis>Multi-user facilities</emphasis> which allow many
|
|
people to use a &os; 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>
|
|
<listitem>
|
|
<indexterm><primary>TCP/IP networking</primary></indexterm>
|
|
|
|
<para>Strong <emphasis>TCP/IP networking</emphasis> with
|
|
support for industry standards such as SCTP, DHCP, NFS,
|
|
NIS, PPP, SLIP, IPsec, and IPv6. This means that your &os;
|
|
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>
|
|
|
|
<listitem>
|
|
<indexterm><primary>memory protection</primary></indexterm>
|
|
|
|
<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>&os; is a <emphasis>32-bit</emphasis> operating
|
|
system (<emphasis>64-bit</emphasis> on the &itanium;,
|
|
AMD64, and &ultrasparc;) and was designed as such from the ground
|
|
up.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm>
|
|
<primary>X Window System</primary>
|
|
</indexterm>
|
|
|
|
<para>The industry standard <emphasis>X Window System</emphasis>
|
|
(X11R7) provides a graphical user interface (GUI) for the cost
|
|
of a common VGA card and monitor and comes with full
|
|
sources.</para>
|
|
</listitem>
|
|
|
|
<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>
|
|
|
|
<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 &os;
|
|
<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. &os; is source code compatible with most
|
|
popular commercial &unix; systems and thus most applications
|
|
require few, if any, changes to compile.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<indexterm><primary>virtual memory</primary></indexterm>
|
|
|
|
<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>
|
|
|
|
<listitem>
|
|
<indexterm>
|
|
<primary>Symmetric Multi-Processing (SMP)</primary>
|
|
</indexterm>
|
|
|
|
<para><emphasis>SMP</emphasis> support for machines with
|
|
multiple CPUs.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm>
|
|
<primary>compilers</primary>
|
|
<secondary>C</secondary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>compilers</primary>
|
|
<secondary>C++</secondary>
|
|
</indexterm>
|
|
|
|
<para>A full complement of <emphasis>C</emphasis>
|
|
and <emphasis>C++</emphasis>
|
|
development tools.
|
|
Many additional languages for advanced research
|
|
and development are also available in the ports and packages
|
|
collection.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>source code</primary></indexterm>
|
|
|
|
<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>&os; 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 &os; 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, &os; can offer them
|
|
<emphasis>now</emphasis>!</para>
|
|
|
|
<para>The applications to which &os; 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
|
|
&os; too! &os; 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 &os; 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 &os;:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para><emphasis>Internet Services:</emphasis> The robust TCP/IP
|
|
networking built into &os; makes it an ideal platform for a
|
|
variety of Internet services such as:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<indexterm><primary>FTP servers</primary></indexterm>
|
|
|
|
<para>FTP servers</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>web servers</primary></indexterm>
|
|
|
|
<para>World Wide Web servers (standard or secure
|
|
[SSL])</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>IPv4 and IPv6 routing</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>firewall</primary></indexterm>
|
|
|
|
<indexterm><primary>NAT</primary></indexterm>
|
|
|
|
<para>Firewalls and NAT (<quote>IP masquerading</quote>)
|
|
gateways</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm>
|
|
<primary>electronic mail</primary>
|
|
<see>email</see>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>email</primary>
|
|
</indexterm>
|
|
|
|
<para>Electronic Mail servers</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>USENET</primary></indexterm>
|
|
|
|
<para>USENET News or Bulletin Board Systems</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para>And more...</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>With &os;, 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 &os; 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, &os; is an excellent platform for
|
|
research in operating systems as well as other branches of
|
|
computer science. &os;'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>
|
|
<indexterm><primary>router</primary></indexterm>
|
|
|
|
<indexterm><primary>DNS Server</primary></indexterm>
|
|
|
|
<para><emphasis>Networking:</emphasis> Need a new router? A
|
|
name server (DNS)? A firewall to keep people out of your
|
|
internal network? &os; 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>
|
|
<indexterm>
|
|
<primary>X Window System</primary>
|
|
</indexterm>
|
|
<indexterm>
|
|
<primary>X Window System</primary>
|
|
<secondary>Accelerated-X</secondary>
|
|
</indexterm>
|
|
|
|
<para><emphasis>X Window workstation:</emphasis> &os; is a
|
|
fine choice for an inexpensive X terminal solution,
|
|
using the freely available X11 server.
|
|
Unlike an X terminal, &os; allows many applications to be run
|
|
locally if desired, thus relieving the burden on a central
|
|
server. &os; can even boot <quote>diskless</quote>, making
|
|
individual workstations even cheaper and easier to
|
|
administer.</para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>GNU Compiler Collection</primary></indexterm>
|
|
|
|
<para><emphasis>Software Development:</emphasis> The basic
|
|
&os; system comes with a full complement of development
|
|
tools including the renowned GNU C/C++ compiler and
|
|
debugger.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>&os; is available in both source and binary form on CD-ROM,
|
|
DVD, and via anonymous FTP. Please see <xref linkend="mirrors"/>
|
|
for more information about obtaining &os;.</para>
|
|
</sect2>
|
|
|
|
<sect2 id="introduction-nutshell-users">
|
|
<title>Who Uses &os;?</title>
|
|
|
|
<indexterm>
|
|
<primary>users</primary>
|
|
<secondary>large sites running &os;</secondary>
|
|
</indexterm>
|
|
|
|
<para>&os; is used as a platform for devices and products from
|
|
many of the world's largest IT companies, including:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<indexterm><primary>Apple</primary></indexterm>
|
|
<para><ulink url="http://www.apple.com/">Apple</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Cisco</primary></indexterm>
|
|
<para><ulink url="http://www.cisco.com/">Cisco</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<para><ulink url="http://www.juniper.net/">Juniper</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>NetApp</primary></indexterm>
|
|
<para><ulink url="http://www.netapp.com/">NetApp</ulink></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>&os; is also used to power some of the biggest sites on the
|
|
Internet, including:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<indexterm><primary>Yahoo!</primary></indexterm>
|
|
<para><ulink url="http://www.yahoo.com/">Yahoo!</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Yandex</primary></indexterm>
|
|
<para><ulink url="http://www.yandex.ru/">Yandex</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Apache</primary></indexterm>
|
|
<para><ulink url="http://www.apache.org/">Apache</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Rambler</primary></indexterm>
|
|
<para><ulink url="http://www.rambler.ru/">Rambler</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Sina</primary></indexterm>
|
|
<para><ulink url="http://www.sina.com/">Sina</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Pair Networks</primary></indexterm>
|
|
|
|
<para><ulink url="http://www.pair.com/">Pair Networks</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Sony Japan</primary></indexterm>
|
|
|
|
<para><ulink url="http://www.sony.co.jp/">Sony Japan</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Netcraft</primary></indexterm>
|
|
|
|
<para><ulink url="http://www.netcraft.com/">Netcraft</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>NetEase</primary></indexterm>
|
|
|
|
<para><ulink url="http://www.163.com/">NetEase</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Weathernews</primary></indexterm>
|
|
|
|
<para><ulink url="http://www.wni.com/">Weathernews</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>TELEHOUSE America</primary></indexterm>
|
|
|
|
<para><ulink url="http://www.telehouse.com/">TELEHOUSE
|
|
America</ulink></para>
|
|
</listitem>
|
|
|
|
<listitem>
|
|
<indexterm><primary>Experts Exchange</primary></indexterm>
|
|
|
|
<para><ulink url="http://www.experts-exchange.com/">Experts
|
|
Exchange</ulink></para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>and many more.</para>
|
|
</sect2>
|
|
</sect1>
|
|
|
|
<sect1 id="history">
|
|
<title>About the &os; 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 role="firstperson">
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>Jordan</firstname>
|
|
<surname>Hubbard</surname>
|
|
<contrib>Contributed by </contrib>
|
|
</author>
|
|
</authorgroup>
|
|
</sect2info>
|
|
|
|
<title>A Brief History of &os;</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 &os; 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>&os;</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 toward improving &os;'s distribution channels for
|
|
those many unfortunates without easy access to the Internet.
|
|
Walnut Creek CDROM not only supported the idea of distributing
|
|
&os; 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
|
|
&os; 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 CD-ROM (and general net-wide) distribution was
|
|
&os; 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 &os;
|
|
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&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 &os;, 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 &os; 1.1.5.1.</para>
|
|
|
|
<para>&os; 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 &os; 2.0 to the net and on CD-ROM (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 &os; 2.0.5 release in June of
|
|
1995.</para>
|
|
|
|
<para>We released &os; 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
|
|
&os; 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>&os; 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. There have been several releases
|
|
from it so far: 4.0-RELEASE was introduced in March 2000, and
|
|
the last 4.11-RELEASE came out in January 2005.</para>
|
|
|
|
<para>The long-awaited 5.0-RELEASE was announced on January 19,
|
|
2003. The culmination of nearly three years of work, this
|
|
release started &os; on the path of advanced multiprocessor
|
|
and application thread support and introduced support for the
|
|
&ultrasparc; and <literal>ia64</literal> platforms. This release
|
|
was followed by 5.1 in June of 2003. The last 5.X release from the
|
|
-CURRENT branch was 5.2.1-RELEASE, introduced in February 2004.</para>
|
|
|
|
<para>The RELENG_5 branch, created in August 2004, was followed by
|
|
5.3-RELEASE, which marked the beginning of the 5-STABLE branch
|
|
releases. The most recent 5.5-RELEASE release came out in May 2006.
|
|
There will be no additional releases from the RELENG_5 branch.</para>
|
|
|
|
<para>The tree was branched again in July 2005, this time for RELENG_6.
|
|
6.0-RELEASE, the first release of the 6.X branch, was released in
|
|
November 2005. The most recent 6.4-RELEASE came out in
|
|
November 2008. There will be no additional releases from the
|
|
RELENG_6 branch. This branch is the last branch to support the
|
|
Alpha architecture.</para>
|
|
|
|
<para>The RELENG_7 branch was created in October 2007. The first
|
|
release of this branch was 7.0-RELEASE, which came
|
|
out in February 2008. The most recent 7.4-RELEASE came out
|
|
in February 2011. There will be no additional releases from the
|
|
RELENG_7 branch.</para>
|
|
|
|
<para>The tree was branched again in August 2009, this time for
|
|
RELENG_8. 8.0-RELEASE, the first release of the 8.X branch, was
|
|
released in November 2009. The most recent
|
|
&rel2.current;-RELEASE came out in &rel2.current.date;. There will
|
|
be additional releases from the RELENG_8 branch.</para>
|
|
|
|
<para>The RELENG_9 branch was created in September 2011. The first
|
|
release of this branch was &rel.current;-RELEASE, which came
|
|
out in &rel.current.date;. There will be additional releases
|
|
from the RELENG_9 branch.</para>
|
|
|
|
<para>For now, long-term development projects continue to take place
|
|
in the 10.X-CURRENT (trunk) branch, and SNAPshot releases of 10.X on
|
|
CD-ROM (and, of course, on the net) are continually made available
|
|
from <ulink
|
|
url="ftp://ftp.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>&os; Project Goals</title>
|
|
|
|
<indexterm>
|
|
<primary>FreeBSD Project</primary>
|
|
<secondary>goals</secondary>
|
|
</indexterm>
|
|
<para>The goals of the &os; 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 &os; Development Model</title>
|
|
|
|
<indexterm>
|
|
<primary>FreeBSD Project</primary>
|
|
<secondary>development model</secondary>
|
|
</indexterm>
|
|
<para>The development of &os; is a very open and flexible
|
|
process, being literally built from the contributions
|
|
of hundreds of people around the world, as can be seen from
|
|
our <ulink
|
|
url="&url.articles.contributors;/article.html">list of
|
|
contributors</ulink>. &os;'s development infrastructure allow
|
|
these hundreds of developers to collaborate over the Internet.
|
|
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 &os; users aware of major areas
|
|
of work.</para>
|
|
|
|
<para>Useful things to know about the &os; Project and its
|
|
development process, whether working independently or in close
|
|
cooperation:</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>The SVN and CVS repositories<anchor
|
|
id="development-cvs-repository"/></term>
|
|
<listitem>
|
|
<indexterm>
|
|
<primary>CVS</primary>
|
|
<secondary>repository</secondary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>Concurrent Versions System</primary>
|
|
<see>CVS</see>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>SVN</primary>
|
|
<secondary>repository</secondary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>Subversion</primary>
|
|
<see>SVN</see>
|
|
</indexterm>
|
|
|
|
<para>For several years, the central source tree for &os;
|
|
was maintained by
|
|
<ulink url="http://www.nongnu.org/cvs/">CVS</ulink>
|
|
(Concurrent Versions System), a freely available source code
|
|
control tool that comes bundled with &os;. In June 2008, the
|
|
Project switched to using <ulink
|
|
url="http://subversion.tigris.org">SVN</ulink> (Subversion).
|
|
The switch was deemed necessary, as the technical limitations
|
|
imposed by <application>CVS</application> were becoming obvious
|
|
due to the rapid expansion of the source tree and the amount
|
|
of history already stored. The Documentation Project
|
|
and Ports Collection repositories also moved from
|
|
<application>CVS</application> to
|
|
<application>SVN</application> in May 2012 and July
|
|
2012, respectively.</para>
|
|
|
|
<para>While the <literal>src/</literal> and
|
|
<literal>ports/</literal> repositories now use
|
|
<application>SVN</application>, client side tools like
|
|
<application>csup</application> that depend on the older
|
|
<application>CVS</application> infrastructure, continue to
|
|
work normally — changes in the
|
|
<application>SVN</application> repository are backported to
|
|
<application>CVS</application> for this purpose.
|
|
Unlike <literal>src/</literal> and
|
|
<literal>ports/</literal>,
|
|
the documentation <application>SVN</application>
|
|
repository is not backported to
|
|
<application>CVS</application>.</para>
|
|
|
|
<para>The primary <application>CVS</application>
|
|
<ulink
|
|
url="http://www.FreeBSD.org/cgi/cvsweb.cgi">repository</ulink>
|
|
resides on a machine in Santa Clara CA, USA
|
|
from where it is replicated to numerous mirror machines
|
|
throughout the world. The <application>SVN</application> tree,
|
|
which contains the <link linkend="current">-CURRENT</link> and
|
|
<link linkend="stable">-STABLE</link> trees,
|
|
can all 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>
|
|
|
|
<listitem>
|
|
<indexterm><primary>committers</primary></indexterm>
|
|
|
|
<para>The <firstterm>committers</firstterm>
|
|
are the people who have <emphasis>write</emphasis> access to
|
|
the CVS tree, and are authorized to make modifications
|
|
to the &os; 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. 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>
|
|
|
|
<listitem>
|
|
<indexterm><primary>core team</primary></indexterm>
|
|
|
|
<para>The <firstterm>&os; core team</firstterm>
|
|
would be equivalent to the board of directors if the
|
|
&os; 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 July 2012. 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 &os; developers
|
|
and their areas of responsibility, please see the <ulink
|
|
url="&url.articles.contributors;/article.html">Contributors
|
|
List</ulink></para>
|
|
|
|
<note>
|
|
<para>Most members of the core team are volunteers when it
|
|
comes to &os; 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 very accurate, and it may be
|
|
more suitable to say that these are the people who gave up
|
|
their lives in favor of &os; against their better
|
|
judgement!</para>
|
|
</note>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Outside contributors</term>
|
|
|
|
<listitem>
|
|
<indexterm><primary>contributors</primary></indexterm>
|
|
|
|
<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 &os;'s more non-centralized
|
|
development is to subscribe to the &a.hackers; where such
|
|
things are discussed. See <xref linkend="eresources"/> for
|
|
more information about the various &os; mailing lists.</para>
|
|
|
|
<para><citetitle><ulink
|
|
url="&url.articles.contributors;/article.html">The
|
|
&os; Contributors List</ulink></citetitle> is a long
|
|
and growing one, so why not join it by contributing
|
|
something back to &os; 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="&url.base;/index.html">&os; 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 &os;, who are
|
|
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 — this model works very well in
|
|
accomplishing that.</para>
|
|
|
|
<para>All we ask of those who would join us as &os; developers is
|
|
some of the same dedication its current people have to its
|
|
continued success!</para>
|
|
</sect2>
|
|
|
|
<sect2 id="relnotes">
|
|
<title>The Current &os; 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>&os; is a freely available, full source 4.4BSD-Lite based
|
|
release for Intel &i386;, &i486;, &pentium;,
|
|
&pentium; Pro,
|
|
&celeron;,
|
|
&pentium; II,
|
|
&pentium; III,
|
|
&pentium; 4 (or compatible),
|
|
&xeon;,
|
|
and Sun &ultrasparc; 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 &os; 2.0 in late 1994, the performance,
|
|
feature set, and stability of &os; 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 &os;'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 thousands of bug fixes.</para>
|
|
|
|
<para>In addition to the base distributions, &os; 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 CD-ROM 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. More information on
|
|
packages and ports can be found in <xref linkend="ports"/>.</para>
|
|
|
|
<para>All recent &os; versions provide an option in the installer
|
|
(either &man.sysinstall.8; or &man.bsdinstall.8;) to install
|
|
additional documentation under <filename
|
|
class="directory">/usr/local/share/doc/freebsd</filename> during
|
|
the initial system setup. Documentation may also be installed at
|
|
any later time using packages as described in <xref
|
|
linkend="doc-ports-install-package"/>.
|
|
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 type="html"
|
|
url="file://localhost/usr/local/share/doc/freebsd/handbook/index.html"><filename>/usr/local/share/doc/freebsd/handbook/index.html</filename></ulink></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>The FreeBSD FAQ</term>
|
|
|
|
<listitem>
|
|
<para><ulink type="html"
|
|
url="file://localhost/usr/local/share/doc/freebsd/faq/index.html"><filename>/usr/local/share/doc/freebsd/faq/index.html</filename></ulink></para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>You can also view the master (and most frequently updated)
|
|
copies at <ulink url="http://www.FreeBSD.org/"></ulink>.</para>
|
|
</sect2>
|
|
</sect1>
|
|
</chapter>
|