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