FreeBSD Handbook Introduction (Online Edition)
FreeBSD Handbook Introduction (Online Edition)
Getting Started
Next
Chapter 1. Introduction
Table of Contents
• 1.1. Synopsis
• 1.2. Welcome to FreeBSD!
• 1.3. About the FreeBSD Project
1.1. Synopsis
Thank you for your interest in FreeBSD! The following chapter covers various aspects of the FreeBSD
Project, such as its history, goals, development model, and so on.
After reading this chapter you will know:
• Liberal Open Source license, which grants you rights to freely modify and extend its source
code and incorporate it in both Open Source projects and closed products without imposing
restrictions typical to copyleft licenses, as well as avoiding potential license incompatibility
problems.
• Strong TCP/IP networking - FreeBSD implements industry standard protocols with ever
increasing performance and scalability. This makes it a good match in both server, and
routing/firewalling roles - and indeed many companies and vendors use it precisely for that
purpose.
• Fully integrated OpenZFS support, including root-on-ZFS, ZFS Boot Environments, fault
management, administrative delegation, support for jails, FreeBSD specific documentation, and
system installer support.
• Extensive security features, from the Mandatory Access Control framework to Capsicum
capability and sandbox mechanisms.
• Over 30 thousand prebuilt packages for all supported architectures, and the Ports Collection
which makes it easy to build your own, customized ones.
• Documentation - in addition to Handbook and books from different authors that cover topics
ranging from system administration to kernel internals, there are also the man(1) pages, not only
for userspace daemons, utilities, and configuration files, but also for kernel driver APIs (section
9) and individual drivers (section 4).
• Simple and consistent repository structure and build system - FreeBSD uses a single repository
for all of its components, both kernel and userspace. This, along with an unified and easy to
customize build system and a well thought out development process makes it easy to integrate
FreeBSD with build infrastructure for your own product.
• Staying true to Unix philosophy, preferring composability instead of monolithic "all in one"
daemons with hardcoded behavior.
• Binary compatibility with Linux, which makes it possible to run many Linux binaries without
the need for virtualisation.
FreeBSD is based on the 4.4BSD-Lite release from Computer Systems Research Group (CSRG) at the
University of California at Berkeley, and carries on the distinguished tradition of BSD systems
development. In addition to the fine work provided by CSRG, the FreeBSD Project has put in many
thousands of man-hours into extending the functionality and fine-tuning the system for maximum
performance and reliability in real-life load situations. FreeBSD offers performance and reliability on
par with other Open Source and commercial offerings, combined with cutting-edge features not
available anywhere else.
1.2.1. What Can FreeBSD Do?
The applications to which FreeBSD can be put are truly limited only by your own imagination. From
software development to factory automation, inventory control to azimuth correction of remote satellite
antennae; if it can be done with a commercial UNIX® product then it is more than likely that you can
do it with FreeBSD too! FreeBSD also benefits significantly from literally thousands of high quality
applications developed by research centers and universities around the world, often available at little to
no cost.
Because the source code for FreeBSD itself is freely available, the system can also be customized to an
almost unheard of degree for special applications or projects, and in ways not generally possible with
operating systems from most major commercial vendors. Here is just a sampling of some of the
applications in which people are currently using FreeBSD:
• Internet Services: The robust TCP/IP networking built into FreeBSD makes it an ideal platform
for a variety of Internet services such as:
• Web servers
• FTP servers
• Email servers
• And more…
• Education: Are you a student of computer science or a related engineering field? There is no
better way of learning about operating systems, computer architecture and networking than the
hands on, under the hood experience that FreeBSD can provide. A number of freely available
CAD, mathematical and graphic design packages also make it highly useful to those whose
primary interest in a computer is to get other work done!
• Research: With source code for the entire system available, FreeBSD is an excellent platform
for research in operating systems as well as other branches of computer science. FreeBSD’s
freely available nature also makes it possible for remote groups to collaborate on ideas or shared
development without having to worry about special licensing agreements or limitations on what
may be discussed in open forums.
• Networking: Need a new router? A name server (DNS)? A firewall to keep people out of your
internal network? FreeBSD can easily turn that unused PC sitting in the corner into an advanced
router with sophisticated packet-filtering capabilities.
• Embedded: FreeBSD makes an excellent platform to build embedded systems upon. With
support for the ARM®, MIPS® and PowerPC® platforms, coupled with a robust network stack,
cutting edge features and the permissive BSD license FreeBSD makes an excellent foundation
for building embedded routers, firewalls, and other devices.
• Desktop: FreeBSD makes a fine choice for an inexpensive desktop solution using the freely
available X11 server. FreeBSD offers a choice from many open-source desktop environments,
including the standard GNOME and KDE graphical user interfaces. FreeBSD can even boot
"diskless" from a central server, making individual workstations even cheaper and easier to
administer.
• Software Development: The basic FreeBSD system comes with a full suite of development tools
including a full C/C++ compiler and debugger suite. Support for many other languages are also
available through the ports and packages collection.
FreeBSD is available to download free of charge, or can be obtained on either CD-ROM or DVD.
Please see Obtaining FreeBSD for more information about obtaining FreeBSD.
1.2.2. Who Uses FreeBSD?
FreeBSD has been known for its web serving capabilities - sites that run on FreeBSD include Hacker
News, Netcraft, NetEase, Netflix, Sina, Sony Japan, Rambler, Yahoo!, and Yandex.
FreeBSD’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 FreeBSD:
• Apache - 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 FreeBSD.
• Apple - OS X borrows heavily from FreeBSD for the network stack, virtual file system, and
many userland components. Apple iOS also contains elements borrowed from FreeBSD.
• Cisco - IronPort network security and anti-spam appliances run a modified FreeBSD kernel.
• Citrix - 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 FreeBSD shell.
• Dell EMC Isilon - Isilon’s enterprise storage appliances are based on FreeBSD. The extremely
liberal FreeBSD license allowed Isilon to integrate their intellectual property throughout the
kernel and focus on building their product instead of an operating system.
• Quest KACE - The KACE system management appliances run FreeBSD because of its
reliability, scalability, and the community that supports its continued development.
• iXsystems - The TrueNAS line of unified storage appliances is based on FreeBSD. In addition
to their commercial products, iXsystems also manages development of the open source projects
TrueOS and FreeNAS.
• Juniper - The JunOS operating system that powers all Juniper networking gear (including
routers, switches, security, and networking appliances) is based on FreeBSD. 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 FreeBSD to
reduce the complexity of integrating new features from FreeBSD back into JunOS in the future.
• McAfee - SecurOS, the basis of McAfee enterprise firewall products including Sidewinder is
based on FreeBSD.
• NetApp - The Data ONTAP GX line of storage appliances are based on FreeBSD. In addition,
NetApp has contributed back many features, including the new BSD licensed hypervisor,
bhyve.
• Netflix - The OpenConnect appliance that Netflix uses to stream movies to its customers is
based on FreeBSD. Netflix has made extensive contributions to the codebase and works to
maintain a zero delta from mainline FreeBSD. Netflix OpenConnect appliances are responsible
for delivering more than 32% of all Internet traffic in North America.
• Sandvine - Sandvine uses FreeBSD as the basis of their high performance real-time network
processing platforms that make up their intelligent network policy control products.
• Sophos - The Sophos Email Appliance product is based on a hardened FreeBSD and scans
inbound mail for spam and viruses, while also monitoring outbound mail for malware as well as
the accidental loss of sensitive information.
• Spectra Logic - The nTier line of archive grade storage appliances run FreeBSD and OpenZFS.
• The Weather Channel - The IntelliStar appliance that is installed at each local cable provider’s
headend and is responsible for injecting local weather forecasts into the cable TV network’s
programming runs FreeBSD.
• Verisign - 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 FreeBSD to ensure there is no common point of failure in their infrastructure.
• Voxer - Voxer powers their mobile voice messaging platform with ZFS on FreeBSD. Voxer
switched from a Solaris derivative to FreeBSD because of its superior documentation, larger
and more active community, and more developer friendly environment. In addition to critical
features like ZFS and DTrace, FreeBSD also offers TRIM support for ZFS.
• Fudo Security - 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 FreeBSD including ZFS, GELI, Capsicum, HAST, and auditdistd.
• BSD Router - A FreeBSD based replacement for large enterprise routers designed to run on
standard PC hardware.
• GhostBSD - is derived from FreeBSD, uses the GTK environment to provide a beautiful looks
and comfortable experience on the modern BSD platform offering a natural and native UNIX®
work environment.
• mfsBSD - A toolkit for building a FreeBSD system image that runs entirely from memory.
• NAS4Free - A file server distribution based on FreeBSD with a PHP powered web interface.
• TrueOS - TrueOS is based on the legendary security and stability of FreeBSD. TrueOS follows
FreeBSD-CURRENT, with the latest drivers, security updates, and packages available.
• MidnightBSD - is a FreeBSD derived operating system developed with desktop users in mind.
It includes all the software you’d expect for your daily tasks: mail, web browsing, word
processing, gaming, and much more.
• NomadBSD - is a persistent live system for USB flash drives, based on FreeBSD. Together with
automatic hardware detection and setup, it is configured to be used as a desktop system that
works out of the box, but can also be used for data recovery, for educational purposes, or to test
FreeBSD’s hardware compatibility.
• pfSense - A firewall distribution based on FreeBSD with a huge array of features and extensive
IPv6 support.
• ZRouter - An open source alternative firmware for embedded devices based on FreeBSD.
Designed to replace the proprietary firmware on off-the-shelf routers.
A list of testimonials from companies basing their products and services on FreeBSD can be found at
the FreeBSD Foundation website. Wikipedia also maintains a list of products based on FreeBSD.
1.3. About the FreeBSD Project
The following section provides some background information on the project, including a brief history,
project goals, and the development model of the project.
1.3.1. A Brief History of FreeBSD
The FreeBSD Project had its genesis in the early part of 1993, partially as the brainchild of the
Unofficial 386BSDPatchkit’s last 3 coordinators: Nate Williams, Rod Grimes and Jordan Hubbard.
The original goal was to produce an intermediate snapshot of 386BSD in order to fix a number of
problems that the patchkit mechanism was just not capable of solving. The early working title for the
project was 386BSD 0.5 or 386BSD Interim in reference of that fact.
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 "cleanup" 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.
The trio thought that the goal remained worthwhile, even without Bill’s support, and so they adopted
the name "FreeBSD" 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 FreeBSD’s
distribution channels for those many unfortunates without easy access to the Internet. Walnut Creek
CDROM not only supported the idea of distributing FreeBSD on CD but also went so far as to provide
the project with a machine to work on and a fast Internet connection. Without Walnut Creek CDROM’s
almost unprecedented degree of faith in what was, at the time, a completely unknown project, it is quite
unlikely that FreeBSD would have gotten as far, as fast, as it has today.
The first CD-ROM (and general net-wide) distribution was FreeBSD 1.0, released in December of
1993. This was based on the 4.3BSD-Lite ("Net/2") 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 FreeBSD 1.1 release in May of 1994.
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 "encumbered" 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 "blessing" that the 4.4BSD-Lite release, when it was finally
released, would be declared unencumbered and all existing Net/2 users would be strongly encouraged
to switch. This included FreeBSD, and the project was given until the end of July 1994 to stop shipping
its own Net/2 based product. Under the terms of that agreement, the project was allowed one last
release before the deadline, that release being FreeBSD 1.1.5.1.
FreeBSD then set about the arduous task of literally re-inventing itself from a completely new and
rather incomplete set of 4.4BSD-Lite bits. The "Lite" 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 FreeBSD 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 FreeBSD 2.0.5 release in June of
1995.
Since that time, FreeBSD has made a series of releases each time improving the stability, speed, and
feature set of the previous version.
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 the snapshot server as work
progresses.
1.3.2. FreeBSD Project Goals
The goals of the FreeBSD Project are to provide software that may be used for any purpose and without
strings attached. Many of us have a significant investment in the code (and project) and would certainly
not mind a little financial compensation now and then, but we are definitely not prepared to insist on it.
We believe that our first and foremost "mission" 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.
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 license when it is a reasonable option to do so.
1.3.3. The FreeBSD Development Model
The development of FreeBSD 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 list of contributors.
FreeBSD’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 FreeBSD technical
discussions mailing list. The FreeBSD announcements mailing list is also available to those wishing to
make other FreeBSD users aware of major areas of work.
Useful things to know about the FreeBSD Project and its development process, whether working
independently or in close cooperation:
The SVN repositories
For several years, the central source tree for FreeBSD was maintained by CVS (Concurrent
Versions System), a freely available source code control tool. In June 2008, the Project switched
to using SVN (Subversion). The switch was deemed necessary, as the technical limitations
imposed by CVS 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 CVS to SVN in May 2012 and July 2012, respectively. Please refer to
the Obtaining the Source section for more information on obtaining the
FreeBSD src/ repository and Using the Ports Collection for details on obtaining the FreeBSD
Ports Collection.
The committers list
The committers are the people who have write access to the Subversion tree, and are authorized
to make modifications to the FreeBSD source (the term "committer" comes from commit, the
source control command which is used to bring new changes into the repository). Anyone can
submit a bug to the Bug Database. Before submitting a bug report, the FreeBSD mailing lists,
IRC channels, or forums can be used to help verify that an issue is actually a bug.
The FreeBSD core team
The FreeBSD core team would be equivalent to the board of directors if the FreeBSD Project
were a company. The primary task of the core team is to make sure the project, as a whole, is in
good shape and is heading in the right directions. Inviting dedicated and responsible developers
to join our group of committers is one of the functions of the core team, as is the recruitment of
new core team members as others move on. The current core team was elected from a pool of
committer candidates in June 2020. Elections are held every 2 years.
Like most developers, most members of the core team are also volunteers when it comes to
FreeBSD development and do not benefit from the project financially, so "commitment" should
also not be misconstrued as meaning "guaranteed support." The "board of directors" 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 FreeBSD against their better judgement!
Outside contributors
Last, but definitely not least, the largest group of developers are the users themselves who
provide feedback and bug fixes to us on an almost constant basis. The primary way of keeping in
touch with FreeBSD’s more non-centralized development is to subscribe to the FreeBSD
technical discussions mailing list where such things are discussed. See Resources on the
Internet for more information about the various FreeBSD mailing lists.
The FreeBSD Contributors List is a long and growing one, so why not join it by contributing
something back to FreeBSD today?
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 FreeBSD Project web site.
In summary, our development model is organized as a loose set of concentric circles. The centralized
model is designed for the convenience of the users of FreeBSD, 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 application programs that the users can easily install and
use - this model works very well in accomplishing that.
All we ask of those who would join us as FreeBSD developers is some of the same dedication its
current people have to its continued success!
1.3.4. Third Party Programs
In addition to the base distributions, FreeBSD offers a ported software collection with thousands of
commonly sought-after programs. At the time of this writing, there were over 36000 ports! The list of
ports ranges from http servers, to games, languages, editors, and almost everything in between. The
entire Ports Collection requires approximately 500 MB. To compile a port, you simply change to the
directory of the program you wish to install, type make install, 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 "package",
which can be installed with a simple command (pkg install) by those who do not wish to compile
their own ports from source. More information on packages and ports can be found in Installing
Applications: Packages and Ports.
1.3.5. Additional Documentation
All supported FreeBSD versions provide an option in the installer to install additional documentation
under /usr/local/shared/doc/freebsd during the initial system setup. Documentation may also be
installed at any later time using packages as described in “Updating Documentation from Ports”. You
may view the locally installed manuals with any HTML capable browser using the following URLs:
The FreeBSD Handbook
/usr/local/shared/doc/freebsd/handbook/index.html
The FreeBSD FAQ
/usr/local/shared/doc/freebsd/faq/index.html
You can also view the master (and most frequently updated) copies at https://www.FreeBSD.org/.
Prev
Home
Next
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the documentation may be sent to <[email protected]>.
Send questions about this document to <[email protected]>.