doc/en_US.ISO8859-1/books/handbook/introduction/chapter.xml
2016-04-03 18:57:15 +00:00

1298 lines
44 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
-->
<chapter xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="introduction">
<info>
<title>Introduction</title>
<authorgroup>
<author>
<personname>
<firstname>Jim</firstname>
<surname>Mock</surname>
</personname>
<contrib>Restructured, reorganized, and parts rewritten
by </contrib>
</author>
</authorgroup>
</info>
<sect1 xml: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 xml: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 under way. You can also read about
<link linkend="history">the history of &os;</link>, or the
<link xlink:href="&url.base;/releases">current release</link>.
If you are interested in contributing something to the Project
(code, hardware, funding), see the <link
xlink:href="&url.articles.contributing;/index.html">Contributing
to &os;</link> article.</para>
<sect2 xml:id="os-overview">
<title>What Can &os; Do?</title>
<para>&os; has many noteworthy features. Some of these
are:</para>
<itemizedlist>
<listitem>
<para><emphasis>Preemptive multitasking</emphasis>
<indexterm>
<primary>preemptive multitasking</primary>
</indexterm> 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>
<para><emphasis>Multi-user facilities</emphasis><indexterm>
<primary>multi-user facilities</primary>
</indexterm> 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>
<para>Strong <emphasis>TCP/IP
networking</emphasis><indexterm>
<primary>TCP/IP networking</primary>
</indexterm> 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>
<para><emphasis>Memory protection</emphasis><indexterm>
<primary>memory protection</primary>
</indexterm> ensures that applications (or users) cannot
interfere with each other. One application crashing will
not affect others in any way.</para>
</listitem>
<listitem>
<para>The industry standard
<emphasis>X Window System</emphasis><indexterm>
<primary>X Window System</primary>
</indexterm> (X11R7) can provide a graphical user
interface (GUI) on any machine and comes with full
sources.</para>
</listitem>
<listitem>
<para>
<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>
<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>
<para>Demand paged <emphasis>virtual
memory</emphasis><indexterm>
<primary>virtual memory</primary>
</indexterm> 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>
<para><emphasis>SMP</emphasis><indexterm>
<primary>Symmetric Multi-Processing
(SMP)</primary>
</indexterm> support for machines with multiple
CPUs.</para>
</listitem>
<listitem>
<para>
<indexterm>
<primary>compilers</primary>
<secondary>C</secondary>
</indexterm>
<indexterm>
<primary>compilers</primary>
<secondary>C++</secondary>
</indexterm>
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>
<para><emphasis>Source code</emphasis><indexterm>
<primary>source code</primary>
</indexterm> 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>
<para>&os; is based on the 4.4BSD-Lite<indexterm>
<primary>4.4BSD-Lite</primary>
</indexterm> release from Computer
Systems Research Group (CSRG)<indexterm>
<primary>Computer Systems Research Group (CSRG)</primary>
</indexterm> 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. &os; offers performance and
reliability on par with commercial offerings, combined with
many cutting-edge features not available anywhere else.</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>
<para>World Wide Web servers<indexterm>
<primary>web servers</primary>
</indexterm>
(standard or secure [SSL])</para>
</listitem>
<listitem>
<para>IPv4 and IPv6 routing</para>
</listitem>
<listitem>
<para>Firewalls<indexterm>
<primary>firewall</primary>
</indexterm>
and NAT<indexterm>
<primary>NAT</primary>
</indexterm>
(<quote>IP masquerading</quote>) gateways</para>
</listitem>
<listitem>
<para>FTP servers<indexterm>
<primary>FTP servers</primary>
</indexterm></para>
</listitem>
<listitem>
<para>
<indexterm>
<primary>electronic mail</primary>
<see>email</see>
</indexterm>
<indexterm>
<primary>email</primary>
</indexterm>
Electronic Mail servers</para>
</listitem>
<listitem>
<para>And more...</para>
</listitem>
</itemizedlist>
</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>
<para><emphasis>Networking:</emphasis> Need a new
router?<indexterm>
<primary>router</primary>
</indexterm> A name server (DNS)?<indexterm>
<primary>DNS Server</primary>
</indexterm> A firewall to keep people out of your
internal network? &os; can easily turn that unused
PC sitting in the corner into an advanced router with
sophisticated packet-filtering capabilities.</para>
</listitem>
<listitem>
<para><emphasis>Embedded:</emphasis> &os; makes an
excellent platform to build embedded systems upon.
<indexterm>
<primary>embedded</primary>
</indexterm>
With support for the &arm;, &mips; and &powerpc;
platforms, coupled with a robust network stack, cutting
edge features and the permissive <link
xlink:href="&url.books.faq;/introduction.html#bsd-license-restrictions">BSD
license</link> &os; makes an excellent foundation for
building embedded routers, firewalls, and other
devices.</para>
</listitem>
<listitem>
<para>
<indexterm>
<primary>X Window System</primary>
</indexterm>
<indexterm>
<primary>GNOME</primary>
</indexterm>
<indexterm>
<primary>KDE</primary>
</indexterm>
<emphasis>Desktop:</emphasis> &os; makes a
fine choice for an inexpensive desktop solution
using the freely available X11 server.
&os; offers a choice from many open-source desktop
environments, including the standard
<application>GNOME</application> and
<application>KDE</application> graphical user interfaces.
&os; can even boot <quote>diskless</quote> from
a central server, making individual workstations
even cheaper and easier to administer.</para>
</listitem>
<listitem>
<para><emphasis>Software Development:</emphasis> The basic
&os; system comes with a full complement of development
tools including a full
C/C++<indexterm>
<primary>Compiler</primary>
</indexterm>
compiler and debugger suite.
Support for many other languages are also available
through the ports and packages collection.</para>
</listitem>
</itemizedlist>
<para>&os; is available to download free of charge, or can be
obtained on either CD-ROM or DVD. Please see
<xref linkend="mirrors"/> for more information about obtaining
&os;.</para>
</sect2>
<sect2 xml:id="introduction-nutshell-users">
<title>Who Uses &os;?</title>
<indexterm>
<primary>users</primary>
<secondary>large sites running &os;</secondary>
</indexterm>
<para>&os;'s advanced features, proven security, predictable
release cycle, and permissive license have led to its use as a
platform for building many commercial and open source
appliances, devices, and products. Many of the world's
largest IT companies use &os;:</para>
<itemizedlist>
<listitem>
<para><link
xlink:href="http://www.apache.org/">Apache</link>
<indexterm>
<primary>Apache</primary>
</indexterm> - The Apache Software Foundation runs most of
its public facing infrastructure, including possibly one
of the largest SVN repositories in the world with over 1.4
million commits, on &os;.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.apple.com/">Apple</link>
<indexterm>
<primary>Apple</primary>
</indexterm> - OS X borrows heavily from &os; for the
network stack, virtual file system, and many userland
components. Apple iOS also contains elements borrowed
from &os;.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.cisco.com/">Cisco</link>
<indexterm>
<primary>Cisco</primary>
</indexterm> - IronPort network security and anti-spam
appliances run a modified &os; kernel.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.citrix.com/">Citrix</link>
<indexterm>
<primary>Citrix</primary>
</indexterm> - The NetScaler line of security appliances
provide layer 4-7 load balancing, content caching,
application firewall, secure VPN, and mobile cloud network
access, along with the power of a &os; shell.</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.dell.com/KACE">Dell
KACE</link>
<indexterm>
<primary>Dell KACE</primary>
</indexterm> - The KACE system management appliances run
&os; because of its reliability, scalability, and the
community that supports its continued development.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.experts-exchange.com/">Experts
Exchange</link>
<indexterm>
<primary>Experts Exchange</primary>
</indexterm> - All public facing web servers are powered
by &os; and they make extensive use of jails to isolate
development and testing environments without the overhead
of virtualization.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.isilon.com/">Isilon</link>
<indexterm>
<primary>Isilon</primary>
</indexterm> - Isilon's enterprise storage appliances
are based on &os;. The extremely liberal &os; license
allowed Isilon to integrate their intellectual property
throughout the kernel and focus on building their product
instead of an operating system.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.ixsystems.com/">iXsystems</link>
<indexterm>
<primary>iXsystems</primary>
</indexterm> - The TrueNAS line of unified storage
appliances is based on &os;. In addition to their
commercial products, iXsystems also manages development of
the open source projects PC-BSD and FreeNAS.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.juniper.net/">Juniper</link>
<indexterm>
<primary>Juniper</primary>
</indexterm> - The JunOS operating system that powers all
Juniper networking gear (including routers, switches,
security, and networking appliances) is based on &os;.
Juniper is one of many vendors that showcases the
symbiotic relationship between the project and vendors of
commercial products. Improvements generated at Juniper
are upstreamed into &os; to reduce the complexity of
integrating new features from &os; back into JunOS in the
future.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.mcafee.com/">McAfee</link>
<indexterm>
<primary>McAfee</primary>
</indexterm> - SecurOS, the basis of McAfee enterprise
firewall products including Sidewinder is based on
&os;.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.netapp.com/">NetApp</link>
<indexterm>
<primary>NetApp</primary>
</indexterm> - The Data ONTAP GX line of storage
appliances are based on &os;. In addition, NetApp has
contributed back many features, including the new BSD
licensed hypervisor, bhyve.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.netflix.com/">Netflix</link>
<indexterm>
<primary>Netflix</primary>
</indexterm> - The OpenConnect appliance that Netflix
uses to stream movies to its customers is based on &os;.
Netflix has made extensive contributions to the codebase
and works to maintain a zero delta from mainline &os;.
Netflix OpenConnect appliances are responsible for
delivering more than 32% of all Internet traffic in North
America.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.sandvine.com/">Sandvine</link>
<indexterm>
<primary>Sandvine</primary>
</indexterm> - Sandvine uses &os; as the basis of their
high performance realtime network processing platforms
that make up their intelligent network policy control
products.</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.sony.com/">Sony</link>
<indexterm>
<primary>Sony</primary>
</indexterm> - The PlayStation 4 gaming console runs a
modified version of &os;.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.sophos.com/">Sophos</link>
<indexterm>
<primary>Sophos</primary>
</indexterm> - The Sophos Email Appliance product is based
on a hardened &os; and scans inbound mail for spam and
viruses, while also monitoring outbound mail for malware
as well as the accidental loss of sensitive
information.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.spectralogic.com/">Spectra
Logic</link>
<indexterm>
<primary>Spectra Logic</primary>
</indexterm> - The nTier line of archive grade storage
appliances run &os; and OpenZFS.</para>
</listitem>
<listitem>
<para><link xlink:href="http://www.weather.com/">The Weather
Channel</link>
<indexterm>
<primary>The Weather Channel</primary>
</indexterm> - The IntelliStar appliance that is installed
at each local cable providers headend and is responsible
for injecting local weather forecasts into the cable TV
network's programming runs &os;.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.verisign.com/">Verisign</link>
<indexterm>
<primary>Verisign</primary>
</indexterm> - Verisign is responsible for operating the
.com and .net root domain registries as well as the
accompanying DNS infrastructure. They rely on a number of
different network operating systems including &os; to
ensure there is no common point of failure in their
infrastructure.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.voxer.com/">Voxer</link>
<indexterm>
<primary>Voxer</primary>
</indexterm> - Voxer powers their mobile voice messaging
platform with ZFS on &os;. Voxer switched from a Solaris
derivative to &os; because of its superior documentation,
larger and more active community, and more developer
friendly environment. In addition to critical features
like <acronym>ZFS</acronym> and DTrace, &os; also offers
TRIM support for <acronym>ZFS</acronym>.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.whatsapp.com/">WhatsApp</link>
<indexterm>
<primary>WhatsApp</primary>
</indexterm> - When WhatsApp needed a platform that would
be able to handle more than 1 million concurrent TCP
connections per server, they chose &os;. They then
proceeded to scale past 2.5 million connections per
server.</para>
</listitem>
<listitem>
<para><link xlink:href="http://wheelsystems.com/">Wheel
Systems</link>
<indexterm>
<primary>Wheel Systems</primary>
</indexterm> - The FUDO security appliance allows
enterprises to monitor, control, record, and audit
contractors and administrators who work on their systems.
Based on all of the best security features of &os;
including ZFS, GELI, Capsicum, HAST, and
auditdistd.</para>
</listitem>
</itemizedlist>
<para>&os; has also spawned a number of related open source
projects:</para>
<itemizedlist>
<listitem>
<para><link xlink:href="http://bsdrp.net/">BSD
Router</link>
<indexterm>
<primary>BSD Router</primary>
</indexterm> - A &os; based replacement for large
enterprise routers designed to run on standard PC
hardware.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.freenas.org/">FreeNAS</link>
<indexterm>
<primary>FreeNAS</primary>
</indexterm> - A customized &os; designed to be used as a
network file server appliance. Provides a python based
web interface to simplify the management of both the UFS
and ZFS file systems. Includes support for NFS, SMB/CIFS,
AFP, FTP, and iSCSI. Includes an extensible plugin system
based on &os; jails.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.ghostbsd.org/">GhostBSD</link>
<indexterm>
<primary>GhostBSD</primary>
</indexterm> - A desktop oriented distribution of &os;
bundled with the Gnome desktop environment.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://mfsbsd.vx.sk/">mfsBSD</link>
<indexterm>
<primary>mfsBSD</primary>
</indexterm> - A toolkit for building a &os; system image
that runs entirely from memory.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.nas4free.org/">NAS4Free</link>
<indexterm>
<primary>NAS4Free</primary>
</indexterm> - A file server distribution based on &os;
with a PHP powered web interface.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.opnsense.org/">OPNSense</link>
<indexterm>
<primary>OPNsense</primary>
</indexterm> - OPNsense is an open source, easy-to-use and
easy-to-build FreeBSD based firewall and routing platform.
OPNsense includes most of the features available in
expensive commercial firewalls, and more in many cases.
It brings the rich feature set of commercial offerings
with the benefits of open and verifiable sources.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.pcbsd.org/">PC-BSD</link>
<indexterm>
<primary>PC-BSD</primary>
</indexterm> - A customized version of &os; geared towards
desktop users with graphical utilities to exposing the
power of &os; to all users. Designed to ease the
transition of Windows and OS X users.</para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.pfsense.org/">pfSense</link>
<indexterm>
<primary>pfSense</primary>
</indexterm> - A firewall distribution based on &os; with
a huge array of features and extensive IPv6
support.</para>
</listitem>
<listitem>
<para><link xlink:href="http://zrouter.org/">ZRouter</link>
<indexterm>
<primary>ZRouter</primary>
</indexterm> - An open source alternative firmware for
embedded devices based on &os;. Designed to replace the
proprietary firmware on off-the-shelf routers.</para>
</listitem>
</itemizedlist>
<para>&os; is also used to power some of the biggest sites on
the Internet, including:</para>
<itemizedlist>
<listitem>
<para><link xlink:href="http://www.yahoo.com/">Yahoo!</link>
<indexterm>
<primary>Yahoo!</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link xlink:href="http://www.yandex.ru/">Yandex</link>
<indexterm>
<primary>Yandex</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.rambler.ru/">Rambler</link>
<indexterm>
<primary>Rambler</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link xlink:href="http://www.sina.com/">Sina</link>
<indexterm>
<primary>Sina</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link xlink:href="http://www.pair.com/">Pair
Networks</link>
<indexterm>
<primary>Pair Networks</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link xlink:href="http://www.sony.co.jp/">Sony
Japan</link>
<indexterm>
<primary>Sony Japan</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.netcraft.com/">Netcraft</link>
<indexterm>
<primary>Netcraft</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link
xlink:href="https://signup.netflix.com/openconnect">Netflix</link>
<indexterm>
<primary>Netflix</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link xlink:href="http://www.163.com/">NetEase</link>
<indexterm>
<primary>NetEase</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link
xlink:href="http://www.weathernews.com/">Weathernews</link>
<indexterm>
<primary>Weathernews</primary>
</indexterm></para>
</listitem>
<listitem>
<para><link xlink:href="http://www.telehouse.com/">TELEHOUSE
America</link>
<indexterm>
<primary>TELEHOUSE America</primary>
</indexterm></para>
</listitem>
</itemizedlist>
<para>and many more. Wikipedia also maintains a <link
xlink:href="http://en.wikipedia.org/wiki/List_of_products_based_on_FreeBSD">list
of products based on &os;</link>.</para>
</sect2>
</sect1>
<sect1 xml: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 xml: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, and in December it released
&os;&nbsp;2.0 to the world. 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 <link
xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/snapshots/">the
snapshot server</link> as work progresses.</para>
</sect2>
<sect2 xml:id="goals">
<info>
<title>&os;&nbsp;Project Goals</title>
<authorgroup>
<author>
<personname>
<firstname>Jordan</firstname>
<surname>Hubbard</surname>
</personname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</info>
<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 xml:id="development">
<info>
<title>The &os; Development Model</title>
<authorgroup>
<author>
<personname>
<firstname>Satoshi</firstname>
<surname>Asami</surname>
</personname>
<contrib>Contributed by </contrib>
</author>
</authorgroup>
</info>
<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
thousands of people around the world, as can be seen from our
<link
xlink:href="&url.articles.contributors;/article.html">list
of contributors</link>. &os;'s development infrastructure
allow these thousands of contributors 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
xml:id="development-cvs-repository"/></term>
<listitem>
<para>
<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>
For several years, the central source tree for &os;
was maintained by
<link xlink:href="http://www.nongnu.org/cvs/">CVS</link>
(Concurrent Versions System), a freely available source
code control tool. In June 2008, the Project switched
to using <link
xlink:href="http://subversion.tigris.org">SVN</link>
(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
xml:id="development-committers"/></term>
<listitem>
<para>The <firstterm>committers</firstterm>
<indexterm>
<primary>committers</primary>
</indexterm> 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 <command>commit</command>, the source control
command which is used to bring new changes into the
repository). Anyone can submit a bug to the <link
xlink:href="https://bugs.FreeBSD.org/submit/">Bug
Database</link>. Before submitting a bug report, the
&os; mailing lists, IRC channels, or forums can be used to
help verify that an issue is actually a bug.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>The FreeBSD core team<anchor
xml:id="development-core"/></term>
<listitem>
<para>The <firstterm>&os; core team</firstterm>
<indexterm>
<primary>core team</primary>
</indexterm> 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 2014. Elections are held
every 2 years.</para>
<note>
<para>Like most developers, most members of the
core team are also 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>
<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><link
xlink:href="&url.articles.contributors;/article.html">The
&os; Contributors List</link></citetitle>
<indexterm>
<primary>contributors</primary>
</indexterm> 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 <link
xlink:href="&url.base;/index.html">&os;&nbsp;Project
web site</link>.</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 xml:id="third-party-programs">
<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 install</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>/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><link
xlink:href="file://localhost/usr/local/share/doc/freebsd/handbook/index.html"><filename>/usr/local/share/doc/freebsd/handbook/index.html</filename></link></para>
</listitem>
</varlistentry>
<varlistentry>
<term>The FreeBSD FAQ</term>
<listitem>
<para><link
xlink:href="file://localhost/usr/local/share/doc/freebsd/faq/index.html"><filename>/usr/local/share/doc/freebsd/faq/index.html</filename></link></para>
</listitem>
</varlistentry>
</variablelist>
<para>You can also view the master (and most frequently updated)
copies at <uri
xlink:href="http://www.FreeBSD.org/">http://www.FreeBSD.org/</uri>.</para>
</sect2>
</sect1>
</chapter>