< Back to index

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 the Microsoft Xbox), and also DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC and NEC PC-98 architectures. Support for the ARM and MIPS architectures are under development.

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). This is in contrast to Linux, a similar but better-known operating system, in which the kernel is developed by one set of developers; userland utilities and applications by others, such as the GNU project; and all are packaged together by other groups and published as Linux distributions.

History and development


Initial development of FreeBSD started in 1993, taking its sources from 386BSD. However, due to concerns about the legality of all the sources used in 386BSD and a consequent lawsuit between Novell (then owner of the UNIX copyright) and Berkeley, FreeBSD ended up re-engineering much of the system with the FreeBSD 2.0 release in January of 1995 using the 4.4BSD-Lite release from the University of California, Berkeley. The [http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ FreeBSD Handbook] includes more historical information about the genesis of FreeBSD.

Perhaps FreeBSD 2.0's most notable advance was the revamp of the original CMU's Mach Virtual Memory system, which was optimized for performance under high loads, and the creation of the FreeBSD Ports system that made downloading, building and installing third party software very easy. FreeBSD powered extremely successful sites like cdrom.com (a huge repository of software that broke several throughput records on the net), Hotmail, and Yahoo!.

FreeBSD 3.0 brought many changes: it switched to the ELF binary format, initial support for SMP systems and the 64 bit Alpha platform were added. At its time, the 3.X branch was severely criticized as many changes were not evidently beneficial and affected performance, but it was a necessary step to develop what would become the very successful 4.X branch.

Initially, FreeBSD employed the BSD Daemon as its logo, but in 2005 a [http://logo-contest.freebsd.org/ competition] for a new logo was arranged. On October 8 2005, the competition finished and the design by Anton K. Gural was chosen as the new FreeBSD logo. The BSD Daemon will remain as the FreeBSD Project mascot.

FreeBSD 5 development and changes


The latest and final FreeBSD release from the 5-STABLE branch is 5.5, and was released in May 2006. 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. The latest 4-STABLE release of FreeBSD is 4.11, which is the last of the 4-STABLE branch releases. The first 5-STABLE release was 5.3 (5.0 through 5.2.1 were cut from -CURRENT. The first 6-STABLE release was 6.0. The development branch, -CURRENT, is now 7.0-CURRENT, which contains aggressive new kernel and userspace features. If a feature is sufficiently stable and mature, it is eventually backported ("MFC" - Merge from CURRENT in the FreeBSD developer slang) to the -STABLE branch. FreeBSD's development model is described in an in-depth article by Niklas Saers (http://www.freebsd.org/doc/en_US.ISO8859-1/books/dev-model/).

The largest architectural change in FreeBSD 5 was a major change in the low-level kernel locking mechanisms to enable better symmetric multiprocessor (SMP) support, releasing much of the kernel from the MP lock, sometimes referred to as the Giant Lock. It is now possible for more than one process to execute in kernel mode at the same time.

Other major changes include an m:n threading solution called KSE which is now the default threading (pthreads) library, starting with 5.3 (the creation of the 5-STABLE branch). The terminology m:n, where m and n are small positive integers, implies that m userland threads correspond to n kernel threads. Many other new features are security related.

The TrustedBSD project was formed by Robert Watson for the express purpose of adding trusted operating system functionality to the FreeBSD operating system. An extensible mandatory access control framework (the TrustedBSD MAC Framework), filesystem Access Control Lists (ACLs), enhanced PAM support (OpenPAM) and the new UFS2 filesystem all came from TrustedBSD. Some of the TrustedBSD functionality has been integrated into the NetBSD and OpenBSD operating systems as well. This work was supported through sponsorship by DARPA.

FreeBSD 5 also significantly changed the block I/O layer with the introduction of 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 have confirmed the FreeBSD 5.x branch as a highly stable and well-performing release, albeit one with a long gestation period due to the large feature set.

FreeBSD 6


The FreeBSD 6.x release series is the current -STABLE development series. FreeBSD 6.2 was released on January 15 2007. These versions continue the work on SMP and threading optimization, as well as additional work in the area of 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 primary release accomplishments of these release include the removal of the Giant lock from VFS, addition of a better-performing optional libthr library with 1:1 threading, and the addition of a Basic Security Module (BSM) audit implementation, called OpenBSM, created by the TrustedBSD Project which is based on the BSM implementation found in Apple's Open Source Darwin which has been released under a BSD-style license.

FreeBSD 7


FreeBSD 7.x is currently under development, with its first release cycle scheduled to occur during 2007. Features currently under development include:

* SCTP (functional and commited)
* Network stack virtualization (prototyping)
* Default thread library of libthr (functional and commited, waiting for the switch)
* Journaled UFS (functional and commited)
* Port of Sun's DTrace system profiling and measurement tool (functional, not yet commited)
* Port of Sun's ZFS file system (functional, not yet commited, fast developement in perforce repository)
* Support for Sun's sun4v architecture (functional and commited)
* Improved scheduler and locking scalability for 32+ CPU systems (prototyping)
* Superpages support (functional, not yet commited)
* 10gbps optimization (functional)
* gcc4 (functional, not yet commited)
* MIPS support (prototyping)
* Completely rewritten USB stack (functional, not yet commited)
* Scalable concurrent malloc implementation (functional and commited)

Other features, such as further improved network performance and scalability, are also under active development.

Linux compatibility


FreeBSD provides binary compatibility with several other Unix-like operating systems, including Linux. The reasoning behind this is generally attributed to being able to run applications developed for Linux, often commercial, that are only distributed in binary form and thus cannot be ported to FreeBSD without the will of those who control the source code.

The compatibility layer allows FreeBSD users to run a majority of the applications that are only distributed as Linux binaries. When compared to the vast number of native applications available for FreeBSD using the Ports Collection, these applications are in the minority. Applications used under the Linux compatibility layer include StarOffice, the Linux version of Netscape, Adobe Acrobat, RealPlayer, VMware, Oracle, WordPerfect, Skype, Doom 3, Quake 4, the Unreal Tournament series, SeaMonkey, and so on. Generally, there seems to be no noticeable performance penalty when running Linux binaries as opposed to native FreeBSD ones.

Though there are many applications that run flawlessly under the compatibility layer, it should be noted that the layer is not complete, thus rendering some Linux binaries unusable on FreeBSD or limiting their functionality, possibly because this compatibility layer only supports the system calls of Linux Kernel 2.4.2, a historic release. One example of this is Cedega, TransGaming's product to run Microsoft Windows games on Linux. As of 2007 the compatibility layer is not complete, but it's pretty usable. There has been limited success in using it to run games on FreeBSD (http://cedega.firepipe.net). A 2006 Summer of Code project to update the compatibility layer and implement missing system calls was accepted (http://wikitest.freebsd.org/RomanDivacky), and ended successfully with the 2.6 emulation mostly working.

For most scientific applications, the Linux compatibility layer performs correctly; applications such as nmrpipe, ccp, Mathematica, and Matlab perform as expected.

License


As with its sister operating systems, the code in FreeBSD is released under the terms of a variety of licenses. All of the kernel code and most newly created code is released under the terms of the two-clause BSD license, which allows everyone to use and redistribute FreeBSD as they wish. There are also parts under the GPL, LGPL, ISC, Beerware license, two-, three-, and four-clause BSD licenses. New contributions to the base system are most frequently under the two-clause BSD license.

Also available are binary blobs for particular functionality, such as the Atheros HAL for wireless functionality and a binary only management tools for Adaptec's AAC RAID.

Derivatives


A range of products are directly or indirectly based on FreeBSD. These range from embedded devices, such as Juniper Networks routers and Nokia's firewall operating system, NetApp's OnTap GX, Panasas's cluster storage operating system, 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. The open source OpenDarwin, originally derived from Apple's codebase but now a separate entity, also includes 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; the FreeSBIE and Frenzy live CD distributions; the m0n0wall and pfSense embedded firewalls; and DragonFly BSD, a fork from FreeBSD 4.8 aiming for a different multiprocessor synchronization strategy than that chosen for FreeBSD 5 and development of some microkernel features.

TrustedBSD


The TrustedBSD project provides a set of trusted operating system extensions to FreeBSD, begun primarily by Robert Watson. The goal of the project has been implementing concepts from the Common Criteria for Information Technology Security Evaluation and the Orange Book. This project is still under development, and many of these trusted extensions have been integrated into the FreeBSD 5.x, 6.x, and now 7.x current development track.

The main focuses of the TrustedBSD project are working on access control lists (ACLs), security event auditing, extended file system attributes, fine-grained capabilities, and mandatory access controls (MAC). As part of the TrustedBSD project, there is also a port of the NSA's FLASK/TE implementation in SELinux to run on FreeBSD. More recent work includes the development of OpenBSM, an open source implementation of Sun's Basic Security Module (BSM) API and file format for audit logs, which supports an extensive security audit system that will be shipped as part of FreeBSD 6.2. Other infrastructural 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, this is not their only destination. Many features, once fully matured, find their way into OpenBSD and Apple Computer's Darwin. For example, OpenPAM and UFS2 have been adopted by NetBSD, and the TrustedBSD MAC Framework and TrustedBSD Audit implementation have been adopted by Apple Computer in Mac OS X.

Governance Structure


The FreeBSD Project is run by FreeBSD committers, or developers who have CVS commit access. Committers come in several flavours, including src 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 (both of which have happened a moderate number of times in over 12 years of development). 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, as a result of the involvement of a number of past University of California developers who worked on BSD at the CSRG.

Notable developers


* John Baldwin (Past core team member)
* Alan L. Cox
* Brooks Davis (Core team member)
* Bruce Evans
* David Greenman (Past core team member)
* Jordan Hubbard (Co-founder of the FreeBSD Project)
* Poul-Henning Kamp (Past core team member)
* Sam Leffler (Co-author of the Design and Implementation of BSD, past Berkeley developer)
* Jean-Yves Lefort
* Scott Long (Past core team member)
* Warner Losh (Core team member)
* Kip Macy
* Marshall Kirk McKusick (Co-author of the Design and Implementation of FreeBSD, past Berkeley developer)
* Marcel Moolenaar
* George V. Neville-Neil (Co-author of the Design and Implementation of FreeBSD)
* David E. O'Brien
* Suleiman Souhlal
* Bill Paul
* Robert Watson (Core team member)
* Peter Wemm (Past core team member)

Notable past developers


* Matt Dillon (now works on DragonFlyBSD)
* John Dyson
* Rodney Grimes (Co-founder of the FreeBSD Project)
* Michael Smith (Now Apple kernel team developer)
* Nate Williams (Co-founder of the FreeBSD Project)
This entry uses material from from Wikipedia, the leading user-contributed encyclopedia. It is licensed under the GNU Free Documentation License. Disclaimer.