963 lines
33 KiB
XML
963 lines
33 KiB
XML
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!--
|
|
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.weathernews.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">
|
|
<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 Unofficial
|
|
386BSDPatchkit by the patchkit's last 3
|
|
coordinators: Nate Williams, Rod Grimes and Jordan
|
|
Hubbard.</para>
|
|
|
|
<indexterm><primary>386BSD</primary></indexterm>
|
|
<para>The 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. The
|
|
early working title for the project was
|
|
386BSD 0.5 or 386BSD Interim in
|
|
reference of 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, they 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>The trio thought that the goal remained
|
|
worthwhile, even without Bill's support, and so they adopted the
|
|
name "&os;" coined by David Greenman. The
|
|
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, Jordan 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 they 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>Since that time, &os; has made a series of releases each
|
|
time improving the stability, speed, and feature set of the
|
|
previous version.</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 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 repositories<anchor
|
|
id="development-cvs-repository"/></term>
|
|
<listitem>
|
|
<indexterm>
|
|
<primary>CVS</primary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>CVS Repository</primary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>Concurrent Versions System</primary>
|
|
<see>CVS</see>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>Subversion</primary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>Subversion Repository</primary>
|
|
</indexterm>
|
|
|
|
<indexterm>
|
|
<primary>SVN</primary>
|
|
<see>Subversion</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. Please
|
|
refer to the <link linkend="synching">Synchronizing
|
|
your source tree</link> section for more information on
|
|
obtaining the &os; <literal>src/</literal> repository
|
|
and <link linkend="ports-using">Using the Ports
|
|
Collection</link> for details on obtaining the &os;
|
|
Ports Collection.</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 Subversion tree, and are authorized to
|
|
make modifications to the &os; source (the term
|
|
<quote>committer</quote> comes from the source control
|
|
<command>commit</command> command, which is used to
|
|
bring new changes into the 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>Third Party Programs</title>
|
|
|
|
<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 writing, there
|
|
were over &os.numports; ports! The list of ports ranges from
|
|
http servers, to games, languages, editors, and almost
|
|
everything in between. The entire Ports Collection requires
|
|
approximately &ports.size;. 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
|
|
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>
|
|
</sect2>
|
|
|
|
<sect2>
|
|
<title>Additional Documentation</title>
|
|
|
|
<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
|
|
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
|
|
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>
|