FreeBSD adalah sebuah sistem operasi bertipe Unix bebas yang diturunkan dari UNIX AT&T lewat cabang Berkeley Software Distribution (BSD) yaitu sistem operasi 386BSD dan 4.4BSD. FreeBSD berjalan di atas sistem Intel x86 (IA-32) (termasuk Microsoft Xbox), DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC dan arsitektur NEC PC-98. Dukungan untuk arsitektur ARM dan MIPS sedang dalam pengembangan.
- 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.
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.
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. Several FreeBSD-specific versions were later drawn by Tatsumi Hosokawa. 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. Meanwhile Lasseter’s much known take on the BSD daemon carries forth as official mascot of the FreeBSD Project.
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.
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.3 was released 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, full support for the ARM architecture, 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 8
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.
- 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. 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.
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.
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.
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.