FreeBSD FAQ

The FreeBSD Project

FreeBSD is a Unix-like free operating system descended from AT&T UNIX via the Berkeley Software Distribution (BSD) branch through the 386BSD and 4.4BSD operating systems. It runs on Intel x86 family (IA-32) PC compatible systems including DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC and NEC PC-98 architectures along with the Microsoft
Xbox. Support for the ARM and MIPS architectures is under development.
FreeBSD has been characterized as "the unknown giant among free operating systems." It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and system
APIs. FreeBSD is generally regarded as reliable and robust. Among all operating systems which can accurately report uptime
remotely, FreeBSD is the free operating system listed most often in Netcraft's list of the 50 web servers with the longest uptime. A long uptime also indicates no crashes have occurred and no kernel updates have been deemed needed, since installing a new kernel requires a reboot and resets the uptime counter of the system.
FreeBSD is developed as a complete operating system. The kernel, device drivers and all of the userland utilities, such as the shell, are held in the same source code revision tracking tree (CVS). Whereas with Linux the kernel, userland utilities and applications are developed separately, then packaged together in sundry ways by other groups as Linux distributions.

History and development

FreeBSD's development began in 1993 with a quickly growing, unofficial patchkit maintained by users of the 386BSD operating system. This patchkit forked from 386BSD and grew into an operating system taken from U.C. Berkeley's 4.3BSD-Lite (Net/2) tape with many 386BSD components and code from the Free Software Foundation. The first official release was FreeBSD 1.0 in December 1993, coordinated by Jordan Hubbard, Nate Williams and Rod Grimes with a name thought up by David Greenman. Walnut Creek CDROM agreed to distribute FreeBSD on CD and gave the project a machine to work on along with a fast Internet connection, which Hubbard later said helped stir FreeBSD's rapid growth. A "highly successful" FreeBSD 1.1 release followed in May 1994.
However, there were legal concerns about the BSD Net/2 release source code used in 386BSD. After a lawsuit between UNIX copyright owner at the time Unix System Laboratories and the University of California, Berkeley, the FreeBSD project re-engineered most of the system using the 4.4BSD-Lite release from Berkeley, which owing to this lawsuit had none of the AT&T source code earlier BSD versions had depended upon, making it an unbootable operating system. Following much work the outcome was released as FreeBSD 2.0 in January 1995.
FreeBSD 2.0 featured a revamp of the original Carnegie Mellon University Mach virtual memory system, which was optimized for performance under high loads.
This release also introduced the FreeBSD Ports system, which made downloading, building and installing third party software very easy.
By 1996 FreeBSD had become popular among commercial and ISP users.
The last release along the 2-STABLE branch was 2.2.8 in November 1998.
FreeBSD 3.0 brought many more changes, switching to the ELF binary format. Support for SMP systems and the 64 bit Alpha platform were also added. The 3-STABLE branch ended with 3.5.1 in June 2000.

Versions

FreeBSD developers maintain at least two branches of simultaneous development. A -STABLE branch of FreeBSD is created for each major version number, from which releases are cut about once every 4-6 months. If a feature is sufficiently stable and mature it will likely be backported (MFC or Merge from CURRENT in FreeBSD developer slang) to the -STABLE branch. FreeBSD's development model is further described in an article by Niklas
Saers.

FreeBSD 4

4.0-RELEASE appeared in March 2000 and the last 4-STABLE branch release was 4.11 in January 2005.

FreeBSD 5

After almost three years of development the first 5.0-RELEASE in January 2003 was widely anticipated, featuring advanced multiprocessor and application thread support along with support for the UltraSPARC and ia64 platforms. The first 5-STABLE release was 5.3 (5.0 through 5.2.1 were cut from -CURRENT). The last release from the 5-STABLE branch was 5.5 in May 2006.
The largest architectural development in FreeBSD 5 was a major change in the low-level kernel locking mechanisms to enable better symmetric multiprocessor (SMP) support. This released much of the kernel from the MP lock, which is sometimes called the Giant Lock. More than one process could now execute in kernel mode at the same time. Other major changes included an M:N native threading implementation called Kernel Scheduled Entities. In principle this is similar to Scheduler Activations. Starting with FreeBSD 5.3 KSE was the default threading implementation until it was replaced with a 1:1 implementation in FreeBSD 7.0.
FreeBSD 5 also significantly changed the block I/O layer by implementing the GEOM modular disk I/O request transformation framework contributed by Poul-Henning Kamp. GEOM enables the simple creation of many kinds of functionality, such as mirroring (gmirror) and encryption (GBDE and GELI). This work was supported through sponsorship by DARPA.
The 5.4 and 5.5 releases of FreeBSD confirmed the FreeBSD 5.x branch as a highly stable and high-performing release, although it had a long gestation period due to the large feature set.

FreeBSD 6

The FreeBSD 6 release series is the current -STABLE development series. FreeBSD 6.2 was released on January 15, 2007. These versions continue work on SMP and threading optimization along with more work on advanced 802.11 functionality, TrustedBSD security event auditing, significant network stack performance enhancements, a fully preemptive kernel and support for hardware performance counters (HWPMC). The main accomplishments of these releases include removal of the Giant lock from VFS, implementation of a better-performing optional libthr library with 1:1 threading and the addition of a Basic Security Module (BSM) audit implementation called OpenBSM, which was created by the TrustedBSD Project (based on the BSM implementation found in Apple's open source Darwin) and released under a BSD-style license.

FreeBSD 7

FreeBSD 7.0 is currently in the final release stages. The first release candidate was made available in late December 2007. New features include SCTP, UFS journaling, a port of Sun's ZFS file system (experimental), GCC4, support for the ARM and MIPS architectures and major updates and optimizations relating to network, audio and SMP performance. The new ULE scheduler has seen much improvement but a decision was made to ship the 7.0 release with the older 4BSD scheduler, leaving ULE as a kernel compile-time tunable. ULE scheduler is expected to be the default in FreeBSD 7.1. FreeBSD 7.0 is scheduled for release in January 2008.

FreeBSD 8

FreeBSD 8.0 is the bleeding edge development version, called -CURRENT in FreeBSD jargon. It should feature superpages, dtrace, Xen and network stack
virtualization.

Linux compatibility

FreeBSD provides binary compatibility with several other Unix-like operating systems, including Linux. Most Linux programs can be run on FreeBSD, including some commercial applications distributed only in binary form. Applications which use the Linux compatibility layer include StarOffice, the Linux version of Firefox, Adobe Acrobat, RealPlayer, Oracle, Mathematica, Matlab, WordPerfect, Skype, Doom 3 and Quake
4. No noticeable performance penalty over native FreeBSD programs has been noted when running Linux binaries and in some cases, these may even perform more smoothly than the same binaries running on
Linux. However, the layer is not altogether seamless and some Linux binaries are unusable on FreeBSD or possess limited functionality. This is often because the compatibility layer only supports system calls available in the historical Linux kernel 2.4.2, although work is ongoing to provide Linux 2.6 support.

License

FreeBSD is released under a variety of licenses. The kernel code and most newly created code is released under the two-clause BSD license which allows everyone to use and redistribute FreeBSD as they wish. There are parts under the GPL, LGPL, ISC, CDDL and Beerware licenses, along with three- and four-clause BSD licenses. Some device drivers include a binary blob, such as the Atheros HAL.

Derivatives

A wide variety of products are directly or indirectly based on FreeBSD. These range from embedded devices such as Juniper Networks routers, Ironport network security appliances, Nokia's firewall operating system, NetApp's OnTap GX, Panasas's and Isilon Systems's cluster storage operating systems, NetASQ security appliances and St Bernard iPrism web filtering appliances, to portions of other operating systems including Linux and the RTOS VxWorks. Darwin, the core of Apple's Mac OS X, borrows heavily from FreeBSD, including its virtual file system, network stack and components of its userspace. Apple continues to integrate new code from and contribute changes back to FreeBSD[citation needed]. The now-defunct OpenDarwin project, which was based on Apple's Darwin operating system, also included substantial FreeBSD code. In addition, there are a number of operating systems originally forked from or based on FreeBSD including PC-BSD and DesktopBSD, which include enhancements aimed at home users and workstations. Among these are FreeSBIE and Frenzy live CD distributions, the m0n0wall and pfSense embedded firewalls, FreeNAS Free network attached storage and DragonFly BSD, a fork from FreeBSD 4.8 aiming for a different multiprocessor synchronization strategy than the one chosen for FreeBSD 5 and development of some microkernel features.

TrustedBSD

The TrustedBSD project provides a set of trusted operating system extensions to FreeBSD. It was begun primarily by Robert Watson with the goal of implementing concepts from the Common Criteria for Information Technology Security Evaluation and the Orange Book. This project is ongoing and many of its extensions have been integrated into FreeBSD.
The main focuses of the TrustedBSD project are access control lists (ACLs), security event auditing, extended file system attributes, fine-grained capabilities and mandatory access controls (MAC). The project has also ported the NSA's FLASK/TE implementation from SELinux to FreeBSD. Other work includes the development of OpenBSM, an open source implementation of Sun's Basic Security Module (BSM) API and audit log file format, which supports an extensive security audit system. This was shipped as part of FreeBSD 6.2. Other infrastructure work in FreeBSD performed as part of the TrustedBSD Project has included SYN cookies, GEOM and OpenPAM.
While most components of the TrustedBSD project are eventually folded into the main sources for FreeBSD, many features, once fully matured, find their way into other operating systems. For example, OpenPAM and UFS2 have been adopted by NetBSD. Moreover, the TrustedBSD MAC Framework and TrustedBSD Audit implementation have been adopted by Apple Computer for Mac OS X.
Much of this work was sponsored by DARPA.

Governance structure

The FreeBSD Project is run by FreeBSD committers, or developers who have CVS commit access. There are several kinds of committers, including source committers (base operating system), doc committers (documentation and web site authors) and ports (third party application porting and infrastructure). Every two years the FreeBSD committers elect a 9-member FreeBSD Core Team who are responsible for overall project direction, setting and enforcing project rules and approving new "commit bits", or the granting of CVS commit access. A number of responsibilities are officially assigned to other development teams by the FreeBSD Core Team, including responsibility for security advisories (the Security Officer Team), release engineering (the Release Engineering Team) and managing the ports collection (the Port Manager team). Developers may give up their commit rights to retire or for "safe-keeping" after a period of a year or more of inactivity, although commit rights will generally be restored on request. Under rare circumstances commit rights may be removed by Core Team vote as a result of repeated violation of project rules and standards. The FreeBSD Project is unusual among open source projects in having developers who have worked with its source base for over 25 years, owing to the involvement of a number of past University of California developers who worked on BSD at the CSRG.