]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/blob - release/doc/en_US.ISO8859-1/relnotes/article.sgml
Add entries of Release Notes for 8.0R temporarily.
[FreeBSD/stable/8.git] / release / doc / en_US.ISO8859-1 / relnotes / article.sgml
1 <!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
2 <!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EN">
3 %articles.ent;
4
5 <!ENTITY % release PUBLIC "-//FreeBSD//ENTITIES Release Specification//EN">
6 %release;
7 ]>
8
9 <article>
10 <articleinfo>
11   <title>&os; &release.current; Release Notes</title>
12
13   <corpauthor>The &os; Project</corpauthor>
14
15   <pubdate>$FreeBSD$</pubdate>
16
17   <copyright>
18     <year>2000</year>
19     <year>2001</year>
20     <year>2002</year>
21     <year>2003</year>
22     <year>2004</year>
23     <year>2005</year>
24     <year>2006</year>
25     <year>2007</year>
26     <year>2008</year>
27     <year>2009</year>
28     <holder role="mailto:doc@FreeBSD.org">The &os; Documentation Project</holder>
29   </copyright>
30
31   <legalnotice id="trademarks" role="trademarks">
32     &tm-attrib.freebsd;
33     &tm-attrib.ibm;
34     &tm-attrib.ieee;
35     &tm-attrib.intel;
36     &tm-attrib.sparc;
37     &tm-attrib.general;
38   </legalnotice>
39
40   <abstract>
41     <para>The release notes for &os; &release.current; contain a summary
42       of the changes made to the &os; base system on the
43       &release.branch; development line.
44       This document lists applicable security advisories that were issued since
45       the last release, as well as significant changes to the &os;
46       kernel and userland.
47       Some brief remarks on upgrading are also presented.</para>
48   </abstract>
49 </articleinfo>
50
51 <sect1 id="intro">
52   <title>Introduction</title>
53
54   <para>This document contains the release notes for &os;
55     &release.current;.  It
56     describes recently added, changed, or deleted features of &os;.
57     It also provides some notes on upgrading
58     from previous versions of &os;.</para>
59
60 <![ %release.type.current [
61
62   <para>The &release.type; distribution to which these release notes
63     apply represents the latest point along the &release.branch; development
64     branch since &release.branch; was created.  Information regarding pre-built, binary
65     &release.type; distributions along this branch
66     can be found at <ulink url="&release.url;"></ulink>.</para>
67
68 ]]>
69
70 <![ %release.type.snapshot [
71
72   <para>The &release.type; distribution to which these release notes
73     apply represents a point along the &release.branch; development
74     branch between &release.prev; and the future &release.next;.
75     Information regarding
76     pre-built, binary &release.type; distributions along this branch
77     can be found at <ulink url="&release.url;"></ulink>.</para>
78
79 ]]>
80
81 <![ %release.type.release [
82
83   <para>This distribution of &os; &release.current; is a
84     &release.type; distribution.  It can be found at <ulink
85     url="&release.url;"></ulink> or any of its mirrors.  More
86     information on obtaining this (or other) &release.type;
87     distributions of &os; can be found in the <ulink
88     url="&url.books.handbook;/mirrors.html"><quote>Obtaining
89     &os;</quote> appendix</ulink> to the <ulink
90     url="&url.books.handbook;/">&os;
91     Handbook</ulink>.</para>
92
93 ]]>
94
95   <para>All users are encouraged to consult the release errata before
96     installing &os;.  The errata document is updated with
97     <quote>late-breaking</quote> information discovered late in the
98     release cycle or after the release.  Typically, it contains
99     information on known bugs, security advisories, and corrections to
100     documentation.  An up-to-date copy of the errata for &os;
101     &release.current; can be found on the &os; Web site.</para>
102
103 </sect1>
104
105   <sect1 id="new">
106     <title>What's New</title>
107
108     <para>This section describes the most user-visible new or changed
109       features in &os; since &release.prev;, and changes shown in
110       Release Notes for the previous releases are marked as
111       <literal>[7.1R]</literal> and <literal>[7.2R]</literal>.</para>
112
113     <para>Typical release note items document recent security
114       advisories issued after &release.prev;, new drivers or hardware
115       support, new commands or options, major bug fixes, or
116       contributed software upgrades.  They may also list changes to
117       major ports/packages or release engineering practices.  Clearly
118       the release notes cannot list every single change made to &os;
119       between releases; this document focuses primarily on security
120       advisories, user-visible changes, and major architectural
121       improvements.</para>
122
123     <sect2 id="security">
124       <title>Security Advisories</title>
125
126       <para>Problems described in the following security advisories have
127         been fixed.  For more information, consult the individual
128         advisories available from
129         <ulink url="http://security.FreeBSD.org/"></ulink>.</para>
130
131       <informaltable frame="none" pgwide="0">
132         <tgroup cols="3">
133           <colspec colwidth="1*">
134           <colspec colwidth="1*">
135           <colspec colwidth="3*">
136             <thead>
137               <row>
138                 <entry>Advisory</entry>
139                 <entry>Date</entry>
140                 <entry>Topic</entry>
141               </row>
142             </thead>
143
144             <tbody>
145               <row role="7.1">
146                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:05.openssh.asc"
147                               >SA-08:05.openssh</ulink></entry>
148                 <entry>17&nbsp;April&nbsp;2008</entry>
149                 <entry><para>OpenSSH X11-forwarding privilege escalation</para></entry>
150               </row>
151
152               <row role="7.1">
153                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:06.bind.asc"
154                               >SA-08:06.bind</ulink></entry>
155                 <entry>13&nbsp;July&nbsp;2008</entry>
156                 <entry><para>DNS cache poisoning</para></entry>
157               </row>
158
159               <row role="7.1">
160                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:07.amd64.asc"
161                               >SA-08:07.amd64</ulink></entry>
162                 <entry>3&nbsp;September&nbsp;2008</entry>
163                 <entry><para>amd64 swapgs local privilege escalation</para></entry>
164               </row>
165
166               <row role="7.1">
167                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:08.nmount.asc"
168                               >SA-08:08.nmount</ulink></entry>
169                 <entry>3&nbsp;September&nbsp;2008</entry>
170                 <entry><para>&man.nmount.2; local arbitrary code execution</para></entry>
171               </row>
172
173               <row role="7.1">
174                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:09.icmp6.asc"
175                               >SA-08:09.icmp6</ulink></entry>
176                 <entry>3&nbsp;September&nbsp;2008</entry>
177                 <entry><para>Remote kernel panics on IPv6 connections</para></entry>
178               </row>
179
180               <row role="7.1">
181                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:10.nd6.asc"
182                               >SA-08:10.nd6</ulink></entry>
183                 <entry>1&nbsp;October&nbsp;2008</entry>
184                 <entry><para>IPv6 Neighbor Discovery Protocol routing vulnerability</para></entry>
185               </row>
186
187               <row role="7.1">
188                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:11.arc4random.asc"
189                               >SA-08:11.arc4random</ulink></entry>
190                 <entry>24&nbsp;November&nbsp;2008</entry>
191                 <entry><para>&man.arc4random.9; predictable sequence vulnerability</para></entry>
192               </row>
193
194               <row role="7.1">
195                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:12.ftpd.asc"
196                               >SA-08:12.ftpd</ulink></entry>
197                 <entry>23&nbsp;December&nbsp;2008</entry>
198                 <entry><para>Cross-site request forgery in &man.ftpd.8;</para></entry>
199               </row>
200
201               <row role="7.1">
202                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-08:13.protosw.asc"
203                               >SA-08:13.protosw</ulink></entry>
204                 <entry>23&nbsp;December&nbsp;2008</entry>
205                 <entry><para>netgraph / bluetooth privilege escalation</para></entry>
206               </row>
207
208               <row role="7.2">
209                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:01.lukemftpd.asc"
210                               >SA-09:01.lukemftpd</ulink></entry>
211                 <entry>07&nbsp;January&nbsp;2009</entry>
212                 <entry><para>Cross-site request forgery in
213                   &man.lukemftpd.8;</para></entry>
214               </row>
215
216               <row role="7.2">
217                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:02.openssl.asc"
218                               >SA-09:02.openssl</ulink></entry>
219                 <entry>07&nbsp;January&nbsp;2009</entry>
220                 <entry><para>OpenSSL incorrectly checks for malformed
221                   signatures</para></entry>
222               </row>
223
224               <row role="7.2">
225                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:03.ntpd.asc"
226                               >SA-09:03.ntpd</ulink></entry>
227                 <entry>13&nbsp;January&nbsp;2009</entry>
228                 <entry><para>ntpd cryptographic signature
229                   bypass</para></entry>
230               </row>
231
232               <row role="7.2">
233                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:04.bind.asc"
234                               >SA-09:04.bind</ulink></entry>
235                 <entry>13&nbsp;January&nbsp;2009</entry>
236                 <entry><para>BIND DNSSEC incorrect checks for
237                   malformed signatures</para></entry>
238               </row>
239
240               <row role="7.2">
241                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:05.telnetd.asc"
242                               >SA-09:05.telnetd</ulink></entry>
243                 <entry>16&nbsp;February&nbsp;2009</entry>
244                 <entry><para>telnetd code execution
245                   vulnerability</para></entry>
246               </row>
247
248               <row role="7.2">
249                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:06.ktimer.asc"
250                               >SA-09:06.ktimer</ulink></entry>
251                 <entry>23&nbsp;March&nbsp;2009</entry>
252                 <entry><para>Local privilege escalation</para></entry>
253               </row>
254
255               <row role="7.2">
256                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:07.libc.asc"
257                               >SA-09:07.libc</ulink></entry>
258                 <entry>04&nbsp;April&nbsp;2009</entry>
259                 <entry><para>Information leak in &man.db.3;</para></entry>
260               </row>
261
262               <row role="7.2">
263                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:08.openssl.asc"
264                               >SA-09:08.openssl</ulink></entry>
265                 <entry>22&nbsp;April&nbsp;2009</entry>
266                 <entry><para>Remotely exploitable crash in
267                   OpenSSL</para></entry>
268               </row>
269
270               <row role="8.0">
271                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:09.pipe.asc"
272                               >SA-09:09.pipe</ulink></entry>
273                 <entry>10&nbsp;June&nbsp;2009</entry>
274                 <entry><para>Local information disclosure via direct pipe writes</para></entry>
275               </row>
276
277               <row role="8.0">
278                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:10.ipv6.asc"
279                               >SA-09:10.ipv6</ulink></entry>
280                 <entry>10&nbsp;June&nbsp;2009</entry>
281                 <entry><para>Missing permission check on SIOCSIFINFO_IN6 ioctl</para></entry>
282               </row>
283
284               <row role="8.0">
285                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:11.ntpd.asc"
286                               >SA-09:11.ntpd</ulink></entry>
287                 <entry>10&nbsp;June&nbsp;2009</entry>
288                 <entry><para>ntpd stack-based buffer-overflow vulnerability</para></entry>
289               </row>
290
291               <row role="8.0">
292                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:12.bind.asc"
293                               >SA-09:12.bind</ulink></entry>
294                 <entry>29&nbsp;July&nbsp;2009</entry>
295                 <entry><para>BIND &man.named.8; dynamic update message remote DoS</para></entry>
296               </row>
297               <row role="8.0">
298                 <entry><ulink url="http://security.freebsd.org/advisories/FreeBSD-SA-09:14.devfs.asc"
299                               >SA-09:14.devfs</ulink></entry>
300                 <entry>2&nbsp;Oct&nbsp;2009</entry>
301                 <entry><para>Devfs / VFS NULL pointer race condition</para></entry>
302               </row>
303             </tbody>
304         </tgroup>
305       </informaltable>
306     </sect2>
307
308     <sect2 id="kernel">
309       <title>Kernel Changes</title>
310
311       <para role="8.0">The &os; <filename>GENERIC</filename> kernel now
312         includes Trusted BSD MAC (Mandatory Access Control) support.
313         No MAC policy module is loaded by default.</para>
314
315       <para role="8.0" arch="i386">A loader
316         tunable <varname>hw.clflush_disable</varname> has been added
317         to avoid panic (trap 9)
318         at <function>map_invalidate_cache_range()</function> even if
319         Intel CPU is used.  This tunable can be set
320         to <literal>-1</literal> (default), <literal>0</literal> and
321         <literal>1</literal>.  The <literal>-1</literal> is same as
322         the current behavior, which automatically
323         disables <literal>CLFLUSH</literal> on Intel CPUs without
324         <literal>CPUID_SS</literal> (this should occurr on Xen
325         only).  You can specify <literal>1</literal> when this panic
326         happens on non-Intel CPUs (such as AMD's).  Because disabling
327         <literal>CLFLUSH</literal> can reduce performance, you can try
328         with setting <literal>0</literal> on Intel CPUs
329         without <literal>SS</literal> to
330         use <literal>CLFLUSH</literal> feature.</para>
331
332       <para role="8.0">The &os; newbus subsystem is now MPSAFE.</para>
333
334       <para role="8.0">The &man.jail.8; subsystem has been updated.  Changes include:</para>
335
336       <itemizedlist role="7.2">
337         <listitem>
338           <para role="8.0">A new virtualization container
339             named <quote>vimage</quote> has been implemented.  This is
340             not enabled by default.  To enable this, add the following
341             kernel options to your kernel configuration file and
342             rebuild the kernel:</para>
343
344           <programlisting>options       VIMAGE</programlisting>
345
346           <para>Note that <literal>options SCTP</literal> in the
347             <filename>GENERIC</filename> kernel is not compatible with
348             <literal>options VIMAGE</literal>.  This limitation will
349             be fixed in the next release.</para>
350
351           <para>The vimage is a jail with a virtualized instance of
352             the &os; network stack.  It can be created by using
353             &man.jail.8; command like this:</para>
354
355           <screen>&prompt.root; jail -c vnet name=<replaceable>vnet1</replaceable> host.hostname=<replaceable>vnet1.example.net</replaceable> path=/ persist</screen>
356
357           <para>The vimage has own loopback interface and a separated
358             network stack including the L3 routing tables.  Network
359             interfaces on the system can be moved by using
360             &man.ifconfig.8; <option>vnet</option> option between the
361             different vimage jails and outside of them.</para>
362
363           <para>Furthermore, the &man.epair.4; pseudo-interface driver
364             has been added to help communication between vimage jails.
365             It emulates a pair of back-to-back connected Ethernet
366             interfaces.  For example, the following commands create an
367             interface pair of &man.epair.4;:</para>
368
369           <screen>&prompt.root; ifconfig epair0 create
370 epair0a
371 &prompt.root; ifconfig epair0a
372 epair0a: flags=8842&lt;BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
373         ether 02:c0:64:00:07:0a
374 &prompt.root; ifconfig epair0b
375 epair0b: flags=8842&lt;BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
376         ether 02:c0:64:00:08:0b</screen>
377
378           <para>The &man.epair.4; pseudo-interfaces and any physical
379             interfaces on the system can be moved between vimage jails
380             by using &man.ifconfig.8; <option>vnet</option> option as
381             described above.  Even after half of an &man.epair.4; pair
382             is moved, the back-to-back connection still valid and can
383             be used for inter-jail communication.</para>
384
385           <para>Note that vimage is still considered as an
386             experimental feature.</para>
387         </listitem>
388
389         <listitem>
390           <para>A jail can now have arbitrary named parameters similar
391             to environmental variables and the fixed jail parameters
392             in the previous releases have been replaced with them.
393             The jail name can now be used for identifying the jail in
394             &man.jexec.8; and &man.killall.1;.</para>
395         </listitem>
396
397         <listitem>
398           <para>Multiple IPv4 and/or IPv6 addresses per jail are now
399             supported.  It is even possible to have jails without
400             an IP address at all, which basically gives one a chrooted
401             environment with restricted process view and no
402             networking.</para>
403         </listitem>
404
405         <listitem>
406           <para>SCTP (&man.sctp.4;) with IPv6 in jails has been
407             implemented.</para>
408         </listitem>
409
410         <listitem>
411           <para>Specific CPU binding by using &man.cpuset.1; has been
412             implemented.  Note that the current implementation allows
413             the superuser inside of the jail to change the CPU
414             bindings specified.</para>
415         </listitem>
416
417         <listitem>
418           <para>A &man.jail.8; can start with a specific route
419             FIB now.</para>
420         </listitem>
421
422         <listitem>
423           <para>The &man.ddb.8; kernel debugger now supports a
424             <literal>show jails</literal> subcommand.</para>
425         </listitem>
426
427         <listitem>
428           <para>Compatibility support which permits 32-bit jail
429             binaries to be used on 64-bit systems to manage jails has
430             been added.</para>
431         </listitem>
432
433         <listitem>
434           <para>Note that both version numbers of
435             <literal>jail</literal> and <literal>prison</literal> in
436             the &man.jail.8; have been updated for the new
437             features.</para>
438         </listitem>
439       </itemizedlist>
440
441       <para role="8.0">The &man.ksyms.4;, kernel symbol table
442         interface driver has been added.  It creates a character
443         device <filename>/dev/ksyms</filename> and provides
444         read-only access to a snapshot of the kernel symbol
445         table.</para>
446
447       <para role="8.0" arch="amd64,i386">The &os; Linux emulation
448         layer has been updated to version 2.6.16 and the default Linux
449         infrastructure port is
450         <filename>emulators/linux_base-f10</filename> (Fedora
451         10).</para>
452
453       <para role="8.0" arch="amd64,i386">The &os; virtual memory
454         subsystem now supports fully transparent use of
455         <application>superpages</application> for application memory;
456         application memory pages are dynamically promoted to or
457         demoted from superpages without any modification to
458         application code.  This change offers the benefit of large
459         page sizes such as improved virtual memory efficiency and
460         reduced TLB (translation lookaside buffer) misses without
461         downsides like application changes and virtual memory
462         inflexibility. This can be enabled by setting a loader tunable
463         <varname>vm.pmap.pg_ps_enabled</varname> to
464         <literal>1</literal> and is enabled by default on
465         &arch.amd64;.</para>
466
467       <para role="7.2">The &man.ddb.8; kernel debugger now supports a
468         <command>show mount</command> subcommand.</para>
469
470       <para role="7.2">The &os; DTrace subsystem now supports a probe for
471         process execution.</para>
472
473       <para role="7.2" arch="amd64">The &os; kernel virtual address
474         space has been increased to 6GB. This allows subsystems to use
475         larger virtual memory space than before.  For example, the
476         &man.zfs.8; adaptive replacement cache (ARC) requires large
477         kernel memory space to cache file system data, so it benefits
478         from the increased address space.  Note that the ceiling on
479         the kernel map size is now 60% of the size of physical memory
480         rather than an absolute quantity.</para>
481
482       <para role="7.2">The &man.kld.4; now supports installing 32-bit
483         system calls to the &os; syscall translation layer from kernel
484         modules.</para>
485
486       <para role="7.2">The &man.ktr.4; now supports a new KTR tracepoint in the
487         <literal>KTR_CALLOUT</literal> class to note when a callout
488         routine finishes executing.</para>
489
490       <para role="7.2">Types of variables used to track the amount of allocated
491         System V shared memory have been changed from
492         <literal>int</literal> to <literal>size_t</literal>.  This
493         makes it possible to use more than 2 GB of memory for shared
494         memory segments on 64-bit architectures.  Please note the new
495         BUGS section in &man.shmctl.2; and
496         <filename>/usr/src/UPDATING</filename> for limitations of this
497         temporary solution.</para>
498
499       <para role="7.2">The &man.sysctl.3; leaf nodes have a flag to tag
500         themselves as MPSAFE now.</para>
501
502       <para role="7.2">The &os; 32-bit system call translation layer now
503         supports installing 32-bit system calls for
504         <literal>VFS_AIO</literal>.</para>
505
506       <para role="7.1">The &man.clock.gettime.2; and the related system calls now
507         support a clock ID <literal>CLOCK_THREAD_CPUTIME_ID</literal>,
508         as defined in POSIX.</para>
509
510       <para role="7.1">The &man.cpuset.2; system call has been added.  This is an
511         API for thread to CPU binding and CPU resource grouping and
512         assignment.</para>
513
514       <para role="7.1">The DTrace, a comprehensive dynamic tracing framework and
515         &man.dtrace.1; userland utility have been imported from
516         OpenSolaris.  DTrace provides a powerful infrastructure to
517         permit administrators, developers, and service personnel to
518         concisely answer arbitrary questions about the behavior of the
519         operating system and user programs.</para>
520
521       <para role="7.1">The &man.ddb.4; kernel debugger now has an output capture
522         facility.  Input and output from &man.ddb.4; can now be captured
523         to a memory buffer for later inspection using &man.sysctl.8; or
524         a textdump.  The new <command>capture</command> command controls
525         this feature.</para>
526
527       <para role="7.1">The &man.ddb.4; debugger now supports a simple scripting
528         facility, which supports a set of named scripts consisting of a
529         set of &man.ddb.4; commands.  These commands can be managed from
530         within &man.ddb.4; or with the use of the new &man.ddb.8;
531         utility.  More details can be found in the &man.ddb.4; manual
532         page.</para>
533
534       <para role="7.1">The &man.ddb.4; <command>ex</command> command now supports
535         an <option>/S</option> mode which interprets and prints the
536         value at the requested address as a symbol.  For example,
537         <userinput>ex /S <replaceable>aio_swake</replaceable></userinput>
538         prints the name of the function currently registered in
539         via <replaceable>aio_swake</replaceable> hook.</para>
540
541       <para role="7.1">The &man.ddb.4; <command>show conifhk</command> command has
542         been added.  This lists hooks currently waiting for completion
543         in <function>run_interrupt_driven_config_hooks()</function>.</para>
544
545       <para role="7.1">The &man.fcntl.2; system call now supports
546         <literal>F_DUP2FD</literal> command.  This is equivalent to
547         &man.dup.2;, and compatible with the Sun Solaris and the IBM
548         AIX.</para>
549
550       <para role="7.1">The &os;'s &man.linux.4; ABI support now implements
551         <function>sched_setaffinity()</function> and
552         <function>sched_getaffinity()</function> using real CPU affinity
553         setting primitives.</para>
554
555       <para role="7.1">The &man.procstat.1; utility has been added. This is a
556         process inspection utility which provides some of the missing
557         functionality from &man.procfs.5; and new functionality for monitoring
558         and debugging specific processes.</para>
559
560       <para role="7.1">The client side functionality of &man.rpc.lockd.8; has been
561         implemented in the &os; kernel.  This implementation provides the
562         correct semantics for &man.flock.2; style locks which are used
563         by the &man.lockf.1; command line tool and the &man.pidfile.3;
564         library.  It also implements recovery from server restarts and
565         ensures that dirty cache blocks are written to the server before
566         obtaining locks (allowing multiple clients to use file locking
567         to safely share data).  Also, a new kernel option
568         <literal>options NFSLOCKD</literal> has been added and enabled
569         by default.  If the kernel support is enabled, &man.rpc.lockd.8;
570         automatically detects and uses the functionality.</para>
571
572       <para role="7.1">The &os; kernel now supports a new textdump format of kernel
573         dumps.  A textdump provides higher-level information via
574         mechanically generated/extracted debugging output, rather than a
575         simple memory dump. This facility can be used to generate brief
576         kernel bug reports that are rich in debugging information, but
577         are not dependent on kernel symbol tables or precisely
578         synchronized source code.  More information can be found in the
579         &man.textdump.4; manual page.</para>
580
581       <para role="7.1">The &man.wait4.2; system call now supports
582         <option>WNOWAIT</option> flag to keep the process whose status
583         is returned in a waitable state and <option>WSTOPPED</option>
584         which is equivalent to <option>WUNTRACED</option>.</para>
585
586       <para role="7.1" arch="amd64,i386,sparc64">The &os; kernel now has
587         initial support of binding interrupts to CPUs.</para>
588
589       <para role="7.1" arch="amd64,i386"> The &man.sched.ule.4; scheduler is now the default
590         process scheduler in <filename>GENERIC</filename>
591         kernels.</para>
592
593       <para role="7.1">The sysctl
594         variables <varname>kern.features.compat_freebsd[456]</varname>
595         have been added.  These are corresponding to the kernel options
596         <literal>COMPAT_FREEBSD[456]</literal>.</para>
597
598       <sect3 id="boot">
599         <title>Boot Loader Changes</title>
600
601         <para role="8.0">The <application>boot0</application> boot
602           loader now preserves volume ID at offset
603           0x1b8 used in other operating systems </para>
604
605         <para role="8.0">The &man.boot0cfg.8; utility now supports a
606           new <option>-i</option> option to set the volume ID.</para>
607
608         <para role="7.2">The &man.boot.8; now supports 4-byte volume ID that
609           certain versions of &windows; put into the MBR and invoking
610           PXE by pressing the F6 key on some supported BIOSes.</para>
611
612         <para role="7.2" arch="i386">The &man.boot.8; BTX loader has been
613           improved.  This fixes several boot issues on recent machines
614           reported for 7.1-RELEASE and before.</para>
615
616         <para role="7.2">The &man.loader.8; is now able to obtain DHCP options
617           from network boot via &man.kenv.2; variables.</para>
618
619         <para role="7.2">A bug in the &man.loader.8; has been fixed.  Now the
620           following line works as expected:</para>
621
622         <programlisting>loader_conf_files="<replaceable>foo</replaceable> <replaceable>bar</replaceable> ${<replaceable>variable</replaceable>}"</programlisting>
623
624         <para role="7.1" arch="amd64,i386">The BTX kernel used by the boot
625           loader has been changed to invoke BIOS routines from real
626           mode.  This change makes it possible to boot &os; from USB
627           devices.</para>
628
629         <para role="7.1" arch="amd64,i386">A new gptboot boot loader has
630           been added to support booting from a GPT labeled disk.  A
631           new <command>boot</command> command has been added to
632           &man.gpt.8;, which makes a GPT disk bootable by writing the
633           required bits of the boot loader, creating a new boot
634           partition if required.</para>
635       </sect3>
636
637       <sect3 id="proc">
638         <title>Hardware Support</title>
639
640         <para role="8.0">The &os; now includes experimental support
641           for &arch.mips; platform.</para>
642
643         <para role="8.0">The &man.acpi.4; subsystem now supports the System
644           Resource Affinity Table (SRAT) used to describe affinity
645           relationships between CPUs and memory, ACPI 3.0 fields in
646           the MADT including X2APIC entries and UIDs for local SAPICs, and
647           ACPI 3.0 flags in the FADT.</para>
648
649         <para role="8.0" arch="powerpc">The &man.cpufreq.4; framework now
650           supports PowerPC G5, along with a skeleton SMU driver in order to slew
651           CPU voltage during frequency changes.</para>
652
653         <para role="8.0">The sec(4) driver has been added to provide
654           support for the integrated security engine found in
655           Freescale system-on-chip devices.</para>
656
657         <para role="8.0">The &os; TTY layer has been replaced with a
658           new one which has better support for SMP and robust resource
659           handling.  A tty now has own mutex and it is expected to
660           improve scalability when compared to the old implementation
661           based on the Giant lock.</para>
662
663         <para role="8.0" arch="amd64,i386">The &man.uart.4; driver is now the
664           default driver for serial port devices in favor of the
665           &man.sio.4; driver.  Note that the device nodes have been
666           renamed from
667           <filename>/dev/cuad<replaceable>N</replaceable></filename> and
668           <filename>/dev/ttyd<replaceable>N</replaceable></filename> to
669           <filename>/dev/cuau<replaceable>N</replaceable></filename> and
670           <filename>/dev/ttyu<replaceable>N</replaceable></filename>.</para>
671
672         <important>
673           <para>Users who are upgrading will need to change their
674             kernel configurations and possibly also
675             <filename>/boot/loader.conf</filename> and
676             <filename>/boot/device.hints</filename>.</para>
677         </important>
678
679         <para role="8.0">The &os; USB subsystem has been reimplemented
680           to support modern devices and better SMP scalability.  The
681           new implementation includes Giant-lock-free device drivers,
682           a Linux compatibility layer, &man.usbconfig.8; utility, full
683           support for split transaction and isochronous transaction,
684           and more.  Device node names for USB devices are now in a
685           the form
686           of <filename>/dev/usb/<replaceable>bus</replaceable>.<replaceable>dev</replaceable>.<replaceable>endpoint</replaceable></filename>,
687           and <filename>/dev/usbctl</filename> is the master device
688           node.  Note that the &man.ugen.4; driver has nodes for each device as <filename>/dev/ugen<replaceable>bus</replaceable>.<replaceable>dev</replaceable></filename> for backward compatibility.</para>
689
690         <para role="7.2" arch="sparc64">&os; now supports Ultra SPARC III
691           (Cheetah) processor family.</para>
692
693         <para role="7.2">The &man.acpi.4; subsystem now supports a &man.sysctl.8;
694           variable <varname>debug.batt.batt_sleep_ms</varname>.  On
695           some laptops with smart batteries, enabling battery
696           monitoring software causes keystrokes from &man.atkbd.4; to
697           be lost.  This sysctl variable adds a delay in millisecond
698           to the status checking code as a workaround.</para>
699
700         <para role="7.2">The &man.acpi.asus.4; driver now supports Asus A8Sr
701           notebooks.</para>
702
703         <para role="7.2" arch="powerpc">Support for the AltiVec, a floating point
704           and integer SIMD instruction set has been added.</para>
705
706         <para role="7.2">The &man.cpuctl.4; driver, which provides a special
707           device <filename>/dev/cpuctl</filename> as an interface to
708           the system CPU has been added.  The &man.cpuctl.4;
709           functionality includes the ability to retrieve CPUID
710           information, read/write machine specific registers (MSR),
711           and perform CPU firmware updates.</para>
712
713         <para role="7.2">The &man.cpufreq.4; driver now supports an
714           <varname>hw.est.msr_info</varname> loader tunable.  When
715           this is set to <literal>1</literal>, it attempts to build a
716           simple list containing just the high and low frequencies if
717           it cannot obtain a frequency list from either ACPI or the
718           static tables.  This is disabled by default.</para>
719
720         <para role="7.2" arch="amd64,i386">CPU frequency change notifiers are now
721           disabled when the TSC is P-state invariant.  Also, a new
722           loader tunable
723           <varname>kern.timecounter.invariant_tsc</varname> has been
724           added to force this behavior by setting it to
725           non-zero.</para>
726
727         <para role="7.2">The &man.atkbd.4; driver now disables the interrupt
728           handler which is called from the keyboard callback function
729           when polled mode is enabled.  This fixes the problem of
730           duplicated/missing characters at the mountroot prompt on
731           multi CPU systems while &man.kbdmux.4; is enabled.</para>
732
733         <para role="7.2">In the &man.pci.4; subsystem INTx is now disabled when
734           MSI/MSIX is enabled.  This change fixes interrupt storm
735           related issues.</para>
736
737         <para role="7.2" arch="sparc64">The schizo(4) driver for Schizo
738           Fireplane/Safari to PCI 2.1 and Tomatillo JBus to PCI 2.2
739           bridges has been added.</para>
740
741         <para role="7.2">The &man.u3g.4; driver for USB based 3G cards and
742           dongles including Vodafone Mobile Connect Card 3G, Qualcomm
743           CDMA MSM, Huawei E220, Novatel U740, Sierra MC875U, and more
744           has been added.  This provides support for the multiple
745           USB-to-serial interfaces exposed by many 3G USB/PC Card
746           modems, and the device is accessed through the &man.ucom.4;
747           driver which makes it behave like a &man.tty.4;.</para>
748
749         <para role="7.2">The &man.sched.ule.4; scheduler now supports
750           the loader tunable
751           <varname>machdep.hyperthreading_enabled</varname> just like
752           &man.sched.4bsd.4;. Note that it cannot be modified at
753           run-time.</para>
754
755         <para role="7.1">The &man.cmx.4; driver, a driver for Omnikey CardMan 4040
756           PCMCIA smartcard readers, has been added.</para>
757
758         <para role="7.1" arch="sparc64">The &man.kbdmux.4; driver now
759           supports &arch.sparc64;.  The &man.sunkbd.4; driver now
760           supports &man.atkbd.4; emulation like &man.ukbd.4;.</para>
761
762         <para role="7.1">The <filename>nvram(4)</filename> driver is now
763           MPSAFE.</para>
764
765         <para role="7.1">An option of the &man.puc.4;
766           driver, <literal>PUC_FASTINTR</literal>, is no longer
767           supported.</para>
768
769         <para role="7.1">The &man.psm.4; driver now attempts detection of Synaptics
770           touchpad before IntelliMouse.  Some touchpads will pretend to
771           be IntelliMouse causing the IntelliMouse probe to work and the
772           Synaptics detection never to be done.</para>
773
774         <para role="7.1">The &man.uslcom.4; driver, a driver for Silicon
775           Laboratories CP2101/CP2102-based USB serial adapters, has been
776           imported from OpenBSD.</para>
777
778         <sect4 id="mm">
779           <title>Multimedia Support</title>
780
781           <para role="8.0">The &os; audio subsystem has been improved.
782             The changes include volume per channel, high quality
783             fixed-point band-limited SINC sampling rate converter,
784             bit-perfect mode, transparent/adaptive virtual channel,
785             and exclusive stream.  For more details, see the
786             &man.snd.4; manual page.</para>
787
788           <para role="7.2">The &man.agp.4; driver now supports Intel G4X series
789             graphics chipsets.</para>
790
791           <para role="7.2">The Direct Rendering Manager
792             (<application>DRM</application>), a kernel module that
793             gives direct hardware access to DRI clients, has been
794             updated.  Support for AMD/ATI r500, r600, r700, and IGP
795             based chips, XGI V3XE/V5/V8, and Intel i915 chipsets has
796             been improved.</para>
797
798           <para role="7.2">A new loader tunable <varname>hw.drm.msi</varname> has
799             been added to control if DRM uses MSI or not.  This is set
800             to <literal>1</literal> (enabled) by default.</para>
801
802           <para role="7.2">The snd_au88x0(4) driver for Aureal Vortex
803             1/2/Advantage PCI has been removed because it has been
804             broken for a long time.</para>
805
806           <para role="7.2">The &man.snd.hda.4; driver has been updated. These
807             changes include support for multiple codecs per HDA bus,
808             multiple functional groups per codec, multiple audio
809             devices per functional group, digital (SPDIF/HDMI) audio
810             input/output, suspend/resume, and part of multichannel
811             audio.</para>
812
813           <para role="7.2">Note that due to added HDMI audio and
814             logical audio devices support, the updated driver often
815             provides several PCM devices.  This means that in some
816             cases the system default audio device no longer
817             corresponds to the users's habitual audio connectors. In
818             such cases the default device can be specified in audio
819             applications' setup or defined globally via
820             <varname>hw.snd.default_unit</varname> sysctl variable, as
821             described in the &man.sound.4; manual page.</para>
822
823           <para role="7.1">The &man.agp.4; driver now supports the
824             Intel G33 and G45.</para>
825
826           <para role="7.1" arch="i386">The <filename>dpms(4)</filename> driver has
827             been added to use the VESA BIOS for DPMS during suspend and
828             resume.</para>
829
830           <para role="7.1">The <application>DRM</application> kernel driver now
831             supports i915 GME devices.</para>
832         </sect4>
833
834         <sect4 id="net-if">
835           <title>Network Interface Support</title>
836
837           <para role="8.0">The &man.bwi.4; driver has been added to
838             provide support for Broadcom BCM43xx IEEE 802.11b/g wireless
839             network interfaces.</para>
840
841           <para role="8.0" arch="sparc64">The &man.cas.4; driver has
842             been added to provide support for Sun Cassini/Cassini+ and
843             National Semiconductor DP83065 Saturn Gigabit Ethernet
844             devices.</para>
845
846           <para role="8.0">The &man.cxgbtool.8; now supports an
847             interactive mode for scripting of repeatedly performed
848             tasks.</para>
849
850           <para role="8.0">The &man.fxp.4; driver has been improved.  Changes include:</para>
851
852           <itemizedlist>
853             <listitem>
854               <para role="8.0">The multicast filter re-programming
855                 is now more robust.</para>
856             </listitem>
857
858             <listitem>
859               <para role="7.2">The checksum offload feature can be controlled by
860                 &man.ifconfig.8; now.</para>
861             </listitem>
862
863             <listitem>
864               <para role="7.2">Rx checksum offload support for 82559 or later
865                 controllers has been added.</para>
866             </listitem>
867
868             <listitem>
869               <para role="7.2">TSO (TCP Segmentation Offload) support for 82550
870                 and 82551 controllers has been added.</para>
871             </listitem>
872
873             <listitem>
874               <para role="7.2">WoL (Wake on LAN) support for 82550, 82551, 82558,
875                 and 82559-based controllers has been added.  Note that
876                 ICH based controllers are treated as 82559, and 82557,
877                 earlier revisions of 82558, and 82559ER have no WoL
878                 capability.</para>
879             </listitem>
880
881             <listitem>
882               <para role="7.2">VLAN hardware tag insertion/stripping support and
883                 Tx/Rx checksum offload for VLAN frames support has
884                 been added.  Note that the VLAN hardware assistance is
885                 available only on 82550 or 82551-based
886                 controllers.</para>
887             </listitem>
888           </itemizedlist>
889
890           <para role="8.0">The &man.miibus.4; driver now supports
891             the Marvell 88E3016.</para>
892
893           <para role="8.0">The &man.msk.4; driver now supports Yukon
894             FE+ A0 including 88E8040, 88E8040T, 88E8048 and
895             88E8070.</para>
896
897           <para role="8.0">The &man.mwl.4; driver has been added to
898             provide support for Marvell 88W8363 IEEE 802.11n wireless
899             network devices.</para>
900
901           <para role="8.0">The &man.mxge.4; driver now supports some newer
902             revisions and 10GBASE-LRM and 10GBASE-Twinax media
903             types.  The firmware version has been updated to 1.4.43.</para>
904
905           <para role="8.0">The &man.nge.4; driver has been improved and
906             now works on all platforms.</para>
907
908           <para role="8.0">The &man.uath.4; driver for USB wireless LAN
909             adapter based on Atheros AR5005UG and AR5005UX chipsets
910             has been added.  The &man.uathload.8; utility, a firmware
911             loader for the Atheros USB wireless driver has also been
912             added.</para>
913
914           <para role="8.0">The &man.urtw.4; driver has been added to
915             provide support for Realtek RTL8187B/L USB IEEE 802.11b/g
916             wireless network devices.</para>
917
918           <para role="8.0">The &man.xl.4; driver now supports TX
919             checksum offload.</para>
920
921           <para role="7.2">The &man.ae.4; driver now supports WoL
922             (Wake on LAN).</para>
923
924           <para role="7.2" arch="amd64,i386">The &man.ale.4; driver is now
925             included in the <filename>GENERIC</filename>
926             kernel.</para>
927
928           <para role="7.2">The &man.ath.hal.4;, Atheros Hardware Access Layer,
929             has been updated to the open source version.</para>
930
931           <para role="7.2">The &man.axe.4; driver has been improved in
932             performance by eliminating extra context switches and now
933             supports the Apple USB Ethernet adapter.</para>
934
935           <para role="7.2">The &man.bce.4; driver's firmware has been updated to
936             the latest version (4.6.X).</para>
937
938           <para role="7.2">The ciphy(4) driver now supports Vitesse VSC8211
939             PHY.</para>
940
941           <para role="7.2">The &man.cxgb.4; driver has been updated to firmware
942             revision 4.7 and now supports hardware MAC
943             statistics.</para>
944
945           <para role="7.2">A bug in the &man.igb.4; driver, which prevented the
946             loader tunable <varname>hw.igb.ave_latency</varname> from
947             working, has been fixed.</para>
948
949           <para role="7.2">The &man.ixgbe.4; driver has been updated to
950             version 1.7.4.</para>
951
952           <para role="7.2">The &man.jme.4; driver now supports newer JMicron
953             JMC250/JMC260 revisions.</para>
954
955           <para role="7.2">The &man.msk.4; driver has been improved.  An issue
956             which made it hang up in a certain condition has been
957             fixed.  Hardware MAC statistics support has been added
958             and users can get the information via sysctl variables
959             named
960             <varname>dev.msk.<replaceable>N</replaceable>.stats</varname>.</para>
961
962           <para role="7.2">The &man.nfe.4; driver now supports hardware MAC
963             statistics.</para>
964
965           <para role="7.2">The &man.re.4; driver has been improved.  It now
966             detects the link status.  A new loader tunable
967             <varname>hw.re.prefer_iomap</varname> has been added, to
968             disable memory register mapping.  This tunable is
969             <literal>0</literal> for all controllers except RTL8169SC
970             family.</para>
971
972           <para role="7.2">The &man.rl.4; driver has been improved.  It now
973             detects the link status and a bug which prevented it from
974             working on systems with more than 4GB memory has been
975             fixed.</para>
976
977           <para role="7.2">A bug in &man.sis.4; on VLAN tagged frame handling has
978             been fixed.</para>
979
980           <para role="7.2">The &man.txp.4; driver now works on all supported
981             architectures.  Support has been added for &man.altq.4;,
982             WoL, checksum offload when VLAN enabled, and link state
983             change handling has been improved, and new sysctl
984             variables
985             <varname>dev.txp.<replaceable>N</replaceable>.stats</varname>
986             for MAC statistics have been added.  New sysctl variables
987             <varname>dev.txp.<replaceable>N</replaceable>.process_limit</varname>
988             has been added, to control how many received frames should
989             be served in Rx handler (set to 64 by default and valid
990             ranges are 16 to 128 in unit of frames).  The firmware has
991             been updated to the latest version.</para>
992
993           <para role="7.1">The &man.ae.4; driver has been added to provide
994             support for the Attansic/Atheros L2 FastEthernet
995             controllers.</para>
996
997           <para role="7.1">The &man.jme.4; driver has been added to
998             provide support for PCIe adapters based on JMicron JMC250
999             gigabit Ethernet and JMC260 fast Ethernet controllers.</para>
1000
1001           <para role="7.1">The &man.age.4; driver has been added to
1002             provide support for Attansic/Atheros L1 gigabit Ethernet
1003             controller.</para>
1004
1005           <para role="7.1">The &man.malo.4; driver has been added to
1006             provide support for Marvell Libertas 88W8335 based PCI network
1007             adapters.</para>
1008
1009           <para role="7.1">The bm(4) driver has been added to
1010             provide support for Apple Big Mac (BMAC) Ethernet controller,
1011             found on various Apple G3 models.</para>
1012
1013           <para role="7.1">The et(4) driver has been added to
1014             provide support for Agere ET1310 10/100/Gigabit Ethernet
1015             controller.</para>
1016
1017           <para role="7.1">The &man.glxsb.4; driver has been added
1018             to provide support for the Security Block in AMD Geode LX
1019             processors.</para>
1020
1021           <para role="7.1">The &man.ale.4; driver has been added to provide support
1022             for Atheros AR8121/AR8113/AR8114 Gigabit/Fast Ethernet controllers.
1023             This driver is not enabled in <filename>GENERIC</filename>
1024             kernels for this release.</para>
1025
1026           <para role="7.1">The &man.em.4; driver has been split into two drivers
1027             with some common parts.  The &man.em.4; driver will continue
1028             to support adapters up to the 82575, as well as new
1029             client/desktop adapters.  A new &man.igb.4; driver
1030             will support new server adapters.</para>
1031
1032           <para role="7.1">The &man.hme.4; driver has been improved.</para>
1033
1034           <para role="7.1">A bug in some of the &man.miibus.4; supported drivers that
1035             IEEE 802.3 auto-negotiation was performed in a wrong order,
1036             has been fixed.  Now it chooses the correct technologies
1037             supported by IEEE 802.3 in the order described in Annex
1038             28B.3.</para>
1039
1040           <para role="7.1">A workaround has been added for a bug in TCP/UDP
1041             hardware checksum offload of the &man.msk.4; driver for
1042             short frames.  Note that for frames that requires hardware
1043             VLAN tag insertion, the checksum offload workaround does not
1044             work due to changes of checksum offset in mbuf after the
1045             VLAN tag.  So disabling hardware checksum offload for the
1046             VLAN interface is needed in such cases.</para>
1047
1048           <para role="7.1">The &man.ndis.4; NDIS miniport driver wrapper has been
1049             improved.</para>
1050
1051           <para role="7.1">The &man.sf.4; driver has been improved and now supports
1052             checksum offloading.</para>
1053
1054           <para role="7.1">The &man.stge.4; driver now supports WOL (Wake on
1055             LAN).</para>
1056
1057           <para role="7.1">The &man.vr.4; driver has been improved.</para>
1058
1059           <para role="7.1" arch="amd64,i386"> The &man.wpi.4; driver has
1060             been updated to include a number of stability fixes.</para>
1061         </sect4>
1062       </sect3>
1063
1064       <sect3 id="net-proto">
1065         <title>Network Protocols</title>
1066
1067         <para role="8.0">The &os; netisr framework has been
1068           reimplemented for parallel threading support.  This is a
1069           kernel network dispatch interface which allows device
1070           drivers (and other packet sources) to direct packets to
1071           protocols for directly dispatched or deferred processing.
1072           The new implementation supports up to one netisr thread per
1073           CPU, and several benchmarks on SMP machines show substantial
1074           performance improvement over the previous version.</para>
1075
1076         <para role="8.0">A bug in the &man.gif.4; that EtherIP packets
1077           sent by combination of &man.if.bridge.4; and &man.gif.4;
1078           have a reversed version field has been fixed.  If you need
1079           to communicate with older &os; releases via EtherIP, use new
1080           flags <literal>accept_rev_ethip_ver</literal>
1081           and <literal>send_rev_ethip_ver</literal> to control
1082           handling the reversed version field.  These can be set by
1083           &man.ifconfig.8 utility to &man.gif.4; interfaces.  The
1084           EtherIP implementation found on &os; 6.1, 6.2, 6.3, 7.0,
1085           7.1, and 7.2 had an interoperability issue because it sent
1086           the incorrect EtherIP packets and discarded the correct
1087           ones.  For more details, see &man.gif.4; manual page.</para>
1088
1089         <para role="8.0">The IGMPv3 and SSM (Source-Specific Multicast)
1090           including IPv6 SSM and MLDv2 have been added.  Although the
1091           old KAME MLDv2 hooks have been replaced with the new
1092           implementation, the related kernel programming interfaces have been
1093           preserved.</para>
1094
1095         <para role="8.0">The multicast routing code has been improved
1096           and the IPv4 and IPv6 support has been split.</para>
1097
1098         <para role="8.0">The &os; now supports the upcoming Wireless
1099           Mesh standard, IEEE 802.11s.  The current implementation is
1100           based on the March 2009 D3.0 draft version.</para>
1101
1102         <para role="8.0">The wireless network support layer (net80211)
1103           now uses pseudo-interfaces named as
1104           <literal>wlan<replaceable>N</replaceable></literal> instead
1105           of a device driver name like <literal>em0</literal>
1106           directly.  The
1107           <literal>wlan<replaceable>N</replaceable></literal>
1108           interface is created by &man.ifconfig.8; as an instance of
1109           the parent interface and used for actual communication
1110           similar to &man.vlan.4, IEEE 802.1Q VLAN network interface.
1111           Note that multiple instances (to realize multiple BSSes with
1112           a single AP device, for example) can be created if the
1113           parent interface supports it.  For more details, see
1114           &man.ifconfig.8; manual page.</para>
1115
1116         <para role="8.0">The net80211 layer now supports TDMA for long
1117           distance point-to-point links using &man.ath.4;
1118           devices.</para>
1119
1120         <para role="8.0">An infrastructure for caching flows as a means
1121           of accelerating L2 and L3 lookups has been added.  This is
1122           called <quote>flow table</quote> and enabled by default on
1123           &arch.amd64 and &arch.i386; platforms.  This also provides
1124           stateful load balancing when used
1125           with <literal>RADIX_MPATH</literal>
1126
1127         <para role="8.0">The &os; L2 address translation table has been
1128           reimplemented to reduce lock contention on parallel
1129           processing and simplify the routing logic.  The new
1130           implementation has L2 address translation tables for both
1131           ARP (for IPv4) and NDP (for IPv6) which are separated from
1132           the L3 routing tables, and supports flow table caches for both
1133           the routing table and the L2 information.  One of the
1134           user-visible changes is that a concept of cloned route (a
1135           route generated by an entry
1136           with <literal>RTF_CLONING</literal> flag) is deprecated.
1137           This means routing flags <literal>RTF_CLONING</literal>,
1138           <literal>RTF_WASCLONE</literal>,
1139           and <literal>RTF_LLINFO</literal> are obsolete.</para>
1140
1141         <para role="8.0">The &man.ipsec.4; subsystem now supports
1142           NAT-Traversal (RFC 3948).  This is disabled by default.  To
1143           enable this add the following kernel option and rebuild the
1144           kernel:</para>
1145
1146         <programlisting>device  crypto
1147 options IPSEC
1148 options IPSEC_NAT_T</programlisting>
1149
1150         <para role="7.2">IPv4 source address selection for unbound sockets has
1151           been implemented as follows:</para>
1152
1153         <orderedlist>
1154           <listitem>
1155             <para>If we found a route, use the address corresponding
1156               to the outgoing interface.</para>
1157           </listitem>
1158
1159           <listitem>
1160             <para role="7.2">Otherwise we assume the foreign address is reachable
1161               on a directly connected network and try to find a
1162               corresponding interface to take the source address
1163               from.</para>
1164           </listitem>
1165
1166           <listitem>
1167             <para role="7.2">As a last resort use the default jail address.</para>
1168           </listitem>
1169         </orderedlist>
1170
1171         <para role="7.2">This also changes the semantics of selecting the IP for
1172           processes within a &man.jail.8; as it now uses the same
1173           logic as outside the &man.jail.8;.</para>
1174
1175         <para role="7.2">The TCP MD5 Signature Option (RFC 2385) for IPv6 has
1176           been implemented in the same way it has been implemented for
1177           IPv4.</para>
1178
1179         <para role="7.2">The &man.ng.netflow.4; Netgraph node now includes
1180          support for generating egress netflow instead or in addition
1181          to ingress.  An <literal>NGM_NETFLOW_SETCONFIG</literal>
1182          control message has been added to control the new
1183          functionality.</para>
1184
1185         <para role="7.2">The &man.tap.4; Ethernet tunnel software network
1186           interface now supports a new <literal>TAPGIFNAME</literal>
1187           character device ioctl.  This is a convenient shortcut to
1188           obtain the network interface name using a file descriptor to
1189           a character device.</para>
1190
1191         <para role="7.2">The &man.tap.4; now supports
1192           <literal>SIOCSIFMTU</literal> ioctl to set a higher MTU than
1193           1500 (ETHERMTU).  This allows &man.tap.4; devices to be
1194           added to the same bridge (which requires all interface
1195           members to have the same MTU) with an interface configured
1196           for jumbo frames.</para>
1197
1198         <para role="7.2">The domains list for handling the list of supported
1199           domains in the &man.unix.4; (UNIX domain protocol family)
1200           subsystem is now MPSAFE.</para>
1201
1202         <para role="7.1">The &man.arp.8; utility now
1203           supports <literal>reject</literal>
1204           and <literal>blackhole</literal> keywords.  In the entry
1205           marked as <literal>reject</literal>, traffic to the host will
1206           be discarded and the sender will be notified the host is
1207           unreachable.  In the entry marked as <literal>blackhole</literal>,
1208           traffic is discarded but the sender is not notified.</para>
1209
1210         <para role="7.1">The &man.bpf.4; now supports an
1211           ioctl <literal>BIOCSETFNR</literal>.  This is just like
1212           <literal>BIOCSETF</literal>, but it does not drop all the
1213           packets buffered on the descriptor and reset the
1214           statistics.</para>
1215
1216         <para role="7.1">The &man.if.bridge.4; interface can limit the
1217           number of source MACs that can be behind a bridge interface
1218           via <literal>ifmaxaddr</literal> parameter of
1219           &man.ifconfig.8;.</para>
1220
1221         <para role="7.1">A bug in the &man.carp.4; interface configuration which
1222           leads to a system panic has been fixed.</para>
1223
1224         <para role="7.1">The &man.dummynet.4; subsystem now supports
1225           <literal>fast</literal> mode operation which allows certain
1226           packets to bypass the dummynet scheduler.  This can achieve
1227           lower latency and lower overhead when the packet flow is under
1228           the pipe bandwidth, and eliminate recursion in the subsystem.
1229           The new sysctl variable
1230           <varname>net.inet.ip.dummynet.io_fast</varname> has been
1231           added to enable this feature.</para>
1232
1233         <para role="7.1">The &man.enc.4; interface now supports sysctl
1234           variables to control whether the firewalls or &man.bpf.4;
1235           will see inner and outer headers or just inner or outer
1236           headers for incoming and outgoing IPsec packets.</para>
1237
1238         <para role="7.1">The &man.gre.4; now supports
1239           ioctls <literal>GRESKEY</literal>
1240           and <literal>GREGKEY</literal> which allows set or get GRE
1241           key used for outgoing packets.</para>
1242
1243         <para role="7.1">A bug in the &man.ipsec.4; subsystem that PMTU was broken
1244           in those cases when there was a route with a lower MTU than
1245           the MTU of the outgoing interface, has been fixed.</para>
1246
1247         <para role="7.1">The netatm subsystem has been removed due to
1248           lacking multiprocessor support.</para>
1249
1250         <para role="7.1">The &man.ng.nat.4; now supports redirect functionality
1251           in <filename>libalias</filename>.  For more details, see the
1252           manual page.</para>
1253
1254         <para role="7.1">The &man.ng.pptpgre.4; now supports multiple hooks like
1255           &man.ng.l2tp.4;, to use one pair of pptpgre and ksocket nodes for all
1256           calls between two peers.</para>
1257
1258         <para role="7.1">The &man.resolver.3; now allows underscore in domain
1259           names.  Although this is a violation of RFC 1034 [STD 13], it is
1260           accepted by certain name servers as well as other popular operating
1261           systems' resolver library.</para>
1262
1263         <para role="7.1">A socket option <literal>TCP_CONGESTION</literal> for TCP
1264           sockets has been added.  This is for setting and retrieving the
1265           congestion control algorithm.  The name used is to allow
1266           compatibility with Linux.</para>
1267
1268         <para role="7.1">The &man.rwlock.9; has been used throughout
1269           the <varname>inpcbinfo</varname> and <varname>inpcb</varname>
1270           infrastructure, and protocols that depend on that
1271           infrastructure, including UDP, TCP, and IP raw sockets to
1272           reduce the lock contentions.</para>
1273
1274         <para role="7.1">The &os; now supports multiple routing tables. To
1275           enable this, the following steps are needed:</para>
1276
1277         <itemizedlist role="7.1">
1278           <listitem>
1279             <para>Add the following kernel configuration option and
1280               rebuild the kernel.  The <literal>2</literal> is the number
1281               of FIB (Forward Information Base, synonym for a routing
1282               table here).  The maximum value is 16.</para>
1283
1284             <programlisting>options     ROUTETABLES=2</programlisting>
1285
1286             <para>The procedure for rebuilding the &os; kernel is
1287               described in the <ulink
1288                                   url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html#AEN30408">&os;
1289                 Handbook</ulink>.</para>
1290
1291             <para>This number can be modified on boot time.  To do so, add
1292               the following to <filename>/boot/loader.conf</filename> and
1293               reboot the system:</para>
1294
1295             <programlisting>net.fibs=6</programlisting>
1296           </listitem>
1297
1298           <listitem>
1299             <para>Set a loader tunable <varname>net.my_fibnum</varname> if
1300               needed.  This means the default number of routing tables.
1301               If not specified, <literal>0</literal> will be used.</para>
1302           </listitem>
1303
1304           <listitem>
1305             <para>Set a loader tunable
1306               <varname>net.add_addr_allfibs</varname> if needed.  This
1307               enables to add routes to all FIBs for new interfaces by
1308               default.  When this is set to <literal>0</literal>, it will
1309               only allocate routes on interface changes for the FIB of the
1310               caller when adding a new set of addresses to an interface.
1311               Note that this tunable is set to <literal>1</literal> by
1312               default.</para>
1313           </listitem>
1314         </itemizedlist>
1315
1316         <para>To select one of the FIBs, the new &man.setfib.1; utility
1317           can be used.  This set an associated FIB with the process.  For
1318           example:</para>
1319
1320         <screen>&prompt.root; setfib -3 ping target.example.com</screen>
1321
1322         <para>The FIB #3 will be used for the &man.ping.8; command.</para>
1323
1324         <para>The FIB which the packet will be associated with will be
1325           determined in the following rules:</para>
1326
1327         <itemizedlist role="7.1">
1328           <listitem>
1329             <para>All packets which have a FIB associated with them will
1330               use the FIB.  If not, FIB #0 will be used.</para>
1331           </listitem>
1332
1333           <listitem>
1334             <para>A packet received on an interface for forwarding uses
1335               FIB #0.</para>
1336           </listitem>
1337
1338           <listitem>
1339             <para>A TCP listen socket associated with an FIB will generate
1340               accept sockets which are associated with the same FIB.</para>
1341           </listitem>
1342
1343           <listitem>
1344             <para>A packet generated in response to other packet uses the
1345               FIB associated with the packet being responded to.</para>
1346           </listitem>
1347
1348           <listitem>
1349             <para>A packet generated on tunnel interfaces such as
1350               &man.gif.4; and &man.tun.4; will be encapsulated using the
1351               FIB of the process which set up the tunnel.</para>
1352           </listitem>
1353
1354           <listitem>
1355             <para>Routing messages will be associated with the process's
1356               FIB.</para>
1357           </listitem>
1358         </itemizedlist>
1359
1360         <para>Also, the &man.ipfw.8; now supports an action rule
1361           <literal>setfib</literal>.  The following action:</para>
1362
1363         <programlisting>setfib <replaceable>fibnum</replaceable></programlisting>
1364
1365         <para>will make the matched packet use the FIB specified in
1366           <replaceable>fibnum</replaceable>.  The rule processing
1367           continues at the next rule.</para>
1368       </sect3>
1369
1370       <sect3 id="disks">
1371         <title>Disks and Storage</title>
1372
1373         <para role="8.0">The &os; CAM SCSI subsystem (&man.cam.4;) now
1374           includes experimental support for ATA/SATA/AHCI-compliant
1375           devices.  This is disabled by default.  To enable this,
1376           adding the following kernel options to your kernel
1377           configuration file and rebuild the kernel:</para>
1378
1379         <programlisting>device    ahci
1380 device    siis</programlisting>
1381
1382         <para role="8.0">The current implementation supports
1383           AHCI-compliant controllers and SiliconImage
1384           SiI3124/SiI3132/SiI3531 controllers. The device node of an
1385           ATA drive is <literal>ada</literal> and an ATAPI
1386           drive is <literal>cd</literal>.</para>
1387
1388         <para role="8.0">The &os; iSCSI initiator implementation has
1389           been improved and supports IPv6.</para>
1390
1391         <para role="8.0">A userland utility &man.mfiutil.8; for the
1392           &man.mfi.4; devices has been added.  This includes basic
1393           features to monitor controller, array, and drive status,
1394           change basic attributes, create/delete arrays and spares,
1395           and flush the controller firmware.  Note that this is a
1396           small utility, not a replacement of MegaCLI in the Ports
1397           Collection which is supported officially and provides more
1398           functionality.</para>
1399
1400         <para role="8.0">A userland utility &man.mptutil.8; for the
1401           &man.mpi.4; devices has been added.  This includes basic
1402           features to monitor controller, array, and drive status,
1403           change basic attributes, and create/delete arrays and
1404           spares.</para>
1405
1406         <para role="8.0">The &man.siis.4; driver has been added to
1407           provide support for SiliconImage SiI3124/3132/3531 SATA2
1408           controllers.  It supports Serial ATA and ATAPI devices, port
1409           multipliers (including FIS-based switching), hardware
1410           command queues (31 commands per port) and Native Command
1411           Queuing.</para>
1412
1413         <para role="7.2">The &man.ata.4; driver now supports Marvell PATA M88SX6121.</para>
1414
1415         <para role="7.2">The &man.ata.4; driver now recognizes nForce MCP67 and
1416           MCP73 SATA controllers as AHCI.</para>
1417
1418         <para role="7.2">The &man.ataraid.4; driver now includes preliminary support
1419           for DDF metadata found on Adaptec HostRAID controllers.
1420           Note that spares and rebuilds are not supported yet.</para>
1421
1422         <para role="7.2">The &man.cam.4; SCSI subsystem now supports a new sysctl
1423           variable <varname>kern.cam.cd.retry_count</varname>.  This
1424           controls the number of retries for the CD media.  When
1425           trying to read scratched or damaged CDs and DVDs, the
1426           default mechanism is sub-optimal, and programs like
1427           <application>ddrescue</application> do much better if you
1428           turn off the retries entirely since their algorithms do it
1429           by themselves.  This value is set to <literal>4</literal>
1430           (for a total of 5 attempts) by default.  Setting it to
1431           <literal>0</literal> turns off all retry attempts.</para>
1432
1433         <para role="7.2">A bug in the &man.ciss.4; driver which caused low
1434           <quote>max device openings</quote> count and led to poor
1435           performance has been fixed.</para>
1436
1437         <para role="7.2">The &man.glabel.8; GEOM class now supports a new
1438           UFS-based label called <literal>ufsid</literal> that can be
1439           used to reference UFS-carrying devices by the unique file
1440           system ID.  This file system ID is automatically generated
1441           and detected when the &man.glabel.8; GEOM class is enabled.  An
1442           example of this new label is:
1443           <filename>/dev/ufsid/48e69c8b5c8e1b43</filename>.  The
1444           benefit of using GEOM labels in general is to avoid problems
1445           of device renaming when shifting drives or
1446           controllers.</para>
1447
1448         <para role="7.2">The &man.gjournal.8; GEOM class now supports the root
1449           file system.  Previously, an unclean shutdown would make it
1450           impossible to mount the root file system at boot.</para>
1451
1452         <para role="7.2">The &man.gpart.8; utility has been updated.  The APM
1453           scheme now supports Tivo Series 1 partitions (read only), a
1454           new EBR scheme to support Extended Boot Records has been
1455           added, the BSD scheme now support bootcode, and bugs in the
1456           PC98 and VTOC8 schemes have been fixed.</para>
1457
1458         <para role="7.2">An issue in &man.gvinum.8; with access permissions
1459           to underlying disks used by a gvinum plex has been fixed.
1460           If the plex is a raid5 plex and is being written to, parity data might
1461           have to be read from the underlying disks, requiring them to be opened for
1462           reading as well as writing.</para>
1463
1464         <para role="7.2">The &man.hptmv.4; driver has been updated to version
1465           1.16 from HighPoint.</para>
1466
1467         <para role="7.2">The &man.mmc.4; and &man.mmcsd.4; drivers now support MMC
1468           and SDHC cards, high speed timing, wide bus, and multiblock
1469           transfers.</para>
1470
1471         <para role="7.2" arch="sparc64">The &man.mpt.4; driver is now in the
1472           <filename>GENERIC</filename> kernel.</para>
1473
1474         <para role="7.2">The &man.sdhci.4; driver has been added.  This supports
1475           PCI devices with class 8 and subclass 5 according to the SD
1476           Host Controller Specification.</para>
1477
1478         <para role="7.2">The &man.sdhci.4; driver now supports kernel dumping and
1479           a sysctl variable <varname>hw.sdhci.debug</varname> for debug
1480           level.</para>
1481
1482         <para role="7.2">The &man.twa.4; driver now supports 64-bit DMA.</para>
1483
1484         <para role="7.2">The &man.mmc.4; &man.mmcsd.4;, and &man.sdhci.4; driver
1485           are now included as kernel modules.</para>
1486
1487         <para role="7.1">The &man.aac.4; driver now supports 64-bit array support
1488           for RAIDs larger than 2TB and simultaneous opens of the device
1489           for issuing commands to the controller.</para>
1490
1491         <para role="7.1">The &man.ata.4; driver now supports a loader variable
1492           <varname>hw.ata.ata_dma_check_80pin</varname>.  This can be
1493           used to disable the 80pin cable check on broken systems such
1494           as certain laptops and Soekris boards.  The default value is
1495           <literal>1</literal>.</para>
1496
1497         <para role="7.1">A data corruption problem of the &man.ata.4; driver on
1498           ServerWorks HT1000 chipsets has been fixed.</para>
1499
1500         <para role="7.1">The &man.ciss.4; driver now supports a loader tunable
1501           <varname>hw.ciss.nop_message_heartbeat</varname> for
1502           NOP-message polling in <function>ciss_periodic()</function>.
1503           This can be used as a workaround for
1504           <literal>ADAPTER HEARTBEAT FAILED</literal> issue.
1505           The default value is <literal>0</literal> (disabled).</para>
1506
1507         <para role="7.1">The <filename>geom_part</filename> GEOM class can be built
1508           as a kernel module.</para>
1509
1510         <para role="7.1">The <filename>geom_linux_lvm</filename> GEOM class can be
1511           built as a kernel module.</para>
1512
1513         <para role="7.1">The &man.hptrr.4; driver has been updated to version 1.2
1514           from Highpoint.</para>
1515
1516         <para role="7.1">A buffer overflow in the &man.iir.4; driver has been
1517           fixed.  This likely fixes a great number of weird problems
1518           that have been reported with this driver.</para>
1519
1520         <para role="7.1">The &man.mpt.4; driver now supports <literal>mpt_user</literal>
1521           personality.</para>
1522
1523         <para role="7.1">The &man.rr232x.4; driver has been superseded by
1524           &man.hptrr.4; driver.</para>
1525
1526         <para role="7.1">The &man.twa.4; driver has been improved with regard to
1527           stability on machines with a plenty of memory and high CPU
1528           load.</para>
1529       </sect3>
1530
1531       <sect3 id="fs">
1532         <title>File Systems</title>
1533
1534         <para role="8.0"><quote>dangerously dedicated</quote> mode for
1535           the UFS file system is no longer supported.</para>
1536
1537         <important>
1538           <para>Such disks will need to be reformatted to work with
1539             this release.</para>
1540         </important>
1541
1542         <para role="8.0">The &man.gvinum.8; now supports commands
1543           found in the old vinum implementation including
1544           <command>attach</command>, <command>detach</command>,
1545           <command>start</command>, <command>stop</command>,
1546           <command>concat</command>, <command>mirror</command>,
1547           <command>stripe</command>, and
1548           <command>raid5</command>.</para>
1549
1550         <para role="8.0">The &man.gvinum.8; now
1551           supports <literal>grow</literal> command to make it easier
1552           for users to extend plexes without having to understand all
1553           of the implementation internals.</para>
1554
1555         <para role="8.0">The &os; NFS subsystem now
1556           supports <literal>RPCSEC_GSS</literal> authentication on
1557           both the client and server. This replaces the RPC
1558           implementation of the NFS client and server with the newer
1559           RPC implementation originally developed to support the NFS
1560           Lock Manager.  It supports both the new RPC implementation
1561           and the older legacy implementation inherited from the
1562           original NFS codebase and the default is to use the new one.
1563           To use <literal>RPCSEC_GSS</literal> on either client or
1564           server, you must build a kernel which includes
1565           the <literal>KGSSAPI</literal> option and the &man.crypto.4;
1566           device.  For more details, see &man.gssd.8; manual
1567           page.</para>
1568
1569         <para role="8.0">The &os; NFS subsystem now includes a new,
1570           experimental implementation with support for NFSv2, NFSv3, and
1571           NFSv4.  This is not enabled by default.  To enable this, add
1572           the following kernel options to your kernel configuration
1573           file and rebuild the kernel:</para>
1574
1575         <programlisting role="8.0">options      NFSCL   # for NFS client
1576 options NFSD    # for NFS server</programlisting>
1577
1578         <para role="8.0">The fstype for &man.mount.8; program is
1579           <literal>newnfs</literal>, and &man.mount.newnfs.8; program
1580           has also been added.  The old, unmaintained NFSv4 client
1581           based on an implementation from the University of Michigan was
1582           removed from the &os; source tree.</para>
1583
1584         <para role="8.0">The &os; NFS subsystem now uses TCP as the
1585           default transport.</para>
1586
1587         <para role="8.0">The shared vnode locking for pathname lookups
1588           in the &man.VFS.9; subsystem has been improved.  This is
1589           enabled by default.  Setting a sysctl variable
1590           <varname>vfs.lookup_shared</varname> to <literal>0</literal>
1591           disables it.  Note that the
1592           <literal>LOOKUP_SHARED</literal> kernel option equivalent to
1593           the sysctl variable has been removed.</para>
1594
1595         <para role="8.0">The <application>ZFS</application> file system
1596           has been updated to version 13.  The changes include ZFS
1597           operations by a regular user, L2ARC, ZFS Intent Log on
1598           separated disks (slog), sparse volumes, and so on.</para>
1599
1600         <para role="7.2">The semantics of &man.acl.3; extended access control
1601           lists has been changed as follows:</para>
1602
1603         <itemizedlist role="7.2">
1604           <listitem>
1605             <para>The inode modification time (mtime) is not updated
1606               when extended attributes are added, modified, or removed.</para>
1607           </listitem>
1608
1609           <listitem>
1610             <para>The inode access time (atime) is not updated
1611               when extended attributes are queried.</para>
1612           </listitem>
1613         </itemizedlist>
1614
1615         <para role="7.2">The &os; NFS file system now supports a sysctl variable
1616           <varname>vfs.nfs.prime_access_cache</varname> to determine
1617           whether or not <function>nfs_getattr()</function> will use
1618           an ACCESS RPC to prime the access cache instead of a simple
1619           GETATTR RPC.  This is because on many NFS servers an ACCESS
1620           RPC is much more expensive to service than a GETATTR RPC for
1621           files in an NFSv3 mount.  The sysctl variable is enabled by
1622           default to maintain the previous behavior.</para>
1623
1624         <para role="7.2">The &os; UDF file system now supports a fifo.</para>
1625
1626         <para role="7.1">The &man.fdescfs.5; is now MPSAFE.</para>
1627
1628         <para role="7.1">The &man.gpart.8; now supports BSD disklabels (option
1629           <literal>GEOM_PART_BSD</literal>) and
1630           VTOC8 disklabels (option
1631           <literal>GEOM_PART_VTOC8</literal>).</para>
1632
1633         <para role="7.1">The &man.gvinum.8; now accepts <replaceable>volume</replaceable>
1634           parameter when creating a plex.</para>
1635
1636         <para role="7.1">A pathname lookup bug of a UNIX domain socket in the
1637           <filename>unionfs(7)</filename> has been fixed.</para>
1638       </sect3>
1639     </sect2>
1640
1641     <sect2 id="userland">
1642       <title>Userland Changes</title>
1643
1644       <para role="8.0">The GCC stack protection (also known as
1645         ProPolice) has been enabled in the &os; base system.</para>
1646
1647       <para role="8.0">A BSD-licensed &man.ar.1; utility has been added
1648         in favor of one in <application>GNU binutils</application> and
1649         it is now the default utility for building the &os; base
1650         system.</para>
1651
1652       <para role="8.0">The &man.awk.1; utility now supports 64 files.
1653         The upper limit was 20 in prior releases.</para>
1654
1655       <para role="8.0">The &man.bsnmpd.1; program now supports OIDs
1656         for ZFS.</para>
1657
1658       <para role="8.0">The &man.camcontrol.8; program now supports a
1659         new modularized ATA kernel module and various ATA
1660         commands.</para>
1661
1662       <para role="8.0">The &man.cat.1; and &man.cp.1; now use a larger
1663         buffer if the number of pages of the physical memory on the
1664         system is grater than 32k.  This reduces the number of context
1665         switches.</para>
1666
1667       <para role="8.0">A new BSD-licensed &man.cpio.1; utility has been
1668         added in favor of <application>GNU cpio</application> and it
1669         is now the default utility in the &os; base system.</para>
1670
1671       <para role="8.0">A script for the &man.crashinfo.8; utility for
1672         simple analysis of crash dump has been added.  It generates a
1673         text file containing the output of several commands run against
1674         the core dump such as &man.kgdb.1; (stack trace), &man.ps.1;,
1675         &man.netstat.1;,
1676         &man.vmstat.8;,
1677         &man.iostat.8;,
1678         &man.dmesg.8;,
1679         and
1680         &man.fstat.1;.</para>
1681
1682       <para role="8.0">The &man.df.1; utility's <option>-h</option>
1683         flag now supports displaying inode counts in a human-readable
1684         format when a flag <option>-i</option> is specified.</para>
1685
1686       <para role="8.0">The &man.df.1; utility now supports
1687         a <option>-T</option> flag to display file system type in each
1688         entry.</para>
1689
1690       <para role="8.0">A bug in the &man.dhclient.8; that can create a
1691         malformed <filename>/etc/resolv.conf</filename> has been
1692         fixed.</para>
1693
1694       <para role="8.0">The &man.dhclient.8; now uses an
1695         <option>-n</option> flag when invoking &man.route.8; command.
1696         This eliminates a long delay in the case that it gets a lease
1697         but DNS service is not working.</para>
1698
1699       <para role="8.0">The &man.dhclient.8; utility now
1700         uses <literal>68</literal> (bootpc) as the source port for
1701         unicast <literal>DHCPREQUEST</literal> packets instead of
1702         allowing the protocol stack to pick a random source port.
1703         This fixes the behavior where &man.dhclient.8; would never
1704         transition from <literal>RENEWING</literal>
1705         to <literal>BOUND</literal> without going
1706         through <literal>REBINDING</literal> in some networks which
1707         has a tight policy on DHCP spoofing.</para>
1708
1709       <para role="8.0">The &man.env.1; utility now supports a
1710         <option>-u <replaceable>name</replaceable></option> option
1711         that completely unsets the given name instead of setting it to
1712         a null value.</para>
1713
1714       <para role="8.0">The &man.find.1; utility now supports a number
1715         of primaries found in <application>GNU find</application>
1716         including <option>-ignore_readdir_race</option>,
1717         <option>-noignore_readdir_race</option>,
1718         <option>-noleaf</option>, <option>-gid</option>,
1719         <option>-uid</option>, <option>-wholename</option>,
1720         <option>-iwholename</option>, <option>-mount</option>,
1721         <option>-d</option>, <option>-lname</option>,
1722         <option>-ilname</option>, <option>-quit</option>,
1723         <option>-samefile</option>, and <option>-true</option>.</para>
1724
1725       <para role="8.0">The &man.fsck.8; utility now supports a
1726         <option>-r</option> flag to free up excess unused inodes.
1727         Decreasing the number of preallocated inodes reduces the
1728         running time of future runs of fsck and frees up space that
1729         can allocated to files. This flag is ignored when running in
1730         preen mode.</para>
1731
1732       <para role="8.0">The &man.freebsd-update.8; now supports backing
1733         up the old kernel when installing a new kernel.  The backup
1734         kernel will be written
1735         to <filename>/boot/kernel.old</filename> if the directory does
1736         not exist or the directory was created by freebsd-update in a
1737         previous backup.  Otherwise the &man.freebsd-update.8; will
1738         generate a new directory name for use by the backup.  This is
1739         enabled by default.</para>
1740
1741       <para role="8.0">The &man.gpt.8; program has been removed in
1742         favor of &man.gpart.8;.</para>
1743
1744       <para role="8.0">The &man.gzip.1; utility now supports
1745         uncompressing files which are created
1746         by <application>pack</application> found in some commercial
1747         UNIX-like systems.</para>
1748
1749       <para role="8.0">The &man.i2c.8; utility for diagnostics of I2C has
1750         been added.</para>
1751
1752       <para role="8.0">The &man.ifconfig.8; now
1753         supports <option>vnet</option> and <option>-vnet</option>
1754         option to allow moving interfaces between jails with
1755         vimage.</para>
1756
1757       <para role="8.0">A BSD-licensed <filename>libdwarf</filename>
1758         library has been added for DTrace clients.</para>
1759
1760       <para role="8.0">The <filename>libmsun</filename> library now supports
1761         <function>acosl()</function>,
1762         <function>asinl()</function>,
1763         <function>atanl()</function>,
1764         <function>atan2l()</function>,
1765         <function>cargl()</function>,
1766         <function>csqrtl()</function>,
1767         <function>fmodl()</function>,
1768         <function>hypotl()</function>,
1769         and
1770         <function>remquol()</function>
1771         functions.</para>
1772
1773       <para role="8.0">The <filename>libproc</filename>
1774         library has been added for DTrace clients.</para>
1775
1776       <para role="8.0">The &man.mtest.8; utility now supports IPv6.</para>
1777
1778       <para role="8.0">The &man.mount.8; program now supports
1779         an <option>-o
1780         mountprog=<replaceable>filename</replaceable></option> option
1781         to allow an alternative program to be used for mounting a file
1782         system.  This is useful for non-&man.nmount.2; based file
1783         systems such as FUSE.</para>
1784
1785       <para role="8.0">The &man.nfscbd.8;, &man.nfsuserd.8;,
1786         &man.nfsdumpstate.8;, and &man.nfsrevoke.8; utilities for the
1787         new NFSv4 subsystem has been added.</para>
1788
1789       <para role="8.0">The &man.pmcannotate.8; utility has been added.
1790         This prints out sources of a tool (in C or assembly) with
1791         inlined profiling informations retrieved by a prior
1792         &man.pmcstat.8; analysis.</para>
1793
1794       <para role="8.0">The &man.route.8; utility now
1795         supports <command>show</command>,
1796         <command>weights</command>, and <command>sticky</command>
1797         commands.  For more details, see the &man.route.8; manual
1798         page.</para>
1799
1800       <para role="8.0">The &man.rtld.1; now supports a new
1801         environment variable <varname>LD_ELF_HINTS_PATH</varname> for
1802         overriding the rtld hints file.  This environment variable
1803         would be ignored if the process uses setuid and/or setgid.
1804         This feature gives a convenient way to use a custom set of
1805         shared library that is not in the default location.</para>
1806
1807       <para role="8.0">The &man.rtld.1; now supports the dynamic
1808         string token substitution in the rpath and soneeded pathes. The
1809         <varname>$ORIGIN</varname>,
1810         <varname>$OSNAME</varname>,
1811         <varname>$OSREL</varname>
1812         and <varname>$PLATFORM</varname>
1813         tokens are supported.  Enabling
1814         the substitution requires <literal>DF_ORIGIN</literal>
1815         flag in <literal>DT_FLAGS</literal> or
1816         <literal>DF_1_ORIGIN</literal> if
1817         <literal>DF_FLAGS_1</literal>, that may be set
1818         with <option>-z</option> origin <application>GNU
1819         ld</application> flag.  This translation is unconditionally
1820         disabled for setuid/setgid processes.
1821         The <varname>$ORIGIN</varname> translation relies on
1822         the <literal>AT_EXECPATH</literal> auxinfo supplied by the
1823         &os; kernel.</para>
1824
1825       <para role="8.0">It is no longer possible to create UFS
1826         filesystems in <quote>dangerously dedicated</quote> mode using
1827         &man.sysinstall.8; since this mode is no longer supported.</para>
1828
1829       <para role="8.0">&man.sysinstall.8; menus have been simplified
1830         to reduce confusion and duplication with other parts of the
1831         system.  The <application>Xorg</application> window system
1832         should be installed just like any other package.
1833         Configuration of <application>Linux</application> and
1834         <application>OSF/1</application> emulation should be done via
1835         kernel rebuilds.  Support for installation from tape media was
1836         removed as it was believed to be broken.  Obsolete code to
1837         support <literal>OLDCARD</literal> was also
1838         removed.</para>
1839
1840       <para role="8.0">&man.sysinstall.8; now understands how to use
1841         unsliced USB drives as installation source media via
1842         <filename>/dev/da<replaceable>X</replaceable><replaceable>a</replaceable></filename></para>
1843
1844       <para role="8.0">&man.sysinstall.8; now recognizes the new
1845         <filename>/dev/ada<replaceable>X</replaceable></filename> disk
1846         devices, if compiled into the kernel.</para>
1847
1848       <para role="8.0">&man.sysinstall.8; now uses the
1849         <filename>freebsd-doc-<replaceable>*</replaceable></filename>
1850         packages for localized documents.</para>
1851
1852       <para role="8.0">&man.sysinstall.8; now ejects the CDROM after
1853         installation if it was used as source media.</para>
1854
1855       <para role="8.0">The &man.traceroute.8; and &man.traceroute6.8;
1856         now support an
1857         <option>-a</option> flag to display AS number corresponding to
1858         the lookup IP address on each hop.  It will query the number to
1859         WHOIS server specified in <option>-A</option> option.  If
1860         no <option>-A</option> is
1861         specified, <hostid>whois.radb.net</hostid> will be used as the
1862         default value.</para>
1863
1864       <para role="8.0">The &man.tzsetup.8; now supports
1865         an <option>-s</option> flag to skip the question about
1866         adjusting the clock to UTC.</para>
1867
1868       <para role="8.0">The &man.wake.8; utility, a tool to send Wake on
1869         LAN frames to hosts on a local Ethernet network has been
1870         added.</para>
1871
1872       <para role="8.0">The &man.ypserv.8; program now
1873         supports <filename>shadow.byname</filename>
1874         and <filename>shadow.byuid</filename> maps.</para>
1875
1876       <para role="7.2">A bug in the &man.atacontrol.8; utility, which prevents it
1877         from working when <filename>/usr</filename> is not mounted or
1878         invoked from <filename>/rescue</filename>, has been
1879         fixed.</para>
1880
1881       <para role="7.2">The &man.btpand.8; daemon from NetBSD has been added.
1882         This daemon provides support for Bluetooth Network Access
1883         Point (NAP), Group Ad-hoc Network (GN) and Personal Area
1884         Network User (PANU) profiles.</para>
1885
1886       <para role="7.2">The &man.cpucontrol.8; utility has been added to
1887         control &man.cpuctl.4; pseudo-device.</para>
1888
1889       <para role="7.2">The &man.ncal.1; utility now supports multibyte
1890         characters.</para>
1891
1892       <para role="7.2">The &man.newfs.8; utility now supports
1893         operations on a regular file.</para>
1894
1895       <para role="7.2">The &man.config.8; utility now supports
1896         multiple <varname>makeoption</varname> lines.</para>
1897
1898       <para role="7.2">The &man.csup.1; utility now supports CVSMode to fetch a
1899         complete CVS repository.  Note that the rsync transfer mode is
1900         currently disabled.</para>
1901
1902       <para role="7.2">The &man.dirname.1; utility now accepts multiple arguments
1903         in the same way that &man.basename.1; does.</para>
1904
1905       <para role="7.2">The &man.du.1; utility now supports an <option>-l</option>
1906         flag.  When specified, the &man.du.1; utility counts a file
1907         with multiple hard links as multiple different files.</para>
1908
1909       <para role="7.2">The &man.du.1; utility now supports an <option>-A</option> flag
1910         to display the apparent size instead of the disk usage.  This can be
1911         helpful when operating on compressed volumes or sparse files.</para>
1912
1913       <para role="7.2">The &man.du.1; utility now supports a <option>-B
1914         <replaceable>blocksize</replaceable></option> option to
1915         calculate block counts in blocks of
1916         <replaceable>blocksize</replaceable> bytes.  This is different
1917         from the <option>-k</option> or <option>-m</option> options or
1918         setting <varname>BLOCKSIZE</varname> and gives an estimate of
1919         how much space the examined file hierarchy would require on a
1920         file system with the given
1921         <replaceable>blocksize</replaceable>.  Unless in
1922         <option>-A</option> mode, <replaceable>blocksize</replaceable>
1923         is rounded up to the next multiple of 512.</para>
1924
1925       <para role="7.2">The &man.dumpfs.8; utility now supports an
1926         <option>-f</option> flag, which causes it to list all free
1927         fragments in the file system by fragment (block) number.  This
1928         new mode does the necessary arithmetic to generate absolute
1929         fragment numbers rather than the cg-relative numbers printed
1930         in the default mode.</para>
1931
1932       <para role="7.2">If <option>-f</option> is passed once, contiguous fragment
1933         ranges are collapsed into an X-Y format as free block lists
1934         are currently printed in regular dumpfs output.  If specified
1935         twice, all block numbers are printed individually, allowing
1936         both compact and more script-friendly representation.</para>
1937
1938       <para role="7.2">The &man.fetch.1; utility now supports an
1939         <option>-i</option> flag which supports the If-Modified-Since
1940         HTTP 1.1 request.  If specified it will cause the file to be
1941         downloaded only if it is more recent than the mtime of the
1942         local file.  Also, <application>libfetch</application> now
1943         accepts the mtime in the url structure and a flag to indicate
1944         when this behavior is desired.</para>
1945
1946       <para role="7.2">The &man.fsck.8; utility now supports a
1947         <option>-C</option> flag for <literal>check clean</literal>
1948         mode.  This checks if the file system was dismounted cleanly
1949         first and then skip file system checks if true.  Otherwise it
1950         does full checks.</para>
1951
1952       <para role="7.2">The &man.fsck.8; utility now supports a
1953         <option>-D</option> flag for damaged recovery mode, which will
1954         enable certain aggressive operations that can make
1955         &man.fsck.8; to survive with file systems that has very
1956         serious data damage.  This is a useful last resort when on
1957         disk data damage is very serious and causes &man.fsck.8; to
1958         crash.</para>
1959
1960       <para role="7.2">The &man.getaddrinfo.3; function now supports SCTP.</para>
1961
1962       <para role="7.2">A bug was fixed in the &man.ipfw.8; utility which displays
1963         extra messages for a NAT rule even when a <option>-q</option>
1964         flag is specified.</para>
1965
1966       <para role="7.2">The &man.ln.1; utility now supports a <option>-w</option>
1967         flag to check if the source file actually exists.  When the
1968         flag is specified and the file does not exist, &man.ln.1; will
1969         issue a warning message.</para>
1970
1971       <para role="8.0">The &man.ln.1; utility now allows creating hard
1972         links to symbolic links because the POSIX.1-2008 requires this
1973         behavior for <option>-L</option> and <option>-P</option>
1974         flag.</para>
1975
1976       <para role="8.0">The &man.lpr.1; utility now support
1977         an <option>-m</option> flag to send an email after the job is
1978         completed and a <option>-t</option> option to set the job
1979         title.</para>
1980
1981       <para role="7.2">The &man.make.1; utility now supports a
1982         <option>-p</option> flag to print the input graph only,
1983         without executing any commands.  The output is the same as
1984         <option>-d g1</option>.  When combined with <option>-f
1985         /dev/null</option>, only the built-in rules of make are
1986         displayed.</para>
1987
1988       <para role="7.2">The &man.make.1; utility now supports a
1989         <option>-Q</option> flag to cause file banners not to be
1990         generated in addition to the same effect of a
1991         <option>-q</option> flag when a <option>-j</option> option is
1992         specified.</para>
1993
1994       <para role="7.2">The &man.make.1; utility now supports the
1995         <varname>.MAKE.JOB.PREFIX</varname> variable.  If
1996         <option>-j</option> and <option>-v</option> are specified, its
1997         output for each target is prefixed with a token <literal>---
1998           <replaceable>target</replaceable> ---</literal> the first part
1999         of which can be controlled via the variable.</para>
2000
2001       <para role="7.2">The &man.make.1; utility now supports
2002         <varname>.MAKE.PID</varname> and <varname>.MAKE.PPID</varname>
2003         variable.  These are set to process ID of the &man.make.1;
2004         process and its parent process respectively.</para>
2005
2006       <para role="7.2">The &man.makefs.8; utility to create a file system image
2007         from a directory tree has been added.</para>
2008
2009       <para role="7.2">The &man.mergemaster.8; utility now supports an
2010         <option>-F</option> option to automatically install files that
2011         differ only in their version control ID strings.</para>
2012
2013       <para role="7.2">The &man.mount.8; utility now supports an <option>-o
2014         mountprog=<replaceable>/somewhere/mount_xxx</replaceable></option>
2015         option to force it to use the specified program to mount the
2016         file system instead of calling &man.nmount.2; directly.  This
2017         is useful when you want to use third party programs such as
2018         FUSE, for example.</para>
2019
2020       <para role="7.2">The &man.netstat.1; utility now reports &man.unix.4;
2021         sockets' listen queue statistics when an <option>-L</option>
2022         flag is specified.</para>
2023
2024       <para role="7.2">A bug in the &man.netstat.1; utility has been fixed.  It
2025         crashed with the following options in the previous
2026         versions:</para>
2027
2028       <screen role="7.2">&prompt.user; netstat -m -N foo</screen>
2029
2030       <para role="7.2">A bug in the &man.netstat.1; utility has been fixed.  The
2031         <option>-ss</option> option now works in the icmp6 section as
2032         expected.</para>
2033
2034       <para role="7.2">The &man.pciconf.8; utility now supports a
2035         <option>-b</option> flag, which lists any base address
2036         registers (BAR) that are assigned resources for each
2037         device.</para>
2038
2039       <para role="7.2">The &man.powerd.8; program has been improved.  Changes
2040         include reasonable CPU load estimation on SMP systems and a
2041         new mode named as <literal>hiadaptive</literal> for AC-powered
2042         systems.  The <literal>hiadaptive</literal> mode raises the
2043         CPU frequency twice as fast as <literal>adaptive</literal>, it
2044         drops the CPU frequency 4 times slower, prefers twice lower
2045         CPU load and has an additional delay before leaving the
2046         highest frequency after the period of maximum load.</para>
2047
2048       <para role="8.0">The &man.revoke.1; utility has been added.  This
2049         is a wrapper of &man.revoke.2; syscall.</para>
2050
2051       <para role="7.2">The &man.stat.1; utility now displays an octal
2052         representation of suid, sgid and sticky bits when the
2053         <option>-x</option> flag is specified.</para>
2054
2055       <para role="7.2">The &man.strndup.3; function has been added.</para>
2056
2057       <para role="8.0">The &man.tftpd.8; program now supports
2058         a <option>-W</option> option.  This is almost the same as
2059         a <option>-w</option> option but will generate unique named
2060         based on the submitted filename, a &man.strftime.3; format
2061         string, and a two digit sequence number.  The time format
2062         string can be set by an <option>-F</option> option.</para>
2063
2064       <para role="7.2">The &man.wc.1; utility now supports an <option>-L</option>
2065         flag to output the number of characters in the longest input
2066         line.</para>
2067
2068       <para role="7.2">A bug in the &man.rpc.yppasswdd.8; program, which causes
2069         it to leave a zombie process when a password or default shell
2070         is changed, has been fixed.</para>
2071
2072       <para role="7.1">The &man.adduser.8; utility now supports
2073         a <option>-M</option> option to set the mode of a new user's
2074         home directory.</para>
2075
2076       <para role="7.1">The &man.atacontrol.8; utility now supports
2077         a <command>spindown</command> command to set or report timeout
2078         after which the device will be spun down.</para>
2079
2080       <para role="7.1">The &man.chflags.1; now supports a <option>-v</option> flag for
2081         verbose output, a <option>-f</option> flag to ignore errors,
2082         and <option>-h</option> to allow setting flags on symbolic links
2083         with the same semantics as (for example) &man.chmod.1;.</para>
2084
2085       <para role="7.1">The &man.cp.1; now supports a <option>-a</option> flag, which is
2086         equivalent to <option>-RpP</option> flags.</para>
2087
2088       <para role="7.1">A bug in the &man.cp.1; utility which prevents POSIX.1e ACL (see
2089         also &man.acl.3;) from copying properly has been fixed.</para>
2090
2091       <para role="7.1">The &man.cron.8; utility now supports <option>-m</option> flag which
2092         overrides the default mail recipient for cron mails unless explicitly
2093         provided by <literal>MAILTO=</literal> line in <filename>crontab</filename>
2094         file.</para>
2095
2096       <para role="7.1">The &man.dhclient.8; now supports more options described in
2097         &man.dhcp-options.5;.</para>
2098
2099       <para role="7.1">The &man.dhclient.8; now
2100         supports <function>is_default_interface()</function> function
2101         which determines if this interface is one with the default
2102         route.</para>
2103
2104       <para role="7.1">A bug in the &man.dhclient.8; that prevents removal of the
2105         default route from working has been fixed.</para>
2106
2107       <para role="7.1">The &man.environ.7;, environment array of strings now
2108         supports unsetting a variable by setting the first character to
2109         NULL.  This is required by third-party software such as
2110         <application>Dovecot</application>
2111         and <application>Postfix</application>.</para>
2112
2113       <para role="7.1">The &man.fdisk.8; now supports a <option>-q</option> flag to
2114         not display any warnings.</para>
2115
2116       <para role="7.1">The &man.fetch.1; program and <filename>libfetch</filename>
2117         library now supports a <varname>NO_PROXY</varname> environment
2118         variable.  This specifies comma- or whitespace-separated list of
2119         host names for which proxies should not be used.  If a single
2120         asterisk is specified, the use of proxies is disabled.</para>
2121
2122       <para role="7.1">The &man.ffsll.3; and &man.flsll.3; functions have been added.
2123         These functions are the same as &man.ffs.3; and &man.fls.3; except that
2124         they accept long long as the arguments.</para>
2125
2126       <para role="7.1">The &man.fortune.6; program now supports
2127         <varname>FORTUNE_PATH</varname> environment variable to specify
2128         search path of the fortune files.</para>
2129
2130       <para role="7.1">A bug in the &man.fortune.6; program that prevents
2131         <option>-e</option> option with multiple files from working has
2132         been fixed.</para>
2133
2134       <para role="7.1">The &man.freebsd-update.conf.5; now supports
2135         <literal>IDSIgnorePaths</literal> statement.</para>
2136
2137       <para role="7.1">The &man.fwcontrol.8; utility now supports <option>-f
2138           <replaceable>node</replaceable></option> option which specifies
2139         <replaceable>node</replaceable> as the root node on the next bus
2140         reset.</para>
2141
2142       <para role="7.1" arch="sparc64"> The &man.gcc.1; now
2143         accepts <option>-mcpu</option> option properly; it was hardcoded
2144         as <option>-mcpu=ultrasparc</option>.</para>
2145
2146       <para role="7.1">The &man.ifconfig.8; command now supports
2147         display of WPS IE (Wireless Provisioning Services Information
2148         Element).</para>
2149
2150       <para role="7.1">The &man.kgdb.1; command now supports
2151         an <command>add-kld <replaceable>kld</replaceable></command>
2152         command to locate a &man.kld.4; and load its symbols.</para>
2153
2154       <para role="7.1">The &man.kgdb.1; command now has a shared library backend for kernel
2155         files that treats &man.kld.4; as shared libraries and
2156         auto-loading symbols for &man.kld.4; on startup.</para>
2157
2158       <para role="7.1">The &man.kgdb.1; now supports a <command>tid</command> command
2159         and other kernel module related commands even for a remote
2160         target.</para>
2161
2162       <para role="7.1">The &man.kvm.getcptime.3; function to obtain the global CPU
2163         time statistics from the kernel has been added.</para>
2164
2165       <para role="7.1">The <filename>libalias</filename> library now supports
2166         <literal>PORT</literal> and
2167         <literal>EPRT</literal>
2168         FTP commands in lowercase.</para>
2169
2170       <para role="7.1">The &man.man.1; now includes a limited support of
2171         &man.bzip2.1;-compressed manual pages.</para>
2172
2173       <para role="7.1">The &man.mdconfig.8; command now supports a
2174         <option>-v</option> (verbose) flag to <option>-l</option>
2175         command. It shows size and backing store of all &man.md.4;
2176         devices at one time.</para>
2177
2178       <para role="7.1">The &man.memrchr.3; function has been added.  This behaves
2179         like &man.memchr.3; except that it locates the last occurrence
2180         of the specified character in the string.</para>
2181
2182       <para role="7.1">The incorrect output grammar of &man.morse.6; program has
2183         been fixed.</para>
2184
2185       <para role="7.1">The &man.mountd.8; utility now supports <option>-h
2186           <replaceable>bindip</replaceable></option> option which
2187         specifies IP addresses to bind to for TCP and UDP requests.
2188         This option may be specified multiple times.  If no
2189         <option>-h</option> option is specified,
2190         <literal>INADDR_ANY</literal> will be used.  Note that when
2191         specifying IP addresses with this option, it will
2192         automatically add <literal>127.0.0.1</literal> and if IPv6 is
2193         enabled, <literal>::1</literal> to the list.</para>
2194
2195       <para role="7.1">The &man.moused.8; utility now supports <option>-L</option>
2196         flag which changes the speed of scrolling and changes
2197         <option>-U</option> option behavior to only affect the scroll
2198         threshold.</para>
2199
2200       <para role="7.1">The &man.mv.1; command now support POSIX
2201         specification when moving a directory to an existing directory
2202         across devices.</para>
2203
2204       <para role="7.1">The &man.periodic.8; now supports
2205         <varname>daily_status_mail_rejects_shorten</varname>
2206         configuration variable in &man.periodic.conf.5;.  This allows
2207         the rejected mail reports to tally the rejects per blacklist
2208         without providing details about individual sender hosts.  The
2209         default configuration keeps the reports in their original
2210         form.</para>
2211
2212       <para role="7.1">The &man.ping6.8; now uses exit status of
2213         <literal>0</literal> and <literal>2</literal> in the same manner
2214         as &man.ping.8;.</para>
2215
2216       <para role="7.1">The &man.ping6.8; now supports an <option>-o</option> flag,
2217         which makes &man.ping6.8; exit successfully after receiving one
2218         reply packet.</para>
2219
2220       <para role="7.1">The &man.ping6.8; now supports <option>-r</option>
2221         and <option>-R</option> flags, which are equivalent to
2222         &man.ping.8;'s <option>-a</option> and <option>-A</option>
2223         flags, respectively.</para>
2224
2225       <para role="7.1">The minimum allowed interval of &man.ping6.8; has been
2226         decreased to 0.000001 from 0.01.</para>
2227
2228       <para role="7.1">The &man.realpath.1; utility now supports
2229         a <option>-q</option> flag to suppress warnings and
2230         accepts multiple paths on its command line.</para>
2231
2232       <para role="7.1">The &man.rfcomm.pppd.8; now supports a <option>-D</option>
2233         flag to register DUN (Dial-Up Networking) service in addition to
2234         the LAN (LAN Access Using PPP) service.</para>
2235
2236       <para role="7.1">The &man.sdpd.8; now supports a <literal>NAP</literal>,
2237         <literal>GN</literal>, and <literal>PANU</literal>
2238         profiles.</para>
2239
2240       <para role="7.1">The &man.setkey.8; utility now accepts
2241         <literal>esp</literal> as a protocol name
2242         for the <command>spdadd</command> command.</para>
2243
2244       <para role="7.1">A bug in &man.telnetd.8; that caused it to
2245         attempt authentication even when <option>-a off</option>
2246         option is specified has been fixed.</para>
2247
2248       <para role="7.1">The &man.top.1; and &man.vmstat.8; commands now
2249         support <option>-P</option> flag which displays per-CPU
2250         statistics.</para>
2251
2252       <para role="7.1">The &man.uuid.enc.le.3;, &man.uuid.dec.le.3;,
2253         &man.uuid.enc.be.3;, and &man.uuid.dec.be.3; functions have been
2254         added.  These functions encode/decode a binary representation of
2255         a UUID.</para>
2256
2257       <para role="7.1">The &man.watch.8; utility now supports more than 10
2258         &man.snp.4; devices at a time.</para>
2259
2260       <para role="7.1">The &man.ypserv.8; daemon now supports a
2261         <option>-P</option> option to specify the port number on which
2262         it should listen.</para>
2263
2264       <sect3 id="rc-scripts">
2265         <title><filename>/etc/rc.d</filename> Scripts</title>
2266
2267         <para role="7.1">The &man.rc.conf.5; now supports
2268           <varname>dummynet_enable</varname> variable which allow
2269           &man.dummynet.4; kernel module to be loaded when
2270           <varname>firewall_enable</varname> is <literal>YES</literal>.</para>
2271
2272         <para role="7.1">The <filename>ntpd</filename> &man.rc.8; script
2273           can work with no configuration file
2274           <filename>/etc/ntp.conf</filename> now.</para>
2275
2276         <para role="7.1">The <filename>ppp</filename> &man.rc.8;
2277           script now supports multiple instances. For more details,
2278           see the description of <varname>ppp_profile</varname>
2279           variable in &man.rc.conf.5;.</para>
2280
2281         <para role="7.1">The <filename>sysctl</filename> &man.rc.8; script now
2282           supports loading <filename>/etc/sysctl.conf.local</filename> in
2283           addition to <filename>/etc/sysctl.conf</filename>.</para>
2284
2285         <para role="7.1">The &man.rc.conf.5; now supports configuration of
2286           interfaces and attached networks for firewall rule set by
2287           <filename>rc.firewall</filename> when
2288           <varname>firewall_type</varname> is <literal>simple</literal> or
2289           <literal>client</literal>.  See
2290           <varname>firewall_client_net</varname>,
2291           <varname>firewall_simple_iif</varname>,
2292           <varname>firewall_simple_inet</varname>,
2293           <varname>firewall_simple_oif</varname>, and
2294           <varname>firewall_simple_onet</varname>.</para>
2295       </sect3>
2296     </sect2>
2297
2298     <sect2 id="contrib">
2299       <title>Contributed Software</title>
2300
2301       <para role="8.0"><application>ISC BIND</application> has been updated to
2302         version 9.6.1rc1.</para>
2303
2304       <para role="8.0">The <application>ACPI-CA</application> has been
2305         updated to 20090521.</para>
2306
2307       <para role="8.0">The <application>ee</application> (easy editor) has
2308         been updated to 1.5.0.  This version is now licensed under a
2309         2-clause BSD license, instead of the Artistic license.</para>
2310
2311       <para role="8.0">The <application>hostapd</application> has been updated to
2312         version 0.6.8 + radius ACL support.</para>
2313
2314       <para role="8.0">The <application>less</application> has been updated to
2315         version v436.</para>
2316
2317       <para role="8.0">The <filename>libarchive</filename> library has
2318         been updated to version 2.7.0.</para>
2319
2320       <para role="8.0">The <filename>libexpat</filename> library has
2321         been updated from version 1.95.5 to version 2.0.1.</para>
2322
2323       <para role="8.0">The <filename>ncurses</filename> library has been updated
2324         to version 5.7-20081102.</para>
2325
2326       <para role="8.0"><application>OpenBSM</application> 1.1 from
2327         Trusted BSD Project has been merged.</para>
2328
2329       <para role="8.0"><application>TCPDUMP</application> has been
2330         updated to 4.0.0.</para>
2331
2332       <para role="8.0">The timezone database has been updated
2333         to the <application>tzdata2009f</application> release.</para>
2334
2335       <para role="8.0"><application>wpa_supplicant</application> has been updated to
2336         version 0.6.8</para>
2337
2338       <para role="8.0">The <application>ZFS</application> file system
2339         has been updated from version 6 to version 13.</para>
2340
2341       <para role="7.1">The <application>am-utils</application> has been updated from
2342         version 6.0.10p1 to version 6.1.5.</para>
2343
2344       <para role="7.1">The <application>awk</application> has been updated from 1 May
2345         2007 release to the 23 October 2007 release.</para>
2346
2347       <para role="7.1">The <application>bzip2</application> has been updated from
2348         version 1.0.4 to version 1.0.5.</para>
2349
2350       <para role="7.1">The <application>CVS</application> has been updated to
2351         version 1.11.22.1.</para>
2352
2353       <para role="7.1"><application>NTP</application> has been updated to version
2354         4.2.4p5.</para>
2355
2356       <para role="7.1"><application>OpenPAM</application> has been updated from the
2357         Figwort release to the Hydrangea release.</para>
2358
2359       <para role="7.1"><application>OpenSSH</application> has been updated from
2360         version 4.5p1 to version 5.1p1.</para>
2361
2362       <para role="7.1">The &man.resolver.3; library has been updated to
2363         one of <application>ISC BIND</application> 9.4.3.</para>
2364
2365       <para role="7.1"><application>sendmail</application> has been updated from
2366         version 8.14.2 to version 8.14.3.</para>
2367     </sect2>
2368
2369     <sect2 id="ports">
2370       <title>Ports/Packages Collection Infrastructure</title>
2371
2372       <para role="7.2">A bug in the &man.pkg.create.1; utility, which
2373         prevented the <option>-n</option> flag from working has been
2374         fixed.</para>
2375
2376       <para role="7.2">The &os; Ports Collection now supports multiple
2377         &man.make.1; jobs in some supported ports.  This is
2378         automatically enabled when a port is marked as
2379         <varname>MAKE_JOBS_SAFE</varname> and improves CPU utilization
2380         at the build stage by passing an option
2381         <option>-j<replaceable>X</replaceable></option> to the top
2382         level <filename>Makefile</filename> from the vendor.  The
2383         number <replaceable>X</replaceable> is set to the number of
2384         CPUs by default, and can be set by users via a &man.make.1;
2385         variable <varname>MAKE_JOBS_NUMBER</varname>.  For more
2386         details, see <filename>ports/Mk/bsd.port.mk</filename>.</para>
2387     </sect2>
2388
2389     <sect2 id="releng">
2390       <title>Release Engineering and Integration</title>
2391
2392       <para role="8.0">The supported version of
2393         the <application>GNOME</application> desktop environment
2394         (<filename role="package">x11/gnome2</filename>) has been
2395         updated to 2.26.3.</para>
2396
2397       <para role="8.0">The supported version of
2398         the <application>KDE</application> desktop environment
2399         (<filename role="package">x11/kde4</filename>) has been
2400         updated to 4.3.1.</para>
2401     </sect2>
2402   </sect1>
2403
2404   <sect1 id="upgrade">
2405     <title>Upgrading from previous releases of &os;</title>
2406
2407     <para arch="amd64,i386">Upgrades between RELEASE versions (and
2408       snapshots of the various security branches) are supported using
2409       the &man.freebsd-update.8; utility.  The binary upgrade
2410       procedure will update unmodified userland utilities, as well as
2411       unmodified GENERIC or SMP kernels distributed as a part of an
2412       official &os; release.  The &man.freebsd-update.8; utility
2413       requires that the host being upgraded has Internet
2414       connectivity.</para>
2415
2416     <para>An older form of binary upgrade is supported through the
2417       <command>Upgrade</command> option from the main
2418       &man.sysinstall.8; menu on CDROM distribution media.  This type
2419       of binary upgrade may be useful on non-&arch.i386;,
2420       non-&arch.amd64; machines or on systems with no Internet
2421       connectivity.</para>
2422
2423     <para>Source-based upgrades (those based on recompiling the &os;
2424       base system from source code) from previous versions are
2425       supported, according to the instructions in
2426       <filename>/usr/src/UPDATING</filename>.</para>
2427
2428     <important>
2429       <para>Upgrading &os; should, of course, only be attempted after
2430         backing up <emphasis>all</emphasis> data and configuration
2431         files.</para>
2432     </important>
2433   </sect1>
2434 </article>