Books and Articles Online
On this site
All the documentation on this site can be downloaded in a variety of different formats (HTML, Postscript, PDF, and more) and compression schemes (BZip2, Zip) from the FreeBSD FTP site.
Archived copies of the FreeBSD documentation (articles, books, and textinfo manuals) are also available online at http://docs.FreeBSD.org/doc/.
This documentation is provided and maintained by the FreeBSD Documentation Project, and we are always looking for people to contribute new documentation and maintain existing documentation.
Books
A project
model for the FreeBSD project (dev-model)
A formal study of the organization of the FreeBSD project.
The FreeBSD FAQ
(faq)
Frequently Asked Questions, and answers, covering all
aspects of FreeBSD.
The FreeBSD Handbook
(handbook)
A constantly evolving, comprehensive resource for FreeBSD
users.
The
FreeBSD Developers' Handbook (developers-handbook)
For people who want to develop software for FreeBSD (and not
just people who are developing FreeBSD itself).
The
FreeBSD Architecture Handbook (arch-handbook)
For FreeBSD system developers. This book covers the
architectural details of many important FreeBSD kernel
subsystems.
The Porter's
Handbook (porters-handbook)
Essential reading if you plan on providing a port of a third
party piece of software.
The PMake Tutorial
(pmake)
A tutorial for the make utility. This book is essential
reading for anyone who wants to understand all the details of using
make of reading and writing makefiles.
Chapter 2
of "The Design and Implementation of the 4.4BSD Operating
System" (design-44bsd)
Donated by Addison-Wesley, provides a design overview of 4.4BSD,
from which FreeBSD was originally derived.
The FreeBSD
Documentation Project Primer for New Contributors
(fdp-primer)
Everything you need to know in order to start contributing to the
FreeBSD Documentation Project.
Articles
Why you should use
a BSD style license for your Open Source Project (bsdl-gpl)
Describes the benefits of releasing code under a BSD
license.
Building
Products with FreeBSD (building-products)
How FreeBSD can help you build a better product.
Argentina.com : A Case Study (casestudy-argentina.com)
How FreeBSD helped a large ISP in Latin America.
The
Committer's Guide (committers-guide)
Introductory information for FreeBSD committers.
Installing
and using Compiz Fusion (compiz-fusion)
How to install and use the Compiz Fusion composite window
manager under FreeBSD.
Console
Server Tutorial (console-server)
How to setup a FreeBSD based console server with a cheap
multi-port serial card.
Contributing
to FreeBSD (contributing)
How to contribute to the FreeBSD Project.
Contributing to the FreeBSD Ports Collection
(contributing-ports)
How to help maintain the FreeBSD Ports Collection.
The
List of FreeBSD Contributors (contributors)
A list of organizations and individuals who have helped
enhance FreeBSD.
CUPS on FreeBSD
(cups)
How to setup CUPS with FreeBSD.
Using
newer version of GCC and binutils with the FreeBSD Ports
Collection (custom-gcc)
How to use newer versions of the GCC compilers and
binutils from the FreeBSD ports tree. Custom GCC
are also discussed.
Setting up a
CVS repository - The FreeBSD way (cvs-freebsd)
How to set up a CVS repository that uses the same CVSROOT
infrastructure as the FreeBSD project.
CVSup
Advanced Points (cvsup-advanced)
An article with some tips about the subtleties of
CVSup.
The Euro symbol
on FreeBSD (euro)
How to configure FreeBSD and related applications to display the
Euro symbol.
Explaining
BSD (explaining-bsd)
An answer to the question ``What is BSD?''
FreeBSD
From Scratch (fbsd-from-scratch)
How to automatically compile, install and configure a system from
scratch (i.e. to an empty file system), including your favorite
ports.
Filtering
Bridges (filtering-bridges)
Configuring firewalls and filtering on FreeBSD hosts acting as
bridges rather than routers.
Fonts and
FreeBSD (fonts)
A description of the various font technologies in FreeBSD, and
how to use them with different programs.
How
to get the best results from the FreeBSD-questions mailing list
(freebsd-questions)
Tips and tricks to help you maximize the chances of getting
useful information from the -questions mailing list.
Build
Your Own FreeBSD Update Server
(freebsd-update-server)
Using a FreeBSD Update server allows a system
administrator to perform fast updates for a number of
machines from a local mirror.
Writing
a GEOM Class (geom-class)
A guide to GEOM internals, and writing your own class.
Implementing
UFS journaling on a desktop PC (gjournal-desktop)
A guide to create UFS partitions configured with journaling
for desktop use.
Mirroring FreeBSD
(hubs)
The all in one guide for mirroring the FreeBSD website,
CVSup servers, FTP servers, and more.
Independent
Verification of IPsec Functionality in FreeBSD
(ipsec-must)
A method for experimentally verifying IPsec
functionality.
FreeBSD on Laptops
(laptop)
Information about running FreeBSD on a laptop.
LDAP Authentication
(ldap-auth)
A practical guide about setting up an LDAP server on
FreeBSD and how to use it for authenticating users.
FreeBSD: An Open Source Alternative to Linux
(linux-comparison)
A white paper explaining the differences between Linux
and FreeBSD.
Linux emulation in FreeBSD
(linux-emulation)
A technical description about the internals of the Linux
emulation layer in FreeBSD.
FreeBSD Quickstart Guide for Linux Users
(linux-users)
An introductionary guide for the users that came from Linux.
Frequently
Asked Questions About The FreeBSD Mailing Lists
(mailing-list-faq)
How to best use the mailing lists, such as how to help
avoid frequently-repeated discussions.
An MH Primer
(mh)
An introduction to using the MH mail reader on
FreeBSD.
Introduction
to NanoBSD (nanobsd)
Information about the NanoBSD tools, which can be used to
create FreeBSD system images for embedded applications,
suitable for use on a Compact Flash card (or other mass
storage medium).
FreeBSD
First Steps (new-users)
For people coming to FreeBSD and UNIX® for the first
time.
Perforce
in FreeBSD Development (p4-primer)
A guide to the Perforce version control system. It also
describes how to manage experimental projects with the
FreeBSD Perforce server.
Pluggable
Authentication Modules (pam)
A guide to the PAM system and modules under
FreeBSD.
Package
building procedures (portbuild)
Describes the approach used by the FreeBSD port
manager team to regularly build ports into packages.
It describes the portbuild cluster, as well as the tools
needed to do incremental, experimental, and official release
package builds.
FreeBSD
Problem Report Handling Guidelines (pr-guidelines)
Recommended practices for handling FreeBSD problem
reports.
Writing
FreeBSD Problem Reports (problem-reports)
How to best formulate and submit a problem report to the
FreeBSD Project.
PXE booting
FreeBSD (pxe)
How to create an Intel PXE server using FreeBSD, and how to
configure a FreeBSD client to boot from a PXE server.
Practical
rc.d scripting in BSD (rc-scripting)
A guide to writing new rc.d scripts and understanding those
already written.
FreeBSD as
a greylist mail server (relaydelay)
Implementing a greylist mail server on FreeBSD
using Sendmail, MySQL, Perl and the relaydelay
software. This is an excellent method to use in the
fight against spam.
FreeBSD
Release Engineering (releng)
Describes the approach used by the FreeBSD release
engineering team to make production quality releases of the
FreeBSD Operating System. It describes the tools available
for those interested in producing customized FreeBSD releases
for corporate rollouts or commercial productization.
FreeBSD
Release Engineering for Third Party Packages
(releng-packages)
Describes the approach used by the FreeBSD
ports management team to produce a high quality package set
suitable for official FreeBSD release media. This document is
a work in progress, but eventually it will cover the process
used to build a clean package set on the FreeBSD.org "Ports
Cluster", how to configure any other set of machines as a
ports cluster, how to split up the packages for the release
media, and how to verify that a package set is
consistent.
Remote
Installation of the FreeBSD Operating System without a
Remote Console (remote-install)
Describes the remote installation of the FreeBSD operating
system when the console of the remote system is
unavailable.
Serial
and UART devices (serial-uart)
Detailed information about the use of serial ports on FreeBSD,
including several multi-port serial cards.
FreeBSD
and Solid State Devices (solid-state)
The use of solid state disk devices in FreeBSD.
Design
elements of the FreeBSD VM system (vm-design)
An easy to follow description of the design of the FreeBSD
virtual memory system.
On other web sites
Various independent efforts have also produced a great deal of useful information about FreeBSD.
Articles
-
Niels Jorgensen has authored an academic study on the dynamics of the FreeBSD development process: ``Putting it All in the Trunk, Incremental Software Development in the FreeBSD Open Source Project'' [Information Systems Journal (2001) 11, 321-336].
-
Kirk McKusick, one of the original architects of BSD at U.C. Berkeley, teaches two 4.4BSD Kernel Internals courses using FreeBSD. For those unable to attend the courses in person, a video tape series is also now available.
-
FreeBSD How-To's for the Lazy and Hopeless is another somewhat more light-hearted attempt to provide more readable "how-to" style information on setting up and configuring FreeBSD.
-
The Linux+FreeBSD mini-HOWTO describes how to use Linux and FreeBSD on the same system. It introduces FreeBSD and discusses how the two operating systems can cooperate, e.g. by sharing swap space.
-
Writing an ISA device driver. This document has been imported into The FreeBSD Architecture Handbook.
-
FreeBSD Assembly Language Programming Tutorial. This document has been imported into The FreeBSD Developer's Handbook.
-
The SMP support page contains information on the SMP support in FreeBSD 4.X and earlier.
-
Appendix A from the college textbook Operating Systems Concepts by Silberschatz, Galvin and Gagne has been made available online in PDF format. The appendix is dedicated to FreeBSD and offers a good introduction to FreeBSD's internals.