]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - release/doc/en_US.ISO8859-1/relnotes/article.sgml
Reflect ACPI-CA 20070320 import.
[FreeBSD/FreeBSD.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 <!-- Text constants which probably don't need to be changed.-->
9
10 <!-- The marker for MFCs. -->
11 <!ENTITY merged "[MERGED]">
12
13 <!-- Architecture names -->
14 <!ENTITY arch.amd64 "amd64">
15 <!ENTITY arch.arm "arm">
16 <!ENTITY arch.i386 "i386">
17 <!ENTITY arch.ia64 "ia64">
18 <!ENTITY arch.pc98 "pc98">
19 <!ENTITY arch.powerpc "powerpc">
20 <!ENTITY arch.sparc64 "sparc64">
21 <!ENTITY arch.sun4v "sun4v">
22
23 <!ENTITY % include.historic "IGNORE">
24 <!ENTITY % no.include.historic "IGNORE">
25 ]>
26
27 <article>
28 <articleinfo>
29   <title>&os; &release.current; Release Notes</title>
30
31   <corpauthor>The &os; Project</corpauthor>
32
33   <pubdate>$FreeBSD$</pubdate>
34
35   <copyright>
36     <year>2000</year>
37     <year>2001</year>
38     <year>2002</year>
39     <year>2003</year>
40     <year>2004</year>
41     <year>2005</year>
42     <year>2006</year>
43     <year>2007</year>
44     <holder role="mailto:doc@FreeBSD.org">The &os; Documentation Project</holder>
45   </copyright>
46
47   <legalnotice id="trademarks" role="trademarks">
48     &tm-attrib.freebsd;
49     &tm-attrib.ibm;
50     &tm-attrib.ieee;
51     &tm-attrib.intel;
52     &tm-attrib.sparc;
53     &tm-attrib.general;
54   </legalnotice>
55
56   <abstract>
57     <para>The release notes for &os; &release.current; contain a summary
58       of the changes made to the &os; base system on the
59       &release.branch; development line.
60       This document lists applicable security advisories that were issued since
61       the last release, as well as significant changes to the &os;
62       kernel and userland.
63       Some brief remarks on upgrading are also presented.</para>
64   </abstract>
65 </articleinfo>
66
67 <sect1 id="intro">
68   <title>Introduction</title>
69
70   <para>This document contains the release notes for &os;
71     &release.current;.  It
72     describes recently added, changed, or deleted features of &os;.
73     It also provides some notes on upgrading
74     from previous versions of &os;.</para>
75
76 <![ %release.type.current [
77
78   <para>The &release.type; distribution to which these release notes
79     apply represents the latest point along the &release.branch; development
80     branch since &release.branch; was created.  Information regarding pre-built, binary
81     &release.type; distributions along this branch
82     can be found at <ulink url="&release.url;"></ulink>.</para>
83
84 ]]>
85
86 <![ %release.type.snapshot [
87
88   <para>The &release.type; distribution to which these release notes
89     apply represents a point along the &release.branch; development
90     branch between &release.prev; and the future &release.next;.
91     Information regarding
92     pre-built, binary &release.type; distributions along this branch
93     can be found at <ulink url="&release.url;"></ulink>.</para>
94
95 ]]>
96
97 <![ %release.type.release [
98
99   <para>This distribution of &os; &release.current; is a
100     &release.type; distribution.  It can be found at <ulink
101     url="&release.url;"></ulink> or any of its mirrors.  More
102     information on obtaining this (or other) &release.type;
103     distributions of &os; can be found in the <ulink
104     url="&url.books.handbook;/mirrors.html"><quote>Obtaining
105     &os;</quote> appendix</ulink> to the <ulink
106     url="&url.books.handbook;/">&os;
107     Handbook</ulink>.</para>
108
109 ]]>
110
111   <para>All users are encouraged to consult the release errata before
112     installing &os;.  The errata document is updated with
113     <quote>late-breaking</quote> information discovered late in the
114     release cycle or after the release.  Typically, it contains
115     information on known bugs, security advisories, and corrections to
116     documentation.  An up-to-date copy of the errata for &os;
117     &release.current; can be found on the &os; Web site.</para>
118
119 </sect1>
120
121 <sect1 id="new">
122   <title>What's New</title>
123
124   <para>This section describes
125     the most user-visible new or changed features in &os;
126     since &release.prev;.
127     In general, changes described here are unique to the &release.branch;
128     branch unless specifically marked as &merged; features.
129   </para>
130
131   <para>Typical release note items
132     document recent security advisories issued after
133     &release.prev;,
134     new drivers or hardware support, new commands or options,
135     major bug fixes, or contributed software upgrades.  They may also
136     list changes to major ports/packages or release engineering
137     practices.  Clearly the release notes cannot list every single
138     change made to &os; between releases; this document focuses
139     primarily on security advisories, user-visible changes, and major
140     architectural improvements.</para>
141
142   <sect2 id="security">
143     <title>Security Advisories</title>
144
145     <para>A temporary file vulnerability in &man.texindex.1;, which
146       could allow a local attacker to overwrite files in the context
147       of a user running the &man.texindex.1; utility, has been fixed.
148       For more details see security advisory <ulink
149       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:01.texindex.asc">FreeBSD-SA-06:01.texindex</ulink>. &merged;</para>
150
151     <para>A temporary file vulnerability in the &man.ee.1; text
152       editor, which could allow a local attacker to overwrite files in
153       the context of a user running &man.ee.1;, has been fixed.  For
154       more details see security advisory <ulink
155       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:02.ee.asc">FreeBSD-SA-06:02.ee</ulink>. &merged;</para>
156
157     <para>Several vulnerabilities in the &man.cpio.1; utility have
158       been corrected.  For more
159       details see security advisory <ulink
160       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:03.cpio.asc">FreeBSD-SA-06:03.cpio</ulink>. &merged;</para>
161
162     <para>An error in &man.ipfw.4; IP fragment handling, which could
163       cause a crash, has been fixed.  For more
164       details see security advisory <ulink
165       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:04.ipfw.asc">FreeBSD-SA-06:04.ipfw</ulink>. &merged;</para>
166
167     <para>A potential buffer overflow in the IEEE 802.11 scanning code
168       has been corrected.  For more
169       details see security advisory <ulink
170       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:05.80211.asc">FreeBSD-SA-06:05.80211</ulink>. &merged;</para>
171
172     <para>Two instances in which portions of kernel memory could be
173       disclosed to users have been fixed.  For more details see
174       security advisory <ulink
175       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:06.kmem.asc">FreeBSD-SA-06:06.kmem</ulink>. &merged;</para>
176
177     <para>A logic bug in the IP fragment handling in &man.pf.4;, which
178       could cause a crash under certain circumstances, has been fixed.
179       For more details see security advisory <ulink
180       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:07.pf.asc">FreeBSD-SA-06:07.pf</ulink>. &merged;</para>
181
182     <para>A logic bug in the NFS server code, which could cause a crash when
183       the server received a message with a zero-length payload, has been fixed.
184       For more details see security advisory <ulink
185       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:10.nfs.asc">FreeBSD-SA-06:10.nfs</ulink>. &merged;</para>
186
187     <para>A programming error in the &man.fast.ipsec.4; implementation
188       results in the sequence number associated with a Security
189       Association not being updated, allowing packets to unconditionally
190       pass sequence number verification checks, has been fixed.
191       For more details see security advisory <ulink
192       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:11.ipsec.asc">FreeBSD-SA-06:11.ipsec</ulink>. &merged;</para>
193
194     <para>A logic bug that could cause &man.opiepasswd.1; to allow an unprivileged
195       user to configure OPIE authentication for the root user under certain
196       circumstances, has been fixed.
197       For more details see security advisory <ulink
198       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:12.opie.asc">FreeBSD-SA-06:12.opie</ulink>. &merged;</para>
199
200     <para>An asynchronous signal handling vulnerability in &man.sendmail.8;,
201       which could allow a remote attacker to execute arbitrary code with the
202       privileges of the user running sendmail, typically root, has been fixed.
203       For more details see security advisory <ulink
204       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:13.sendmail.asc">FreeBSD-SA-06:13.sendmail</ulink>. &merged;</para>
205
206     <para>[&arch.amd64;, &arch.i386;] An information disclosure issue found in the
207       &os; kernel running on 7th- and 8th-generation AMD processors
208       has been fixed.  For more details see security advisory <ulink
209        url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:14.fpu.asc">FreeBSD-SA-06:14.fpu</ulink>. &merged;</para>
210
211     <para>A bug in &man.ypserv.8;, which effectively disabled the
212       <filename>/var/yp/securenets</filename> access control mechanism,
213       has been corrected.  More details are available in security
214       advisory
215       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:15.ypserv.asc">FreeBSD-SA-06:15.ypserv</ulink>. &merged;</para>
216
217     <para>A bug in the smbfs file system, which could allow an
218       attacker to escape out of &man.chroot.2 environments on an smbfs
219       mounted file system, has been fixed.  For more details, see
220       security advisory
221       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:16.smbfs.asc">FreeBSD-SA-06:16.smbfs</ulink>. &merged;</para>
222
223     <para>A potential denial of service problem in &man.sendmail.8;
224       caused by excessive recursion which leads to stack
225       exhaustion when attempting delivery of a malformed
226       MIME message, has been fixed.  For more details,
227       see security advisory <ulink
228       url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:17.sendmail.asc">FreeBSD-SA-06:17.sendmail</ulink>. &merged;</para>
229
230     <para>A potential buffer overflow condition in &man.sppp.4; has
231       been corrected.  For more details, see security advisory
232       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:18.ppp.asc">FreeBSD-SA-06:18.ppp</ulink>. &merged;</para>
233
234     <para>An OpenSSL bug related to validation of PKCS#1 v1.5
235       signatures has been fixed.  For more details, see security
236       advisory
237       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:19.openssl.asc">FreeBSD-SA-06:19.openssl</ulink>. &merged;</para>
238
239     <para>A potential denial of service attack against &man.named.8;
240       has been fixed.  For more details, see security advisory
241       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:20.bind.asc">FreeBSD-SA-06:20.bind</ulink>. &merged;</para>
242
243     <para>Several programming errors have been fixed in &man.gzip.1;.
244       They could have the effect of causing a crash or an infinite
245       loop when decompressing files.  More information can be found in
246       security advisory
247       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:21.gzip.asc">FreeBSD-SA-06:21.gzip</ulink>. &merged;</para>
248
249     <para>Several vulnerabilities have been fixed in OpenSSH.  More
250       details can be found in security advisory
251       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:22.openssh.asc">FreeBSD-SA-06:22.openssh</ulink>. &merged;</para>
252
253     <para>Multiple errors in the OpenSSL &man.crypto.3; library have
254       been fixed.  Potential effects are varied, and are documented in
255       more detail in security advisory
256       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:23.openssl.asc">FreeBSD-SA-06:23.openssl</ulink>. &merged;</para>
257
258     <para>A bug that could permit corrupt archives to cause an
259       infinite loop in &man.libarchive.3; and &man.tar.1; has been
260       fixed.  More details are available in
261       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:24.libarchive.asc">FreeBSD-SA-06:24.libarchive</ulink>. &merged;</para>
262
263     <para>A bug that could allow users in
264       the <groupname>operator</groupname> group to read parts of kernel
265       memory has been corrected.  For more details, consult security
266       advisory
267       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-06:25.kmem.asc">FreeBSD-SA-06:25.kmem</ulink>. &merged;</para>
268
269     <para>A bug in the <filename>jail</filename> startup script that
270       could permit privilege escalation via a symlink attack has been
271       fixed.  More information is available in
272       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-07:01.jail.asc">FreeBSD-SA-07:01.jail</ulink>. &merged;</para>
273
274     <para>Two remote denials of service in BIND (one involving DNSSEC and
275       one involving recursive DNS queries) have been fixed.  For more
276       information, see security advisory
277       <ulink url="http://security.FreeBSD.org/advisories/FreeBSD-SA-07:02.bind.asc">FreeBSD-SA-07:02.bind</ulink>. &merged;</para>
278
279   </sect2>
280
281   <sect2 id="kernel">
282     <title>Kernel Changes</title>
283
284     <para>&man.acpi.4; now has basic support for the HPET time counter.</para>
285
286     <para>The &man.acpi.ibm.4; driver now supports setting the fan control
287       mode to manual or automatic, and adjusting the fan speed if the
288       fan control mode is manual.  To enable manual control of the fan speed,
289       the sysctl variable <varname>dev.acpi_ibm.<replaceable>0</replaceable>.fan</varname>
290       needs to be set to zero (manual).  This should only be used with
291       extreme precaution, as disabling automatic fan control might
292       overheat the hardware and lead to permanent damage.</para>
293
294     <para>The &man.apm.4; suspend/resume support has been improved.</para>
295
296     <para>Security event auditing is now supported in the &os; kernel,
297       and is enabled by the <literal>AUDIT</literal> kernel
298       configuration option.  More information can be found in the
299       &man.audit.4; manual page.</para>
300
301     <para>The <literal>options COMPAT_43</literal> kernel
302       configuration option has been deemed unnecessary and has been
303       removed from <filename>GENERIC</filename> and related kernel
304       configurations.  This change may result in a small performance
305       increase for some workloads.</para>
306
307     <para>The &man.ddb.4; debugger now provides the <literal>show lock</literal>
308       command.  If the argument has a valid lock class,
309       this displays various information about the lock and calls a
310       new function pointer in lock_class (lc_ddb_show) to dump class-specific
311       information about the lock as well (such as the owner of a mutex or
312       xlock'ed sx lock).  &merged;</para>
313
314     <para>The &man.ddb.4; debugger now provides the <literal>show sleepq</literal>
315       command.  This takes a wait channel as an argument and looks
316       for a sleep queue associated with that wait channel.</para>
317
318     <para><filename>DEFAULTS</filename> kernel configuration files
319       for each platform have been added.  These files contain
320       directives that are implicitly included in all kernel
321       configurations, and generally include basic, mandatory
322       functionality for each platform.  &merged;</para>
323
324     <para>A bug in file descriptor handling such that a simple
325       <literal>close(0); dup(fd)</literal> sequence does not return
326       descriptor <literal>0</literal> in some cases, has been fixed.</para>
327
328     <para>The &man.firmware.9; subsystem has been added.  This
329       subsystem provides a mechanism
330       to load binary data into the kernel via a specially crafted module.
331       &merged;</para>
332
333     <para>The &man.gdb.1; remote debugging interface now supports
334       copying console messages to a remote debugger instance.
335       To enable this, set <literal>debug.gdbcons="1"</literal>
336       in <filename>loader.conf</filename>, enter <literal>boot -d;
337         gdb; step</literal> from the loader prompt,
338       then attach &man.gdb.1; from a remote machine.
339       The sysctl variable <varname>debug.gdbcons</varname> can be
340       used to turn on/off this functionality.</para>
341
342     <para>&man.hwpmc.4; and &man.pmcstat.8; now support profiling
343       of dynamically loaded kernel modules and
344       shared objects loaded with &man.dlopen.3;.
345       &man.pmcstat.8; can now log over a network socket
346       to a remote host.</para>
347
348     <para>Support for Kernel Scheduled Entities (KSE) is now a kernel
349       option (previously it was a mandatory feature in the kernel).
350       It is enabled in the GENERIC kernel (thus there is no change in
351       functionality) for all platforms except sun4v.</para>
352
353     <para>The &man.random.4; entropy device driver is now MPSAFE.
354       &merged;</para>
355
356     <para>&os; now supports concurrent &man.read.2;/&man.readv.2;
357       access to a file.</para>
358
359     <para>The ULE process scheduler has been revised to improve its
360       behavior, in particular interactivity under load.  This
361       implementation can commonly be referred to as <quote>ULE
362       2.0</quote>.</para>
363
364     <para>The experimental CORE process scheduler has been added,
365       enabled with the <literal>options SCHED_CORE</literal> kernel
366       configuration option.  It is forked from the &man.sched.ule.4;
367       scheduler, but
368       with a different algorithm for detecting an interactive process.
369       More information can be found in the &man.sched.core.4; manual
370       page.</para>
371
372     <para>The <literal>SIGCHLD</literal> signal queuing has been
373       added.  For each child process whose status has been changed,
374       a <literal>SIGCHLD</literal> instance is queued.  If the signal is still pending,
375       and the process changed status several times, the signal information
376       is updated to reflect the latest process status.
377       There is a loader tunable <varname>kern.sigqueue.queue_sigchild</varname>
378       which can control the behavior, setting it to zero disables the
379       <literal>SIGCHLD</literal> queuing feature.</para>
380
381     <para>[&arch.amd64;, &arch.i386;] Instead of including all of physical
382       memory in a kernel crash dump, the kernel now defaults to dumping only pages that are
383       actively mapped into kernel virtual memory.  A new
384       <varname>debug.minidump</varname> sysctl variable
385       can be used to turn off this behavior when set to zero. &merged;</para>
386
387     <para>A new sysctl variable <varname>kern.malloc_stats</varname>
388       has been added.  This allows exporting of kernel malloc
389       statistics via a binary structure stream.</para>
390
391     <para>A new sysctl variable <varname>kern.forcesigexit</varname>
392       has been added.  This forces a process
393       to sigexit if a trap signal is being held by the current thread or
394       ignored by the current process.  It is enabled by default.</para>
395
396     <para>The pcvt(4) driver, an alternative to &man.syscons.4;,
397       has been removed, as it had fallen out of sync with the rest
398       of the kernel.</para>
399
400     <para>RedZone, a buffer corruption protection for the kernel &man.malloc.9;
401       facility has been implemented.  This detects both buffer underflows and
402       overflows at runtime on &man.free.9; and &man.realloc.9;,
403       and prints backtraces from where memory was allocated and from where
404       it was freed.  For more details, see the &man.redzone.9; manual page.</para>
405
406     <para>A new sysctl variable <varname>security.mac.biba.interfaces_equal</varname>
407       which makes all network interfaces be created with the label
408       <literal>biba/equal(equal-equal)</literal>, has been added.
409       This is useful where programs such as &man.dhclient.8; and &man.ppp.8;.
410       which initialize network interfaces do not have any labeling support.
411       This variable is set as <literal>0</literal> (disabled) by default.
412       &merged;</para>
413
414     <para>A new sysctl variable <varname>vm.zone_stats</varname>
415       has been added.  This allows to export &man.uma.9; allocator
416       statistics via a binary structure stream.</para>
417
418     <para>The sysctl variable <varname>hw.pci.do_powerstate</varname>
419       has been changed from a boolean to a range.
420       <literal>0</literal> means no power management,
421       <literal>1</literal> means conservative power management which
422       any device class that has caused problems is added to the watch list,
423       <literal>2</literal> means aggressive power management where
424       any device class that is not fundamental to the system is added to the list,
425       and <literal>3</literal> means power them all down unconditionally.
426       The default is <literal>1</literal>.</para>
427
428     <para>[&arch.ia64;] The <filename>GENERIC</filename> kernel now enables
429       SMP support by default.</para>
430
431     <para>Sample kernel configuration files
432       <filename>src/sys/<replaceable>arch</replaceable>/conf/MAC</filename>
433       for the Mandatory Access Control framework have been added.</para>
434
435     <para><varname>POSIX_TIMERS</varname> support has been updated to 200112L.</para>
436
437     <para>An experimental support for POSIX message queue has been
438       implemented.</para>
439
440     <para>&os; now runs on the Xbox, whose architecture is nearly identical
441       to the i386.  For details of the latest development, see
442       <ulink url="http://www.FreeBSD.org/platforms/xbox.html"></ulink>.
443       &merged; </para>
444
445     <para>The locking strategy for UNIX domain sockets has been
446       revised to improve concurrency; this change has yielded
447       substantial performance improvements on various SMP workloads
448       (in particular, MySQL on 8-way &arch.amd64; systems) with little
449       or no measured overhead on UP systems.</para>
450
451     <para>Several minor but widespread changes to the Newbus API have
452       been made In order to support some on-going work with interrupt
453       filtering.  Because this change also breaks the kernel ABI, all
454       third-party device drivers will need to be modified and
455       recompiled.</para>
456
457     <sect3 id="boot">
458       <title>Boot Loader Changes</title>
459
460       <para>A new option <option>-S</option>,
461         which allows setting the <filename>boot2</filename>
462         serial console speed in the <filename>/boot.config</filename>
463         file or on the <prompt>boot:</prompt> prompt line,
464         has been added.</para>
465
466       <para>[&arch.amd64;, &arch.i386;] A new loader tunable
467         <varname>comconsole_speed</varname> to change
468         the serial console speed has been added.
469         If the previous stage boot loader requested a serial console,
470         then the default speed is determined from the current serial port
471         speed.  Otherwise it is set to 9600 or the value of
472         the <literal>BOOT_COMCONSOLE_SPEED</literal> kernel option.
473         &merged;</para>
474
475       <!-- Above this line, order boot loader changes by keyword-->
476
477       <para>[&arch.pc98;] A bootable CDROM loader has been implemented
478         for the pc98 platform. &merged;</para>
479
480       <para>[&arch.i386;] A bug in the i386 boot loader, which could
481         cause file system corruption if
482         a <filename>nextboot.conf</filename> file was used and landed
483         after cylinder 1023, has been fixed. &merged;</para>
484
485     </sect3>
486
487     <sect3 id="proc">
488       <title>Hardware Support</title>
489
490       <para>The &man.amdsmb.4; driver has been added.  It provides
491         support for the AMD-8111 SMBus 2.0 controller. &merged;</para>
492
493       <para>The &man.cardbus.4;, &man.pccard.4;,
494         &man.pccbb.4;, and &man.exca.4; drivers are now buildable
495         as kernel modules.</para>
496
497       <para>An &man.acpi.dock.4; driver has been added to provide
498         support for controlling laptop docking station functions via
499         ACPI.</para>
500
501       <para>The &man.acpi.thermal.4; driver now supports
502         passive cooling. &merged;</para>
503
504       <para>The &man.acpi.thermal.4; driver now supports overriding
505         the <literal>_PSV</literal>, <literal>_HOT</literal>, and
506         <literal>_CRT</literal> temperature values.</para>
507
508     <para>Support for the alpha architecture has been removed.  Alpha
509       support will remain on the RELENG_5 and RELENG_6 codelines.</para>
510
511       <para>The &man.cardbus.4; driver now supports
512         <filename>/dev/cardbus<replaceable>%d</replaceable>.cis</filename>.</para>
513
514       <para>[&arch.i386;, &arch.pc98;] The &man.ce.4; driver,
515         which supports Cronyx Tau-PCI/32 adapters, has been added.
516         &merged;</para>
517
518       <para>The <literal>est</literal> &man.cpufreq.4; driver now supports
519         frequency control for the VIA C7-M family of processors.</para> 
520
521       <para>Support for the PadLock Security Co-processor in VIA C3,
522         Eden, and C7
523         processors has been added to the &man.crypto.9; subsystem.
524         More information can be found in the &man.padlock.4; manual
525         page.
526         &merged;</para>
527
528       <para>A bug which prevented the &man.ichsmb.4; kernel module
529         from unloading has been fixed.</para>
530
531       <para>[&arch.amd64;, &arch.i386;] Dual-core processors (such as the Intel
532         Core Duo) now have both cores available for use by
533         default in SMP-enabled kernels. &merged;</para>
534
535       <para>[&arch.amd64;, &arch.i386;] &man.ipmi.4;, an OpenIPMI compatible driver,
536         has been added.
537         OpenIPMI (Intelligent Platform Management Interface) is an open
538         standard designed to enable remote monitoring and control of server,
539         networking and telecommunication platforms. &merged;</para>
540
541       <para>The &man.kbdmux.4; driver has been integrated into &man.syscons.4; and
542         the <devicename>kbd</devicename> device driver.
543         By default &man.syscons.4; will look for the &man.kbdmux.4;
544         keyboard first, and then, if not found, look for any keyboard.
545         Switching to &man.kbdmux.4; can be done at boot time by loading
546         the <literal>kbdmux</literal> kernel module via &man.loader.8;,
547         or at runtime via &man.kldload.8; and releasing the active
548         keyboard.  &merged;</para>
549
550       <para>[&arch.amd64;, &arch.i386;] The &man.kbdmux.4; driver is now included in the
551         <filename>GENERIC</filename> kernel by default.
552         Also, the <quote>Boot FreeBSD with USB keyboard</quote>
553         menu item in the boot loader menu has been removed
554         since this fixes USB keyboard probing problems.
555         &merged;</para>
556
557       <para>The &man.nfsmb.4; driver, which supports the NVIDIA nForce
558         2/3/4 SMBus 2.0 controller, has been added.  &merged;</para>
559
560       <para>[&arch.ia64;] The loader tunable <varname>debug.mpsafevfs</varname>
561         is set to <literal>1</literal> by default.</para>
562
563       <para>The &man.sab.4; driver has been removed (it has been
564         superceded by the &man.scc.4; driver).</para>
565
566       <para>The &man.scc.4; driver has been added.
567         This provides generic support for serial communications
568         controllers and delegates the control over each channel
569         and mode to a subordinate driver such as &man.uart.4;.</para>
570
571       <para>[&arch.amd64;] The smbios(4) driver support for amd64 has been
572         added.</para>
573
574       <para>[&arch.sun4v;] &os; now has preliminary support for the Sun Microsystems
575         UltraSPARC-T1 architecture.  &os;/sun4v has been demonstrated
576         to run on the Sun Fire T1000 and Sun Fire T2000 servers.
577         More information can be found on the
578         <ulink url="http://www.FreeBSD.org/platforms/sun4v.html">sun4v
579         Project</ulink>
580         page.</para>
581
582       <para>The tnt4882(4) driver, which supports the National Instruments
583         PCI-GPIB card, has been added.</para>
584
585       <para>[&arch.amd64;, &arch.i386;, &arch.ia64;, &arch.sparc64;] The &man.uart.4; driver has been included in the
586         <filename>GENERIC</filename> kernel by default.
587         When both &man.sio.4; and &man.uart.4; can handle a given serial port,
588         &man.sio.4; will claim it.</para>
589
590       <para>The &man.uart.4; driver now supports LOM (Lights Out Management)
591         and RSC (Remote System Control) devices as consoles.</para>
592
593       <para>The zs driver has been removed.  Its functionality
594         has been superceded by that of the &man.uart.4; driver.</para>
595
596       <para>[&arch.i386;] A new loader tunable
597         <varname>hw.apic.enable_extint</varname> has been added.
598         This tunable can be used to disable masking of the ExtINT pin on the first
599         I/O APIC.  At least one chipset for the Intel Pentium III seems
600         to need this, even though all of the pins in the 8259As are masked.
601         The default is still to mask the ExtINT pin.</para>
602
603       <para>[&arch.i386;] Support has been improved for
604         so-called <quote>legacy-free</quote> hardware, in particular,
605         i386 systems without AT-style keyboard controllers such as the
606         Macbook Pro. &merged;</para>
607
608       <sect4 id="mm">
609         <title>Multimedia Support</title>
610
611         <para>The &man.agp.4; driver now supports ATI AGP chipsets.
612           &merged;</para>
613
614         <para>The new midi(4) driver which is based on NetBSD's one
615           has been added.  This supports &man.snd.cmi.4; and
616           &man.snd.emu10k1.4; drivers.</para>
617
618         <para>The &man.sound.4; driver now supports
619           wider range sampling rate, multiple precisions choice,
620           and 24/32 bit PCM format conversion.  &merged;</para>
621
622         <para>The &man.snd.als4000.4; driver is now MPSAFE.  &merged;</para>
623
624         <para>The &man.snd.atiixp.4; driver has been added.
625           This supports ATI IXP 200/300/400 series audio controllers.  &merged;</para>
626
627         <para>The &man.snd.atiixp.4; driver now supports
628           suspend and resume features.</para>
629
630         <para>The &man.snd.cmi.4; driver is now MPSAFE.</para>
631
632         <para>The &man.snd.emu10kx.4; driver has been added.  It
633           supports Creative SoundBlaster Live! and Audigy series sound
634           cards with optional pseudo-multichannel playback.</para>
635
636         <para>The &man.snd.envy24.4; driver has been added to support
637           the Envy24 series of audio chips.</para>
638
639         <para>The &man.snd.es137x.4; driver is now MPSAFE.  &merged;</para>
640
641         <para>The &man.snd.ich.4; driver is now MPSAFE.  &merged;</para>
642
643         <para>The &man.snd.hda.4; driver has been added.  It supports
644           devices that conform to revision 1.0 of the  Intel High Definition
645           Audio specification.</para>
646
647         <para>The &man.snd.solo.4; driver is now MPSAFE.  &merged;</para>
648
649         <para>The &man.snd.via8233.4; driver is now MPSAFE.  &merged;</para>
650
651         <para>The &man.snd.via82c686.4; driver is now MPSAFE.  &merged;</para>
652
653         <para>[&arch.amd64;] The &man.speaker.4; driver now supports &os;/amd64.  &merged;</para>
654
655         <para>The &man.uaudio.4; driver now supports 24/32 bit audio
656           formats and conversion.</para>
657       </sect4>
658
659       <sect4 id="net-if">
660         <title>Network Interface Support</title>
661
662         <para>The &man.ath.4; driver has been updated to
663           HAL version 0.9.20.3.  &merged;</para>
664
665         <para>[&arch.amd64;, &arch.i386;, &arch.pc98;, &arch.sparc64;]
666           The &man.ath.4;, &man.ath.hal.4;, and
667           <literal>ath_rate_sample</literal> drivers have been
668           included in the <filename>GENERIC</filename> kernel by
669           default. &merged;</para>
670
671         <para>[&arch.amd64;, &arch.i386;] The &man.bce.4; driver, which supports Broadcom
672           NetXtreme II (BCM5706/BCM5708) PCI/PCIe Gigabit Ethernet controllers,
673           has been added.  For more details, see &man.bce.4;. &merged;</para>
674
675         <para>A bug which prevents the &man.bfe.4; driver from working
676           on a system with over 1GB RAM has been fixed.  &merged;</para>
677
678         <para>The &man.bge.4; driver's Jumbo frame support is now MPSAFE.</para>
679
680         <para>The &man.bge.4; driver now supports big-endian
681           architectures such as sparc64.</para>
682
683         <para>The &man.bge.4; driver now supports &man.polling.4; mode.
684           &merged;</para>
685
686         <para>The &man.cm.4; driver is now MPSAFE.</para>
687
688         <para>The &man.cxgb.4; driver has been added.  It provides support for
689           10 Gigabit Ethernet adapters based on the Chelsio T3 and T3B chipsets.
690           </para>
691
692         <para>The &man.dc.4; driver is now MPSAFE. &merged;</para>
693
694         <para>The &man.de.4; driver has been converted to the &man.bus.dma.9;
695           API and is now MPSAFE.</para>
696
697         <para>The &man.ed.4; driver is now MPSAFE.</para>
698
699         <para>The &man.el.4; driver has been removed due to lack of use.</para>
700
701         <para>The &man.em.4; driver now supports big-endian
702           architectures such as sparc64.  &merged;</para>
703
704         <para>The &man.em.4; driver has been updated to
705           version 6.2.9 from Intel.  Among other changes, it now supports
706           80003, 82571, 82571EB and 82572 based adapters, as well as
707           onboard-NICs on ICH8-based motherboards. &merged;</para>
708
709         <para>The &man.em.4; driver now includes
710           initial support for suspend and resume features.</para>
711
712         <para>The performance of the &man.em.4; driver has been improved
713           by using a fast interrupt handler and taskqueue
714           instead of ithread handler.  This change can be disabled
715           by defining <literal>NO_EM_FASTINTR</literal> kernel option
716           for debugging purpose.</para>
717
718         <para>The &man.iwi.4; driver now supports big-endian
719           architectures such as sparc64.</para>
720
721         <para>A number of improvements and bugfixes have been made to the
722           functionality of the &man.iwi.4; driver.  This driver now
723           requires the firmware image in the 
724           <filename role="package">net/iwi-firmware-kmod</filename>
725           port/package; prior versions of this driver used the
726           <filename role="package">net/iwi-firmware</filename>
727           port/package. &merged;</para>
728
729         <para>The &man.le.4; driver, which supports AMD Am7900 LANCE
730           and Am79C9xx PCnet NICs,
731           has been added.  While the &man.lnc.4; driver also supports these
732           NICs, this driver has several advantages over it such as
733           MPSAFE, ALTQ, VLAN_MTU, ifmedia, and 32-bit DMA for PCI
734           variants.  This driver is based on NetBSD's implementation.
735           &merged;</para>
736
737         <para>The &man.lge.4; driver is now MPSAFE. &merged;</para>
738
739         <para>The lnc(4) driver has been removed.  The &man.le.4; and
740           &man.pcn.4; drivers support all devices that were supported
741           by lnc(4).</para>
742
743         <para>The &man.msk.4; driver has been added.  It supports
744           network interfaces using the Marvell/SysKonnect Yukon II
745           Gigabit Ethernet controller.</para>
746
747         <para>The &man.my.4; driver is now MPSAFE. &merged;</para>
748
749         <para>The &man.my.4; driver now supports &man.altq.4;.  &merged;</para>
750
751         <para>[&arch.amd64;, &arch.i386;] The &man.mxge.4; driver,
752           which supports Myricom Myri10GE 10 Gigabit Ethernet
753           adapters, has been added.  For more details, see
754           &man.mxge.4;.</para>
755
756         <para>The &man.nfe.4; driver, an open-source driver for nForce
757           Ethernet devices, has been added, originally from
758           OpenBSD.</para>
759
760         <para>[&arch.arm;] The &man.npe.4; driver, which supports the
761            Intel XScale Network Processing Engine, has been
762            added. &merged;</para>
763
764         <para>The &man.nve.4; driver has been updated to version 1.0-0310
765           (23-Nov-2005).  It also now has &man.altq.4; support. &merged;</para>
766
767         <para>The &man.pcn.4; driver is now MPSAFE. &merged;</para>
768
769         <para>The &man.re.4; driver now supports the D-Link DGE-528(T)
770           Gigabit Ethernet card.</para>
771
772         <para>The &man.sf.4; driver is now MPSAFE. &merged;</para>
773
774         <para>The &man.sk.4; driver is now MPSAFE. &merged;</para>
775
776         <para>The &man.ste.4; driver is now MPSAFE.  &merged;</para>
777
778         <para>The &man.stge.4; driver has been added.  It supports the
779           Sundance/Tamarack TC9021 Gigabit Ethernet controller and was
780           ported from NetBSD.  &merged;</para>
781
782         <para>The &man.ti.4; driver now supports big-endian
783           architectures such as sparc64.</para>
784
785         <para>The &man.ufoma.4; driver for
786           FOMA (third generation mobile phone system by NTT DoCoMo, Inc.
787           in Japan) has been added.
788           This should support other third generation mobile phones
789           since the driver is based on USB Implementation Guideline
790           from MCPC (Mobile Computing Promotion Consortium) in Japan.</para>
791
792         <para>The vgapci(4) driver has been added.  This is a stub
793           device driver for VGA PCI devices and serves as a bus
794           so that other drivers such as drm(4),
795           &man.acpi.video.4;, and &man.agp.4; can attach to
796           it thus allowing multiple drivers for the same device.</para>
797
798         <para>The &man.vge.4; driver now supports &man.altq.4;.  &merged;</para>
799
800         <para>The &man.wi.4; driver is now buildable as
801           a kernel module.</para>
802
803         <para>[&arch.amd64;, &arch.i386;, &arch.pc98;] The &man.wlan.wep.4;,
804           &man.wlan.ccmp.4;, and &man.wlan.tkip.4; drivers
805           have been included in the <filename>GENERIC</filename>
806           kernel by default.</para>
807
808         <para>The network interface groups feature has been imported
809           from OpenBSD.  This feature allows an administrator to, for
810           example, apply firewall rules to an entire group of
811           interfaces.  More information can be found in
812           &man.ifconfig.8;.</para>
813
814         <para>The 802.11 protocol stack now has support for 900 MHz
815           cards, as well as quarter- and half-channel support
816           for 802.11a. &merged;</para>
817
818       </sect4>
819     </sect3>
820
821     <sect3 id="net-proto">
822       <title>Network Protocols</title>
823
824       <para>The &man.arp.4; retransmission algorithm has been
825         rewritten so that ARP requests are retransmitted without
826         suppression, while there is demand for such ARP entry.
827         Due to this change, a sysctl variable
828         <varname>net.link.ether.inet.host_down_time</varname>
829         has been removed.  &merged;</para>
830
831       <para>The &man.arp.4; protocol now supports a sysctl variable
832         <varname>net.link.ether.inet.log_arp_permanent_modify</varname>
833         to suppress logging of attempts to modify
834         permanent ARP entries.  &merged;</para>
835
836       <para>[&arch.amd64;, &arch.i386;, &arch.pc98;] An experimental BPF Just-In-Time compiler
837         has been implemented for both &man.bpf.4; and &man.ng.bpf.4;.
838         To enable this, the
839         <literal>options BPF_JITTER</literal> kernel option is needed.
840         The <varname>net.bpf_jitter.enable</varname>
841         can be used to disable this feature.</para>
842
843       <para>Multiple copies of a packet received via different
844         &man.bpf.4; listeners now all have identical
845         timestamps. &merged;</para>
846
847       <para>The &man.bpf.4; device now supports several new
848         &man.ioctl.2; calls to allow examining inbound vs. outbound
849         packets, as well as packets that have been injected onto the
850         network.</para>
851
852       <para>The bridge(4) driver has been removed from the tree.  Its
853         functionality has been completely replaced by
854         &man.if.bridge.4;.</para>
855
856       <para>The &man.enc.4; IPsec filtering pseudo-device has been
857         added.  It allows firewall packages using the &man.pfil.9;
858         framework to examine (and filter) IPsec traffic before
859         outbound encryption and after inbound decryption. &merged;</para>
860
861       <para>The &man.gre.4; driver, which is for GRE encapsulation
862         found in RFC 1701 and RFC 1702, now supports IPv6 over GRE.</para>
863
864       <para>The &man.if.bridge.4; driver now supports
865         creating SPAN ports, which transmit a copy of every frame
866         received by the bridge.  This feature can be enabled
867         by using &man.ifconfig.8;.  &merged;</para>
868
869       <para>The &man.if.bridge.4; driver now supports
870         RFC 3378 EtherIP.  This change makes it possible to
871         add &man.gif.4; interfaces to bridges, which will then
872         send and receive IP protocol 97 packets.
873         Packets are Ethernet frames with an EtherIP header prepended.
874         &merged;</para>
875
876       <para>The &man.if.bridge.4; driver now supports RSTP, the Rapid
877         Spanning Tree Protocol (802.1w). &merged;</para>
878
879       <para>A hard-coded limit on the number of IPv4 multicast group
880         memberships (formerly 20) has been removed.</para>
881
882       <para>The path MTU discovery for multicast packets in the &os;
883         IPv6 stack has been disabled by default.
884         Path MTU notification from a large number of multicast routers
885         can be a kind of distributed Denial-of-Service attack to a router.
886         This feature can be re-enabled by using a new sysctl variable
887         <varname>net.inet6.ip6.mcast_pmtu</varname>.  &merged;</para>
888
889       <para>IPv6 multicast forwarding is now dynamically loadable, via
890         the <filename>ip_mroute.ko</filename> module.</para>
891
892       <para>IPv6 link-local addresses are now enabled only
893         if <varname>ipv6_enable</varname> is set in &man.rc.conf.5;.
894         &merged;</para>
895
896       <para>The &man.ipfw.4; IP packet filter now supports IPv6.  &merged;</para>
897
898       <para>The &man.ipfw.4; firewall system now supports
899         a <literal>tablearg</literal> feature, which allows
900         values obtained from a table lookup to be used as part of a
901         rule.   &merged;
902         This feature can be used to optimize some rulesets
903         or to implement policy-based routing inside a firewall.
904         For example, the following rules will throw different
905         packets to different pipes:</para>
906
907       <programlisting>pipe 1000 config bw 1000Kbyte/s
908 pipe 4000 config bw 4000Kbyte/s
909 table 1 add x.x.x.x 1000
910 table 1 add x.x.x.y 4000
911 pipe tablearg ip from table(1) to any</programlisting>
912
913       <para>The &man.ipfw.4; packet filter now supports
914         <literal>tag</literal> and <literal>untag</literal> rule keywords.
915         When a packet matches a rule with the <literal>tag</literal>
916         keyword, the numeric tag for the given number in the range
917         from 0 to 65535 will be attached to the packet.
918         The tag acts as an internal marker (it is not sent out over
919         the wire) that can be used to identify these packets later on,
920         for example, by using <literal>tagged</literal>
921         rule option.  For more details, see &man.ipfw.8;. &merged;</para>
922
923       <para>The <literal>IPFIREWALL_FORWARD_EXTENDED</literal> kernel
924         option has been removed.  This option was used to permit
925         &man.ipfw.4; to redirect packets with local destinations.
926         This behavior is now always enabled when
927         the <literal>IPFIREWALL_FORWARD</literal> kernel option is
928         enabled. &merged;</para>
929
930       <para>The ip6fw(8) packet filter has been removed.  Since &man.ipfw.4; has gained
931         IPv6 support, it should be used instead.  Please note that some rules might need
932         to be adjusted.</para>
933
934       <para>The &man.natm.4;, Native Mode ATM protocol layer is now MPSAFE.</para>
935
936       <para>A new &man.ng.deflate.4; NetGraph node type has been
937         added.  It implements Deflate PPP compression. &merged;</para>
938
939       <para>The &man.ng.ether.4; Netgraph node no longer overwrites
940         the MAC address of outgoing frames by default. &merged;</para>
941
942       <para>The &man.ng.iface.4; Netgraph node now supports &man.altq.4;.
943         &merged;</para>
944
945       <para>A new &man.ng.pred1.4; NetGraph node type has been added
946         to implement Predictor-1 PPP compression. &merged;</para>
947
948       <para>The &man.ng.tag.4; Netgraph node has been added to
949         support the manipulation of mbuf tags attached to data in the
950         kernel.  &merged;</para>
951
952       <para>A bug has been fixed in which NFS over TCP would not reconnect
953         when the server sent a FIN.  This problem had occurred
954         with Solaris NFS servers.  &merged;</para>
955
956       <para>The default retransmit timer for NFS over TCP is now 60 seconds.
957         This change prevents the unnecessary retransmission of
958         non-idempotent NFS requests.  The <varname>nfs_access_cache</varname>
959         variable in &man.rc.conf.5; has also been changed to 60.</para>
960
961       <para>The default minimum number of nfsiod kernel threads
962         (&man.sysctl.8; variable <varname>vfs.nfs.iodmin</varname>)
963         has been changed from 4 to 0.</para>
964
965       <para>The sysctl variables <varname>net.inet.ip.portrange.reservedhigh</varname>
966         and <varname>net.inet.ip.portrange.reservedlow</varname>
967         can be used with IPv6 now. &merged;</para>
968
969       <para>A new sysctl variable <varname>net.inet.icmp.reply_from_interface</varname>
970         has been added.  This allows the &man.icmp.4;
971         reply to non-local packets to be generated with
972         the IP address the packet came through in.
973         This is useful for routers to show in &man.traceroute.8;
974         the actual path a packet has taken instead of
975         the possibly different return path.</para>
976
977       <para>A new sysctl variable <varname>net.inet.icmp.quotelen</varname>
978         has been added.  This allows to change length of
979         the quotation of the original packet in an ICMP reply.
980         The minimum of 8 bytes is internally enforced.
981         The maximum quotation is the remaining space in the
982         reply mbuf.  This option is added in response to the
983         issues raised in I-D
984         <filename>draft-gont-icmp-payload-00.txt</filename>.</para>
985
986       <para>The &man.icmp.4; now always quotes the entire TCP header
987         when responding and allocate an mbuf cluster if needed.
988         This change fixes the TCP issues raised in I-D
989         <filename>draft-gont-icmp-payload-00.txt</filename>.</para>
990
991       <para>A new socket option <literal>IP_MINTTL</literal> has been added.
992         This may be used to set the minimum acceptable
993         TTL a packet must have when received on a socket.
994         All packets with a lower TTL are silently dropped.
995         This works on already connected/connecting and
996         listening sockets for RAW, UDP, and TCP.  This option
997         is only really useful when set to <literal>255</literal>, preventing packets
998         from outside the directly connected networks reaching
999         local listeners on sockets.  Also, this option allows
1000         userland implementation of <quote>The Generalized TTL
1001           Security Mechanism (GTSM)</quote> found in RFC 3682.</para>
1002
1003       <para>The kernel &man.ppp.4; driver now supports IPv6.</para>
1004
1005       <para>Stealth forwarding now supports IPv6 as well as IPv4.
1006         This behavior can be controlled by using a new sysctl variable
1007         <varname>net.inet6.ip6.stealth</varname>.</para>
1008
1009       <para>Support has been added for the Stream Control Transmission
1010         Protocol (SCTP).  SCTP implements a reliable, message-oriented
1011         transport protocol, and is defined in RFC 3268.  It is enabled
1012         in &os; with the <literal>SCTP</literal> kernel option.</para>
1013
1014       <para>The <literal>IPV6_V6ONLY</literal> socket option
1015         now works for UDP.</para>
1016
1017       <para>The TCP bandwidth-delay product limiting feature has
1018         been disabled when the RTT is below a certain threshold.
1019         This optimization does not make sense on a LAN, as it has
1020         trouble figuring out the maximal bandwidth due to the coarse
1021         tick granularity.  A new sysctl variable
1022         <varname>net.inet.tcp.inflight.rttthresh</varname> specifies
1023         the threshold in milliseconds below which this feature
1024         will disengage.  It defaults to 10ms.  &merged;</para>
1025
1026       <para>The &os; network stack now has support for TCP
1027         Segmentation Offload (TSO).  TSO reduces the overhead of
1028         sending bulk TCP data by allowing a network interface to
1029         convert a large data transfer into multiple TCP segments to be
1030         sent on the network.  This functionality can be enabled or
1031         disabled on a per-interface basis with
1032         the <literal>tso</literal> and <literal>-tso</literal> flags
1033         to &man.ifconfig.8;.  Network interfaces and drivers
1034         supporting TSO currently include &man.em.4;,
1035         &man.mxge.4; and &man.cxgb.4;.</para>
1036
1037       <para>&os; now supports auto-sizing of TCP socket buffers.  This
1038         allows the socket buffer sizes to adapt dynamically to network
1039         conditions, rather than being set statically.  The behavior of
1040         this feature can be controlled using
1041         the <varname>net.inet.tcp.sendbuf_*</varname>
1042         and <varname>net.inet.tcp.recvbuf_*</varname> sysctl
1043         variables.</para>
1044
1045       <para>Support for &man.kqueue.2; operations has been added to
1046         the &man.tun.4; driver. &merged;</para>
1047
1048     </sect3>
1049
1050     <sect3 id="disks">
1051       <title>Disks and Storage</title>
1052
1053       <para>The &man.aac.4; driver now supports the Adaptec 2610SA SATA-RAID
1054         controller in some Hewlett-Packard machines.</para>
1055
1056       <para>The performance of the &man.amr.4; driver has been improved;
1057         it also now supports full 64-bit DMA.  While this feature is
1058         enabled by default, this can be forced off by setting the
1059         <varname>hw.amr.force_sg32</varname> loader tunable for
1060         debugging purpose.
1061         &merged;</para>
1062
1063       <para>The &man.amr.4; driver now supports the &man.ioctl.2; requests
1064         necessary for the Linux LSI MegaRaid tools in &os;'s Linux emulation
1065         environment.
1066         &merged;</para>
1067
1068       <para>The &man.arcmsr.4; driver has been updated to version
1069         1.20.00.13. &merged;</para>
1070
1071       <para>The &man.ata.4; driver now supports a workaround
1072         for some controllers whose DMA does not work properly
1073         in 48bit mode.  For affected controllers,
1074         PIO mode will be used for access to areas beyond 137GB.
1075         &merged;</para>
1076
1077       <para>The &man.ata.4; driver now supports the ITE IT8211F IDE controller,
1078         and the Promise PDC40718 and PDC40719 chip found in Promise
1079         Fasttrak TX4300.
1080         &merged;</para>
1081
1082       <para>The &man.ata.4; driver now supports DMA for kernel crash dumps,
1083         as well as crash dumping to an &man.ataraid.4; device.
1084         &merged;</para>
1085
1086       <para>The &man.ata.4; driver now supports USB mass storage class
1087         devices.  To enable it, a line <literal>device atausb</literal>
1088         in the kernel configuration file or loading the
1089         <filename>atausb</filename> kernel module is needed.
1090         Note that this functionality cannot coexist with the
1091         &man.umass.4; driver. &merged;</para>
1092
1093       <para>The &man.ataraid.4; driver now supports
1094         JMicron ATA RAID metadata.  &merged;</para>
1095
1096       <para>The <literal>GEOM_LABEL</literal> class now supports
1097         Ext2FS, NTFS, and ReiserFS.  &merged;</para>
1098
1099       <para>The <literal>GEOM_MIRROR</literal> class now supports
1100         kernel crash dumps to the GEOM providers.
1101         &merged;</para>
1102
1103       <para>The <literal>GEOM_MIRROR</literal> and <literal>GEOM_RAID3</literal>
1104         classes now support sysctl variables
1105         <varname>kern.geom.mirror.disconnect_on_failure</varname>
1106         and
1107         <varname>kern.geom.graid3.disconnect_on_failure</varname>
1108         to control whether failed components will be disconnected or not.
1109         The default value is <literal>1</literal> to preserve the current
1110         behavior, and if it is set to <literal>0</literal> such components
1111         are not disconnected and the kernel will try to still use them
1112         (only the first error will be logged).
1113         This is helpful for the case of multiple broken components (in
1114         different places), so actually all data is available.
1115         The broken components will be visible in <command>gmirror list</command>
1116         or <command>graid3 list</command> output with flag
1117         <literal>BROKEN</literal>.
1118         &merged;</para>
1119
1120       <para>The <literal>GEOM_MIRROR</literal> and <literal>GEOM_RAID3</literal>
1121         classes now use parallel I/O requests for synchronization
1122         to improve the performance.  New sysctl variables
1123         <varname>kern.geom.mirror.sync_requests</varname> and
1124         <varname>kern.geom.raid3.sync_requests</varname>
1125         define how many parallel I/O requests should be used.
1126         Also, the sysctl variables
1127         <varname>kern.geom.mirror.reqs_per_sync</varname>,
1128         <varname>kern.geom.mirror.syncs_per_sec</varname>,
1129         <varname>kern.geom.raid3.reqs_per_sync</varname>, and
1130         <varname>kern.geom.raid3.syncs_per_sec</varname>
1131         are deprecated and have been removed.
1132         &merged;</para>
1133
1134       <para>A new GEOM_MULTIPATH class has been added to support
1135         multiple access paths to disk devices.  The &man.gmultipath.8;
1136         utility has been added to control the behavior of disk devices
1137         using this feature.</para>
1138
1139       <para>A new GEOM class <literal>GEOM_ZERO</literal> has been added.
1140         It creates a very huge provider (41PB) <filename>/dev/gzero</filename>
1141         and is mainly useful for performance testing.
1142         On <literal>BIO_READ</literal> request it zero-fills
1143         <varname>bio_data</varname> and on <literal>BIO_WRITE</literal>
1144         it does nothing.
1145         &merged;</para>
1146
1147       <para>The GEOM class kernel module <filename>g_md.ko</filename>
1148         has been renamed to <filename>geom_md.ko</filename>
1149         for consistency.</para>
1150
1151       <para>[&arch.amd64;, &arch.i386;] The &man.hptmv.4; driver has been updated and now supports
1152         amd64 as well as PAE.</para>
1153
1154       <para>The &man.mfi.4; driver, which supports
1155         the LSI MegaRAID SAS controller family, has been added.
1156         &merged;</para>
1157
1158       <para>The &man.mpt.4; driver has been updated to support
1159         various new features such as RAID volume and RAID member
1160         state/settings reporting, periodic volume re-synchronization
1161         status reporting, and sysctl variables for volume
1162         re-synchronization rate, volume member write cache status,
1163         and volume transaction queue depth.</para>
1164
1165       <para>The &man.mpt.4; driver now supports SAS HBA (partially),
1166         64-bit PCI, and large data transfer.</para>
1167
1168       <para>The &man.twa.4; driver has been updated to the 9.3.0.1
1169         release on the 3ware Web site.  &merged;</para>
1170
1171       <para>A new GEOM-based disk encryption facility, GEOM_ELI, has been
1172         added.  It uses the &man.crypto.9; framework for hardware acceleration
1173         and supports different cryptographic algorithms.  See &man.geli.8; for
1174         more information. &merged;</para>
1175
1176       <para>The &man.geli.8; disk encryption system now supports loading keyfiles before the root
1177         file system is mounted.  &merged;
1178         For example, the following entries
1179         can be used in <filename>/boot/loader.conf</filename> to enable
1180         it:</para>
1181
1182       <programlisting>geli_da0_keyfile0_load="YES"
1183 geli_da0_keyfile0_type="da0:geli_keyfile0"
1184 geli_da0_keyfile0_name="/boot/keys/da0.key0"
1185 geli_da0_keyfile1_load="YES"
1186 geli_da0_keyfile1_type="da0:geli_keyfile1"
1187 geli_da0_keyfile1_name="/boot/keys/da0.key1"
1188 geli_da0_keyfile2_load="YES"
1189 geli_da0_keyfile2_type="da0:geli_keyfile2"
1190 geli_da0_keyfile2_name="/boot/keys/da0.key2"
1191
1192 geli_da1s3a_keyfile0_load="YES"
1193 geli_da1s3a_keyfile0_type="da1s3a:geli_keyfile0"
1194 geli_da1s3a_keyfile0_name="/boot/keys/da1s3a.key"</programlisting>
1195
1196       <para>&man.geli.8; is now able to perform data integrity
1197         verification (data authentication) of encrypted data stored on
1198         disk.  Note that the encryption algorithm is now specified to
1199         the &man.geli.8; control program using the <option>-e</option>
1200         option; the <option>-a</option> option is now used to specify
1201         the authentication algorithm. &merged;</para>
1202
1203       <para>The &man.umass.4; driver now supports
1204         <literal>PLAY_MSF</literal>,
1205         <literal>PLAY_TRACK</literal>,
1206         <literal>PLAY_TRACK_REL</literal>,
1207         <literal>PAUSE</literal>,
1208         <literal>PLAY_12</literal> commands so that
1209         the &man.cdcontrol.1; utility can handle a USB CD drive.</para>
1210     </sect3>
1211
1212     <sect3 id="fs">
1213       <title>File Systems</title>
1214
1215       <para>[&arch.amd64;, &arch.i386;, &arch.pc98;] The &man.linsysfs.5;
1216         pseudo-file system driver has been added.
1217         It provides a subset of the
1218         Linux <filename>sys</filename> file system, and is required for
1219         the correct operation of some Linux binaries (such as the LSI
1220         MegaRAID SAS utility). &merged;</para>
1221
1222       <para>A part of the FreeBSD NFS subsystem (the interface with
1223         the protocol stack and callouts, the NFS client side) is now MPSAFE.</para>
1224
1225       <para>Initial (read-only) support for SGI's XFS file system has been
1226         added.</para>
1227
1228       <para>The unionfs file system has been re-implemented.  This
1229         version solves many crashing and locking issues compared to
1230         the previous implementation.  It also adds
1231         new <quote>transparent</quote> and <quote>masquerade</quote>
1232         modes for automatically creating files in the upper file system
1233         layer of unions.  More information can be found in the
1234         &man.mount.unionfs.8; manual page.  &merged;</para>
1235
1236     </sect3>
1237   </sect2>
1238
1239   <sect2 id="userland">
1240     <title>Userland Changes</title>
1241
1242     <para>The addr2ascii() and ascii2addr() library calls, originally
1243       introduced by the INRIA IPv6 implementation, have been removed
1244       from <filename>libc</filename>.  They have no consumers in the
1245       &os; base system.  In a related change, support
1246       for <literal>AF_LINK</literal> addresses has been added to
1247       &man.getnameinfo.3;.</para>
1248
1249     <para>Padding of <varname>ai_addrlen</varname>
1250       in <varname>struct addrinfo</varname> has been removed,
1251       which was originally for the ABI compatibility.
1252       For example, this change breaks the ABI compatibility of the
1253       &man.getaddrinfo.3; function on 64-bit architectures, including
1254       &os;/amd64, &os;/ia64, and &os;/sparc64.</para>
1255
1256     <para>The &man.asf.8; utility has been revised and extended.  Now
1257       it can operate via several interfaces including &man.kvm.3;,
1258       which supports not only live systems, but also kernel crash dumps.
1259       &merged;</para>
1260
1261     <para>The &man.arp.8; utility now allows the <option>-i</option>
1262       option together with the <option>-d</option> and <option>-a</option> options
1263       to allow all entries for a given interface to be removed.</para>
1264
1265     <para>The OpenBSM userland tools, including &man.audit.8;,
1266       &man.auditd.8;,
1267       &man.auditreduce.1;, and
1268       &man.praudit.1;, have been added. &merged;</para>
1269
1270     <para>The &man.bsdiff.1; and &man.bspatch.1; utilities
1271       have been added.  These are tools for constructing and
1272       applying binary patches.  &merged;</para>
1273
1274     <para>The &man.bsnmpd.1; utility now supports the Host Resources
1275       MIB described in RFC 2790.  &merged;</para>
1276
1277     <para>&man.cached.8; has been added.  It is a daemon that caches
1278       the results of nsswitch lookups (such as those to the password,
1279       group, and services databases) for improved performance.</para>
1280
1281     <para>The &man.cmp.1; utility now supports an <option>-h</option>
1282       flag to compare the symbolic link itself rather than the
1283       file that the link points to. &merged;</para>
1284
1285     <para>The &man.config.8; utility now supports the <literal>nocpu</literal>
1286       directive, which cancels the effect of a
1287       previous <literal>cpu</literal> directive.  &merged;</para>
1288
1289     <para>The &man.config.8; utility now reads <filename>DEFAULTS</filename>
1290       kernel configuration file if it exists in the current directory
1291       before the specified configuration file.  &merged;</para>
1292
1293     <para>The &man.cp.1; utility now supports a <option>-l</option>
1294       option, which causes it to create hardlinks to the source files
1295       instead of copying them. &merged;</para>
1296
1297     <para>The &man.csh.1; utility now supports NLS catalogs.
1298       Note that this requires installing
1299       the <filename role="package">shells/tcsh_nls</filename> port.
1300       &merged;</para>
1301
1302     <para>The &man.csup.1; utility has been imported.
1303       This is an implementation of a CVSup-compatible client written
1304       in the C language.  Note that it currently supports checkout mode
1305       only. &merged;</para>
1306
1307     <para>The &man.dhclient.8; program now sends the host's name in
1308       DHCP requests if it is not specified in the configuration
1309       file. &merged;</para>
1310
1311     <para>The &man.devd.8; utility now supports a <option>-f</option> option
1312       to specify a configuration file.  &merged;</para>
1313
1314     <para>The &man.du.1; program now supports a <option>-n</option>
1315       flag, which causes it to ignore files and directories with
1316       the <literal>nodump</literal> flag set. &merged;</para>
1317
1318     <para>The &man.dump.8; and &man.restore.8; programs now attempt to
1319       save and restore extended attribute information on files.</para>
1320
1321     <para>The &man.fsdb.8; utility now supports changing the birth
1322       time of files on UFS2 file systems using the new 
1323       <literal>btime</literal> command. &merged;</para>
1324
1325     <para>The &man.fsdb.8; program now supports
1326       a <literal>findblk</literal> command, which finds the inode(s)
1327       owning a specific disk block. &merged;</para>
1328
1329     <para>The &man.find.1; program now supports <option>-Btime</option>
1330       and other related primaries, which can be used to create expressions
1331       based on a file's creation time. &merged;</para>
1332
1333     <para>A bug in the &man.find.1; program which prevents
1334       numeric arguments for <option>-user</option> and
1335       <option>-group</option> from working as expected
1336       has been fixed.</para>
1337
1338     <para>The &man.freebsd-update.8; utility, a tool for managing
1339       binary updates to the &os; base system, has been added. &merged;</para>
1340
1341     <para>The &man.ftpd.8; utility now creates a PID file
1342       <filename>/var/run/ftpd.pid</filename> even when
1343       no <option>-p</option> option is specified.  &merged;</para>
1344
1345     <para>The &man.gbde.8; utility now supports
1346       <option>-k</option> and <option>-K</option> options
1347       to specify a key file in addition to a passphrase.</para>
1348
1349     <para>The &man.getfacl.1; utility now supports
1350       a <option>-q</option> flag to suppress the per-file header
1351       comment listing the file name, owner, and group.
1352       &merged;</para>
1353
1354     <para>The &man.getent.1; utility has been imported from NetBSD.
1355       It retrieves and displays information from an administrative
1356       database (such as <filename>hosts</filename>) using the lookup
1357       order specified in &man.nsswitch.conf.5;. &merged;</para>
1358
1359     <para>The &man.gpt.8; utility now supports setting GPT partition labels.</para>
1360
1361     <para>The &man.gvinum.8; utility now supports commands
1362       to rename objects and to move a subdisk from
1363       one drive to another.  &merged;</para>
1364
1365     <para>The &man.gvinum.8; utility now supports the
1366       <command>resetconfig</command> sub-command.</para>
1367
1368     <para>An implementation of Generic Security Service API (GSS-API)
1369       version 2 and its C binding described in RFC2743 and RFC2744
1370       has been added.  This is a new extensible GSS-API layer which
1371       can support GSS-API plugins, similar the the Solaris
1372       implementation, and the Kerberos 5 GSS mechanism has
1373       been rewritten as a plugin library for the new implementation.</para>
1374
1375     <para>The &man.hccontrol.8; utility now supports HCI node
1376       autodetection.</para>
1377
1378     <para>The &man.id.1; utility now prints the effective user
1379       ID after the group ID.</para>
1380
1381     <para>The &man.id.1; utility now supports a <option>-A</option>
1382       flag to print process audit properties, including the audit user
1383       id. &merged;</para>
1384
1385     <para>The &man.ifconfig.8; utility now supports
1386       a <option>-k</option> flag to allow printing
1387       potentially sensitive keying material to standard output.
1388       This sensitive information will not be printed by default.</para>
1389
1390     <para>The &man.ifconfig.8; utility now supports a <option>-tunnel</option>
1391       parameter, which is just an alias for <option>deletetunnel</option>,
1392       yet is more convenient and easier to type.</para>
1393
1394     <para>The <option>-vlandev</option> parameter to &man.ifconfig.8;
1395       no longer requires a network interface as its argument.  The
1396       argument still is supported for backward compatibility, but
1397       is now deprecated and its use is discouraged.</para>
1398
1399     <para>The &man.iostat.8; utility now supports
1400       a <option>-x</option> flag (inspired by Solaris) to print
1401       extended disk statistics.  If the new <option>-z</option> flag is
1402       also specified, no output is made for disks with no
1403       activity. &merged;</para>
1404
1405     <para>The &man.ipfwpcap.8; utility has been added; it captures
1406       packets on a &man.divert.4; socket and writes them as
1407       &man.pcap.3; (also known as &man.tcpdump.1;) format data to a
1408       file or pipe.</para>
1409
1410     <para>The &man.jail.8; utility supports a <option>-J
1411         <replaceable>jid_file</replaceable></option> option to
1412       write out a JidFile, similar to a PidFile, containing
1413       the jailid, path, hostname, IP and the command used to start
1414       the jail.  &merged;</para>
1415
1416     <para>The &man.jail.8; program now supports a <option>-s</option>
1417       option to specify a jail's securelevel. &merged;</para>
1418
1419     <para>The &man.jexec.8; utility now supports <option>-u</option>
1420       and <option>-U</option> flags to specify username credentials
1421       under which a command should be executed. &merged;</para>
1422
1423     <para>The &man.kdump.1; program now supports a <option>-H</option>
1424       flag, which causes kdump to print an additional field holding
1425       the threadid.  &merged;</para>
1426
1427     <para>The &man.kdump.1; program now supports a <option>-s</option>
1428       flag to suppress the display of I/O data.  &merged;</para>
1429
1430     <para>The &man.kdump.1; program now supports printing
1431       flags in a system call argument by using symbol names.</para>
1432
1433     <para>The &man.kenv.1; utility now supports a <option>-q</option>
1434       flag to suppress warnings.</para>
1435
1436     <para>&man.kgdb.1; now supports a <option>-w</option>
1437       option to open kmem-based targets in read-write mode.
1438       This allows one to use kgdb on <filename>/dev/mem</filename>
1439       and be able to patch memory on a live system.</para>
1440
1441     <para>The &man.libarchive.3; library now supports
1442       POSIX.1e-style Extended Attributes.</para>
1443
1444     <para>The <application>libc</application> library now includes
1445       initial implementation of symbol maps and symbol version
1446       definitions.</para>
1447
1448     <para>The <application>libedit</application> library has been
1449       updated from the NetBSD source tree as of August 2005.</para>
1450
1451     <para>The <application>libm</application> library now includes
1452       initial implementation of symbol maps and symbol version
1453       definitions.</para>
1454
1455     <para>The &man.libmemstat.3; library has been added.
1456       This is for use by debugging and monitoring applications
1457       in tracking kernel memory statistics.  It provides an
1458       abstracted interface to &man.uma.9; and &man.malloc.9;
1459       statistics, wrapped around the binary stream sysctl variables
1460       for the allocators. &merged;</para>
1461
1462     <para>The &man.ln.1; utility now supports
1463       an <option>-F</option> flag, which deletes existing
1464       empty directories when creating symbolic links.
1465       &merged;</para>
1466
1467     <para>The &man.locate.1; utility now supports
1468       a <option>-0</option> flag to make this utility
1469       interoperable with &man.xargs.1;'s <option>-0</option> flag.
1470       &merged;</para>
1471
1472     <para>The &man.logger.1; utility now supports
1473       a <option>-P</option>, which specifies the port to which syslog
1474       messages should be sent. &merged;</para>
1475
1476     <para>The &man.ls.1; utility now supports
1477       an <option>-I</option> flag to disable the automatic
1478       <option>-A</option> flag for the superuser.  &merged;</para>
1479
1480     <para>The &man.ls.1; utility now supports
1481       an <option>-U</option> flag to use the file creation
1482       time for sorting. &merged;</para>
1483
1484     <para>A new &man.malloc.3; implementation has been introduced.
1485       This implementation, sometimes referred to
1486       as <quote>jemalloc</quote>, was designed to improve the
1487       performance of multi-threaded programs, particularly on SMP
1488       systems, while preserving the performance of single-threaded
1489       programs.  Due to the use of different algorithms and data
1490       structures, jemalloc may expose some previously-unknown bugs in
1491       userland code, although most of the &os; base system and common
1492       ports have been tested and/or fixed.</para>
1493
1494     <para>The &man.mdconfig.8; utility now supports producing
1495       device listings formatted as XML.  Currently, the
1496       <command>list</command> and <command>query</command>
1497       sub-commands support this feature.</para>
1498
1499     <para>The &man.mdconfig.8; utility's <option>-u</option> option
1500       now supports specifying multiple devices separated
1501       by comma character.</para>
1502
1503     <para>The &man.mdmfs.8; utility now supports a <option>-P</option> flag
1504       to allow skipping the &man.newfs.8; process
1505       when using a vnode-backed disk.</para>
1506
1507     <para>The &man.mdmfs.8; utility now supports a <option>-E</option> flag
1508       to allow to specify location of the &man.mdconfig.8;
1509       utility instead of using the default one
1510       (<filename>/sbin/mdconfig</filename>).</para>
1511
1512     <para>A new function &man.memmem.3; has been implemented in
1513       <filename>libc</filename>.  This is the binary equivalent to
1514       &man.strstr.3; and found in <filename>glibc</filename>.</para>
1515
1516     <para>The &man.mergemaster.8; utility now supports
1517       an <option>-A</option> option to explicitly specify
1518       an architecture to pass through to the underlying makefiles.
1519       &merged;</para>
1520
1521     <para>The &man.mount.8; <literal>nodev</literal> option has
1522       been removed.</para>
1523
1524     <para>The &man.mount.8; utility now supports &man.mqueuefs.5;.</para>
1525
1526     <para>A bug which prevents the &man.mount.8; utility from converting
1527       a read-only mount to read-write via <command>mount -u -o rw</command>,
1528       has been fixed.</para>
1529
1530     <para>The &man.mount.8; utility now supports a
1531       <literal>late</literal> keyword in &man.fstab.5;, along with a
1532       corresponding <option>-l</option> command-line option to specify
1533       that these <quote>late</quote> file systems should be
1534       mounted. &merged;</para>
1535
1536     <para>The &man.moused.8; daemon now supports an <option>-H</option> flag
1537       to enable horizontal virtual scrolling similar to the
1538       <option>-V</option> flag for vertical virtual scrolling.
1539       &merged;</para>
1540
1541     <para>The mrouted(8) multicast routing daemon has been removed
1542       from the &os; base system.  It implements the DVMRP multicast
1543       routing protocol, which has largely been replaced by PIM in many
1544       multicast installations.  The related map-mbone(8) and mrinfo(8)
1545       utilities have also been removed.  These programs are now
1546       available in the &os; Ports Collection
1547       as <filename role="package">net/mrouted</filename>.</para>
1548
1549     <para>The &man.netstat.1; utility now supports an
1550       <option>-h</option> flag for interface stats mode,
1551       which prints all interface statistics in human readable form. &merged;</para>
1552
1553     <para>The &man.netstat.1; utility now supports
1554       printing &man.ipsec.4; protocol statistics if the
1555       kernel was compiled with <literal>FAST_IPSEC</literal>
1556       rather than the KAME IPSEC stack.
1557       Note that the output of <command>netstat -s -p ipsec</command>
1558       differs depending on which stack is compiled into
1559       the kernel since they each keep different statistics.  &merged;</para>
1560
1561     <para>The <filename>/etc/nsswitch.conf</filename> file is now
1562       installed statically instead of being generated on every
1563       reboot.</para>
1564
1565     <para>The objformat(1) utility and getobjformat(3) library (the
1566       last remnants of a.out object file support) have been removed.</para>
1567
1568     <para>The &man.periodic.8; daily script now supports
1569       display of the status of &man.gmirror.8;, &man.graid3.8;,
1570       &man.gstripe.8;, and &man.gconcat.8; devices.
1571       Note that these are disabled by default.  &merged;</para>
1572
1573     <para>A new function, &man.pidfile.3;, which provides reliable
1574       pidfiles handling, has been implemented in
1575       <filename>libutil</filename>.  &merged;</para>
1576
1577     <para>The &man.ping.8; utility now supports a <quote>sweeping
1578         ping</quote> in which &man.icmp.4; payload of
1579       packets being sent is increased with given step.
1580       This is useful for testing problematic channels, MTU issues
1581       or traffic policing functions in networks.  &merged;</para>
1582
1583     <para>The &man.ping.8; command now supports a <option>-W</option>
1584       option to specify the maximum time to wait for an echo reply.
1585       &merged;</para>
1586
1587     <para>The &man.pkill.1; utility now supports a
1588       <option>-F</option> option which allows to
1589       restrict matches to a process whose PID is stored in the
1590       pidfile file.  When another new option <option>-L</option>
1591       is also specified, the pidfile file must be locked with the
1592       &man.flock.2; syscall or created with &man.pidfile.3;.</para>
1593
1594     <para>The &man.pkill.1; utility now supports a
1595       <option>-I</option> flag which works like <option>-i</option>
1596       of &man.rm.1;.  When this flag is specified, &man.pkill.1;
1597       will ask for confirmation before sending a signal to
1598       each matching process.</para>
1599
1600     <para>The &man.pkill.1; utility (also known as &man.pgrep.1;) has
1601       been moved from <filename>/usr/bin</filename>
1602       to <filename>/bin</filename> so that it can be used by startup
1603       scripts.  Symbolic links from its former location have been
1604       created for backward compatibility. &merged;</para>
1605
1606     <para>The &man.powerd.8; program now supports a
1607       <option>-P</option> option, which specifies a pidfile to use.</para>
1608
1609     <para>An extensible implementation of &man.printf.3;, compatible
1610       with GLIBC, has been added to <filename>libc</filename>.  It is
1611       only used if the environment variable
1612       <varname>USE_XPRINTF</varname> is defined, one of the extension
1613       functions is called, or the global variable
1614       <varname>__use_xprintf</varname> is set to a value greater than
1615       <literal>0</literal>.  Five extensions are currently supported:
1616       <literal>%H</literal> (hex dump),
1617       <literal>%T</literal> (<varname>time_t</varname> and
1618       time-related structures),
1619       <literal>%M</literal> (errno message),
1620       <literal>%Q</literal> (double-quoted, escaped string),
1621       <literal>%V</literal> (&man.strvis.3;-format string),
1622       &merged;</para>
1623
1624     <para>The DNS resolver library in &os;'s <application>libc</application>
1625       has been updated to that from BIND 9.3.3. &merged;</para>
1626
1627     <para>The &man.rfcomm.sppd.1; program now supports service names
1628       in addition to <option>-c</option> option with channel number.
1629       The supported names are: DUN (Dial-Up Networking), FAX (Fax),
1630       LAN (LAN Access Using PPP), and SP (Serial Port).  &merged;</para>
1631
1632     <para>The &man.rpcgen.1; utility now generates headers and stub files
1633       that can be used with ANSI C compilers by default.</para>
1634
1635     <para>The &man.rtld.1; runtime linker now supports ELF symbol versioning
1636       using GNU semantics.  This implementation aims to be compatible
1637       with symbol versioning support as implemented by GNU libc and
1638       documented in <ulink url="http://people.redhat.com/~drepper/symbol-versioning"></ulink>
1639       and LSB 3.0.  Also, <function>dlvsym()</function>
1640       function has been added to
1641       allow lookups for a specific version of a given symbol.</para>
1642
1643     <para>A bug in the &man.sed.1; utility which can cause
1644       incorrect calculation of pattern space length in some cases
1645       has been fixed.</para>
1646
1647     <para>The <option>-h</option> flag to &man.setfacl.1; now properly
1648       sets the ACL on a symbolic link, not the link target.</para>
1649
1650     <para>The &man.sh.1; utility now supports a <literal>times</literal>
1651       built-in command. &merged;</para>
1652
1653     <para>The &man.snapinfo.8; utility, which shows snapshot locations
1654       on UFS file systems, has been added.  &merged;</para>
1655
1656     <para>The &man.sockstat.1; utility, which shows connected and
1657       listening network sockets, now supports a new <option>-P</option>
1658       command-line option, which can be used to filter displayed sockets
1659       by protocol name (as listed in &man.protocols.5;).</para>
1660
1661     <para>The &man.strtonum.3; library function has been implemented
1662       based on OpenBSD's implementation.  This is an improved version of
1663       &man.strtoll.3;.  &merged;</para>
1664
1665     <para>The &man.sysctl.8; utility now supports a <option>-q</option>
1666       flag to suppress a limited set of warnings and errors.</para>
1667
1668     <para>The &man.tail.1; utility now supports a <option>-q</option>
1669       flag to suppress header lines when multiple files are
1670       specified. &merged;</para>
1671
1672     <para>The version of tcpslice in the &os; base system has been
1673       removed due to obsolescence.  A more up-to-date version can be
1674       found in the Ports Collection
1675       as <filename role="package">net/tcpslice</filename>.</para>
1676
1677     <para>The &man.time.1; utility now prints the time that a given
1678       command has been running if sent a <literal>SIGINFO</literal> signal.</para>
1679
1680     <para>The &man.traceroute.8; program now supports
1681       a <option>-D</option> flag, which causes it to display the
1682       differences between the sent and received
1683       packets. &merged;</para>
1684
1685     <para>The &man.traceroute.8; utility now supports
1686       a <option>-e</option> option, which sets a fixed destination
1687       port for probe packets.  This can be useful for tracing behind
1688       packet-filtering firewalls. &merged;</para>
1689
1690     <para>&man.traceroute.8; now decodes the complete set of ICMP
1691       unreachable messages in its output. &merged;</para>
1692
1693     <para>The &man.truss.1; utility now supports an <option>-s</option>
1694       flag for the same functionality as the strace utility
1695       (<filename role="package">devel/strace</filename>).</para>
1696
1697     <para>[&arch.powerpc;] The &man.truss.1; utility now supports &os;/powerpc.</para>
1698
1699     <para>The usbd(8) utility has been removed.
1700       The &man.devd.8; utility and its configuration
1701       file now support functionality which is equivalent to it.</para>
1702
1703     <para>The vnconfig(8) utility, which was long ago replaced by
1704       &man.mdconfig.8;, has been removed.</para>
1705
1706     <para>The &man.xargs.1; utility now supports a <option>-r</option>
1707       flag which makes the command execution when the standard input
1708       does not contain any non-whitespace-characters.  &merged;</para>
1709
1710     <para>The shared library version number of all libraries has
1711       been updated due to some possible ABI changes.  The libraries
1712       include: snmp_<replaceable>*</replaceable>, libdialog, libg2c, libobjc,
1713       libreadline, libregex, libstdc++, libkrb5, libalias, libarchive,
1714       libbegemot, libbluetooth, libbsnmp, libbz2, libc_r, libcrypt,
1715       libdevstat, libedit, libexpat, libfetch, libftpio, libgpib,
1716       libipsec, libkiconv, libmagic, libmp, libncp, libncurses,
1717       libnetgraph, libngatm, libopie, libpam, libpthread, libradius,
1718       libsdp, libsmb, libtacplus, libthr, libthread_db, libugidfw,
1719       libusbhid, libutil, libvgl, libwrap, libypclnt, libm, libcrypto,
1720       libssh, and libssl.</para>
1721
1722     <para>The <function>wcsdup()</function> function has been
1723       implemented.  This function is popular in Microsoft and GNU
1724       systems.</para>
1725
1726     <para>The &man.wpa.passphrase.8; utility has been added.  It
1727       generates a 256-bit pre-shared WPA key from an ASCII
1728       passphrase. &merged;</para>
1729
1730     <para>The compiler toolchain is now capable of generating
1731       executables for systems using the ARM processor. &merged;</para>
1732
1733     <sect3 id="rc-scripts">
1734       <title><filename>/etc/rc.d</filename> Scripts</title>
1735
1736       <para>The <filename>auditd</filename> script for
1737         OpenBSM &man.auditd.8; has been added. &merged;</para>
1738
1739       <para>The <filename>bluetooth</filename> script
1740         has been added.  This script will be called from
1741         &man.devd.8; in response to device attachment/detachment
1742         events and to stop/start particular device without unplugging
1743         it by hand.  The configuration parameters are in
1744         <filename>/etc/defaults/bluetooth.device.conf</filename>,
1745         and can be overridden by using
1746         <filename>/etc/bluetooth/<replaceable>$device</replaceable>.conf</filename>
1747         (where <replaceable>$device</replaceable> is <devicename>ubt0</devicename>,
1748         <devicename>btcc0</devicename>, and so on.)
1749         For more details, see &man.bluetooth.conf.5;.  &merged;</para>
1750
1751       <para>The <filename>ftpd</filename> script for
1752         stand-alone &man.ftpd.8; has been added.</para>
1753
1754       <para>The <filename>gbde_swap</filename> script has
1755         been removed in favor a new <filename>encswap</filename>
1756         script which also supports &man.geli.8; for swap
1757         encryption.</para>
1758
1759       <para>The <filename>geli</filename> and <filename>geli2</filename>
1760         scripts has been added for &man.geli.8; device
1761         configuration on boot.</para>
1762
1763       <para>The <filename>ike</filename> script for
1764         IPsec IKE daemon has been removed because no such daemon
1765         is included in the base system.</para>
1766
1767       <para>The <filename>hcsecd</filename> and
1768         <filename>sdpd</filename> scripts have been added
1769         for &man.hcsecd.8; and &man.sdpd.8; daemons.
1770         These daemons can run even if no Bluetooth devices
1771         are attached to the system, but both daemons depend on
1772         Bluetooth socket layer and thus disabled by default.
1773         Bluetooth sockets layer must be either loaded
1774         as a module or compiled into kernel before the daemons can run.
1775         &merged;</para>
1776
1777       <para>The <filename>hostapd</filename> script for
1778         &man.hostapd.8; has been added.  &merged;</para>
1779
1780       <para>The <filename>mdconfig</filename> script to
1781         handle vnode backed &man.md.4; devices has been added.
1782         This is a replacement of the <filename>ramdisk</filename>
1783         script, and all of variables in <varname>ramdisk_*</varname>
1784         have been changed to <varname>mdconfig_*</varname>.
1785         Also, two new &man.rc.conf.5; variables
1786         <varname>mdconfig_<replaceable>*</replaceable>_files</varname>
1787         and
1788         <varname>mdconfig_<replaceable>*</replaceable>_cmd</varname>
1789         have been added.  For example:</para>
1790
1791       <programlisting>mdconfig_md0="-t malloc -s 10m"
1792 mdconfig_md1="-t vnode -f /var/foo.img"</programlisting>
1793
1794       <para>The <filename>netif</filename> script now supports
1795         <varname>ipv4_addrs_<replaceable>ifn</replaceable></varname>
1796         variables,
1797         which add one or more IPv4 address from a ranged list in
1798         CIDR notation.  &merged;  For example:</para>
1799
1800       <programlisting>ipv4_addrs_ed0="192.168.0.1/24 192.168.1.1-5/28"</programlisting>
1801
1802       <para>The <filename>rcconf.sh</filename> script in <filename>/etc/rc.d</filename>
1803         has been removed and a variable <varname>early_late_divider</varname>,
1804         which designates the script to separate the early and late stages
1805         of the boot process, has been added.</para>
1806
1807       <para>The <filename>rc.initdiskless</filename> script now uses &man.tar.1;
1808         instead of &man.pax.1; because &man.pax.1; needs a writable
1809         temporary directory that may not be available when this script
1810         runs.</para>
1811
1812       <para>The <filename>pccard</filename> script has been removed
1813         since OLDCARD is deprecated.</para>
1814
1815       <para>The <filename>ppp-user</filename> script has been renamed to
1816         <filename>ppp</filename>.  &merged;</para>
1817
1818       <para>The <varname>removable_interfaces</varname> variable
1819         has been removed.</para>
1820
1821       <para>A new keyword <literal>NOAUTO</literal> in
1822         <varname>ifconfig_<replaceable>ifn</replaceable></varname>
1823         has been added. This prevents configuration of an interface
1824         at boot time or via <filename>/etc/pccard_ether</filename>,
1825         and allows <filename>/etc/rc.d/netif</filename>
1826         to be used to start and stop an interface
1827         on a purely manual basis.</para>
1828     </sect3>
1829   </sect2>
1830
1831   <sect2 id="contrib">
1832     <title>Contributed Software</title>
1833
1834     <para><application>Intel ACPI-CA</application>
1835       has been updated to 20070320.</para>
1836
1837     <para><application>BIND</application> has been updated from 9.3.1
1838       to 9.3.4. &merged;</para>
1839
1840     <para><application>BSNMPD</application> has been updated from
1841       1.11 to 1.12.</para>
1842
1843     <para><application>DRM</application> has
1844       been updated to a snapshot from DRI CVS as of 20060517.
1845       &merged;</para>
1846
1847     <para><application>FILE</application> has been updated from 4.12
1848       to 4.17.</para>
1849
1850     <para>The GNU version of <application>gzip</application> has been
1851       replaced with a modified version of gzip ported from NetBSD.
1852       &merged;</para>
1853
1854     <para><application>netcat</application> has been updated from the
1855       version in a 4 February 2005 OpenBSD snapshot to the version
1856       included in OpenBSD 3.9. &merged;</para>
1857
1858     <para><application>GCC</application> has been updated from 3.4.4
1859       to 3.4.6. &merged;</para>
1860
1861     <para><application>GNU Readline library</application> has been
1862       updated from 5.0 to 5.2 patch 1.</para>
1863
1864     <para><application>GNU Troff</application>
1865       has been updated from version 1.19 to version 1.19.2.
1866       &merged;</para>
1867
1868     <para><application>IPFilter</application> has been updated from
1869       4.1.8 to 4.1.13. &merged;</para>
1870
1871     <para><application>less</application> has been updated from v381
1872       to v394. &merged;</para>
1873
1874     <para><application>libpcap</application> has been updated from
1875       0.9.1 to 0.9.4. &merged;</para>
1876
1877     <para><application>lukemftpd</application> has been updated from a
1878       snapshot from NetBSD as of 9 August 2004 to a snapshot from
1879       NetBSD as of 31 August 2006. &merged;</para>
1880
1881     <para><application>OpenSSH</application> has been updated from
1882       4.2p1 to 4.5p1. &merged;</para>
1883
1884     <para><application>OpenSSL</application> has been updated from
1885       0.9.7e to 0.9.8d.</para>
1886
1887     <para><application>ncurses</application> has been updated from
1888       5.2-20010512 to 5.6-20061217.  ncurses now also has wide
1889       character support.</para>
1890
1891     <para><application>hostapd</application>
1892       has been updated from version 0.3.9 to version 0.4.8.
1893       &merged;</para>
1894
1895     <para><application>sendmail</application> has been updated from
1896       8.13.4 to 8.13.8. &merged;</para>
1897
1898     <para><application>tcpdump</application> has been updated from
1899       3.9.1 to 3.9.4. &merged;</para>
1900
1901     <para>The timezone database has been updated from the
1902       <application>tzdata2005l</application> release to the
1903       <application>tzdata2006n</application> release. &merged;</para>
1904
1905     <para><application>tip</application> has been updated to a
1906       snapshot from OpenBSD as of 20060831.</para>
1907
1908     <para>TrustedBSD <application>OpenBSM</application>,
1909       version 1.0 alpha 12, an implementation of the documented Sun Basic
1910       Security Module (BSM) Audit API and file format, as well as local
1911       extensions to support the Mac OS X and &os; operating systems
1912       has been added.  This also includes command line tools for audit
1913       trail reduction and conversion to text, as well as documentation
1914       of the commands, file format, and APIs.
1915       For this functionality, the <literal>AUDIT</literal> kernel option,
1916       <filename>/var/audit</filename> directory, and
1917       <literal>audit</literal> group have been added. &merged;</para>
1918
1919     <para><application>WPA Supplicant</application>
1920       has been updated from version 0.3.9 to version 0.4.8.
1921       &merged;</para>
1922
1923     <para><application>zlib</application>
1924       has been updated from version 1.2.2 to version 1.2.3. &merged;</para>
1925   </sect2>
1926
1927   <sect2 id="ports">
1928     <title>Ports/Packages Collection Infrastructure</title>
1929
1930     <para>&man.pkg.add.1; now supports an <option>-F</option>
1931       flag to disable checking whether the same package is already
1932       installed or not. &merged;</para>
1933
1934     <para>The &man.pkg.add.1; program now supports an <option>-P</option>
1935       flag, which is the same as the <option>-p</option> flag
1936       except that the given prefix is also used recursively for the
1937       dependency packages if any.  &merged;</para>
1938
1939     <para>The &man.pkg.add.1; and &man.pkg.create.1; utilities now support
1940       a <option>-K</option> flag to save packages to the current directory
1941       (or <varname>PKGDIR</varname> if defined) by default.
1942       &merged;</para>
1943
1944     <para>The &man.pkg.create.1; program now supports an <option>-x</option>
1945       flag to support basic regular expressions for package name,
1946       an <option>-E</option> flag for extended regular
1947       expressions, and a <option>-G</option> for exact matching.  &merged;</para>
1948
1949     <para>The &man.pkg.version.1; utility now supports an <option>-o</option>
1950       flag to show the origin recorded on package generation
1951       instead of the package name, and an <option>-O</option> flag
1952       to list packages with a specific registered origin.
1953       &merged;</para>
1954
1955     <para>The &man.portsnap.8; utility (<filename>sysutils/portsnap</filename>)
1956       has been added into the &os; base system.  This is a secure,
1957       easy to use, fast, lightweight, and generally good way for
1958       users to keep their ports trees up to date.  &merged;</para>
1959
1960     <para>A incorrect handling of <varname>HTTP_PROXY_AUTH</varname>
1961       in the &man.portsnap.8; utility has been fixed.  &merged;</para>
1962
1963     <para>The startup scripts from the <varname>local_startup</varname>
1964       directory now evaluated by using &man.rcorder.8; with scripts
1965       in the base system.  &merged;</para>
1966
1967     <para>The suffix of startup scripts from the Ports Collection
1968       has been removed.  This means <filename>foo.sh</filename>
1969       is renamed to <filename>foo</filename>, and now
1970       scripts whose name is something like
1971       <filename>foo.ORG</filename> will also be invoked.
1972       You are recommended to reinstall packages which install
1973       such scripts and remove extra files in the
1974       <varname>local_startup</varname> directory.  &merged;</para>
1975
1976     <para>New <filename>rc.conf</filename> variables,
1977       <varname>ldconfig_local_dirs</varname> and
1978       <varname>ldconfig_local32_dirs</varname> have been added.
1979       These hold lists of local &man.ldconfig.8; directories.
1980       &merged;</para>
1981
1982     <para>The <command>@cwd</command> command in
1983       <filename>pkg-plist</filename> now allows
1984       the case where no directory argument is given.  If no
1985       directory argument is given, it will set current
1986       working directory to the first prefix given by the
1987       <command>@cwd</command> command.  &merged;</para>
1988   </sect2>
1989
1990   <sect2 id="releng">
1991     <title>Release Engineering and Integration</title>
1992
1993     <para>The default partition sizing algorithm of the
1994       &man.sysinstall.8; utility has been changed.</para>
1995
1996     <itemizedlist>
1997       <listitem>
1998         <para>On systems where the disk capacity is larger than (3 * RAMsize + 10GB),
1999           the default sizes will now be as follows:</para>
2000
2001         <informaltable frame="none" pgwide="0">
2002           <tgroup cols="2">
2003             <colspec colwidth="1*">
2004             <colspec colwidth="2*">
2005             <thead>
2006               <row>
2007                 <entry>Partition</entry>
2008                 <entry>Size</entry>
2009               </row>
2010             </thead>
2011
2012             <tbody>
2013               <row><entry>swap</entry><entry>RAMsize * 2</entry></row>
2014               <row><entry><filename>/</filename></entry><entry>512 MB</entry></row>
2015               <row><entry><filename>/tmp</filename></entry><entry>512 MB</entry></row>
2016               <row><entry><filename>/var</filename></entry><entry>1024 MB + RAMsize</entry></row>
2017               <row><entry><filename>/usr</filename></entry><entry>the rest (8GB or more)</entry></row>
2018             </tbody>
2019           </tgroup>
2020         </informaltable>
2021       </listitem>
2022
2023       <listitem>
2024         <para>On systems where the disk capacity is larger than
2025           (RAMsize / 8 + 2 GB), the default sizes will be
2026           in the following ranges, with space allocated
2027           proportionally:</para>
2028
2029         <informaltable frame="none" pgwide="0">
2030           <tgroup cols="2">
2031             <colspec colwidth="1*">
2032             <colspec colwidth="2*">
2033             <thead>
2034               <row>
2035                 <entry>Partition</entry>
2036                 <entry>Size</entry>
2037               </row>
2038             </thead>
2039
2040             <tbody>
2041               <row><entry>swap</entry><entry>from RAMsize / 8 to RAMsize * 2</entry></row>
2042               <row><entry><filename>/</filename></entry><entry>from 256MB to 512MB</entry></row>
2043               <row><entry><filename>/tmp</filename></entry><entry>from 128MB to 512MB</entry></row>
2044               <row><entry><filename>/var</filename></entry><entry>from 128MB to 1024MB</entry></row>
2045               <row><entry><filename>/usr</filename></entry><entry>from 1536MB to 8192MB</entry></row>
2046             </tbody>
2047           </tgroup>
2048         </informaltable>
2049       </listitem>
2050
2051       <listitem>
2052         <para>On systems with even less disk space, the existing behavior is not
2053           changed.</para>
2054       </listitem>
2055     </itemizedlist>
2056
2057     <para>The &man.sysinstall.8; utility now displays the running &os;
2058       version in menu titles. &merged;</para>
2059
2060     <para>A new <literal>showconfig</literal>
2061       target has been added in <filename>src/Makefile</filename>
2062       to show the build configuration of the &os; source tree.</para>
2063
2064     <para>A <filename>/media</filename> directory has been
2065       added to contain mount points for removable media
2066       such as CDROMs, floppy disks, USB drives, and so on. &merged;</para>
2067
2068     <para>The <filename>src.conf</filename> file, which
2069       contains settings that will apply to every build involving
2070       the &os; source tree, has been added.
2071       For details, see &man.build.7; and &man.src.conf.5;.</para>
2072
2073     <para>The supported version of
2074       the <application>GNOME</application> desktop environment
2075       (<filename role="package">x11/gnome2</filename>) has been
2076       updated from 2.10.2 to 2.16.3.  As a part of this update, the
2077       default prefix for <application>GNOME</application> (and some
2078       related programs) has moved from
2079       <filename>/usr/X11R6</filename>
2080       to <filename>/usr/local</filename>.  &merged;</para>
2081
2082     <para>The supported version of
2083       the <application>KDE</application> desktop environment
2084       (<filename role="package">x11/kde3</filename>) has been
2085       updated from 3.4.2 to 3.5.6. &merged;</para>
2086
2087     <para>[&arch.amd64;, &arch.i386;] The supported Linux emulation now uses the
2088       libraries in the
2089       <filename role="package">emulators/linux_base-fc4</filename>
2090       package. &merged;</para>
2091
2092     <para>The supported version of
2093       the <application>Perl</application> interpreter
2094       (<filename role="package">lang/perl5.8</filename>) has been updated
2095       from 5.8.7 to 5.8.8. &merged;</para>
2096
2097     <para>The supported version of
2098       the <application>&xorg;</application> windowing system
2099       (<filename role="package">x11/xorg</filename>) has been updated
2100       from 6.8.2 to 6.9.0. &merged;</para>
2101
2102     <para>[&arch.pc98;] &os;/pc98 release CDROMs are now
2103       bootable on systems with some supported SCSI adapters.
2104       &merged;</para>
2105   </sect2>
2106
2107   <sect2 id="doc">
2108     <title>Documentation</title>
2109
2110     <para>Documentation of existing functionality has been improved by
2111       the addition of the following manual pages:
2112       &man.acpi.sony.4;, &man.device.get.sysctl.9;,
2113       &man.ext2fs.5;,
2114       &man.mca.8;,
2115       &man.nanobsd.8;,
2116       &man.snd.mss.4;, &man.snd.t4dwave.4;,
2117       &man.sysctl.9;.</para>
2118
2119     <para>The manual pages for <application>NTP</application>
2120       have been updated to 4.2.0, to match the version of
2121       code actually included in &os;. &merged;</para>
2122
2123     <para>Initial support for kernel subsystem API documentation generating
2124       framework using <filename role="package">devel/doxygen</filename>
2125       has been added into <filename>src/sys/doc/subsys</filename>.
2126       To generate the API document, type <command>make doxygen</command>
2127       in <filename>src/</filename> directory.</para>
2128   </sect2>
2129 </sect1>
2130
2131 <sect1 id="upgrade">
2132   <title>Upgrading from previous releases of &os;</title>
2133
2134   <para></para>
2135
2136   <important>
2137     <para>Upgrading &os; should, of course, only be attempted after
2138       backing up <emphasis>all</emphasis> data and configuration
2139       files.</para>
2140   </important>
2141 </sect1>
2142 </article>