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=164, 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:

http://wiki.freebsd.org/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:

https://wiki.freebsd.org/HyperV

Kernel, hardware support & other low level improvements

Superpages for ARMv6/v7

Status:

Committed to -CURRENT

Author:

Zbigniew Bodek

Web:

http://wiki.freebsd.org/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

Status:

Committed to -CURRENT

Author:

John-Mark Gurney

Web:

http://svn.freebsd.org/changeset/base/r247012 http://svn.freebsd.org/changeset/base/r247117 http://svn.freebsd.org/changeset/base/r255185 http://svn.freebsd.org/changeset/base/r255187

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 http://wiki.freebsd.org/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:

http://wiki.freebsd.org/dev/ath%284%29

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

This includes:

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, https://wiki.freebsd.org/Native%20iSCSI%20target

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

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

Quarterly status reports

WhatsNew/FreeBSD10 (last edited 2014-01-10 10:17:31 by IvanVoras)