FreeBSD maintains a complete system, delivering akernel,device drivers,userland utilities, and documentation, as opposed toLinux only delivering akernel and drivers, and relying on third-parties such asGNU for system software.[8] The FreeBSDsource code is generally released under apermissiveBSD license, as opposed to thecopyleftGPL used by Linux. The project includes asecurity team overseeing all software shipped in the base distribution. Third-partyapplications may be installed using the pkgpackage management system or from source viaFreeBSD Ports.[9] The project is supported and promoted by the FreeBSD Foundation.
In June 1989, "Networking Release 1" or simply Net-1 – the first public version of BSD – was released. After releasing Net-1,Keith Bostic, a developer of BSD, suggested replacing all AT&T code with freely-redistributable code under the originalBSD license. Work on replacing AT&T code began and, after 18 months, much of the AT&T code was replaced. However, six files containing AT&T code remained in the kernel. The BSD developers decided to release the "Networking Release 2" (Net-2) without those six files. Net-2 was released in 1991.[17]
In 1992, several months after the release of Net-2,William andLynne Jolitz wrote replacements for the six AT&T files, ported BSD toIntel 80386-based microprocessors, and called their new operating system386BSD. They released 386BSD via an anonymous FTP server.[17] The development flow of 386BSD was slow, and after a period of neglect, a group of 386BSD users including Nate Williams, Rod Grimes andJordan Hubbard[18] decided to branch out on their own so that they could keep the operating system up to date. On 19 June 1993, the name FreeBSD was chosen for the project.[19] The first version of FreeBSD was released in November 1993.[20][17]
In the early days of the project's inception, a company namedWalnut Creek CDROM, upon the suggestion of the two FreeBSD developers, agreed to release the operating system onCD-ROM. In addition to that, the company employedJordan Hubbard and David Greenman, ran FreeBSD on its servers, sponsored FreeBSD conferences and published FreeBSD-related books, includingThe Complete FreeBSD byGreg Lehey. By 1997, FreeBSD was Walnut Creek's "most successful product". The company later renamed itself toThe FreeBSD Mall and lateriXsystems.[21][22][23]
386BSD and FreeBSD were both derived from BSD releases.[24] In January 1992,Berkeley Software Design Inc. (BSDi) started to releaseBSD/386, later called BSD/OS, an operating system similar to FreeBSD and based on 4.3BSD Net/2. AT&T filed a lawsuit against BSDi and alleged distribution of AT&T source code in violation of license agreements. The lawsuit was settled out of court and the exact terms were not all disclosed. The only one that became public was that BSDi would migrate its source base to the newer 4.4BSD-Lite2 sources. Although not involved in the litigation, it was suggested to FreeBSD that it should also move to 4.4BSD-Lite2.[25] FreeBSD 2.0, which was released in November 1994, was the first version of FreeBSD without any code from AT&T.[26]
FreeBSD contains a significant collection of server-related software in the base system and the ports collection, allowing FreeBSD to be configured and used as amail server,web server,firewall,FTP server,DNS server and arouter, among other applications.
FreeBSD can be installed on a regular desktop or a laptop. TheX Window System is not installed by default, but is available in theFreeBSD ports collection. Though not officially supported,[citation needed]Wayland is also available for FreeBSD.[33] A number ofdesktop environments such asLumina,GNOME,KDE, andXfce, as well as lightweight window managers such asOpenbox,Fluxbox,dwm, and bspwm, are also available for FreeBSD. Major web browsers such asFirefox andChromium are available unofficially on FreeBSD.[34][35] As of FreeBSD 12, support for a modern graphics stack is available via drm-kmod. A large number of wireless adapters are supported.
FreeBSD releases installation images for supported platforms. Since FreeBSD 13 the focus has been onx86-64 andAArch64 platforms which have Tier 1 support, and 32-bit platforms no longer have Tier 1 support.[36]IA-32 is a Tier 2 platform in FreeBSD 13 and 14 (but will be dropped in next version). 32-bit ARM processors using armv6 or armv7 also have Tier 2 support, and ARMv7 will keep support. 64-bit versions ofRISC-V andPowerPC (that still has 32-bit tier 2 supported, but will be dropped in next version) are also supported.[37] Interest in the RISC-V architecture has been growing.[38] TheMIPS architecture port was marked for deprecation and there is no image for current 13.4 or later available.[39]
FreeBSD's TCP/IP stack is based on the4.2BSD implementation of TCP/IP which greatly contributed to the widespread adoption of these protocols.[40] FreeBSD also supportsIPv6,[41]SCTP,IPSec, and wireless networking (Wi-Fi).[42] The IPv6 and IPSec stacks were taken from theKAME project.[43] Prior to version 11.0, FreeBSD supportedIPX andAppleTalk protocols, but they are considered obsolescent and have been dropped.[44]
As of FreeBSD 5.4, support for theCommon Address Redundancy Protocol (CARP) was imported from theOpenBSD project. CARP allows multiple nodes to share a set of IP addresses, so if one of the nodes goes down, other nodes can still serve the requests.[45]
FreeBSD has several unique features related to storage.Soft updates can protect the consistency of theUFS filesystem (widely used on the BSDs) in the event of a system crash.[46] Filesystem snapshots allow an image of a UFS filesystem at an instant in time to be efficiently created.[47] Snapshots allow reliable backup of a live filesystem.GEOM is a modular framework that providesRAID (levels 0, 1, 3 currently),full disk encryption,journaling, concatenation, caching, and access to network-backed storage. GEOM allows building of complex storage solutions combining ("chaining") these mechanisms.[48]FreeBSD provides two frameworks for data encryption:GBDE andGeli. Both GBDE and Geli operate at the disk level. GBDE was written byPoul-Henning Kamp and is distributed under the two-clause BSD license. Geli is an alternative to GBDE that was written by Pawel Jakub Dawidek and first appeared in FreeBSD 6.0.[49][50]
From 7.0 onward, FreeBSD supports theZFS filesystem. ZFS was previously an open-source filesystem that was first developed bySun Microsystems, but whenOracle acquired Sun, ZFS became a proprietary product. However, the FreeBSD project is still developing and improving its ZFS implementation via theOpenZFS project.[51] The currently supported version of OpenZFS is 2.2.2 which contains an important fix for a data corruption bug. This version is compatible with releases starting from 12.2-RELEASE.[52]
FreeBSD ships with three different firewall packages:IPFW,pf andIPFilter. IPFW is FreeBSD's native firewall. pf was taken from OpenBSD and IPFilter was ported to FreeBSD by Darren Reed.[53]
Taken from OpenBSD, theOpenSSH program was included in the default install. OpenSSH is a free implementation of the SSH protocol and is a replacement fortelnet. Unlike telnet, OpenSSH encrypts all information (including usernames and passwords).[54]
In November 2012, The FreeBSD Security Team announced that hackers gained unauthorized access on two of the project's servers. These servers were turned off immediately. More research demonstrated that the first unauthorized access by hackers occurred on 19 September. Apparently hackers gained access to these servers by stealingSSH keys from one of the developers, not by exploiting a bug in the operating system itself. These two hacked servers were part of the infrastructure used to build third-party software packages. The FreeBSD Security Team checked the integrity of the binary packages and determined that no unauthorized changes were made to the binary packages, but stated that it could not guarantee the integrity of packages that were downloaded between 19 September and 11 November.[55][56][57]
FreeBSD provides several security-related features includingaccess-control lists (ACLs),[58] security event auditing, extended file system attributes,mandatory access controls (MAC)[59] and fine-grainedcapabilities.[60] These security enhancements were developed by theTrustedBSD[61] project. The project was founded byRobert Watson with the goal of implementing concepts from theCommon Criteria for Information Technology Security Evaluation and theOrange Book. This project is ongoing[timeframe?] and many of its extensions have been integrated into FreeBSD.[62] The project is supported by a variety of organizations, including the DARPA, NSA, Network Associates Laboratories, Safeport Network Services, the University of Pennsylvania, Yahoo!, McAfee Research, SPARTA, Apple Computer, nCircle Network Security, Google, the University of Cambridge Computer Laboratory, and others.[63]
The project has also ported theNSA'sFLASK/TE implementation fromSELinux to FreeBSD. Other work includes the development ofOpenBSM, 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 GEOM and OpenPAM.[60]
Most components of the TrustedBSD project are eventually folded into the main sources for FreeBSD. In addition, many features, once fully matured, find their way into other operating systems. For example,OpenPAM has been adopted byNetBSD.[64] Moreover, the TrustedBSD MAC Framework has been adopted byApple formacOS.[65]
FreeBSD has been ported to a variety ofinstruction set architectures (though most of no longer supported, at least with Tier 1 support). The FreeBSD project organizes architectures into tiers that characterize the level of support provided. Tier 1 architectures are mature and fully supported, e.g. it is the only tier "supported by the security officer". Tier 2 architectures are under active development but are not fully supported. Tier 3 architectures are experimental or are no longer under active development.[66]
As of April 2025[update], FreeBSD has been ported to the following architectures:[36]
Supported devices are listed in the FreeBSD 14.3 Hardware Notes.[72] The document describes the devices currently known to be supported by FreeBSD. Other configurations may also work, but simply have not been tested yet. Rough automatically extracted lists of supported device ids are available in a third party repository.[73]
In 2020, a new project was introduced to automatically collect information about tested hardware configurations.[74]
FreeBSD has asoftware repository of over 30,000[75] applications that are developed by third parties. Examples includewindowing systems,web browsers,email clients,office suites and so forth. In general, the project itself does not develop this software, only the framework to allow these programs to be installed, which is known as the Ports collection. Applications may either be compiled from source ("ports"), provided their licensing terms allow this, or downloaded as precompiled binaries ("packages").[76] The Ports collection supports the current and stable branches of FreeBSD. Older releases are not supported and may or may not work correctly with an up-to-date Ports collection.[77]
Ports useMakefiles to automatically fetch the desired application'ssource code, either from a local or remoterepository, unpack it on the system, apply patches to it and compile it.[8][78] Depending on the size of the source code, compiling can take a long time, but it gives the user more control over the process and its result. Most ports also have package counterparts (i.e. precompiled binaries), giving the user a choice. Although this method is faster, the user has fewer customization options.[76]
FreeBSD version 10.0 introduced thepackage manager pkg as a replacement for the previously used package tools.[79] It is functionally similar toapt andyum inLinux distributions. It allows for installation, upgrading and removal of both ports and packages. In addition to pkg,PackageKit can also be used to access the Ports collection.
First introduced in FreeBSD version 4,[80] jails are a security mechanism and an implementation ofoperating-system-level virtualization that enables the user to run multiple instances of a guest operating system on top of a FreeBSD host. It is an enhanced version of the traditionalchroot mechanism. A process that runs within such a jail is unable to access the resources outside of it. Every jail has its ownhostname andIP address. It is possible to run multiple jails at the same time, but the kernel is shared among all of them. Hence only software supported by the FreeBSD kernel can be run within a jail.[81]
bhyve, a new virtualization solution, was introduced in FreeBSD 10.0. bhyve allows a user to run a number of guest operating systems (FreeBSD,OpenBSD,Linux, andMicrosoft Windows[82]) simultaneously. Other operating systems such asIllumos are planned. bhyve was written by Neel Natu and Peter Grehan and was announced in the 2011 BSDCan conference for the first time. The main difference between bhyve andFreeBSD jails is that jails are anoperating system-level virtualization and therefore limited to only FreeBSD guests; but bhyve is a type 2hypervisor and is not limited to only FreeBSD guests.[83][84][85] For comparison, bhyve is a similar technology toKVM whereas jails are closer toLXC containers orSolaris Zones.Amazon EC2 AMI instances are also supported viaamazon-ssm-agent
Since FreeBSD 11.0, there has been support for running as the Dom0 privileged domain for theXen type 1 hypervisor.[86] Support for running as DomU (guest) has been available since FreeBSD 8.0.
Most software that runs onLinux can run on FreeBSD using an optional built-incompatibility layer. Hence, most Linux binaries can be run on FreeBSD, including some proprietary applications distributed only in binary form. This compatibility layer is not anemulation; Linux'ssystem call interface is implemented in the FreeBSD's kernel and hence, Linuxexecutable images andshared libraries are treated the same as FreeBSD's native executable images and shared libraries.[87] Additionally, FreeBSD providescompatibility layers for several otherUnix-likeoperating systems, in addition to Linux, such asBSD/OS andSVR4,[87] however, it is more common for users to compile those programs directly on FreeBSD.[88]
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 on Linux.[89][90] However, the layer is not altogether seamless, and some Linux binaries are unusable or only partially usable on FreeBSD. There is support for system calls up to version4.4.0,[91] available sinceFreeBSD 14.0. As of release 10.3, FreeBSD can run 64-bit Linux binaries.[92]
FreeBSD has implemented a number ofMicrosoft Windows nativeNDIS kernel interfaces to allow FreeBSD to run (otherwise) Windows-only network drivers.[93][94]
TheWine compatibility layer, which allows the running of software made forMicrosoft Windows onUnix-like operating systems, is available for FreeBSD.[95]
FreeBSD's kernel provides support for some essential tasks such as managing processes, communication, booting and filesystems. FreeBSD has amonolithic kernel,[96] with a modular design. Different parts of the kernel, such as drivers, are designed as modules. The user can load and unload these modules at any time.[97]ULE is the defaultscheduler in FreeBSD since version 7.1, it supportsSMP andSMT.[98] The FreeBSD kernel has also a scalable event notification interface, namedkqueue. It has been ported to other BSD-derivatives such asOpenBSD andNetBSD.[99] Kernel threading was introduced in FreeBSD 5.0, using anM:N threading model. This model works well in theory,[100][101] but it is hard to implement and few operating systems support it. Although FreeBSD's implementation of this model worked, it did not perform well, so from version 7.0 onward, FreeBSD started using a1:1 threading model, called libthr.[101]
FreeBSD's documentation consists of its handbooks, manual pages, mailing list archives, FAQs and a variety of articles, mainly maintained by The FreeBSD Documentation Project. FreeBSD's documentation is translated into several languages.[102] All official documentation is released under theFreeBSD Documentation License, "a permissive non-copyleft free documentation license that is compatible with the GNU FDL".[103] FreeBSD's documentation is described as "high-quality".[104][105]
The FreeBSD project maintains a variety of mailing lists.[106] Among the most popular mailing lists are FreeBSD-questions (general questions) and FreeBSD-hackers (a place for asking more technical questions).[107]
From version 2.0 to 8.4, FreeBSD used the sysinstall program as its main installer. It was written inC byJordan Hubbard. It uses atext user interface, and is divided into a number of menus and screens that can be used to configure and control the installation process. It can also be used to install Ports and Packages as an alternative to thecommand-line interface.[109]
The sysinstall utility is now considered deprecated in favor of bsdinstall, a new installer which was introduced in FreeBSD 9.0. bsdinstall is "a lightweight replacement for sysinstall" that was written in sh. According toOSNews, "It has lost some features while gaining others, but it is a much more flexible design, and will ultimately be significant improvement".[81][110]
Prior to 14.0, the default login shell wastcsh for root[111] and theAlmquist shell (sh) for regular users.[112] Starting with 14.0, the default shell is sh for both root and regular users.[111] The default scripting shell is the Almquist shell.[113]
FreeBSD is developed by a volunteer team located around the world. The developers use theInternet for all communication and many have not met each other in person. In addition to local user groups sponsored and attended by users, an annual conference, called BSDcon, is held byUSENIX. BSDcon is not FreeBSD-specific so it deals with the technical aspects of all BSD-derived operating systems, includingOpenBSD andNetBSD.[114] In addition to BSDcon, three other annual conferences, EuroBSDCon, AsiaBSDCon and BSDCan take place inEurope,Japan andCanada respectively.[115][116][117]
The FreeBSD Project is run by around 500 committers or developers who have commit access to the master source code repositories and can develop, debug or enhance any part of the system. Most of the developers are volunteers and few developers are paid by some companies.[24] There are several kinds of committers, including source committers (base operating system), doc committers (documentation and website authors) and ports (third-party application porting and infrastructure). Every two years the FreeBSD committers select a 9-member FreeBSD Core Team, which is responsible for overall project direction, setting and enforcing project rules and approving new committers, or the granting of commit access to the source code repositories. A number of responsibilities are officially assigned to other development teams by the FreeBSD Core Team, for example, responsibility for managing the ports collection is delegated to the Ports Management Team.[118]
In addition to developers, FreeBSD has thousands of "contributors". Contributors are also volunteers outside of the FreeBSD project who submit patches for consideration by committers, as they do not have commit access to FreeBSD's source code repository. Committers then evaluate contributors' submissions and decide what to accept and what to reject. A contributor who submits high-quality patches is often asked to become a committer.[118]
FreeBSDdevelopers 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 -RELEASE is cut about once every 4–6 months. If a feature is sufficiently stable and mature it will likely bebackported (MFC orMerge from CURRENT in FreeBSD developer slang) to the-STABLE branch.[119][8]
FreeBSD development is supported in part by the FreeBSD Foundation. The foundation is a non-profit organization that accepts donations to fund FreeBSD development. Such funding has been used to sponsor developers for specific activities, purchase hardware and network infrastructure, provide travel grants to developer summits, and provide legal support to the FreeBSD project.[120]
In November 2014, the FreeBSD Foundation received US$1 million donation fromJan Koum, co-founder and CEO ofWhatsApp – the largest single donation to the Foundation since its inception. In December 2016, Jan Koum donated another $500,000.[121] Jan Koum himself is a FreeBSD user since the late 1990s and WhatsApp uses FreeBSD on its servers.[122]
FreeBSD is released under a variety of open-source licenses. The kernel code and most newly created code are released under the two-clauseBSD license which allows everyone to use and redistribute FreeBSD as they wish. This license was approved byFree Software Foundation[123] andOpen Source Initiative[124] as a Free Software and Open Source license respectively. Free Software Foundation described this license as "a lax, permissive non-copyleft free software license, compatible with the GNU GPL". There are parts released under three- and four-clause BSD licenses, as well as theBeerware license. Some device drivers include abinary blob,[125] such as theAtherosHAL of FreeBSD versions before 7.2.[126][failed verification] Some of the code contributed by other projects is licensed underGPL,LGPL,CDDL[127] andISC. All the code licensed underGPL andCDDL is clearly separated from the code under liberal licenses, to make it easy for users such as embedded device manufacturers to use onlypermissive free software licenses. ClangBSD aims to replace someGPL dependencies in the FreeBSD base system by replacing theGNU compiler collection with the BSD-licensedLLVM/Clang compiler. ClangBSD became self-hosting on 16 April 2010.[128]
For many years FreeBSD's logo was the genericBSD Daemon, also calledBeastie, a distorted pronunciation ofBSD. However, Beastie was not unique to FreeBSD. Beastie first appeared in 1976 on Unix T-shirts of comic artist Phil Foglio art,[129] for Mike O'Brien,[130][131][132][133] with some purchased byBell Labs.[134]
More popular versions of the BSD daemon were drawn by animation directorJohn Lasseter beginning in 1984.[135][136] Several FreeBSD-specific versions were later drawn by Tatsumi Hosokawa.[137] In lithographic terms, the Lasseter graphic is notline art and often requires a screened, four-colorphoto offset printing process for faithful reproduction on physical surfaces such as paper. Also, the BSD daemon was thought to be too graphically detailed for smooth size scaling and aesthetically over-dependent on multiple color gradations, making it hard to reliably reproduce as a simple, standardized logo in only two or three colors, much less in monochrome.
Because of these worries, a competition was held and a new logo designed by Anton K. Gural, still echoing the BSD daemon, was released on 8 October 2005.[138][139][140] However, it was announced byRobert Watson that the FreeBSD project is "seeking a new logo, but not a new mascot" and that the FreeBSD project would continue to use Beastie as its mascot.[138]
The name "FreeBSD" was coined by David Greenman on 19 June 1993, other suggested names were "BSDFree86" and "Free86BSD".[141] FreeBSD's slogan, "The Power to Serve", is a trademark of The FreeBSD Foundation.[142]
There are a number of software distributions based on FreeBSD.
All these distributions have no or only minor changes when compared with the original FreeBSD base system. The main difference to the original FreeBSD is that they come with pre-installed and pre-configured software for specific use cases. This can be compared withLinux distributions, which are all binary compatible because they use the same kernel and also use the same basic tools, compilers, and libraries while coming with different applications, configurations, and branding.
Besides these distributions, there are some independent operating systems based on FreeBSD.DragonFly BSD is a fork from FreeBSD 4.8 aiming for a different multiprocessor synchronization strategy than the one chosen for FreeBSD 5 and development of somemicrokernel features.[152] It does not aim to stay compatible with FreeBSD and has huge differences in the kernel and basicuserland.MidnightBSD is a fork of FreeBSD 6.1 borrowing heavily fromNeXTSTEP, particularly in the user interface department.
Theext2fs(5) filesystem has been updated to support full read/write support for ext4.
FreeBSD has changed the waygraphics drivers are handled on amd64 and i386. Graphics drivers for modernATI-AMD and Intel graphics cards are now available in the Ports Collection.
The UFS/FFS filesystem has been updated to support check hashes to cylinder-group maps.
The clang, lld, and lldb utilities and compiler-rt, llvm, libunwind, and libc++ libraries have been updated to version 11.0.1.
Removed the obsolete binutils 2.17 and gcc(1) 4.2.1 from the tree. All supported architectures now use the LLVM/clang toolchain.
The kernel now supports in-kernel framing and encryption of Transport Layer Security (TLS) data on TCP sockets for TLS versions 1.0 through 1.3. Transmit offload via in-kernel crypto drivers is supported for MtE cipher suites using AES-CBC as well as AEAD cipher suites using AES-GCM. Receive offload via in-kernel crypto drivers is supported for AES-GCM cipher suites for TLS 1.2. Using KTLS requires the use of a KTLS-aware userland SSL library. The OpenSSL library included in the base system does not enable KTLS support by default, but support can be enabled by building with the WITH_OPENSSL_KTLS option
The 64-bit ARM architecture known as arm64 or AArch64 is promoted to Tier-1 status for FreeBSD 13.
^"Platforms".The FreeBSD Project. Retrieved24 April 2025.
^"FreeBSD History".people.freebsd.org.Archived from the original on 24 November 2023. Retrieved24 November 2023.
^BSD Usage Survey Report(PDF) (Report). The BSD Certification Group. 31 October 2005.Archived(PDF) from the original on 22 October 2013. Retrieved5 December 2010.
^abRosenberg, Alex (17 December 2013)."FreeBSD Handbook and PS3".freebsd-doc (Mailing list).Archived from the original on 2 February 2017. Retrieved22 January 2016.
^"CARP(4)".The FreeBSD documentation Project.Archived from the original on 29 October 2013. Retrieved25 October 2013.
^McKusick, Marshall; Neville-Neil, George V. (2005). "8.6. Soft Updates".The Design and Implementation of the FreeBSD Operating System. Addison-Wesley.ISBN0-201-70245-2.
^Kuriyama, Jun (22 February 2005)."FreeBSD logo design competition".FreeBSD-Announce (Mailing list).Archived from the original on 3 November 2013. Retrieved1 November 2013.
^Dillon, Matthew (16 July 2003)."Announcing DragonFly BSD!".freebsd-current (Mailing list).Archived from the original on 2 October 2018. Retrieved26 July 2007.
Lavigne, Dru; Lehey, Greg; Reed, Jeremy C. (20 December 2007),The Best of FreeBSD Basics (First ed.), Reed Media Services, p. 596,ISBN978-0-9790342-2-0,archived from the original on 5 January 2008, retrieved9 January 2008
McKusick, Marshall K.; Neville-Neil, George V. (2 August 2004),The Design and Implementation of the FreeBSD Operating System (First ed.),Addison–Wesley, p. 720,ISBN0-201-70245-2