FreeBSD
File:FreeBSD-logo.png | |
Developer | The FreeBSD Project |
---|---|
OS family | BSD |
Working state | Current |
Source model | Free and open source software |
Latest release | 7.0-RELEASE / February 27, 2008 |
Repository | |
Platforms | i386, SPARC, SPARC64, ALPHA, AMD64, ia64, PC98, PowerPC, ARM architecture |
Kernel type | Monolithic |
License | BSD License |
Official website | www.freebsd.org |
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, moving now close to the Linux-like systems. It runs on Intel x86 family (IA-32) PC compatible computers, DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, ARM and NEC PC-98 architectures along with the Microsoft Xbox.[1] Support for the MIPS architectures is available in 8-CURRENT which has not been released yet.
FreeBSD has been characterized as "the unknown giant among free operating systems."[2] It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and system APIs.[3] FreeBSD is generally regarded as reliable and robust. Among all operating systems which can accurately report uptime remotely,[4] FreeBSD is the free operating system listed most often in Netcraft's list[5] 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 various 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, powering extremely successful sites like Walnut Creek CDROM (a huge repository of software that broke several throughput records on the Internet), Yahoo! and Hotmail. The last release along the 2-STABLE branch was 2.2.8 in November 1998.[6]
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.
Beastie
For many years FreeBSD's logo was the generic BSD daemon, also called Beastie, a slurred phonetic pronunciation of BSD. First appearing in 1976 on UNIX T-shirts purchased by Bell Labs, the more popular versions of the BSD daemon were drawn by animation director John Lasseter beginning in 1984.[7][8][9] Several FreeBSD-specific versions were later drawn by Tatsumi Hosokawa.[10] Through the years Beastie became both beloved and criticized as perhaps inappropriate for corporate and mass market exposure. Moreover it was not unique to FreeBSD. In lithographic terms, the Lasseter graphic is not line art and often requires a screened, four colour photo offset printing process for faithful reproduction on physical surfaces such as paper. However drawn, the BSD daemon was thought to be too graphically detailed for smooth size scaling and aesthetically over dependent upon multiple colour gradations, making it hard to reliably reproduce as a simple, standardized logo in only two or three colours, much less in monochrome. With all these worries taken together, a competition was held and a new logo still echoing the BSD daemon and designed by Anton K. Gural was released on October 8 2005.[11] Meanwhile Lasseter's much known take on the BSD daemon carries forth as official mascot of the FreeBSD Project.
Versions
FreeBSD developers maintain at least two branches of simultaneous development. The -CURRENT branch always represents the "bleeding edge" of FreeBSD 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.[12]
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
FreeBSD 6.0 was released on November 4, 2005. The most recent FreeBSD 6 release was 6.3, on January 18 2008. 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 was released on 27 February 2008. New features include SCTP, UFS journaling, a port of Sun's ZFS file system (experimental), GCC4, improved support for the ARM architecture, and major updates and optimizations relating to network, audio, and SMP performance [13]. 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. ULE is currently available in the -STABLE branch as a default kernel option, in preparation for FreeBSD 7.1.
FreeBSD 8
As of 2008, FreeBSD 8.0 is the "bleeding edge" development version, called -CURRENT in FreeBSD jargon. It should feature superpages, DTrace, Xen DomU support and network stack virtualization.[14]
Linux compatibility
Most open-source software that runs on Linux will run natively on FreeBSD without the need for any compatibility layer. FreeBSD nonetheless also provides binary compatibility with several other Unix-like operating systems, including Linux. Hence, 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, Wolfenstein: Enemy Territory, Doom 3 and Quake 4.[15] 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.[16] 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. There is preliminary support of Linux 2.6.16 syscalls although this is not yet enabled by default.
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. 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, FreeSBIE and Frenzy live CD distributions, the m0n0wall and pfSense firewalls, FreeNAS 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 select 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.
See also
- BAPP
- BSD descendants
- Commercial products based on FreeBSD
- 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
References
- ^ "FreeBSD/xbox Project". The FreeBSD Project. Retrieved 2007-03-01.
- ^ "Why FreeBSD". IBM. Retrieved 2008-01-28.
- ^ IBM.com, Pohlmann, Frank, Why FreeBSD, retrieved 16 December 2007
- ^ "Frequently asked questions". Netcraft. Retrieved 2007-03-01.
- ^ "Sites with longest running systems by average uptime in the last 7 days". Netcraft. Retrieved 2007-03-01.
- ^ Hubbard, Jordan, FreeBSD Handbook, A Brief History of FreeBSD, retrieved 16 December 2007
- ^ mckusick.com, Usenix, retrieved 15 December 2007
- ^ minnie.tuhs.org, Saving UNIX from /dev/null, retrieved 15 December 2007 - The original 1976 artwork was lost about 10 years later after it was sent to DEC for use in marketing Ultrix.
- ^ frbsd.org, Chuck's Corner (in French), retrieved 19 December 2007
- ^ FreeBSD.org, The BSD Daemon, retrieved 15 December, 2007
- ^ "Final result for the FreeBSD logo design competition". The FreeBSD Project. 2005. Retrieved 2007-03-01.
{{cite web}}
: Check date values in:|date=
(help) - ^ Saers, Niklas (2002). "A project model for the FreeBSD Project". The FreeBSD Project. Retrieved 2007-03-03.
{{cite web}}
: Check date values in:|date=
(help) - ^ What's New in FreeBSD 7.0 by Federico Biancuzzi, 02/26/2008, onlamp
- ^ FreeBSD 8.0 has been branched on October 11th, 2007. Additonal information posted on the FreeBSD-current mailing list, overview of upcoming features.
- ^ "FreeBSD Handbook". Retrieved 2007-03-29.
- ^ Tiemann, Brian (2006). "How FreeBSD Compares to Other Operating Systems". FreeBSD 6 Unleashed. ISBN 0672328755.
Further reading
- Absolute FreeBSD, 2nd Edition: The Complete Guide to FreeBSD. Michael Lucas. No Starch Press, November 2007. 744pp. ISBN-10 1-59327-151-4.
- The Best of FreeBSD Basics. Dru Lavigne. Reed Media Services, December 2007. 595pp. ISBN 978-0-9790342-2-0.
- BSD Hacks, 100 Industrial-Strength tips for BSD users and administrators. Dru Lavigne. O'Reilly, May 2004. ISBN 0-596-00679-9.
- Building a Server with FreeBSD 7: A Modular Approach. Bryan J. Hong. No Starch Press, March 2008. ISBN 978-1-59327-145-9.
- 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.
- Why FreeBSD - An overview
- 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.
- Official FreeBSD developers' wiki - The official FreeBSD Wiki, mostly developer- and advanced user- oriented.
- FreeBSD wiki - User-maintained FreeBSD wiki.
- Avoiding Linuxisms - Notes on writing portable software that will also run on FreeBSD
- 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
- Some people have questions about differences between Linux and FreeBSD and here are highlighted some