article.xml revision 260615
113783SN/A<?xml version="1.0" encoding="iso-8859-1"?>
214552Siris<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
313783SN/A        "../../../share/xml/freebsd50.dtd" [
413783SN/A<!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN" "release.ent">
513783SN/A %release;
613783SN/A
713783SN/A<!-- local entities not available in doc/release/10.0.0 tag -->
813783SN/A<!ENTITY man.drill.1 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>drill</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
913783SN/A<!ENTITY man.freebsd-version.1 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>freebsd-version</refentrytitle><manvolnum>1</manvolnum></citerefentry>">
1013783SN/A<!ENTITY man.jemalloc.3 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>jemalloc</refentrytitle><manvolnum>3</manvolnum></citerefentry>">
1113783SN/A<!ENTITY man.bhyve.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>bhyve</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1213783SN/A<!ENTITY man.if_cxgbe.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>if_cxgbe</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1313783SN/A<!ENTITY man.nvme.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>nvme</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1413783SN/A<!ENTITY man.virtio.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>virtio</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1513783SN/A<!ENTITY man.virtio_balloon.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>virtio_balloon</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1613783SN/A<!ENTITY man.virtio_blk.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>virtio_blk</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1713783SN/A<!ENTITY man.virtio_scsi.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>virtio_scsi</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1813783SN/A<!ENTITY man.vmx.4 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>vmx</refentrytitle><manvolnum>4</manvolnum></citerefentry>">
1913783SN/A<!ENTITY man.pkg.7 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>pkg</refentrytitle><manvolnum>7</manvolnum></citerefentry>">
2013783SN/A<!ENTITY man.bhyve.8 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>bhyve</refentrytitle><manvolnum>8</manvolnum></citerefentry>">
2113783SN/A<!ENTITY man.gptboot.8 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>gptboot</refentrytitle><manvolnum>8</manvolnum></citerefentry>">
2213783SN/A<!ENTITY man.bsdconfig.8 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>bsdconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry>">
2313783SN/A<!ENTITY man.unbound.8 "<citerefentry xmlns='http://docbook.org/ns/docbook'><refentrytitle>unbound</refentrytitle><manvolnum>8</manvolnum></citerefentry>">
2413783SN/A]>
2513783SN/A<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
2614552Siris<info><title>&os; &release.current; Release Notes</title>
2713783SN/A  
2813783SN/A
2913783SN/A  <author><orgname>The &os; Project</orgname></author>
3013783SN/A
3113783SN/A  <pubdate>$FreeBSD: releng/10.0/release/doc/en_US.ISO8859-1/relnotes/article.xml 260615 2014-01-14 00:25:46Z gjb $</pubdate>
3213783SN/A
3313783SN/A  <copyright>
3413783SN/A    <year>2000</year>
3513783SN/A    <year>2001</year>
3613783SN/A    <year>2002</year>
3713783SN/A    <year>2003</year>
3813783SN/A    <year>2004</year>
3913783SN/A    <year>2005</year>
4013783SN/A    <year>2006</year>
4113783SN/A    <year>2007</year>
4213783SN/A    <year>2008</year>
4313783SN/A    <year>2009</year>
4413783SN/A    <year>2010</year>
4513783SN/A    <year>2011</year>
4613783SN/A    <year>2012</year>
4713783SN/A    <year>2013</year>
4813783SN/A    <year>2014</year>
4913783SN/A    <holder role="mailto:doc@FreeBSD.org">The &os; Documentation Project</holder>
5013798SN/A  </copyright>
5114552Siris
5213798SN/A  <legalnotice xml:id="trademarks" role="trademarks">
5313783SN/A    &tm-attrib.freebsd;
5413783SN/A    &tm-attrib.ibm;
5513783SN/A    &tm-attrib.ieee;
5613783SN/A    &tm-attrib.intel;
5713783SN/A    &tm-attrib.sparc;
5813783SN/A    &tm-attrib.general;
5913783SN/A  </legalnotice>
6013783SN/A
6113783SN/A  <abstract>
6213783SN/A    <para>The release notes for &os; &release.current; contain a summary
6313783SN/A      of the changes made to the &os; base system on the
6413783SN/A      &release.branch; development line.
6513783SN/A      This document lists applicable security advisories that were issued since
6613783SN/A      the last release, as well as significant changes to the &os;
6713783SN/A      kernel and userland.
6813783SN/A      Some brief remarks on upgrading are also presented.</para>
6913783SN/A  </abstract>
7013783SN/A</info>
7113783SN/A
7213783SN/A<sect1 xml:id="intro">
7315072Ssdrach  <title>Introduction</title>
7413783SN/A
7513798SN/A  <para>This document contains the release notes for &os;
7613783SN/A    &release.current;.  It
7713783SN/A    describes recently added, changed, or deleted features of &os;.
7813783SN/A    It also provides some notes on upgrading
7913783SN/A    from previous versions of &os;.</para>
8013783SN/A
8113783SN/A  <para>The latest, up-to-date version of the release notes are
8213783SN/A    available online at <uri
8313783SN/A      xlink:href="&release.url;10.0R/relnotes.html">&release.url;10.0R/relnotes.html</uri>.</para>
8413783SN/A
8513783SN/A  <para releasetype="current">The &release.type; distribution to which these release notes
8613783SN/A    apply represents the latest point along the &release.branch; development
8713783SN/A    branch since &release.branch; was created.  Information regarding pre-built, binary
8813783SN/A    &release.type; distributions along this branch
8913783SN/A    can be found at <uri xlink:href="&release.url;">&release.url;</uri>.</para>
9013783SN/A
9113783SN/A  <para releasetype="snapshot">The &release.type; distribution to which these release notes
9213783SN/A    apply represents a point along the &release.branch; development
9313783SN/A    branch between &release.prev; and the future &release.next;.
9413783SN/A    Information regarding
9513783SN/A    pre-built, binary &release.type; distributions along this branch
9613783SN/A    can be found at <uri xlink:href="&release.url;">&release.url;</uri>.</para>
9713783SN/A
9813783SN/A  <para releasetype="release">This distribution of &os; &release.current; is a
9913783SN/A    &release.type; distribution.  It can be found at <uri xlink:href="&release.url;">&release.url;</uri> or any of its mirrors.  More
10013783SN/A    information on obtaining this (or other) &release.type;
10113783SN/A    distributions of &os; can be found in the <link xlink:href="&url.books.handbook;/mirrors.html"><quote>Obtaining
10213783SN/A    &os;</quote> appendix</link> to the <link xlink:href="&url.books.handbook;/">&os;
10313783SN/A    Handbook</link>.</para>
10413783SN/A
10513783SN/A  <para>All users are encouraged to consult the release errata before
10613783SN/A    installing &os;.  The errata document is updated with
10713783SN/A    <quote>late-breaking</quote> information discovered late in the
10813783SN/A    release cycle or after the release.  Typically, it contains
10913783SN/A    information on known bugs, security advisories, and corrections to
11013783SN/A    documentation.  An up-to-date copy of the errata for &os;
111    &release.current; can be found on the &os; Web site.</para>
112
113</sect1>
114
115<sect1 xml:id="new">
116  <title>What's New</title>
117
118  <para>This section describes
119    the most user-visible new or changed features in &os;
120    since &release.prev;.
121    In general, changes described here are unique to the &release.branch;
122    branch unless specifically marked as &merged; features.
123  </para>
124
125  <para>Typical release note items
126    document recent security advisories issued after
127    &release.prev;,
128    new drivers or hardware support, new commands or options,
129    major bug fixes, or contributed software upgrades.  They may also
130    list changes to major ports/packages or release engineering
131    practices.  Clearly the release notes cannot list every single
132    change made to &os; between releases; this document focuses
133    primarily on security advisories, user-visible changes, and major
134    architectural improvements.</para>
135
136  <sect2 xml:id="security">
137    <title>Security Advisories</title>
138
139    <para>No security advisories.</para>
140
141  </sect2>
142
143  <sect2 xml:id="kernel">
144    <title>Kernel Changes</title>
145
146    <para revision="248508">The use of unmapped VMIO buffers eliminates the need to perform
147      TLB shootdown for mapping on buffer creation and reuse, greatly reducing the
148      amount of IPIs for shootdown on big-SMP machines and eliminating up to 25-30%
149      of the system time on i/o intensive workloads.</para>
150
151    <para arch="amd64" revision="254466">The maximum amount of memory the &os; kernel
152      can address has been increased from 1TB to 4TB.</para>
153
154    <para>A new &man.cpuset.2; API has been added
155      for thread to CPU binding and CPU resource grouping and
156      assignment.  The &man.cpuset.1; userland utility has been added
157      to allow manipulation of processor sets.</para>
158
159    <para role="merged">The &man.ddb.4; kernel debugger now has an output capture
160      facility.  Input and output from &man.ddb.4; can now be captured
161      to a memory buffer for later inspection using &man.sysctl.8; or
162      a textdump.  The new <command>capture</command> command controls
163      this feature.</para>
164
165    <para role="merged">The &man.ddb.4; debugger now supports a simple scripting
166      facility, which supports a set of named scripts consisting of a
167      set of &man.ddb.4; commands.  These commands can be managed from
168      within &man.ddb.4; or with the use of the new &man.ddb.8;
169      utility.  More details can be found in the &man.ddb.4; manual
170      page.</para>
171
172    <para role="merged">The kernel now supports a new textdump format of kernel
173      dumps.  A textdump provides higher-level information via
174      mechanically generated/extracted debugging output, rather than a
175      simple memory dump.  This facility can be used to generate brief
176      kernel bug reports that are rich in debugging information, but
177      are not dependent on kernel symbol tables or precisely
178      synchronized source code.  More information can be found in the
179      &man.textdump.4; manual page.</para>
180
181    <para>Kernel support for M:N threading has been removed.  While
182      the KSE (Kernel Scheduled Entities) project was quite successful
183      in bringing threading to FreeBSD, the M:N approach taken by the
184      KSE library was never developed to its full potential.
185      Backwards compatibility for applications using KSE threading
186      will be provided via &man.libmap.conf.5; for dynamically linked
187      binaries.  The &os; Project greatly appreciates the work of
188      &a.julian;, &a.deischen;, and &a.davidxu; on KSE support.</para>
189
190    <para>The &os; kernel now exports information about certain kernel
191      features via the <varname>kern.features</varname> sysctl tree.
192      The &man.feature.present.3; library call provides a convenient
193      interface for user applications to test the presence of
194      features.</para>
195
196    <para arch="amd64">The &os; kernel now has support for large
197      memory page mappings (<quote>superpages</quote>).</para>
198
199    <para arch="amd64,i386,ia64,powerpc" role="merged">The ULE
200      scheduler is now the default process scheduler
201      in <filename>GENERIC</filename> kernels.</para>
202
203    <para arch="amd64,i386" revision="240135">Support was added for
204      the new Intel on-CPU Bull Mountain random number
205      generator, found on IvyBridge and supposedly later CPUs,
206      accessible with the RDRAND instruction.</para>
207
208    <sect3 xml:id="kernel-virtualization">
209      <title>Virtualization support</title>
210      <para arch="amd64" revision="245652">The BSD Hypervisor, &man.bhyve.8; is included
211        with &os;.  &man.bhyve.8; requires Intel CPUs with VT-x and Extended Page Table (EPT)
212        support. These features are on all Nehalem models and beyond
213        (e.g. Nehalem and newer), but not on the lower-end Atom CPUs.</para> 
214  
215      <para revision="227652">&man.virtio.4; support has been added.  &man.virtio.4; is the
216        name for the paravirtualization interface developed for the Linux KVM, but
217        since adopted to other virtual machine hypervisors (with the notable exception of Xen).
218        This work brings in a BSD-licensed clean-room implementation of the virtio kernel drivers
219        for disk IO (&man.virtio_blk.4; and &man.virtio_scsi.4;), network IO (&man.vtnet.4;),
220        memory ballooning (&man.virtio_balloon.4;), and PCI.
221        Tested with on Qemu/KVM, VirtualBox, and &man.bhyve.4;.</para>
222  
223      <para arch="amd64,i386" revision="255524">Paravirtualized drivers which
224        support Microsoft Hyper-V have been imported and made
225        part of the amd64 GENERIC kernel.  For i386, these drivers are not part of
226        GENERIC, so the following lines must be added to
227        <filename>/boot/loader.conf</filename> to load these drivers:
228        <programlisting>hv_ata_pci_disengage_load="YES"
229hv_netsvc_load="YES"
230hv_utils_load="YES"
231hv_vmbus_load="YES"</programlisting>  Alternatively, the Hyper-V drivers can be added to the i386
232        kernel by adding <literal>device hyperv</literal> to the kernel config, and then
233        recompiling the kernel.  Please refer to
234        <link xlink:href="http://wiki.freebsd.org/HyperV">FreeBSD and Microsoft Windows Server Hyper-V support</link>
235        for full instructions on how to set up Hyper-V support under FreeBSD.</para>
236
237      <para revision="254738">The &man.vmx.4; driver has been added.
238        &man.vmx.4; is a VMware VMXNET3 ethernet driver ported from
239        OpenBSD.</para>
240
241      <para revision="255744" arch="amd64,i386">Xen PVHVM virtualization is now
242        part of the GENERIC kernel.</para>
243
244    </sect3>
245
246    <sect3 xml:id="kernel-arm">
247      <title>ARM support</title>
248
249      <para revision="239922">Raspberry PI support has been added.
250        Refer to these <link xlink:href="http://kernelnomicon.org/?p=164">setup instructions</link>
251        and this <link xlink:href="http://www.raspberrypi.org/quick-start-guide">quick start
252        guide</link>.</para>
253  
254      <para revision="253396">The default ABI on ARM is now the ARM EABI. This brings a number of
255        improvements and allows future support for VFP and Thumb-2.</para> 
256  
257      <para revision="239268">ARM support has been greatly improved, including support
258        for ARMv6 and ARMv7, SMP and thread-local storage (TLS).
259        Additionally support for some newer SoC like the MV78x60 and OMAP4 was added.
260        See the <link xlink:href="http://lists.freebsd.org/pipermail/freebsd-arm/2012-August/003757.html">announcement</link>
261        for further details.</para>
262  
263      <para revision="254918">Superpages support on ARM has been added.  Superpages support
264        provides improved performance and scalability by allowing TLB
265        translations to dynamically cover large physical memory regions.
266        All ARMv6 and ARMv7-based platforms can take advantage of this feature.
267        See the <link xlink:href="https://wiki.freebsd.org/ARMSuperpages">ARM Superpages status</link>
268        page for further details.</para>
269
270    </sect3>
271
272    <sect3 xml:id="boot">
273      <title>Boot Loader Changes</title>
274
275      <para arch="amd64,i386" role="merged">The BTX kernel used by the boot
276	loader has been changed to invoke BIOS routines from real
277	mode.  This change makes it possible to boot &os; from USB
278	devices.</para>
279
280      <para arch="amd64,i386" role="merged">A new &man.gptboot.8; boot loader has
281        been added to support booting from a GPT labeled disk.  A
282        new <command>boot</command> command has been added to
283        &man.gpart.8;, which makes a GPT disk bootable by writing the
284        required bits of the boot loader, creating a new boot
285        partition if required.</para>
286
287    </sect3>
288
289    <sect3 xml:id="proc">
290      <title>Hardware Support</title>
291
292      <para role="merged">The &man.cmx.4; driver, a driver for Omnikey CardMan 4040
293        PCMCIA smartcard readers, has been added.</para>
294
295      <para>The &man.syscons.4; driver now supports the Colemak keyboard layout.</para>
296
297      <para role="merged">The &man.uslcom.4; driver, a driver for Silicon
298        Laboratories CP2101/CP2102-based USB serial adapters, has been
299        imported from OpenBSD.</para>
300
301      <sect4 xml:id="mm">
302	<title>Multimedia Support</title>
303
304        <para revision="240609">Support for version 2.0 of the USB Audio reference design
305          has been added. New devices should support higher bandwidth,
306          increased sampling frequency and wider dynamic range.</para>
307
308      </sect4>
309
310      <sect4 xml:id="net-if">
311	<title>Network Interface Support</title>
312
313	<para>The &man.ale.4; driver has been added to provide support
314	  for Atheros AR8121/AR8113/AR8114 Gigabit/Fast Ethernet controllers.</para>
315
316	<para>The &man.em.4; driver has been split into two drivers
317	  with some common parts.  The &man.em.4; driver will continue
318	  to support adapters up to the 82575, as well as new
319	  client/desktop adapters.  A new &man.igb.4; driver
320	  will support new server adapters.</para>
321
322	<para>The &man.jme.4; driver has been added to provide support
323	  for PCIe network adapters based on JMicron JMC250 Gigabit
324	  Ethernet and JMC260 Fast Ethernet controllers.</para>
325
326	<para>The &man.malo.4; driver has been added to provide
327	  support for Marvell Libertas 88W8335 based PCI network
328	  adapters.</para>
329
330	<para>The firmware for the &man.mxge.4; driver has been
331	  updated from 1.4.25 to 1.4.29.</para>
332
333	<para>The &man.sf.4; driver has been overhauled to improve its
334	  performance and to add support for checksum offloading.  It
335	  should also work on all architectures.</para>
336
337	<para>The &man.re.4; driver has been overhauled to fix a
338	  number of issues.  This driver now has Wake On LAN (WOL)
339	  support.</para>
340
341	<para>The &man.vr.4; driver has been overhauled to fix a
342	  number of outstanding issues.  It also now works on all
343	  architectures.</para>
344
345	<para arch="amd64,i386" role="merged">The &man.wpi.4; driver has
346	  been updated to include a number of stability fixes.</para>
347
348	<para revision="248925">The &man.cxgbe.4; driver has been updated to support
349	  40G/10G Ethernet NICs based on Chelsio's Terminator 5 (T5) ASIC.</para>
350
351	<para revision="256694">The &man.if_cxgbe.4; driver has been added.  This is an
352	  experimental iWARP/RDMA driver
353	  (kernel verbs only) for Chelsio's T4 and T5 based cards.</para>
354
355	<para revision="255932">The Open Fabrics Enterprise Distribution (OFED) and
356	  OFED Infiniband core has been
357	  updated to the same version as supplied by Linux version 3.7</para>
358
359	<para revision="255932">The Mellanox Infiniband driver has been updated to firmware
360	  version 2.30.3200 for ConnectX3 NICs.  Support has been added for ConnectX3 VPI NICs, where
361	  each port can be used as Infiniband 56 GB/s or Ethernet 40 GB/s.  Support has been added
362	  for dynamically loading kernel modules for Infiniband core (ibcore) and
363	  IP over Infiniband (ipoib).</para>
364
365	<para revision="227614">&man.netmap.4; has been added.  &man.netmap.4; is a framework for
366          high-performance direct-to-hardware packet IO, offering low latency and high PPS
367          rates to userland applications while bypassing any kernel-side packet processing.
368          With &man.netmap.4; it is trivially possible to fully saturate a 10 Gbps network interface with
369          minimal packet sizes.  For more information, see:
370          <link xlink:href="http://info.iet.unipi.it/~luigi/netmap/">Netmap Project</link>.</para> 
371
372      </sect4>
373    </sect3>
374
375    <sect3 xml:id="net-proto">
376      <title>Network Protocols</title>
377
378      <para revision="228571">&man.carp.4; has been rewritten to make addresses
379        more sane from the viewpoint of routing daemons such as
380        quagga/zebra. It also brings support for a single redundant
381        address on the subnet (carpdev), switching state with
382        &man.ifconfig.8;, better locking and using modern kernel
383        interfaces to allocate multicast memberships.
384        Configuration of the CARP protocol via &man.ifconfig.8; has changed, as well as the format
385	of CARP events submitted to &man.devd.8;.  See &man.carp.4;
386	for more information. The arpbalance feature of &man.carp.4; is currently
387	not supported anymore.</para>
388
389      <para revision="240233">The &man.pf.4; firewall now supports fine-grain locking
390        and better utilization on multi-CPU machines, resulting in
391        significant improvements in performance.</para>
392
393      <para revision="250700">Support for up to 65536 routing tables has been
394        introduced.</para>
395
396      <para revision="248552">Support for setting/matching differentiated services
397        codepoints (DSCP) in IP header has been added to
398        &man.ipfw.8;.</para>
399
400    </sect3>
401
402    <sect3 xml:id="disks">
403      <title>Disks and Storage</title>
404
405      <para role="merged">The &man.aac.4; driver now supports volumes larger than
406        2TB in size.</para>
407
408      <para>The &man.ata.4; driver now supports a spindown command for
409        disks; after a configurable amount of time, if no requests
410        have been received for a disk, the disk will be spun down
411        until the next request.  The &man.atacontrol.8; utility now
412        supports a <command>spindown</command> command to configure
413        this feature.</para>
414
415      <para role="merged">The &man.hptrr.4; driver has been updated to version 1.2
416        from Highpoint.</para>
417
418      <para revision="240616">&man.nvme.4; has been added and provides NVM Express support.
419        NVM Express is an optimized register interface, command set and feature set of
420        PCI Express (PCIe)-based Solid-State Drives (SSDs).  For more information,
421        see <link xlink:href="http://www.nvmexpress.org/">nvmexpress.org</link>.</para>
422
423    </sect3>
424
425    <sect3 xml:id="fs">
426      <title>File Systems</title>
427
428      <para revision="255570">A new kernel-based iSCSI target and initiator has been
429        added.</para>
430
431      <para revision="243246">UFS filesystems can now be enlarged with &man.growfs.8; while
432        mounted read-write. This is especially useful for virtual
433        machines, allowing the addition of more harddrive space without
434        interruption of service.</para>
435
436      <para revision="241519">A state of the art FUSE implementation is now part of the
437        base system. It allows the use of nearly all fusefs file
438        systems.</para>
439
440      <sect4 xml:id="fs-zfs">
441	<title>ZFS</title>
442
443        <para revision="">&man.bsdinstall.8; now supports installing
444          ZFS on the root file system.  It includes a single configuration menu
445          that allows you to select all of the required details, including
446          which drives to use, what ZFS RAID level to use (taking into consideration
447          the selected number of drives), GPT or MBR, GELI encryption, forcing 4K sectors,
448          pool name, etc.</para>
449
450        <para revision="240868">TRIM support has been added for
451          ZFS.</para>
452
453        <para revision="246586">Support for the high-performance LZ4 compression algorithm
454          has been added to ZFS. LZ4 is usually faster and can achieve a
455          higher compression ratio than LZJB, the default compression
456          algorithm.</para>
457
458        <para revision="252140">Support for L2ARC compression has been added to ZFS.</para>
459
460        <para revision="243524">The zio nop-write improvement from Illumos
461          was imported into &os;. To reduce I/O, nop-write skips overwriting
462          data if the (cryptographically secure) checksum of new data
463          matches the checksum of existing data. It also saves space if
464          snapshots are in use.  This improvement only works on
465          datasets with enabled compression, disabled deduplication and
466          sha256 checksums.  ZFS will now compare the checksums of incoming writes to
467          the checksum of the existing on-disk data and avoid issuing any
468          write I/O for data that has not changed. This will reduce I/O
469          as well as space usage because if the old block is referenced
470          by a snapshot, both copies of the block are kept even though
471          both contain the same data.</para>
472
473      </sect4>
474
475    </sect3>
476
477  </sect2>
478
479  <sect2 xml:id="userland">
480    <title>Userland Changes</title>
481
482   <para revision="255321">On platforms where &man.clang.1; is the default
483      system compiler (such as i386, amd64, arm), GCC and GNU libstdc++ are no
484      longer built by default.  &man.clang.1; and libc++ from LLVM are used on
485      these platforms by instead.  GCC 4.2.1 and libstdc++ are still built
486      and used by default on pc98 and all other platforms where &man.clang.1;
487      is not the default system compiler.
488   </para>
489
490   <para revision="251662">&man.clang.1; and llvm have been updated to
491     version 3.3 release.  Please refer to
492     <link xlink:href="http://llvm.org/releases/3.3/tools/clang/docs/ReleaseNotes.html">
493     Clang 3.3 Release Notes</link>.</para>
494
495    <para role="merged" revision="255949">BIND has been replaced by &man.unbound.8; for
496      local DNS resolution in the base system.  With this change, nslookup
497      and dig are no longer a part of the base system.  Users should
498      instead use &man.host.1; and &man.drill.1; Alternatively,
499      nslookup and dig can be obtained by installing the
500      dns/bind-tools port.</para>
501
502    <para revision="225937">sysinstall has been removed from the base system.
503      Auxiliary libraries and tools used by sysinstall such as libdisk, libftpio,
504      and sade have also been removed.  sysinstall has been replaced by
505      &man.bsdinstall.8; and &man.bsdconfig.8;.</para>
506
507    <para revision="256106">&man.freebsd-version.1; has been added.  This tool
508      makes a best effort to determine the version and patch level of
509      the installed kernel and userland.</para>
510
511    <para revision="255191">GNU patch has been removed from the base system, and replaced
512      by a BSD-licensed &man.patch.1; program.</para>
513
514    <para revision="241511">GNU sort has been removed from the base system, and replaced
515      by a BSD-licensed &man.sort.1; program.</para>
516
517    <para revision="235723">Berkely yacc (byacc) has been imported
518      from <link xlink:href="http://invisible-island.net/byacc/">invisible island</link>.
519      This brings bison compatibilities to &man.yacc.1; while preserving full
520      backwards compatibility with previous version of &man.yacc.1;.</para>
521
522    <para revision="250881">&man.lex.1; has been replaced by flex 2.5.37.</para>
523
524    <para revision="250699">&man.make.1; has been replaced with the 
525      <quote>Portable</quote> BSD make tool (bmake) from NetBSD.</para>
526
527    <para role="merged">The &man.adduser.8; utility now supports
528      a <option>-M</option> option to set the mode of a new user's
529      home directory.</para>
530
531    <para>BSD-licensed versions of &man.ar.1; and &man.ranlib.1;,
532      based on &man.libarchive.3;, have replaced the GNU
533      Binutils versions of these utilities.</para>
534
535    <para>BSD-licensed versions of &man.bc.1; and &man.dc.1; have
536      replaced their GNU counterparts.</para>
537
538    <para role="merged">&man.chflags.1; now supports a <option>-v</option> flag for
539      verbose output and a <option>-f</option> flag to ignore errors
540      with the same semantics as (for example)
541      &man.chmod.1;.</para>
542
543    <para>For compatibility with other implementations, &man.cp.1; now
544      supports a <option>-a</option> flag, which is equivalent to
545      specifying the <option>-RrP</option> flags.</para>
546
547    <para>BSD-licensed version of &man.cpio.1; based on
548      &man.libarchive.3;, has replaced the GNU cpio.
549      Note that the GNU cpio is still installed as
550      <filename>gcpio</filename>.</para>
551
552    <para>The &man.env.1; program now supports <option>-u
553      <replaceable>name</replaceable></option>
554      which will completely unset the given variable
555      <replaceable>name</replaceable> by removing it from the environment,
556      instead of just setting it to a null value.</para>
557
558    <para>The &man.fdopendir.3; library function has been added.</para>
559
560    <para role="merged">The &man.fetch.3; library now supports HTTP 1.1
561      If-Modified-Since behavior.  The &man.fetch.1; program now
562      supports <option>-i <replaceable>filename</replaceable></option>
563      which will only download the specified HTTP URL if the content
564      is newer than <replaceable>filename</replaceable>.</para>
565
566    <para>&man.find.1; has been enhanced by the addition of a number
567      of primaries that were present in GNU find but not &os;
568      &man.find.1;.</para>
569
570    <para>&man.kgdb.1; now supports a new <command>add-kld</command>
571      command to make it easier to debug crash dumps with kernel
572      modules.</para>
573
574    <para>The &man.ls.1; program now supports a <option>-D</option>
575      option to specify a date format string to be used with the long
576      format (<option>-l</option>) output.</para>
577
578    <para>&man.nc.1; now supports a <option>-O</option> switch to
579      disable the use of TCP options.</para>
580
581    <para>&man.nc.1;'s <option>-o</option> switch has been deprecated.
582      It will be removed in a future release.</para>
583
584    <para>The &man.ping6.8; utility now returns <literal>2</literal>
585      when the packet transmission was successful but no responses
586      were received (this is the same behavior as &man.ping.8;).
587      It returned a non-zero value before this change.</para>
588
589    <para>The &man.procstat.1; utility has been added to display
590      detailed information about processes.</para>
591
592    <para role="merged">The &man.realpath.1; utility now supports
593      a <option>-q</option> flag to suppress warnings; it now also
594      accepts multiple paths on its command line.</para>
595
596    <para>&man.sh.1; has many bug fixes, some new features, and will now
597      refuse to parse some invalid scripts.  Additionally, it now
598      has filename completion and defaults to the <quote>emacs</quote> editing
599      mode.</para>
600
601    <para>The &man.split.1; utility now supports a <option>-n</option>
602      flag to split a file into a certain number of chunks.</para>
603
604    <para>The &man.tar.1; utility now supports a <option>-Z</option>
605      flag to enable &man.compress.1;-style
606      compression/decompression.</para>
607
608    <para>The &man.tar.1; utility now supports a
609      <option>--numeric-owner</option> flag to ignore user/group names
610      on create and extract.</para>
611
612    <para>The &man.tar.1; utility now supports the
613      <option>-S</option> flag to sparsify files on extraction.</para>
614
615    <para>The &man.tar.1; utility now supports a <option>-s</option>
616      flag to substitute filenames based on the specified regular
617      expression.</para>
618
619    <para>The &man.tcgetsid.3; library function has been added to
620      return the process group ID for the session leader for the
621      controlling terminal.  It is defined in IEEE Std 1003.1-2001
622      (POSIX).</para>
623
624    <para>&man.top.1; now supports a <option>-P</option> flag to
625      provide per-CPU usage statistics.</para>
626
627    <para>&man.zdump.8; is now working properly on 64-bit architectures.
628      </para>
629
630    <para>&man.traceroute.8; now has the ability to print the AS
631      number for each hop with the new <option>-a</option> switch; a
632      new <option>-A</option> option allows selecting a particular
633      WHOIS server.</para>
634
635    <para>&man.traceroute6.8; now supports a <option>-U</option> flag
636      to send probe packets with no upper-layer protocol, rather than
637      the usual UDP probe packets.</para>
638
639    <sect3 xml:id="rc-scripts">
640      <title><filename>/etc/rc.d</filename> Scripts</title>
641
642      <para>The followoing &man.rc.8; scripts have been added:</para>
643
644      <informaltable frame="none" pgwide="0">
645	<tgroup cols="2">
646	  <colspec colwidth="1*" />
647	  <colspec colwidth="1*" />
648	  <thead>
649	    <row>
650	      <entry>&man.rc.8; Script</entry>
651	      <entry>Function</entry>
652	    </row>
653	  </thead>
654
655	  <tbody>
656	    <row>
657	      <entry><filename>ctld</filename></entry>
658	      <entry><para>iSCSI target daemon startup
659		  script</para></entry>
660	    </row>
661	    <row>
662	      <entry><filename>iscsictl</filename></entry>
663	      <entry><para>iSCSI initiator management utility
664		startup script</para></entry>
665	    </row>
666	    <row>
667	      <entry><filename>iscsid</filename></entry>
668	      <entry><para>iSCSI initiatior daemon startup
669		script</para></entry>
670	    </row>
671	    <row>
672	      <entry><filename>kfd</filename></entry>
673	      <entry><para>Kerberos ticket forwarding daemon
674		startup script</para></entry>
675	    </row>
676	    <row>
677	      <entry><filename>local_unbound</filename></entry>
678	      <entry><para>Unbound startup script for the local
679		caching resolver</para></entry>
680	    </row>
681	    <row>
682	      <entry><filename>postrandom</filename></entry>
683	      <entry><para>Generates a new entropy file at system
684		boot</para></entry>
685	    </row>
686	    <row>
687	      <entry><filename>swap</filename></entry>
688	      <entry><para>Replaces <filename>swap1</filename>;
689		enable swap at system boot</para></entry>
690	    </row>
691	    <row>
692	      <entry><filename>swaplate</filename></entry>
693	      <entry><para>Enables swap with <quote>late</quote>
694		set at system boot</para></entry>
695	    </row>
696	    <row>
697	      <entry><filename>utx</filename></entry>
698	      <entry><para>User accounting database startup and
699		shutdown script</para></entry>
700	    </row>
701	  </tbody>
702	</tgroup>
703      </informaltable>
704
705      <para>The following &man.rc.8; scripts have been removed:</para>
706
707      <informaltable frame="none" pgwide="0">
708	<tgroup cols="2">
709	  <colspec colwidth="1*" />
710	  <thead>
711	    <row>
712	      <entry>&man.rc.8; Script</entry>
713	      <entry><para>Reason</para></entry>
714	    </row>
715	  </thead>
716
717	  <tbody>
718	    <row>
719	      <entry><filename>encswap</filename></entry>
720	      <entry><para>Replaced by <filename>swap</filename> and
721		<filename>swaplate</filename></para></entry>
722	    </row>
723	    <row>
724	      <entry><filename>named</filename></entry>
725	      <entry><para>Removed with
726		  <application>BIND</application></para></entry>
727	    </row>
728	    <row>
729	      <entry><filename>swap1</filename></entry>
730	      <entry><para>Replaced by <filename>swap</filename> and
731		<filename>swaplate</filename></para></entry>
732	    </row>
733	  </tbody>
734	</tgroup>
735      </informaltable>
736    </sect3>
737  </sect2>
738
739  <sect2 xml:id="contrib">
740    <title>Contributed Software</title>
741
742    <para revision="251300">&man.jemalloc.3; has been updated to 3.4.0.
743      See <link xlink:href="http://www.facebook.com/jemalloc/">this link</link>
744      for more details.</para>
745
746    <para role="merged"><application>AMD</application> has been updated from 6.0.10
747      to 6.1.5.</para>
748
749    <para role="merged"><application>awk</application> has been updated from the 1 May
750      2007 release to the 23 October 2007 release.</para>
751
752    <para role="merged"><application>bzip2</application> has been updated from 1.0.4
753      to 1.0.5.</para>
754
755    <para revision="251794"><application>CVS</application> has been removed from the
756    base system, but is still available from Ports Collection.</para>
757
758    <para revision="251886">Subversion has been imported into the base system and
759      is installed as <application>svnlite</application>.  <application>svnlite</application>
760      should only be used for checking out the &os; source trees and committing, and does not
761      replace the full Subversion port.</para>
762
763    <para revision="234449"><application>file</application> has been updated to 5.11.</para>
764
765    <para revision="252726"><application>hostapd</application> has been
766      updated from 0.5.8 to 0.5.10.</para>
767
768    <para><application>IPFilter</application> has been updated to 5.1.2.</para>
769
770    <para revision="250592"><application>less</application> has been updated to
771      v458.</para>
772
773    <para><application>ncurses</application> has been updated
774      to 5.7-20081102.</para>
775
776    <para role="merged"><application>OpenSSH</application> has been updated
777      to 6.4.</para>
778
779    <para revision="236109"><application>OpenPAM</application> has been updated to
780      the Micrampelis release.</para>
781
782    <para role="merged"><application>sendmail</application> has been updated from
783      8.14.1 to 8.14.7.</para>
784
785    <para role="merged">The timezone database has been updated from
786      the <application>tzdata2008h</application> release to
787      the <application>tzdata2009m</application> release.</para>
788
789    <para>The stdtime part of libc, &man.zdump.8; and &man.zic.8;
790      have been updated from the <application>tzcode2004a</application>
791      release to the <application>tzcode2009h</application> release.
792      If you have upgraded from source or via the &man.freebsd-update.8;,
793      then please run &man.tzsetup.8; to install a new <filename>/etc/localtime</filename>.
794      </para>
795
796    <para revision="252726"><application>WPA Supplicant</application> has been
797      updated to 2.0.</para>
798
799    <para role="merged"><application>xz</application> has been updated
800      from snapshot as of 12 April 2010 to 5.0.0.</para>
801
802    <para revision="258231" role="merged">&man.nvi.1; has been updated to 2.1.2.</para>
803
804    <para revision="254225">&man.nvi.1; supports wide-character locales.</para>
805
806  </sect2>
807
808  <sect2 xml:id="ports">
809    <title>Ports/Packages Collection Infrastructure</title>
810
811    <para revision="257444">The pkg_add, pkg_create, pkg_delete, pkg_info,
812      pkg_updating, and pkg_version utilities have been removed.
813      &man.pkg.7; must now be used to install binary packages.  &man.pkg.7;
814      is the next generation &os; package manager, also referred to as <quote>pkgng</quote>.</para>
815
816  </sect2>
817
818  <sect2 xml:id="releng">
819    <title>Release Engineering and Integration</title>
820
821    <para role="merged">The supported version of
822      the <application>GNOME</application> desktop environment
823      (<package>x11/gnome2</package>) has been
824      updated from 2.20.1 to 2.22.</para>
825
826  </sect2>
827
828  <!--
829  <sect2 xml:id="doc">
830    <title>Documentation</title>
831
832    <para/>
833
834  </sect2>
835  -->
836</sect1>
837
838<sect1 xml:id="upgrade">
839  <title>Upgrading from previous releases of &os;</title>
840
841  <para arch="amd64,i386">Beginning with &os; 6.2-RELEASE,
842    binary upgrades between RELEASE versions (and snapshots of the
843    various security branches) are supported using the
844    &man.freebsd-update.8; utility.  The binary upgrade procedure will
845    update unmodified userland utilities, as well as unmodified GENERIC or
846    SMP kernels distributed as a part of an official &os; release.
847    The &man.freebsd-update.8; utility requires that the host being
848    upgraded have Internet connectivity.</para>
849
850  <para>Source-based upgrades (those based on recompiling the &os;
851    base system from source code) from previous versions are
852    supported, according to the instructions in
853    <filename>/usr/src/UPDATING</filename>.</para>
854
855  <important>
856    <para>Upgrading &os; should, of course, only be attempted after
857      backing up <emphasis>all</emphasis> data and configuration
858      files.</para>
859  </important>
860</sect1>
861</article>
862