FreeBSD 14.0-RELEASE Ships
FreeBSD 14.0 shipped OpenZFS 2.2, OpenSSL 3, CUBIC TCP, larger SMP systems, new bhyve features, safer UFS checks, and cloud images.
The FreeBSD Release Engineering Team announced FreeBSD 14.0-RELEASE on November 20, 2023. It was the first release from stable/14 and represented more than two and a half years of development since 13.0, including some work already merged to 13.1 and 13.2. Its most visible changes ranged from OpenSSL and OpenZFS upgrades to TCP behavior, virtualization, very large SMP systems, and the base system’s default mail and shell configuration.
OpenSSL 3 and OpenZFS 2.2 were major upgrades
The base OpenSSL library moved from 1.1.1t in FreeBSD 13.2 to OpenSSL 3.0.12. This was a major API and provider-model transition, not merely a security patch. Software built against assumptions from OpenSSL 1.1 could require source or configuration changes. Third-party applications installed through packages remained governed by their own dependencies, so administrators needed to distinguish the base library from any separately packaged library.
OpenZFS moved to 2.2. The release notes list optional block cloning, scrub error logs, BLAKE3 checksums, corrective zfs receive, vdev and pool user properties, adaptive ARC work, Zstandard early-abort optimization, and I/O prefetch improvements. Block cloning was disabled by default and required vfs.zfs.bclone_enabled=1; describing every 2.2 feature as automatically active would be wrong.
Pool feature upgrades remained a one-way compatibility decision. A host could run newer ZFS software without immediately enabling every feature flag, but once a pool used an unsupported feature, older kernels or rescue media might not import it. FreeBSD 14.0’s release notes explicitly warned administrators to update boot code appropriately and discouraged upgrading a root pool before confirming the boot path. Backups and compatible recovery media belonged in the upgrade plan.
UFS also received substantial work. Journaled soft-updates filesystems could perform background checks using a snapshot, and additional hashes protected superblocks, cylinder-group maps, and inodes. These checks improved corruption detection; they did not turn UFS into a copy-on-write filesystem or eliminate the need for backups.
Networking and large-system limits changed
FreeBSD 14.0 made CUBIC the default TCP congestion-control algorithm, replacing NewReno as the default selection. The release notes describe CUBIC as taking a slightly larger fraction of available bandwidth during long transfers when competing with NewReno. Workload, latency, loss, and network policy still determine real performance; a default change is not a guarantee that every connection becomes faster.
The SMP system increased its supported limit to 1,024 cores on amd64 and arm64. Kernel CPU sets became dynamically allocated to avoid wasting memory, and the cpuset ABI changed to represent the larger limit. This was engineering for high-end systems, but it could also affect software that had compiled in assumptions about CPU-set size.
The new boottrace(4) and boottrace(8) path added instrumentation across kernel, init, shutdown, reboot, and rc scripts. Because it was available in GENERIC and controlled by sysctl, administrators gained a supported way to investigate boot and shutdown timing without constructing a custom tracing stack.
bhyve, cloud images, and hardware support advanced
The announcement highlighted TPM and GPU passthrough support in bhyve. These additions expanded potential Windows and specialized guest workloads, but passthrough still depended on hardware, IOMMU grouping, firmware, and host configuration. The feature’s presence in release notes did not make every GPU or TPM combination supported.
FreeBSD published experimental ZFS-root EC2 images and experimental cloud-init EC2 images. Azure images expanded to arm64 as well as amd64, with UFS and experimental ZFS variants, and Azure Gen2 VM support. The Google Virtual NIC driver and Azure MANA virtual-function support broadened cloud networking. “Experimental” was an operational qualifier: users needed to test image update, boot, snapshot, and recovery behavior rather than treating it as identical to established UFS images.
Architecture support also narrowed. MIPS support was removed, armv6 release artifacts were no longer produced, and the software-floating-point RISC-V variant was retired. The regular riscv64 architecture remained. Release availability should therefore be checked per architecture, not inferred from an older FreeBSD major version.
Defaults in userland visibly changed
The root account’s default shell became the improved sh(1). FreeBSD also changed the default mail transfer agent from Sendmail to the DragonFly Mail Agent, dma(8), while retaining Sendmail and its configuration in the base system. The change suited local mail delivery and smarthost-style forwarding, but systems operating a full Sendmail service needed to review mailer.conf(5) and their rc configuration during upgrade.
OpenSSH was updated to 9.5p1. As with OpenSSL, the version is historically relevant but not a present-day recommendation to run unpatched 14.0 media. Security advisories and errata published after the release supersede the original bits.
The release notes also signaled the future of 32-bit platforms. Stable/14 retained existing 32-bit kernel and world support, but i386, armv6, and powerpc were deprecated in anticipation of later removal; 64-bit systems would continue to support older 32-bit binaries through compatibility facilities. That distinction separated building a 32-bit operating system from running a 32-bit application on a 64-bit kernel.
14.0 began a branch; it was not the final 14.x state
A .0 release is the first supported snapshot of a major stable branch, not a frozen description of everything later called FreeBSD 14. Point releases add suitable features, drivers, and fixes from stable/14, while each individual release has its own support window. FreeBSD 14.0 itself is now obsolete even though later 14.x releases and the stable/14 series followed it.
That makes the article’s dates and versions historical evidence, not installation advice. A current deployment should use the Project’s live release and Security Information pages, verify image signatures, read the target release’s errata, and rehearse the documented upgrade. FreeBSD 14.0 matters because it established the 14-series baseline: OpenSSL 3, OpenZFS 2.2, CUBIC, 1,024-core scalability, expanded bhyve and cloud paths, and deliberate changes to familiar Unix defaults.
Related:
Sources: