'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[ FreeBSD/xbox Project ]), 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 other free operating systems such as
Linux where the kernel, userland utilities and applications are developed separately and packaged together by other groups as
Linux distributions.
As an operating system, FreeBSD is generally regarded as reliable and robust, and of the operating systems that accurately report
uptime remotely,
[1] FreeBSD is the most common free operating system listed in Netcraft's list
[ Sites with longest running systems by average uptime in the last 7 days ] of the 50
web servers with the longest uptime. A long uptime also indicates that no
crashes have occurred and that no kernel updates have been deemed necessary, as installing a new
kernel requires a reboot and resets the uptime counter of the system.
History and development
Initial
development of FreeBSD started in 1993, originating in the unofficial ''
patchkit'' maintained by users of the
386BSD operating system. The first official release of FreeBSD was FreeBSD 1.0 in December 1993.
However, due to concerns about the legality of the BSD Net/2 release source code 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 using the 4.4BSD-Lite release from the
University of California, Berkeley, with the FreeBSD 2.0 release in January 1995. The
FreeBSD Handbook includes more information about the genesis of FreeBSD.
Perhaps FreeBSD 2.0's most notable advance was the revamp of the original
Carnegie Mellon University 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 Internet),
Hotmail, and
Yahoo!.
FreeBSD 3.0 brought many changes: it switched to the
ELF binary format and 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 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.
[ Final result for the FreeBSD logo design competition ] 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.
[ A project model for the FreeBSD Project ]
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.
A project called "TrustedBSD" was launched by
Robert Watson for the purpose of adding security lock-down frameworks functionality to the FreeBSD operating system (this is not related to "
trusted computing"). 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 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 accomplishments of these releases include 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 (based on the BSM implementation found in Apple's
open source Darwin) and released under a
BSD-style license.
FreeBSD 7
FreeBSD 7 is currently under development, with the first release scheduled for 2007. Features currently under development include:
SCTP,
network stack virtualization,
UFS journaling, a port of
Sun's
ZFS file system,
GCC4, support for the
ARM and
MIPS architectures and major updates relating to audio,
USB and the scheduler.
Linux compatibility
FreeBSD provides binary
compatibility with several other
Unix-like operating systems, including
Linux. This permits Linux programs to be run, 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,
VMware,
Oracle,
Mathematica,
Matlab,
WordPerfect,
Skype,
Doom 3 and
Quake 4[ FreeBSD Handbook ]. There is said to be no noticeable performance penalty when running Linux binaries over native FreeBSD programs, and they may even be faster than the same binaries running on Linux. However, the layer is not completely seamless and some Linux binaries are unusable on FreeBSD or possess limited functionality: this is often as the compatibility layer only supports the system calls available in the historical Linux kernel 2.4.2, work is ongoing to provide Linux 2.6 support.
License
FreeBSD is released under a variety of licenses. All of 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 also parts under the
GPL,
LGPL,
ISC,
CDDL, and
Beerware licenses, as well as three- and four-clause BSD licenses. In addition, 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, 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. 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. 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. The project still continues, 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, and the TrustedBSD MAC Framework and TrustedBSD Audit implementation have been adopted by
Apple Computer for
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 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 (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.
References
1. Frequently asked questions
See also
★
BAPP
★
BSD descendants
★
Comparison of BSD operating systems
★
Comparison of operating systems
★
FreeBSD Documentation License
★
FreeBSD Jail
★
FreeBSD Ports
★
Jordan Hubbard
★
Marshall Kirk McKusick
★
OpenBSM
★
Poul-Henning Kamp
★
Robert Watson
★
Security focused operating system
Further reading
★ ''
Absolute BSD, The Ultimate Guide to FreeBSD''. Michael Lucas.
No Starch Press, July 2002. ISBN 1-886411-74-3.
★ ''BSD Hacks, 100 Industrial-Strength tips for BSD users and administrators''. Dru Lavigne. O'Reilly, May 2004. ISBN 0-596-00679-9.
★ ''
Building an Internet Server with FreeBSD 6: Installing open source server software''. Bryan Hong. Lulu Press, May 2006. ISBN 1-4116-9574-7.
★ ''FreeBSD 6 Unleashed''. Brian Tiemann, Michael Urban. Sams, Paperback, Bk&DVD edition, Published June 2006, 912 pages, ISBN 0-672-32875-5.
★ ''Mastering FreeBSD and OpenBSD Security''. Yanek Korff, Paco Hope, Bruce Potter. O'Reilly, March 2005. ISBN 0-596-00626-8.
★ ''
The Complete FreeBSD, 4th Edition, Documentation from the Source''. Greg Lehey. O'Reilly, April 2003. ISBN 0-596-00516-4.
★ ''
The Design and Implementation of the FreeBSD Operating System''.
Marshall Kirk McKusick and George V. Neville-Neil, Addison Wesley Professional, August, 2004. ISBN 0-201-70245-2.
★ ''The FreeBSD Corporate Networkers Guide''. Ted Mittelstaedt. Addison-Wesley, December 2000. Paperback, book & CD edition, 401 pages. ISBN 0-201-70481-1.
★ ''The FreeBSD Handbook, Volume 1 : User Guide, 3rd Edition''. FreeBSD Documentation Project. FreeBSD Mall, Inc. November, 2003. ISBN 1-57176-327-9.
★ ''The FreeBSD Handbook, Volume 2 : Admin Guide, 3rd Edition''. FreeBSD Documentation Project. FreeBSD Mall, Inc. September, 2004. ISBN 1-57176-328-7.
External links
★
FreeBSD - The official FreeBSD site.
★
FreeBSD Guide - A great introductory tutorial to help get started with FreeBSD.
★
''A Brief History of FreeBSD'' by FreeBSD co-founder
Jordan Hubbard.
★
Planet FreeBSD - The FreeBSD Developers' Planet.
★
FreeBSD Wiki - FreeBSD-specific wiki.
★
TrustedBSD - TrustedBSD website.
★
IBM developerWorks: Why FreeBSD - A quick tour of FreeBSD.
★
The Complete FreeBSD
★
Robert Watson's Slides from EuroBSDCon 2006 and FreeBSD Developer Summit - Robert Watson's EuroBSDCon 2006 material, including the presentation
How the FreeBSD Project Works and conference paper
How the FreeBSD Project Works.
★
Google Tech Talks June 20, 2007: Robert Watson: How the FreeBSD Project Works, presented June 20, 2007 at Google's headquarters in Mountain View, California, courtesy Google Video.
★
TechTV: Matt Olander and Murray Stokely explain FreeBSD to The Screen Savers audience