See main article: article and FreeBSD.
Released in November 1993. 1.1.5.1 was released in July 1994.
2.0-RELEASE was announced on 22 November 1994. The final release of FreeBSD 2, 2.2.8-RELEASE, was announced on 29 November 1998. FreeBSD 2.0 was the first version of FreeBSD to be claimed legally free of AT&T Unix code with approval of Novell. It was the first version to be widely used at the beginnings of the spread of Internet servers.
2.2.9-RELEASE was released April 1, 2006 as a fully functional April Fools' Day prank.[1]
FreeBSD 3.0-RELEASE was announced on 16 October 1998.[2] The final release, 3.5-RELEASE, was announced on 24 June 2000.[3] FreeBSD 3.0 was the first branch able to support symmetric multiprocessing (SMP) systems, using a Giant lock and marked the transition from a.out to ELF executables. USB support was first introduced with FreeBSD 3.1, and the first Gigabit network cards were supported in 3.2-RELEASE.
4.0-RELEASE appeared in March 2000[4] and the last 4-STABLE branch release was 4.11 in January 2005 supported until 31 January 2007.[5] FreeBSD 4 was lauded for its stability, was a favorite operating system for ISPs and web hosting providers during the first dot-com bubble, and is widely regarded as one of the most stable and high-performance operating systems of the whole Unix lineage. Among the new features of FreeBSD 4, kqueue(2)
was introduced (which is now part of other major BSD systems) and Jails, a way of running processes in separate environments.[6]
Version 4.8 was forked by Matt Dillon to create DragonFly BSD.
After almost three years of development, the first 5.0-RELEASE in January 2003 was widely anticipated, featuring support for advanced multiprocessor and application threading, and for the UltraSPARC and IA-64 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 multi-processor (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 (KSE). 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), encryption (GBDE and GELI). This work was supported through sponsorship by DARPA.
While the early versions from the 5.x were not much more than developer previews, with pronounced instability, the 5.4 and 5.5 releases of FreeBSD confirmed the technologies introduced in the FreeBSD 5.x branch had a future in highly stable and high-performing releases.
FreeBSD 6.0 was released on 4 November 2005. The final FreeBSD 6 release was 6.4, on 11 November 2008. These versions extended 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.0 was released on 27 February 2008. The final FreeBSD 7 release was 7.4, on 24 February 2011. New features included SCTP, UFS journaling, an experimental port of Sun's ZFS file system, GCC4, improved support for the ARM architecture, jemalloc (a memory allocator optimized for parallel computation,[7] which was ported to Firefox 3),[8] and major updates and optimizations relating to network, audio, and SMP performance.[9] Benchmarks showed significant performance improvements compared to previous FreeBSD releases as well as Linux.[10] The new ULE scheduler was much improved but a decision was made to ship the 7.0 release with the older 4BSD scheduler, leaving ULE as a kernel compile-time tunable. In FreeBSD 7.1 ULE was the default for the i386 and AMD64 architectures.
DTrace support was integrated in version 7.1,[11] and NetBSD[12] and FreeBSD 7.2 brought support for multi-IPv4/IPv6 jails.[13]
Code supporting the DEC Alpha architecture (supported since FreeBSD 4.0) was removed in FreeBSD 7.0.[14]
FreeBSD 8.0 was officially released on 25 November 2009.[15] FreeBSD 8 was branched from the trunk in August 2009. It features superpages, Xen DomU support, network stack virtualization, stack-smashing protection, TTY layer rewrite, much updated and improved ZFS support, a new USB stack with USB 3.0 and xHCI support added in FreeBSD 8.2, multicast updates including IGMPv3, a rewritten NFS client/server introducing NFSv4, and AES acceleration on supported Intel CPUs (added in FreeBSD 8.2). Inclusion of improved device mmap extensions enables implementation of a 64-bit Nvidia display driver for the x86-64 platform. A pluggable congestion control framework, and support for the ability to use DTrace for applications running under Linux emulation were added in FreeBSD 8.3. FreeBSD 8.4, released on 7 June 2013, was the final release from the FreeBSD 8 series.[16]
FreeBSD 9.0 was released on 12 January 2012. Key features of the release include a new installer (bsdinstall[17]), UFS journaling, ZFS version 28, userland DTrace, NFSv4-compatible NFS server and client, USB 3.0 support, support for running on the PlayStation 3, Capsicum sandboxing, and LLVM 3.0 in the base system.[18] The kernel and base system could be built with Clang, but FreeBSD 9.0 still used GCC4.2 by default. The PlayStation 4 video game console uses a derived version of FreeBSD 9.0, which Sony Computer Entertainment dubbed "Orbis OS".[19] [20] FreeBSD 9.1 was released on 31 December 2012.[21] FreeBSD 9.2 was released on 30 September 2013.[22] FreeBSD 9.3 was released on 16 July 2014.[23]
On 20 January 2014, the FreeBSD Release Engineering Team announced the availability of FreeBSD 10.0-RELEASE.[24] Key features include the deprecation of GCC in favor of Clang, a new iSCSI implementation, VirtIO drivers for out-of-the-box KVM support, and a FUSE implementation.[25]
In October 2017 the 10.4-RELEASE (final release of this branch) was announced, and support for the 10 series was terminated in October 2018.
On 10 October 2016, the FreeBSD Release Engineering Team announced the availability of FreeBSD 11.0-RELEASE.[29]
FreeBSD 12.0-RELEASE was announced in December 2018.
FreeBSD 13.0-RELEASE was published on 13. April 2021. FreeBSD 13.1-RELEASE was published on 16. May 2022. FreeBSD 13.2-RELEASE was published on 11. April 2023. FreeBSD 13.3-RELEAE was published on 5. March 2024.
FreeBSD 13.x is the last release cycle to support MIPS architecture based CPUs.[30]
FreeBSD 14.0-RELEASE was published on 20. November 2023.
FreeBSD 14.x is the last release cycle to support 32 bit CPU architectures except armv7.[31]
The following table presents a version release history for the FreeBSD operating system.
Version[32] | Release date[33] | Supported until[34] | Significant changes | |
---|---|---|---|---|
1 November 1993 | ||||
May 1994 | fix some outstanding bugs from import of 386BSD, addition of some ported applications (XFree86, XView, InterViews, elm, nntp)[35] | |||
July 1994 | ||||
22 November 1994 | replace code base with BSD-Lite 4.4 (to satisfy terms of the USL v. BSDi lawsuit settlement), new installer, new boot manager, support for more filesystems (MS-DOS, unionfs, kernfs), 64-bit offsets for large filesystems, loadable filesystems, imported loadable kernel modules from NetBSD[36] | |||
10 June 1995 | revamped VM system, full NIS client and server support, transaction TCP support, ISDN support, support for FDDI and Fast Ethernet (100Mbit) adapters, multi-lingual documentation, FreeBSD Ports bundled with installation media[37] | |||
19 November 1995 | ||||
July 1996 | bug and security fixes, PCI bus probing, addition of some drivers[38] | |||
December 1996 | bug and security fixes, improvements to installation[39] | |||
February 1997 | bug and security fixes[40] | |||
March 1997 | NFSv3, replaced BSD malloc with phkmalloc, Linux emulation with ELF, man section 9 for kernel routines[41] | |||
April 1997 | Bugfix release to replace 2.2. Update the Adaptec 2940 and Intel EtherExpress Pro drivers, fix CD-ROM package installer.[42] | |||
May 1997 | NFSv3 made default, virtual FTP hosting[43] | |||
22 October 1997 | update support for Cyrix and AMD processors, new VGA library[44] | |||
25 March 1998 | ATAPI floppy drives, improved Linux emulation, new sound driver, new Plug and Play (PnP) support[45] | |||
22 July 1998 | FAT32 support, update to PC98 architecture[46] | |||
29 November 1998 | Dummynet traffic shaping, bridging on multiple interfaces, support use of IDE drives larger than 8GiB[47] | |||
1 April 2006 | fully functional April Fools' Day celebration[48] | |||
16 October 1998 | symmetric multiprocessing (SMP), CAM (Common Access Method) SCSI system, ELF executables, secure RPC, ATAPI/IDE CD burner and tape drive support, VESA video modes, Perl 5 replaced Perl 4 in base system, KerberosIV[49] | |||
15 February 1999 | initial USB device support, Pluggable Authentication Modules (PAM)[50] | |||
17 May 1999 | addition of Internet Software Consortium DHCP client to base, expanded USB device support, improved filesystem support (direct access to NTFS, Joliet extensions for ISO 9660)[51] | |||
17 September 1999 | improved USB support, major vinum updates, improvements to IPFW, Advanced power management, Berkeley Packet Filter enabled by default, addition of many drivers[52] | |||
20 December 1999 | Netgraph, RAID-5 support in vinum, ICMP and other security fixes[53] | |||
24 June 2000 | substantial vinum update, audio mixer updated, HTTP installation option[54] | |||
14 March 2000 | addition of jails, IPv6 support and IPsec with KAME (applications were also updated to support IPv6), OpenSSH integrated into the base system, new ATA/ATAPI driver (for all ATA compliant disks and ATAPI CDROM, CD-R, CD-RW, DVD-ROM, DVD-RAM, LS120, ZIP and tape drives), emulator for SVR4 binary files, burncd, USB Ethernet adapter support, accept filters, telnet encryption[55] | |||
27 July 2000 | Kqueue, improved IPsec, expanded DEC Alpha support, support for USB devices in default installation[56] | |||
27 September 2000 | virtual Ethernet device driver for bridged configurations, ATA100 controller support[57] | |||
21 November 2000 | basic USB scanner support, USB modem support, bug fixes for buffer overflows, FreeBSD Ports restructured[58] | |||
20 April 2001 | sound driver updates, TCP bug fixes, kqueue extended to the device layer[59] | |||
20 September 2001 | detection for new processors (Transmeta Crusoe et al.), support for Streaming SIMD Extensions (SSE), kernel support for smbfs (CIFS), update to IPv6 stack[60] | |||
29 January 2002 | 31 December 2002 | TCP improvements (throughput, performance, and Denial-of-service mitigation), Soft updates enabled by default, improved Linux emulation, boot loader updated to boot from filesystems with 16K disk blocks (from 8K)[61] | ||
15 June 2002 | May 2003 | update XFree86 to version 4.2.0, driver additions and updates[62] | ||
15 August 2002 | May 2003 | fixed ATA-related problems, fix security-related problems[63] | ||
10 October 2002 | December 2003 | new USB devices and disk controllers, IPFW version 2 (disabled by default)[64] | ||
3 April 2003 | 31 March 2004 | basic FireWire and HyperThreading support, in-kernel cryptographic framework imported from OpenBSD, ata driver support for accessing ATA devices as SCSI devices using Common Access Method (CAM)[65] | ||
28 October 2003 | 31 October 2004 | Physical Address Extensions, IPFW fixes[66] | ||
27 May 2004 | May 2006 | USB2 support, added ports/CHANGES and ports/UPDATING to FreeBSD Ports[67] | ||
25 January 2005 | 31 January 2007 | update XFree86 to version 4.4.0, implementation of per-interface polling for network interfaces[68] | ||
14 January 2003 | 30 June 2003 | support for UltraSPARC and IA-64 processors, SMP support via changes to kernel locking (release most of kernel from the Giant lock), GEOM, Kernel Scheduled Entities, Mandatory Access Control imported from TrustedBSD, background fsck, Bluetooth, ACPI, CardBus, devfs, UFS2 support, support for Universal Disk Format, drivers for Direct Rendering Infrastructure (DRI), Pluggable Authentication Modules, remove support for 80386 in default kernel, removal of kernfs and UUCP, traditional BSD games moved from base to FreeBSD Ports, Perl removed from base system, imported rc.d framework from NetBSD, addition of BSDPAN, cdboot boot loader used by default[69] | ||
9 June 2003 | February 2004 | experimental support for AMD64, experimental 1:1 and M:N thread libraries for multithreaded processing, experimental Name Service Switch, Physical Address Extensions, GEOM and devfs mandatory, IPv6 support in Linux emulator, experimental ULE scheduler, removed support for Xerox Network Systems, CAM layer support for devices with more than 232 blocks, removed historic BSD boot scripts, update XFree86 to version 4.3.0, start of Danish document translations[70] | ||
9 January 2004 | 31 December 2004 | AMD64 a Tier1 supported architecture, updated swap pager, Protocol Independent Multicast, updates to IPv6, IPSec and Bluetooth, major changes to ata driver (removed from Giant lock), NFSv4 client support, start of Turkish document translation,[71] remove floating point emulation support for i386,[72] new or improved IDE, SATA, and 802.11a/b/g device drivers, experimental support for multithreaded filtering and forwarding of IP traffic[73] | ||
25 February 2004 | 31 December 2004 | bugfix release, improved ATA/IDE and SATA handling[74] | ||
6 November 2004 | 31 October 2006 | ALTQ, multi-threaded and reentrant network and socket subsystems, addition of new debugging framework KDB, dynamic and static linker support for Thread Local Storage, import pf from OpenBSD, binary compatibility interface for native execution of NDIS drivers, replace XFree86 with X.org 6.7, sound card driver reorganization, cryptography enabled by default in base[75] | ||
9 May 2005 | 31 October 2006 | import Common Address Redundancy Protocol from OpenBSD[76] | ||
25 May 2006 | 31 May 2008 | both cores of dual core processors made available for use by default in SMP-enabled kernels[77] | ||
4 November 2005 | 31 January 2007 | experimental support for PowerPC, WPA wireless security, more wireless networking adapter drivers, complete support for 802.11g, 802.11i, 802.1x and WME/WMM, filesystem and direct disk access performance improvements[78] | ||
8 May 2006 | 31 May 2008 | keyboard multiplexer, filesystem stability fixes, automatic configuration for many Bluetooth devices, drivers for Ethernet, SAS and SATA RAID controllers[79] | ||
15 January 2007 | 31 May 2008 | support for Xbox architecture, OpenBSM, security event auditing, IPFW packet tagging, freebsd-update (binary updates for security fixes and errata patches), OpenIPMI (see Intelligent Platform Management Interface)[80] | ||
18 January 2008 | 31 January 2010 | X.org updated to version 7.3, reimplementation of UnionFS, addition of upgrade command to freebsd-update[81] | ||
28 November 2008 | 30 November 2010 | support for Camellia cipher, boot loader changes (enabling booting from USB devices, and GPT-labeled devices with GPT-enabled BIOSes), malloc buffer corruption protection, DVD install ISO images for AMD64 and i386[82] | ||
27 February 2008 | 30 April 2009 | ZFS and GPT, reference implementation of SCTP, add support for ARM architecture, support for Intel High Definition Audio (HDA), replacing phkmalloc with jemalloc,[83] drop support for DEC Alpha[84] | ||
4 January 2009 | 28 February 2011 | DTrace, ULE scheduler made default scheduler for i386 and AMD64 platforms[85] | ||
4 May 2009 | 30 June 2010 | support for UltraSPARC III processors, transparent use of superpages in virtual memory subsystem, improvements to jail[86] | ||
23 March 2010 | 31 March 2012 | new boot loader gptzfsboot (support for GPT and ZFS), ZFS updated to version 13, Perl updated to version 5.10, support for VIA Nano processors[87] [88] | ||
24 February 2011 | 28 February 2013 | add support for UltraSPARC IV, IV+, and SPARC64 V processors, IEEE 802.3 full duplex flow control (in miibus).[89] This is the final release in the 7-STABLE branch. | ||
25 November 2009 | 30 November 2010 | new USB stack, update FreeBSD jails to support modern features, ULE 3.0 scheduler, superpages, NFSv4 support[90] | ||
23 July 2010 | 31 July 2012 | High Availability Storage, IPFW and dummynet improvements, SMP in PowerPC G5 systems, MP-safe MS-DOS filesystem, zfsloader, NFSv4 ACL for UFS and ZFS[91] | ||
24 February 2011 | 31 July 2012 | import V4L into Linux emulator[92] | ||
18 April 2012 | 30 April 2014 | graid replaces ataraid; update ZFS to version 28; DTrace ability on Linux emulated binaries; mod_cc pluggable congestion control framework for TCP/IP stack[93] | ||
7 June 2013 | 1 August 2015 | Various kernel changes and security fixes were implemented.[94] [95] | ||
12 January 2012 | 31 March 2013 | Userland DTrace, substitute GCC with Clang and LLVM for base system, USB 3.0 support, UFS SoftUpdates+Journal, moving ATA disk drivers to the CAM system, update ZFS to version 28, replaced sysinstall with bsdinstall.[96] | ||
30 December 2012 | 31 December 2014 | Update of sound drivers; improved performance of IPv6 stack; new C++ stack; jail support for devfs, nullfs, and ZFS; sched_ule SMT load balancing improvements[97] | ||
30 September 2013 | 31 December 2014 | ZFS support for LZ4 compression and TRIM; removal of FireWire drivers from GENERIC kernel[98] | ||
16 July 2014 | 31 December 2016 | ZFS support for bookmarks[99] | ||
20 January 2014 | 31 January 2015 | Virtualization improvements (bhyve, virtio); USB upgrades; use clang and LLVM by default; capsicum; pkgng; remove BIND; add LDNS and Unbound to base system; update ipfilter to 5.1.2; add support for Raspberry Pi, IEEE 802.11s, and FUSE; ZFS on root filesystem; replaced GNU tools with BSD-licensed versions[100] | ||
14 November 2014 | 31 December 2016 | UEFI | ||
13 August 2015 | 31 December 2016 | Update linux compatibility layer to support Centos 6 ports; ZFS performance and reliability improvements; update DRM for multiple X servers support[103] | ||
28 March 2016 | 30 April 2018 | improvements to UEFI boot loader and Linux compatibility; ZFS boot support and root on ZFS for UEFI; CAM Target Layer support for high availability services[104] | ||
3 October 2017 | 31 October 2018 | Full support for eMMC storage; support for Mellanox ConnectX-4 adapters; driver and software updates[105] | ||
10 October 2016 | 30 November 2017 | Improvements for wireless networking; support for the 64-bit ARM architecture[106] | ||
26 July 2017 | 30 September 2018 | Support for Microsoft Hyper-V hypervisor; support for Amazon Elastic File System in Network File System client; ZFS boot configuration utility[107] | ||
28 June 2018 | 31 October 2019 | Meltdown and Spectre fixes; driver and software updates[108] | ||
9 July 2019 | 30 September 2020 | driver and software updates[109] | ||
23 June 2020 | 30 September 2021 | Support for ZFS bookmark renaming; tunable ZFS intent log; upgrades for GNOME, KDE, clang, llvm, unbound, and others[110] | ||
11 December 2018 | 29 February 2020 | Improved support for Ryzen and Epyc CPUs; Better support for modern AMD/Intel graphic cards; various kernel configuration tweaking[111] | ||
4 November 2019 | 31 January 2021 | Added BearSSL to base system[112] | ||
27 October 2020 | 31 March 2022 | Expanding jail functionality to allow Linux to run in a jailed environment; upgrades to wireless networking stack (improvements to 802.11n and 802.11ac support)[113] | ||
7 December 2021 | 31 March 2023 | [114] | ||
5 December 2022[115] | 31 December 2023 | |||
13 April 2021 | 31 August 2022 | In-kernel framing and encryption of Transport Layer Security (TLS) versions 1.0 to 1.3; 64-bit ARM architecture promoted to Tier 1 support; upgrade of clang, LLVM, and related utilities to version 11.0.1; all supported architectures now use clang and LLVM toolchain by default; removal of deprecated utilities and libraries (binutils, gcc, GNU grep, CU-SeeMe); addition of driver for Intel QuickAssist (QAT) device; some drivers upgraded to support PowerPC64 architecture[116] | ||
16 May 2022[117] | 31 July 2023 | FIDO/U2F hardware authenticators enabled in ssh; ice(4) driver for Intel E800 Ethernet controllers update to 1.34.2-k, with firmware logging and initial DCB support; iwlwifi(4) driver for Intel IEEE 802.11a/b/g/n/ac/ax along with a LinuxKPI 802.11 compatibility layer; EC2 images built by default to boot using UEFI | ||
11 April 2023[118] | 30 June 2024 | bhyve hypervisor support more than 16 vCPUs in a guest; ASLR enabled for 64-bit executables by default; UFS filesystems snapshots when running with journaled soft updates; Add kernel wg(4) WireGuard driver; Add kernel netlink(4) network configuration protocol | ||
5 March 2024[119] | update of LLVM & clang (to 17.0.6), OpenSSH (to 9.6p1), sendmail (to 8.18.1), OpenZFS (to 2.1.14); stability fixes to WiFi drivers; NFS server can now run in a vnet jail[120] | |||
20 November 2023[121] | update OpenSSH (to 9.5p1), OpenSSL (to 3.0.12), OpenZFS (to 2.2); bhyve support for TPM & GPU passthrough; raise limit of cpu core count to 1024 on amd64 arm64 platforms; possibility to perform background filesystem checks on UFS file systems running with journaled soft updates[122] | |||
Drop support for all 32 Bit CPU instruction set architectures except armv7[123] | ||||
Version | Release date | Supported until | Significant changes | |
The timeline shows that the span of a single release generation of FreeBSD lasts around 5 years. Since the FreeBSD project makes effort for binary backward (and limited forward) compatibility within the same release generation,[124] this allows users 5+ years of support, with trivial-to-easy upgrading within the release generation.