Jump to content

FreeBSD: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Gwen Gale (talk | contribs)
m Undid unsupported revision 210084558 by 79.114.19.85 (talk)
m edit
Line 18: Line 18:
}}
}}


'''FreeBSD''' is a [[Unix-like]] [[free software|free]] [[operating system]] descended from AT&T [[UNIX]] via the [[Berkeley Software Distribution]] (BSD) branch through the [[386BSD]] and [[Berkeley Software Distribution#4.4BSD and descendants|4.4BSD]] operating systems. It runs on [[X86|Intel x86 family]] (IA-32) [[PC compatible]] computers, [[DEC Alpha]], [[Sun Microsystems|Sun]] [[SPARC|UltraSPARC]], [[IA-64]], [[AMD64]], [[PowerPC]], [[ARM architecture|ARM]] and [[NEC]] [[PC-9801|PC-98]] architectures along with the [[Microsoft Xbox]].<ref name=xbox>{{cite web|url=http://www.freebsd.org/platforms/xbox.html|title=FreeBSD/xbox Project|publisher=The FreeBSD Project|accessdate=2007-03-01}}</ref> Support for the [[MIPS architecture|MIPS]] architectures is available in 8-CURRENT which has not been released yet.
'''FreeBSD''' is a [[Unix-like]] [[free software|free]] [[operating system]] descended from AT&T [[UNIX]] via the [[Berkeley Software Distribution]] (BSD) branch through the [[386BSD]] and [[Berkeley Software Distribution#4.4BSD and descendants|4.4BSD]] operating systems, moving now close to the Linux-like systems. It runs on [[X86|Intel x86 family]] (IA-32) [[PC compatible]] computers, [[DEC Alpha]], [[Sun Microsystems|Sun]] [[SPARC|UltraSPARC]], [[IA-64]], [[AMD64]], [[PowerPC]], [[ARM architecture|ARM]] and [[NEC]] [[PC-9801|PC-98]] architectures along with the [[Microsoft Xbox]].<ref name=xbox>{{cite web|url=http://www.freebsd.org/platforms/xbox.html|title=FreeBSD/xbox Project|publisher=The FreeBSD Project|accessdate=2007-03-01}}</ref> Support for the [[MIPS architecture|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."<ref name=whyfreebsd>{{cite web|url=http://www.ibm.com/developerworks/opensource/library/os-freebsd/|title=Why FreeBSD|publisher=IBM|accessdate=2008-01-28}}</ref> It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and system [[API]]s.<ref>IBM.com, Pohlmann, Frank, ''[http://www-128.ibm.com/developerworks/opensource/library/os-freebsd/ Why FreeBSD]'', retrieved 16 December 2007</ref> FreeBSD is generally regarded as reliable and robust. Among all operating systems which can accurately report [[uptime]] remotely,<ref>{{cite web|url=http://uptime.netcraft.com/up/accuracy.html#whichos|title=Frequently asked questions|publisher=[[Netcraft]]|accessdate=2007-03-01}}</ref> FreeBSD is the free operating system listed most often in [[Netcraft]]'s list<ref name=uptime>{{cite web|url=http://uptime.netcraft.com/up/today/top.avg.html|title=Sites with longest running systems by average uptime in the last 7 days|publisher=Netcraft|accessdate=2007-03-01}}</ref> of the 50 [[web server]]s with the longest uptime. A long uptime also indicates no [[Crash (computing)|crashes]] have occurred and no kernel updates have been deemed needed, since installing a new [[Kernel (computer science)|kernel]] requires a reboot and resets the uptime counter of the system.
FreeBSD has been characterized as "the unknown giant among free operating systems."<ref name=whyfreebsd>{{cite web|url=http://www.ibm.com/developerworks/opensource/library/os-freebsd/|title=Why FreeBSD|publisher=IBM|accessdate=2008-01-28}}</ref> It is not a clone of UNIX, but works like UNIX, with UNIX-compliant internals and system [[API]]s.<ref>IBM.com, Pohlmann, Frank, ''[http://www-128.ibm.com/developerworks/opensource/library/os-freebsd/ Why FreeBSD]'', retrieved 16 December 2007</ref> FreeBSD is generally regarded as reliable and robust. Among all operating systems which can accurately report [[uptime]] remotely,<ref>{{cite web|url=http://uptime.netcraft.com/up/accuracy.html#whichos|title=Frequently asked questions|publisher=[[Netcraft]]|accessdate=2007-03-01}}</ref> FreeBSD is the free operating system listed most often in [[Netcraft]]'s list<ref name=uptime>{{cite web|url=http://uptime.netcraft.com/up/today/top.avg.html|title=Sites with longest running systems by average uptime in the last 7 days|publisher=Netcraft|accessdate=2007-03-01}}</ref> of the 50 [[web server]]s with the longest uptime. A long uptime also indicates no [[Crash (computing)|crashes]] have occurred and no kernel updates have been deemed needed, since installing a new [[Kernel (computer science)|kernel]] requires a reboot and resets the uptime counter of the system.

Revision as of 10:39, 9 May 2008

FreeBSD
File:FreeBSD-logo.png
Screenshot of FreeBSD terminal
FreeBSD welcome screen
DeveloperThe FreeBSD Project
OS familyBSD
Working stateCurrent
Source modelFree and open source software
Latest release7.0-RELEASE / February 27, 2008; 16 years ago (2008-02-27)
Repository
Platformsi386, SPARC, SPARC64, ALPHA, AMD64, ia64, PC98, PowerPC, ARM architecture
Kernel typeMonolithic
LicenseBSD License
Official websitewww.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

FreeBSD's mascot is the generic BSD daemon, also known as 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

References

  1. ^ "FreeBSD/xbox Project". The FreeBSD Project. Retrieved 2007-03-01.
  2. ^ "Why FreeBSD". IBM. Retrieved 2008-01-28.
  3. ^ IBM.com, Pohlmann, Frank, Why FreeBSD, retrieved 16 December 2007
  4. ^ "Frequently asked questions". Netcraft. Retrieved 2007-03-01.
  5. ^ "Sites with longest running systems by average uptime in the last 7 days". Netcraft. Retrieved 2007-03-01.
  6. ^ Hubbard, Jordan, FreeBSD Handbook, A Brief History of FreeBSD, retrieved 16 December 2007
  7. ^ mckusick.com, Usenix, retrieved 15 December 2007
  8. ^ 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.
  9. ^ frbsd.org, Chuck's Corner (in French), retrieved 19 December 2007
  10. ^ FreeBSD.org, The BSD Daemon, retrieved 15 December, 2007
  11. ^ "Final result for the FreeBSD logo design competition". The FreeBSD Project. 2005. Retrieved 2007-03-01. {{cite web}}: Check date values in: |date= (help)
  12. ^ 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)
  13. ^ What's New in FreeBSD 7.0 by Federico Biancuzzi, 02/26/2008, onlamp
  14. ^ FreeBSD 8.0 has been branched on October 11th, 2007. Additonal information posted on the FreeBSD-current mailing list, overview of upcoming features.
  15. ^ "FreeBSD Handbook". Retrieved 2007-03-29.
  16. ^ Tiemann, Brian (2006). "How FreeBSD Compares to Other Operating Systems". FreeBSD 6 Unleashed. ISBN 0672328755.

Further reading