FreeBSD.software
Home/Guides/FreeBSD 15.0 Preview: What to Expect
guide·2026-04-09·9 min read

FreeBSD 15.0 Preview: What to Expect

Preview of FreeBSD 15.0: planned features, architecture changes, new drivers, removed legacy code, expected timeline, and how to test CURRENT builds.

FreeBSD 15.0 Preview: What to Expect

FreeBSD 15.0 is the next major release. Development has been ongoing in the CURRENT branch (HEAD) since well before 14.0 shipped, and the feature set is now solidifying. This post covers the planned changes, what has already landed in CURRENT, the expected timeline, and how you can test it today.

This is not speculation. Everything discussed here is either already committed to HEAD or actively under review with strong consensus. Where timelines are uncertain, that is noted.

Expected Timeline

The FreeBSD release engineering process follows a predictable pattern:

  • Branch creation (stable/15): Expected mid-2025
  • BETA1: Expected late 2025
  • RC1: Expected Q1 2026
  • 15.0-RELEASE: Expected Q1-Q2 2026

These dates can slip. FreeBSD releases when the code is ready, not to meet marketing deadlines. That said, the current pace of development suggests the branch will happen roughly on schedule.

Major Kernel Changes

64-bit Inodes by Default

FreeBSD 15 will enable 64-bit inode numbers by default on UFS. This was optional in 14.x and required a specific newfs flag. The change allows UFS filesystems to support more than 2^32 files. ZFS has always used 64-bit inodes.

This change can break poorly written software that truncates inode numbers to 32 bits. The transition has been gradual -- 14.x already supported it optionally -- so most ports are already compatible.

KTLS Improvements

Kernel TLS (KTLS) offload continues to improve. FreeBSD 15 will ship with TLS 1.3 kernel offload support for both send and receive paths. Combined with NIC hardware that supports TLS offload (Intel E810, Mellanox ConnectX-6 Dx), this means TLS termination can happen entirely in the kernel or even in hardware, bypassing userland overhead.

sh
# Check KTLS status on a running system (CURRENT or 15.x) sysctl kern.ipc.tls

Improved Arm64 Support

FreeBSD 15 targets Arm64 as a Tier 1 platform with the same level of support as amd64. This means:

  • Full regression testing on Arm64 hardware
  • Binary updates via freebsd-update for aarch64
  • Consistent driver support for common Arm64 server platforms (Ampere Altra, AWS Graviton)

The Arm64 improvements extend to the desktop as well. Pinebook Pro, Raspberry Pi 4/5, and Apple Silicon (via Asahi Linux kernel work) all see continued improvement.

RISC-V Promotion

RISC-V moves from Tier 3 to Tier 2 support. This means release images will be built for RISC-V and basic support is expected to work, but it will not receive the same level of testing as amd64 or aarch64.

Network Stack Modernization

The network stack continues to shed its ancient lock hierarchy. The "epoch-based reclamation" approach for routing table lookups that started in 13.x is being extended to more subsystems, reducing lock contention in the forwarding path.

The if_bridge(4) implementation is being reworked for better VNET compatibility and performance. Jailed bridge configurations that were previously unreliable will work correctly.

sh
# Network epoch stats (available on CURRENT) sysctl net.epoch

Removal of 32-bit Platform Support

FreeBSD 15 is expected to drop support for i386 (32-bit x86) as a kernel platform. 32-bit compatibility for running 32-bit binaries on amd64 (COMPAT_FREEBSD32) will remain. This has been discussed for years and aligns with the reality that no one is deploying new 32-bit x86 FreeBSD systems.

armv6 support is also being removed. armv7 remains for now but is expected to follow in a future release.

Userland Changes

Base System Compiler

LLVM/Clang will update to version 19.x or newer. The base system compiler continues to track upstream LLVM closely. This brings:

  • Better code generation for modern CPUs
  • Improved sanitizer support (AddressSanitizer, UndefinedBehaviorSanitizer)
  • Better C23 and C++23 compliance
sh
# On CURRENT, check the base compiler version cc --version

bhyve Enhancements

bhyve, FreeBSD's native hypervisor, receives significant attention in 15.0:

  • Live migration: The live migration feature that has been in development for multiple release cycles is expected to be production-ready.
  • VirtIO-GPU: Basic GPU passthrough for graphical VMs.
  • Improved Windows support: Better UEFI compatibility and TPM 2.0 emulation for Windows 11 guests.
  • Snapshots: Save and restore VM state to disk.
sh
# bhyve version on CURRENT bhyve --version 2>/dev/null || echo "Check /usr/sbin/bhyve"

OpenSSL 3.x Maturation

FreeBSD 14.x shipped with OpenSSL 3.0. FreeBSD 15 will ship with OpenSSL 3.2 or later, which includes performance improvements and the QUIC API that nginx and other web servers can use for HTTP/3 support.

Improved pkg Integration

The pkg package manager will see tighter integration with the base system. Plans include:

  • Ability to manage base system components as packages (FreeBSD-kernel, FreeBSD-runtime, etc.)
  • Better interaction between freebsd-update and pkg
  • Improved dependency tracking across base and ports

Service Management

While FreeBSD is not adopting systemd, the rc.d system is getting quality-of-life improvements:

  • Better dependency ordering with REQUIRE/BEFORE directives
  • Improved service command output for status checks
  • Structured logging from service scripts

ZFS Changes

FreeBSD 15 will ship with OpenZFS 2.3.x (version TBD based on upstream release timing). Expected improvements:

Block Cloning (Mature)

Block cloning was introduced in OpenZFS 2.2 and had rough edges. By 2.3, it will be production-stable. Block cloning allows cp --reflink style copies that share underlying blocks, similar to BTRFS.

sh
# Block cloning is enabled by default on new pools with feature@block_cloning zpool get feature@block_cloning tank

RAIDZ Expansion

RAIDZ expansion allows adding a single disk to an existing RAIDZ vdev, re-striping the data across all disks. This was one of the most requested ZFS features for years. It landed in OpenZFS 2.3 and will be available in FreeBSD 15.

sh
# Expand an existing raidz1 vdev (on systems with RAIDZ expansion support) zpool attach tank raidz1-0 /dev/da4

Fast Dedup

The deduplication rewrite that replaces the notoriously memory-hungry legacy dedup with a "fast dedup" implementation using a more efficient on-disk dedup table. This makes ZFS dedup practical for many more workloads.

Direct I/O

Direct I/O support for ZFS allows applications to bypass the ARC (Adaptive Replacement Cache) for specific I/O patterns. This is useful for databases that manage their own caching.

Deprecated and Removed Features

Removed in 15.0

  • i386 kernel: 32-bit x86 kernel will not be built. COMPAT_FREEBSD32 remains on amd64.
  • armv6: Support for ARMv6 platforms (Raspberry Pi 1, Pi Zero) removed.
  • ATF test framework: Migrated to a newer testing framework.
  • Legacy NIS (YP) code: NIS client code remains but server components are removed from base. Available as a port.
  • telnetd: Fully removed. Was disabled by default in 14.2.

Deprecated (Will Be Removed in 16.0)

  • UFS version 1: UFS2 has been the default since FreeBSD 5.0. UFS1 support will be removed in a future release.
  • IPX/SPX: The remaining IPX protocol code.
  • Legacy SCSI drivers for ISA bus: Several drivers for hardware that has not been manufactured in decades.

Security Improvements

Capsicum Hardening

More base system utilities are being placed under Capsicum capability mode sandboxing. This limits the damage that a vulnerability in a utility can cause. Programs like gzip, bzip2, and other archive tools now enter capability mode after opening their input files.

Stack Smashing Protection

The default stack protection level is being increased. All base system binaries will be built with -fstack-protector-strong instead of the weaker -fstack-protector.

W^X Enforcement

Write XOR Execute memory protection enforcement is being tightened. Processes that attempt to have memory pages that are simultaneously writable and executable will generate warnings or errors depending on the sysctl configuration.

sh
# Check W^X enforcement (on CURRENT) sysctl kern.elf64.allow_wx

Testing FreeBSD CURRENT

If you want to test these features now, you can run FreeBSD-CURRENT. This is the development branch -- expect bugs.

Option 1: VM Install

Download CURRENT snapshots:

sh
# Snapshots are built regularly fetch https://download.freebsd.org/snapshots/amd64/amd64/ISO-IMAGES/15.0/FreeBSD-15.0-CURRENT-amd64-disc1.iso

Install in bhyve, VirtualBox, or any other hypervisor. Do not run CURRENT on production hardware.

Option 2: Build from Source

sh
# Clone the source tree git clone https://git.FreeBSD.org/src.git /usr/src cd /usr/src git checkout main # Build the world and kernel make -j$(sysctl -n hw.ncpu) buildworld buildkernel # Install (do this on a test system, not production) make installkernel shutdown -r now # After reboot: make installworld mergemaster -Ui shutdown -r now

Option 3: Poudriere Jail

Test port builds against CURRENT without risking your host system:

sh
# Create a CURRENT jail in Poudriere poudriere jail -c -j 15current -v 15.0-CURRENT -m git+https # Build a specific port against CURRENT poudriere bulk -j 15current -p default www/firefox

Reporting Bugs

If you find bugs in CURRENT:

sh
# Gather system information uname -a sysctl kern.version dmesg > /tmp/dmesg.txt

File bugs at https://bugs.freebsd.org using the "Bugzilla" tracker. Include your dmesg output, steps to reproduce, and the exact CURRENT snapshot version.

Should You Wait for 15.0?

For production servers: No. Run 14.2-RELEASE now. Upgrade to 15.0 after the first point release (15.1) when the early adopter bugs are shaken out.

For development and testing: Run CURRENT in a VM or jail to prepare your software for 15.0.

For desktop users: If you need RAIDZ expansion or better Arm64 support, testing CURRENT in a non-critical setup is reasonable. Otherwise, stick with 14.2.

For port maintainers: Start testing your ports against CURRENT now. The branch is stable enough for build testing, and catching compatibility issues early is valuable.

FAQ

When will FreeBSD 15.0 be released?

The expected timeline is Q1-Q2 2026, but FreeBSD releases when the code is ready. Watch the freebsd-announce mailing list for official release engineering announcements.

Will FreeBSD 15 drop 32-bit support?

The i386 kernel will not be built. However, 32-bit application compatibility (COMPAT_FREEBSD32) will remain on amd64 systems. You can still run 32-bit FreeBSD binaries on a 64-bit kernel.

Can I upgrade directly from 14.x to 15.0?

Yes. freebsd-update will support direct upgrades from 14.x to 15.0 once the release is available. As always, create a ZFS boot environment before upgrading.

Is RAIDZ expansion safe to use?

RAIDZ expansion in OpenZFS 2.3 has undergone extensive testing but is still a new feature. If you rely on it for production data, wait for at least one point release after FreeBSD 15.0 ships to let any edge cases surface. Always maintain backups regardless.

Will FreeBSD 15 support Apple Silicon natively?

FreeBSD on Apple Silicon (M1/M2/M3) is progressing through the Asahi Linux project's hardware documentation efforts. Basic support may be available in 15.0, but full support (GPU acceleration, Thunderbolt, etc.) will take longer. For now, running FreeBSD in a VM on Apple Silicon is the practical choice.

How do I track what is going into FreeBSD 15?

Follow the svn-src-head (now src-main) mailing list and the FreeBSD wiki release engineering pages. The commit log for the main branch shows everything going into CURRENT:

sh
git -C /usr/src log --oneline -50

Will my existing jails work on FreeBSD 15?

Jails running 14.x userland will work on a 15.0 kernel via COMPAT_FREEBSD14. You should upgrade jail userland to 15.x eventually, but the transition can be gradual.

Get more FreeBSD guides

Weekly tutorials, security advisories, and package updates. No spam.