These are not Release Notes! This is an informal list of changes which are considered important or interesting to the users of FreeBSD. As such, they may contain incomplete or wrong information. If you are a developer, please keep this page updated!

See also:

The intent is for this page to collect major, user-visible changes to FreeBSD while in the development cycle for FreeBSD 10, no matter if the changes are eventually MFC-ed to earlier versions.

What's new for FreeBSD 10

Overall system / architectural changes

(architecture as in "the overall design of the system", not in the sense of "ARM vs x64")

LDNS and Unbound will replace BIND

Status: LDNS and unbound imported into -CURRENT; DNSSEC support enabled in OpenSSH (requires LDNS); LDNS-based host(1) replacement and drill(1) imported; configuration generator and init script committed; default switched from BIND to unbound; BIND removed from base. Author: Dag-Erling Smørgrav Web: http://blog.des.no/2013/09/local-caching-resolver-in-freebsd-10/

Unbound and LDNS will be imported into the FreeBSD base system.

GCC is no longer built as part of the base system

Status: Committed to -CURRENT Author: Many Web: http://svnweb.freebsd.org/changeset/base/255348

GCC is no longer a part of the default base system on architectures where CLANG is used instead. CLANG is used on i386 and AMD64.

Unmapped VMIO buffers

Status: Committed to -CURRENT Author: Konstantin Belousov Web: http://svn.freebsd.org/changeset/base/248508

The use of the unmapped buffers eliminate the need to perform TLB shootdown for mapping on the buffer creation and reuse, greatly reducing the amount of IPIs for shootdown on big-SMP machines and eliminating up to 25-30% of the system time on i/o intensive workloads.

Raspberry Pi support

Status: Committed to -CURRENT Author: Oleksandr Tymoshenko Web: http://kernelnomicon.org/?p=275, http://svn.freebsd.org/changeset/base/239922

With little work, FreeBSD is now able to run on the Raspberry Pi platform!

bhyve

Status: Committed to -CURRENT Author: Neel Natu, Peter Grehan and others Web: bhyve

"bhyve" is the BSD Hypervisor, developed from scratch to offer a light-weight low-level HVM virtualization on FreeBSD. It supports virtio for IO paravirtualization.

Hyper-V Virtualization

Status: Committed to -CURRENT Author: Microsoft, NetApp, and Citrix Web: HyperV

Kernel, hardware support & other low level improvements

Superpages for ARMv6/v7

Status: Committed to -CURRENT Author: Zbigniew Bodek Web: ARMSuperpages

Superpages support provides improved performance and scalability by allowing TLB translations to dynamically cover large physical memory regions. All ARMv6 and ARMv7-based platforms can take advantage from this feature.

General ARM improvements

Status: Committed to -CURRENT Author: Oleksandr Tymoshenko, Tim Kientzle, Warner Losh and others Web: http://lists.freebsd.org/pipermail/freebsd-arm/2012-August/003757.html

FreeBSD/arm has been greatly improved, including support for ARMv6 and ARMv7, SMP and thread-local storage (TLS). Additionally support for some newer SoC like the MV78x60 and OMAP4 was added.

ARM EABI

Status: Committed to -CURRENT Author: Andrew Turner Web: http://lists.freebsd.org/pipermail/freebsd-arm/2013-July/006053.html

The default ABI on ARM is now the ARM EABI. This brings a number of improvements and allows future support for VFP and Thumb-2.

Atomic close-on-exec

Status: Committed to -CURRENT, partially MFC-ed Author: Jilles Tjoelker, Konstantin Belousov, Jukka A. Ukkonen Web: AtomicCloseOnExec

Add various APIs that set the close-on-exec flag atomically with allocating a file descriptor. These can be used to avoid undesirably passing file descriptors to child processes if threads or signal handlers call fork and exec. Some software starts to depend on these features.

There is no atomic close-on-exec support for various interfaces not specified by POSIX.

Improved AES-NI support

Support for AES-NI instruction and intrinsics has been added to gcc. The aesni module has been improved to use pipelining when possible. This results in a significant speed up for AES-XTS and AES-CBC decrypt.

Support for AMD GPUs kernel-modesetting

Status: Committed to -CURRENT Author: Jean-Sébastien Pédron Web: AMD_GPU

It will allow the use of newer xf86-video-ati drivers and AMD GPUs.

Support for the RDRAND random number generator

Status: Committed to -CURRENT, MFC-ed to 9-stable Author: Konstantin Belousov Web: http://svn.freebsd.org/changeset/base/240135

RDRAND is the new Intel's CPU instruction for accessing its hardware random number generator, also known as the code-name Bull Mountain. It is present in Ivy Bridge and newer CPUs.

Virtio

Status: Committed to -CURRENT Author: Bryan Venteicher, Peter Grehan and others Web: http://svn.freebsd.org/changeset/base/227652

"virtio" is the name for the paravirtualization interface developed for the Linux KVM, but since adopted to other virtual machine hypervisors (with the notable exception of Xen). This work brings in a BSD-licensed clean-room implementation of the virtio kernel drivers for disk (block and SCSI) IO, network IO, PCI and memory ballooning. Tested with on Qemu/KVM, VirtualBox, and bhyve.

Xen PVHVM support in GENERIC kernel

Status: Committed to -CURRENT Author: Roger Pau Monné, Justin Gibbs, and others Web: http://svn.freebsd.org/changeset/base/255744

Support for Xen PVHVM virtualization is now part of the GENERIC kernel.

FreeBSD/EC2 support with release binaries

Status: Available Author: Colin Percival Web: http://www.daemonology.net/freebsd-on-ec2/

FreeBSD images are now available for EC2 using exclusively "straight-off-the-ISO" binaries, allowing freebsd-update(8) to be used on EC2 images. A mechanism is now available for launch-time autoconfiguration of instances, including package installation, via EC2 user-data.

Networking improvements

ipfw support for setting/matching DSCP

Status: Committed to -CURRENT Author: Alexander V. Chernikov Web: http://lists.freebsd.org/pipermail/freebsd-ipfw/2013-March/005318.html, http://svn.freebsd.org/changeset/base/248552

Add ipfw support for setting/matching DiffServ codepoints (DSCP) in IP header (former TOS field). Setting DSCP support works for both IPv4 and IPv6 packets. DSCP can be specified by name (AFxy, CSx, BE, EF), by value (0..63) or via tablearg. Matching DSCP accepts several classes at once (af11,af22,be).

SMP-friendly pf firewall

Status: Committed to -CURRENT Author: Gleb Smirnoff Web: http://lists.freebsd.org/pipermail/freebsd-pf/2012-June/006643.html, http://lists.freebsd.org/pipermail/freebsd-pf/2012-June/006662.html, http://svn.freebsd.org/changeset/base/240233

The pf firewall, originally from OpenBSD, got upgraded to support fine-grain locking and better utilization on multi-cpu machines, which allows it to perform significantly faster.

CARP rewrite

Status: Committed to -CURRENT Author: Gleb Smirnoff Web: http://lists.freebsd.org/pipermail/svn-src-head/2011-December/032303.html

NetMap

Status: Committed to -CURRENT Author: Luigi Rizzo Web: http://info.iet.unipi.it/~luigi/netmap/, http://svn.freebsd.org/changeset/base/227614

NetMap is a framework for high-performance direct-to-hardware packet IO, offering low latency and high PPS rates to userland applications while bypassing any kernel-side packet processing. With NetMap, it is trivially possible to fully saturate a 10 Gbps network interface with minimal packet sizes.

Up to 65536 routing tables

Status: Committed to -CURRENT Author: Julian Elischer Web: http://svn.freebsd.org/changeset/base/250700

Until now FreeBSD only supported up to 16 different routing tables. With this changes up to 65536 are supported.

Wireless Improvements

This includes both improvements and new features for the wireless stack (net80211) and the individual drivers.

For more information, please visit WiFi . Development/debugging discussions occur in public on the freebsd-wireless@freebsd.org mailing list.

Concurrency/SMP work

net80211 has had issues on preemptive, multi-core CPUs. A lot of these race conditions have been found and fixed in -HEAD. The important fixes have been backported to 9.x.

Improved 802.11n stack support

The net80211 stack has had numerous 802.11n improvements, including (but not limited to) better handling of 802.11n BAR TX frames and 802.11n options. It also correctly supports 1, 2 and 3 stream 802.11n configurations. 802.11n is now supported in IBSS (adhoc) mode for NICs which support this (notably Atheros.) TDMA support also now includes 802.11n rate awareness but doesn't currently include aggregation - make sure aggregation is disabled when using 802.11n hardware with TDMA.

802.11s mesh support

The 802.11s support is being continuously updated to the release specification rather than earlier draft specifications. Although this doesn't yet support 802.11n, the aim is to be specification compliant and complete by 10.0-RELEASE.

Atheros PCI/PCIe 802.11n support

Status: Committed to -HEAD Author: Adrian Chadd Web: dev/ath(4)

The Atheros driver, HAL and rate control code has undergone some significant development work to support 802.11n.

This includes:

Fixing many SMP/concurrency races;

Teaching the HAL about 802.11n rates;

Teaching the ath_rate_sample rate control module about 802.11n, as well as the required rate control API changes;

Implementing 802.11n TX aggregation, including software retransmissions, BAR handling and other required features;

Implementing 802.11 PS-POLL and legacy power save modes, for both 802.11n and pre-802.11n;

Support for AR9380 and later NICs, including 3-stream rates.

Storage subsystems' improvements

New iSCSI stack

Status: Committed to -CURRENT Author: Edward Tomasz Napierała Web: http://permalink.gmane.org/gmane.os.freebsd.current/152279, Native iSCSI target

The new iSCSI stack is kernel-mode and focused on reliability and interoperability.

ZFS NOP-write optimization

Status: Committed to -CURRENT Author: Martin Matuska, Illumos project Web: http://svnweb.freebsd.org/base?view=revision&revision=243524, http://comments.gmane.org/gmane.os.illumos.zfs/200

The zio nop-write improvement from Illumos was imported into -CURRENT. To reduce I/O, nop-write skips overwriting data if the checksum (cryptographically secure) of new data matches the checksum of existing data. It also saves space if snapshots are in use.

It currently works only on datasets with enabled compression, disabled deduplication and sha256 checksums.

Online growfs(8) for r/w-mounted UFS filesystems

Status: Committed to -CURRENT Author: Edward Tomasz Napierala Web: http://svnweb.freebsd.org/changeset/base/243246

UFS filesystems can now be enlarged with growfs(8) while mounted read-write. This is especially useful for virtual machines, allowing the addition of more harddrive space without interruption of service.

ZFS TRIM support

Status: Committed to -CURRENT Author: Pawel Jakub Dawidek Web: http://lists.freebsd.org/pipermail/freebsd-current/2012-September/036777.html, http://svn.freebsd.org/changeset/base/240868

As a world's first, FreeBSD now has TRIM support in ZFS! UFS has already had TRIM support for some time.

LZ4 compression support in ZFS

Status: Committed to -CURRENT Author: Xin LI Web: http://svnweb.freebsd.org/changeset/base/246586

LZ4 is a new, very fast compression algorithm (http://code.google.com/p/lz4/) which improves ZFS compression/decompression performance by up to 50%/80% compared to the default LZJB (http://wiki.illumos.org/display/illumos/LZ4+Compression).

FUSE support in the base system

Status: Committed to -CURRENT Author: Attilio Rao, George Neville-Neil, Csaba Henk, ilya and several others Web: http://svnweb.freebsd.org/base?view=revision&revision=241519

A state of the art FUSE implementation is now part of the FreeBSD base system. It allows the use of nearly all fusefs file systems under FreeBSD without installing the unstable "fusefs-kmod" kernel module from ports. Most notable is the "ntfs-3g" implementation of Windows NTFS.

http://fuse.sourceforge.net/ FUSE is the userland file system API developed for Linux. The FreeBSD port (including the clean-room BSD-licenced reimplementation of the kernel module) was created during 2 summer of code mandates and being revived by gnn recently. The functionality in this commit matches the content of fusefs-kmod port, which doesn't need to be installed anymore for -CURRENT setups.

Security

Desktop-related changes

USB Audio 2.0

Status: Committed to -CURRENT Author: Hans Petter Selasky Web: http://svnweb.freebsd.org/base?view=revision&revision=240609

USB Audio support was upgraded to support version 2.0. New devices should support higher bandwidth, increased sampling frequency and wider dynamic range.

Other changes

Superpages are available on ARMv6 (ARMSuperpages)

Maximum username (login) length increased to 32 characters: http://svnweb.freebsd.org/base?view=revision&revision=243023

vmxnet3 VMWare paravirtualized network driver committed: http://svnweb.freebsd.org/changeset/base/254738

Efficienty improvements in network-related kernel data structures: http://svnweb.freebsd.org/base?view=revision&revision=254780

Improvements in parallel GEOM processing, using direct dispatch in simple cases: http://svnweb.freebsd.org/changeset/base/254787

Efficiency improvements in the virtual memory system: http://svnweb.freebsd.org/base?view=revision&revision=254544, http://svnweb.freebsd.org/base?view=revision&revision=254025

CAIA Delay-Gradient (CDG) congestion control algorithm for TCP: http://svnweb.freebsd.org/changeset/base/252504

Since the ports tree has also been converted to Subversion from CVS, the cvs program has been removed from the base system (it is still available in the ports): http://svnweb.freebsd.org/changeset/base/251794. Instead, svnlite (http://svnweb.freebsd.org/changeset/base/251886) and svnup (http://www.freshports.org/net/svnup) are available.

ZFS now has L2ARC compression (http://wiki.illumos.org/display/illumos/L2ARC+Compression): http://svnweb.freebsd.org/base?view=revision&revision=251478

Newly created UFS file systems will have faster fsck operation: http://svnweb.freebsd.org/base?view=revision&revision=248623

GEOM_LABEL creates labels based on disk ID strings: http://svnweb.freebsd.org/changeset/base/249508

Faster booting by using a better read cache: http://svn.freebsd.org/changeset/base/241053

64-bit ino_t, allowing file systems with a really huge number of files: http://svn.freebsd.org/changeset/base/241011

Shared memory pages between kernel&userland for faster interaction: http://svn.freebsd.org/changeset/base/237433

Clang 3 will be the default compiler for FreeBSD 10: http://svn.freebsd.org/changeset/base/228379, http://lists.freebsd.org/pipermail/freebsd-stable/2012-May/067486.html

New timecounter infrastructure: RADclock, http://www.synclab.org/radclock/

ZFS fault monitoring and management daemon, http://svn.freebsd.org/changeset/base/222836

NVM Express drivers: nvme(4) and nvd(4), http://svnweb.freebsd.org/changeset/base/240616

unbound (validating, recursive, and caching DNS resolver) included ?, http://svnweb.freebsd.org/changeset/base/249140

counter(9) API that implements fast and raceless counters, provided (but not limited to) for gathering of statistical data: http://svnweb.freebsd.org/changeset/base/249268, http://lists.freebsd.org/pipermail/freebsd-arch/2013-April/014204.html

The ip, tcp and udp DTrace providers are now available in FreeBSD: http://svnweb.freebsd.org/base?view=revision&revision=254889

A variant of Larry Wall's patch(1) from the other BSDs has replaced the older GNU patch.

Maximum physical memory bumped to 4TB on amd64 platforms, http://svnweb.freebsd.org/base?view=revision&revision=254466

Quarterly status reports

CategoryHistorical