Contents
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: |
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: |
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" 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: |
Kernel, hardware support & other low level improvements
Superpages for ARMv6/v7
Status: |
Committed to -CURRENT |
Author: |
Zbigniew Bodek |
Web: |
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: |
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: |
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: |
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: |
"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: |
Support for Xen PVHVM virtualization is now part of the GENERIC kernel.
FreeBSD/EC2 support with release binaries
Status: |
Available |
Author: |
Colin Percival |
Web: |
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: |
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: |
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: |
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: |
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
http://www.freebsd.org/news/status/report-2014-01-2014-03.html
http://www.freebsd.org/news/status/report-2013-10-2013-12.html
http://www.freebsd.org/news/status/report-2013-07-2013-09.html
http://www.freebsd.org/news/status/report-2013-04-2013-06.html
http://www.freebsd.org/news/status/report-2013-05-devsummit.html - A special DevSummit 2013-05 report
http://www.freebsd.org/news/status/report-2013-01-2013-03.html