<?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;&nbsp;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;&nbsp;Project.</para>
      </listitem>

      <listitem>
	<para>The goals of the &os;&nbsp;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;&nbsp;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;&nbsp;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;&nbsp;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;&nbsp;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&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&amp;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;&nbsp;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;&nbsp;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;&nbsp;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;&nbsp;Project Goals</title>

      <indexterm>
	<primary>FreeBSD Project</primary>
	<secondary>goals</secondary>
      </indexterm>
      <para>The goals of the &os;&nbsp;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;&nbsp;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;&nbsp;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;&nbsp;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 &mdash; 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>