# FreeBSD 8.0-RELEASE 发行说明（2009 年 11 月 25 日）

原文链接：[FreeBSD 8.0-RELEASE Release Notes](https://www.freebsd.org/releases/8.0R/relnotes-detailed/)

### FreeBSD 项目

版权所有 © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 FreeBSD 文档项目

```
$FreeBSD: stable/8/release/doc/en_US.ISO8859-1/relnotes/article.sgml 199849 2009-11-26 22:09:37Z hrs $
```

FreeBSD 是 FreeBSD 基金会的注册商标。

IBM、AIX、EtherJet、Netfinity、OS/2、PowerPC、PS/2、S/390 和 ThinkPad 是国际商业机器公司（IBM）在美国、其他国家或两者的商标。

IEEE、POSIX 和 802 是美国电气和电子工程师协会（IEEE）在美国的注册商标。

Intel、Celeron、EtherExpress、i386、i486、Itanium、Pentium 和 Xeon 是英特尔公司及其子公司在美国和其他国家的商标或注册商标。

Sparc、Sparc64、SPARCEngine 和 UltraSPARC 是 SPARC 国际公司在美国和其他国家的商标。bearing SPARC 商标的产品基于 Sun Microsystems, Inc. 开发的架构。

制造商和销售商用来区分其产品的许多名称都被声明为商标。文档中出现这些名称时，且 FreeBSD 项目已知其商标声明时，这些名称后面将附有“™”或“®”符号。

FreeBSD 8.0-RELEASE 的发行说明包含了自上一个版本以来在 8-STABLE 开发线中对 FreeBSD 基本系统所做更改的总结。该文档列出了自上一个版本以来发布的适用的安全公告，以及 FreeBSD 内核和用户空间的重大更改。还简要说明了升级的相关事项。

## 1 介绍

本文档包含 FreeBSD 8.0-RELEASE 的发行说明。它介绍了 FreeBSD 中最近新增、修改或删除的功能。同时还提供了从先前版本升级到此版本的一些说明。

此版本的 FreeBSD 8.0-RELEASE 是一个发布版本。可以在 [ftp://ftp.FreeBSD.org/](ftp://ftp.freebsd.org/) 或其任何镜像站点找到。关于如何获取此版本（或其他版本）FreeBSD 发行版的更多信息，请参考 [FreeBSD 手册](https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/) 中的 ["获取 FreeBSD"](https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mirrors.html) 附录。

在安装 FreeBSD 之前，强烈建议所有用户查看发行错误说明。错误说明文档会更新包含在发布周期后期或发布后发现的“临时”信息。通常，它包含已知错误、漏洞公告和文档修正。最新的 FreeBSD 8.0-RELEASE 错误说明副本可以在 FreeBSD 网站上找到。

## 2 新特性

本节介绍了自 7.0-RELEASE 以来 FreeBSD 中最显著的新功能或已更改的功能，以及先前版本的发行说明中所标注的更改 \[7.1R] 和 \[7.2R]。

典型的发行说明项目包括发布后 7.0-RELEASE 发布的安全公告、新的驱动程序或硬件支持、新的命令或选项、主要的错误修复，或第三方软件升级。它们也可能列出对主要 Port/包或发布工程实践的更改。显然，发行说明不能列出每个版本之间 FreeBSD 所做的每一项更改；本文档主要关注安全公告、用户可见的更改和主要的架构改进。

### 2.1 安全公告

以下安全公告中描述的问题已经修复。如需更多信息，请参阅各个公告，详情请访问 [http://security.FreeBSD.org/](http://security.freebsd.org/)。

| 公告                                                                                            | 日期               | 主题                                                                                                                    |
| --------------------------------------------------------------------------------------------- | ---------------- | --------------------------------------------------------------------------------------------------------------------- |
| [SA-08:05.openssh](http://security.freebsd.org/advisories/FreeBSD-SA-08:05.openssh.asc)       | 2008 年 4 月 17 日  | OpenSSH X11 转发权限提升                                                                                                    |
| [SA-08:06.bind](http://security.freebsd.org/advisories/FreeBSD-SA-08:06.bind.asc)             | 2008 年 7 月 13 日  | DNS 缓存投毒                                                                                                              |
| [SA-08:07.amd64](http://security.freebsd.org/advisories/FreeBSD-SA-08:07.amd64.asc)           | 2008 年 9 月 3 日   | amd64 swapgs 本地权限提升                                                                                                   |
| [SA-08:08.nmount](http://security.freebsd.org/advisories/FreeBSD-SA-08:08.nmount.asc)         | 2008 年 9 月 3 日   | [nmount(2)](http://www.freebsd.org/cgi/man.cgi?query=nmount\&sektion=2\&manpath=FreeBSD+8.0-RELEASE) 本地任意代码执行         |
| [SA-08:09.icmp6](http://security.freebsd.org/advisories/FreeBSD-SA-08:09.icmp6.asc)           | 2008 年 9 月 3 日   | IPv6 连接上的远程内核崩溃                                                                                                       |
| [SA-08:10.nd6](http://security.freebsd.org/advisories/FreeBSD-SA-08:10.nd6.asc)               | 2008 年 10 月 1 日  | IPv6 邻居发现协议路由漏洞                                                                                                       |
| [SA-08:11.arc4random](http://security.freebsd.org/advisories/FreeBSD-SA-08:11.arc4random.asc) | 2008 年 11 月 24 日 | [arc4random(9)](http://www.freebsd.org/cgi/man.cgi?query=arc4random\&sektion=9\&manpath=FreeBSD+8.0-RELEASE) 可预测的序列漏洞 |
| [SA-08:12.ftpd](http://security.freebsd.org/advisories/FreeBSD-SA-08:12.ftpd.asc)             | 2008 年 12 月 23 日 | [ftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=ftpd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 中的跨站请求伪造             |
| [SA-08:13.protosw](http://security.freebsd.org/advisories/FreeBSD-SA-08:13.protosw.asc)       | 2008 年 12 月 23 日 | netgraph / 蓝牙权限提升                                                                                                     |
| [SA-09:01.lukemftpd](http://security.freebsd.org/advisories/FreeBSD-SA-09:01.lukemftpd.asc)   | 2009 年 1 月 7 日   | [lukemftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=lukemftpd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 中的跨站请求伪造   |
| [SA-09:02.openssl](http://security.freebsd.org/advisories/FreeBSD-SA-09:02.openssl.asc)       | 2009 年 1 月 7 日   | OpenSSL 错误地检查格式错误的签名                                                                                                  |
| [SA-09:03.ntpd](http://security.freebsd.org/advisories/FreeBSD-SA-09:03.ntpd.asc)             | 2009 年 1 月 13 日  | ntpd 加密签名绕过                                                                                                           |
| [SA-09:04.bind](http://security.freebsd.org/advisories/FreeBSD-SA-09:04.bind.asc)             | 2009 年 1 月 13 日  | BIND DNSSEC 错误检查格式错误的签名                                                                                               |
| [SA-09:05.telnetd](http://security.freebsd.org/advisories/FreeBSD-SA-09:05.telnetd.asc)       | 2009 年 2 月 16 日  | telnetd 代码执行漏洞                                                                                                        |
| [SA-09:06.ktimer](http://security.freebsd.org/advisories/FreeBSD-SA-09:06.ktimer.asc)         | 2009 年 3 月 23 日  | 本地权限提升                                                                                                                |
| [SA-09:07.libc](http://security.freebsd.org/advisories/FreeBSD-SA-09:07.libc.asc)             | 2009 年 4 月 4 日   | [db(3)](http://www.freebsd.org/cgi/man.cgi?query=db\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 中的信息泄露                   |
| [SA-09:08.openssl](http://security.freebsd.org/advisories/FreeBSD-SA-09:08.openssl.asc)       | 2009 年 4 月 22 日  | OpenSSL 中的远程崩溃漏洞                                                                                                      |
| [SA-09:09.pipe](http://security.freebsd.org/advisories/FreeBSD-SA-09:09.pipe.asc)             | 2009 年 6 月 10 日  | 通过直接管道写入泄露本地信息                                                                                                        |
| [SA-09:10.ipv6](http://security.freebsd.org/advisories/FreeBSD-SA-09:10.ipv6.asc)             | 2009 年 6 月 10 日  | 在 SIOCSIFINFO\_IN6 ioctl 中缺少权限检查                                                                                      |
| [SA-09:11.ntpd](http://security.freebsd.org/advisories/FreeBSD-SA-09:11.ntpd.asc)             | 2009 年 6 月 10 日  | ntpd 堆栈溢出漏洞                                                                                                           |
| [SA-09:12.bind](http://security.freebsd.org/advisories/FreeBSD-SA-09:12.bind.asc)             | 2009 年 7 月 29 日  | BIND [named(8)](http://www.freebsd.org/cgi/man.cgi?query=named\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 动态更新消息远程拒绝服务  |
| [SA-09:14.devfs](http://security.freebsd.org/advisories/FreeBSD-SA-09:14.devfs.asc)           | 2009 年 10 月 2 日  | Devfs / VFS NULL 指针竞争条件                                                                                               |

### 2.2 内核变化

FreeBSD GENERIC 内核现在包括了 Trusted BSD MAC（强制访问控制）支持。默认情况下不会加载任何 MAC 策略模块。

\[i386] 增加了一个加载器可调项 `hw.clflush_disable`，以避免在使用 Intel CPU 时，`map_invalidate_cache_range()` 发生 panic（陷阱 9）。该可调项可以设置为 -1（默认）、0 或 1。-1 与当前行为相同，自动禁用不支持 CPUID\_SS 的 Intel CPU 上的 CLFLUSH（这应该仅发生在 Xen 上）。当这种 panic 发生在非 Intel CPU（例如 AMD）上时，可以设置为 1。由于禁用 `CLFLUSH` 可能会降低性能，因此可以尝试在没有 SS 的 Intel CPU 上设置为 `0`，以启用 CLFLUSH 功能。

[jail(8)](http://www.freebsd.org/cgi/man.cgi?query=jail\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 子系统已更新。变更包括：

* 实现了一个新的虚拟化容器，名为“vimage”。默认情况下未启用。要启用此功能，请将以下内核选项添加到内核配置文件中并重新编译内核：

  ```sh
  options    VIMAGE
  ```

  请注意，GENERIC 内核中的选项 SCTP 与选项 VIMAGE 不兼容。此限制将在下一个版本中修复。

  vimage 是一个带有虚拟化 FreeBSD 网络堆栈的 jail 容器。可以使用 [jail(8)](http://www.freebsd.org/cgi/man.cgi?query=jail\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 命令像这样创建 vimage：

```sh
# jail -c vnet name=vnet1 host.hostname=vnet1.example.net path=/ persist
```

vimage 拥有自己的回环接口和独立的网络堆栈，包括 L3 路由表。系统上的网络接口可以通过使用 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) `vnet` 选项，在不同的 vimage jail 之间及其外部进行移动。

此外，已添加 [epair(4)](http://www.freebsd.org/cgi/man.cgi?query=epair\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 虚拟接口驱动程序，以帮助 vimage jail 之间的通信。它模拟了一对背对背连接的以太网接口。例如，以下命令创建一对 [epair(4)](http://www.freebsd.org/cgi/man.cgi?query=epair\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 接口：

```sh
# ifconfig epair0 create
epair0a
# ifconfig epair0a
epair0a: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether 02:c0:64:00:07:0a
# ifconfig epair0b
epair0b: flags=8842<BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
    ether 02:c0:64:00:08:0b
```

[epair(4)](http://www.freebsd.org/cgi/man.cgi?query=epair\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 虚拟接口和系统上的任何物理接口都可以通过使用 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) `vnet` 选项在 vimage jail 之间进行移动。如上所述，即使移动了 [epair(4)](http://www.freebsd.org/cgi/man.cgi?query=epair\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 对中的一部分，背对背连接仍然有效，可以用于 jail 之间的通信。

请注意，vimage 仍然被视为实验性功能。

* 现在，jail 可以拥有类似于环境变量的任意命名参数，之前版本中的固定 jail 参数已被这些参数替代。现在可以使用 jail 名称来标识 jail，并在 [jexec(8)](http://www.freebsd.org/cgi/man.cgi?query=jexec\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 和 [killall(1)](http://www.freebsd.org/cgi/man.cgi?query=killall\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 中进行操作。
* 现在每个 jail 可以多个 IPv4/IPv6 地址。甚至可以让 jail 没有 IP 地址，这基本上是个没有网络功能的 chroot 环境，且进程视图受限。
* 在 jails 中实现了带有 IPv6 的 SCTP（[sctp(4)](http://www.freebsd.org/cgi/man.cgi?query=sctp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)）。
* 实现了通过使用 [cpuset(1)](http://www.freebsd.org/cgi/man.cgi?query=cpuset\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 进行特定 CPU 绑定。请注意，当前实现允许 jail 中的超级用户更改指定的 CPU 绑定。
* 现在，jail 可以使用特定的路由 FIB 启动。
* [ddb(8)](http://www.freebsd.org/cgi/man.cgi?query=ddb\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 内核调试器现在支持显示 jail 子命令。
* 添加了兼容性支持，允许在 64 位系统上使用 32 位 jail 二进制文件来管理 jail。
* 请注意，已更新 [jail(8)](http://www.freebsd.org/cgi/man.cgi?query=jail\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 中的 jail 和 prison 版本号，以支持新功能。

添加了 [ksyms(4)](http://www.freebsd.org/cgi/man.cgi?query=ksyms\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 内核符号表接口驱动程序。它创建了一个字符设备 `/dev/ksyms`，并提供对内核符号表快照的只读访问。

\[amd64, i386] FreeBSD 的 Linux 仿真层已更新至版本 2.6.16，默认的 Linux 基础设施 Port 为 emulators/linux\_base-f10（Fedora 10）。

\[arm] FreeBSD/arm 现已支持 mini dump。

\[powerpc] FreeBSD/powerpc 现已支持内核核心转储。

\[amd64, i386] FreeBSD 的虚拟内存子系统现已支持应用内存的完全透明使用**超页**；应用程序内存页会动态地升降级为超页，无需修改应用程序代码。此更改提供了大页面大小的好处，如提高虚拟内存效率并减少 TLB（转换旁路缓存）未命中，同时避免了应用程序更改和虚拟内存灵活性不足等缺点。可以通过将加载器调优参数 `vm.pmap.pg_ps_enabled` 设置为 1 来启用此功能，且默认在 amd64 上启用。

\[7.2R] \[ddb(8)] 内核调试器现支持子命令 `show mount`。

\[7.2R] FreeBSD 的 DTrace 子系统现支持进程执行探针。

\[7.2R] \[amd64] FreeBSD 内核虚拟地址空间已增加至 6GB。这允许子系统使用比以前更大的虚拟内存空间。例如，\[zfs(8)] 自适应替换缓存（ARC）需要较大的内核内存空间来缓存文件系统数据，因此从增加的地址空间中受益。请注意，内核映射大小的上限现在是物理内存大小的 60%，而不是绝对值。

\[7.2R] \[kld(4)] 现在支持从内核模块安装 32 位系统调用到 FreeBSD 系统调用转换层。

\[7.2R] \[ktr(4)] 现在支持在 `KTR_CALLOUT` 类别中新增一个 KTR 追踪点，用于标记调用例程执行结束。

\[7.2R] 用于跟踪分配的 System V 共享内存量的变量类型已从 `int` 更改为 `size_t`。这使得在 64 位架构上使用超过 2GB 的内存来管理共享内存段成为可能。请注意，关于此临时解决方案的限制，请参见 \[shmctl(2)] 和 `/usr/src/UPDATING` 中的新 BUGS 部分。

\[7.2R] \[sysctl(3)] 叶节点现在具有标记自身为 MPSAFE 的参数。

\[7.2R] FreeBSD 的 32 位系统调用转换层现在支持为 `VFS_AIO` 安装 32 位系统调用。

\[7.1R] \[clock\_gettime(2)] 及相关系统调用现支持 POSIX 中定义的时钟 ID `CLOCK_THREAD_CPUTIME_ID`。

\[7.1R] 已添加 \[cpuset(2)] 系统调用，这是一个线程与 CPU 绑定以及 CPU 资源分组和分配的 API。

\[7.1R] DTrace（一款综合的动态追踪框架）和 \[dtrace(1)] 用户空间实用程序已从 OpenSolaris 移植到 FreeBSD。DTrace 为管理员、开发者和服务人员提供了一个强大的基础设施，可以简洁地回答关于操作系统和用户程序行为的任意问题。

\[7.1R] \[ddb(4)] 内核调试器现在具有输出捕获功能。现在可以将 \[ddb(4)] 的输入和输出捕获到内存缓冲区中，以便稍后使用 \[sysctl(8)] 或文本转储检查。新的捕获命令控制此功能。

\[7.1R] \[ddb(4)] 调试器现在支持简单的脚本功能，支持由一组 \[ddb(4)] 命令组成的命名脚本。这些命令可以通过 \[ddb(4)] 或使用新的 \[ddb(8)] 实用程序来管理。有关详细信息，请参见 \[ddb(4)] 手册页。

\[7.1R] \[ddb(4)] 的 ex 命令现在支持/S 模式，用于解释并打印请求地址处的符号。例如，`ex /S aio_swake` 打印当前通过 *aio\_swake* 钩子注册的函数的名称。

\[7.1R] 已添加 \[ddb(4)] 的命令 `show conifhk`，用于列出当前等待在 `run_interrupt_driven_config_hooks()` 中完成的钩子。

\[7.1R] \[fcntl(2)] 系统调用现支持 `F_DUP2FD` 命令。这相当于 \[dup(2)]，并与 Sun Solaris 和 IBM AIX 兼容。

\[7.1R] FreeBSD 的 \[linux(4)] ABI 支持现已实现 `sched_setaffinity()` 和 `sched_getaffinity()`，并使用实际的 CPU 亲和力设置原语。

\[7.1R] 新增了 \[procstat(1)] 实用程序。这是一个进程检查工具，提供了从 \[procfs(5)] 中缺失的一些功能，以及用于监视和调试特定进程的新功能。

\[7.1R] \[rpc.lockd(8)] 的客户端功能已在 FreeBSD 内核中实现。此实现为 \[flock(2)] 风格的锁提供了正确的语义，这些锁被 \[lockf(1)] 命令行工具和 \[pidfile(3)] 库使用。它还实现了从服务器重启后的恢复，并确保在获取锁之前，脏缓存块已写入服务器（允许多个客户端使用文件锁安全地共享数据）。此外，新增了内核选项 `NFSLOCKD`，并默认启用。如果内核支持启用，\[rpc.lockd(8)] 会自动检测并使用此功能。

\[7.1R] FreeBSD 内核现支持一种新的内核转储文本转储格式。文本转储通过机械生成/提取的调试输出提供更高级的信息，而非简单的内存转储。此功能可用于生成简短的内核错误报告，报告中包含丰富的调试信息，但不依赖于内核符号表或精确同步的源代码。更多信息请参见 \[textdump(4)] 手册页。

\[7.1R] \[wait4(2)] 系统调用现支持 `WNOWAIT` 参数，用于保持返回状态的进程处于可等待状态，并支持 `WSTOPPED`，该参数等同于 `WUNTRACED`。

\[7.1R] \[amd64, i386, sparc64] FreeBSD 内核现在支持将中断绑定到 CPU。

\[7.1R] \[amd64, i386] \[sched\_ule(4)] 调度器现为 GENERIC 内核的默认进程调度器。

\[7.1R] 新增了 sysctl 变量 `kern.features.compat_freebsd[456]`，对应于内核选项 `COMPAT_FREEBSD[456]`。

#### 2.2.1 启动加载器变更

**boot0** 启动加载器现在保留其他操作系统使用的 `0x1b8` 偏移处的卷 ID。

\[boot0cfg(8)] 工具现在支持新的 `-i` 选项来设置卷 ID。

\[arm, powerpc] \[loader(8)] 现在支持 U-Boot 支持库。

\[7.2R] \[boot(8)] 现在支持某些 Windows® 版本在 MBR 中放置的 4 字节卷 ID，并支持通过按 F6 键在某些支持的 BIOS 上调用 PXE。

\[7.2R] \[i386] \[boot(8)] BTX 加载器已改进。此修复解决了 7.1-RELEASE 及之前版本在近期机器上报告的多个启动问题。

\[7.2R] \[loader(8)] 现在能够通过 \[kenv(2)] 变量从网络启动中获取 DHCP 选项。

\[7.2R] 修复了 \[loader(8)] 中的一个 bug，现在以下行按预期工作：

```sh
loader_conf_files="foobar ${variable}"
```

\[7.1R] \[amd64, i386] 启动加载器使用的 BTX 内核已更改为从实模式调用 BIOS 例程。此更改使得从 USB 设备启动 FreeBSD 成为可能。

\[7.1R] \[amd64, i386] 新增了 gptboot 启动加载器，以支持从 GPT 标签磁盘启动。新增了 \[ gpt(8)] 中的一个启动命令，可以通过写入所需的启动加载器部分、创建新启动分区（如果需要）来使 GPT 磁盘可启动。

#### 2.2.2 硬件支持

FreeBSD 现在包含对 MIPS 平台的实验性支持。

对 Dallas Semiconductor 芯片上的 RTC 支持已得到改善。现在支持 DS133x 和 DS1553。

\[arm] FreeBSD/arm 现在支持 Feroceon 和 Sheeva 嵌入式 CPU，Marvell Orion（88F5281）、Kirkwood（88F6281）、Discovery Innovation（MV-78100）系统级芯片（SoC）CPU。

\[powerpc] FreeBSD/powerpc 现在支持 SMP（对称多处理）机器。

\[powerpc] FreeBSD/powerpc 现在支持 E500（Book-E）嵌入式 CPU 和 Freescale PowerQUICCIII MPC85xx 系统级芯片（包括单核和双核）。

\[acpi(4)] 子系统现在支持系统资源亲和性表（SRAT），用于描述 CPU 和内存之间的亲和性关系，支持 ACPI 3.0 中的 MADT 字段，包括 X2APIC 条目和本地 SAPIC 的 UID，及 ACPI 3.0 参数在 FADT 中的支持。

\[powerpc] \[cpufreq(4)] 框架现在支持 PowerPC G5，并包含 SMU 驱动程序骨架，以便在频率变化期间调整 CPU 电压。

新增了 sec(4) 驱动程序，支持 Freescale 系统级芯片设备中的集成安全引擎。

FreeBSD 的 TTY 层已被替换为新的 TTY 层，具有更好的 SMP 支持和更强的资源管理能力。每个 TTY 现在都有自己的互斥锁，预计与基于 Giant 锁的旧实现相比，这将提高可扩展性。

\[amd64, i386] \[uart(4)] 驱动程序现在是串行端口设备的默认驱动程序，取代了 \[sio(4)] 驱动程序。请注意，设备节点已从 /dev/cuad*N* 和 /dev/ttyd*N* 重命名为 /dev/cuau*N* 和 /dev/ttyu*N*。

> **重要提示：**
>
> 升级的用户需要更改其内核配置，并可能还需要更改 `/boot/loader.conf` 和 `/boot/device.hints`。

已重新实现 FreeBSD USB 子系统，以支持现代设备并提高 SMP 可扩展性。新的实现包括无 Giant 锁的设备驱动程序、Linux 兼容层、\[usbconfig(8)] 工具、完全支持分割事务和等时事务等。USB 设备的设备节点名称现在采用 /dev/usb/*bus*.*dev*.*endpoint* 的形式，`/dev/usbctl` 是主设备节点。请注意，\[ugen(4)] 驱动程序为每个设备提供了节点，如 /dev/ugen*bus*.*dev*，以保持向后兼容性。

\[7.2R] \[sparc64] FreeBSD 现在支持 Ultra SPARC III（Cheetah）处理器系列。

\[7.2R] \[acpi(4)] 子系统现在支持一个 \[sysctl(8)] 变量 `debug.batt.batt_sleep_ms`。在一些具有智能电池的笔记本上，启用电池监控软件会导致 \[atkbd(4)] 的按键丢失。这个 sysctl 变量通过在状态检查代码中添加毫秒级的延迟来作为一种解决方法。

\[7.2R] \[acpi\_asus(4)] 驱动程序现在支持 Asus A8Sr 笔记本。

\[7.2R] \[powerpc] 添加了对 AltiVec（浮点和整数 SIMD 指令集）的支持。

\[7.2R] 添加了 [cpuctl(4)](http://www.freebsd.org/cgi/man.cgi?query=cpuctl\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，它提供了一个特殊设备 `/dev/cpuctl` 作为与系统 CPU 的接口。该驱动程序的功能包括检索 CPUID 信息、读写机器特定寄存器（MSR）以及执行 CPU 固件更新。

\[7.2R] [cpufreq(4)](http://www.freebsd.org/cgi/man.cgi?query=cpufreq\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 `hw.est.msr_info` 加载器可调参数。当该参数设置为 1 时，如果无法从 ACPI 或静态表中获取频率列表，它会尝试构建一个仅包含高频和低频的简单列表。默认情况下禁用此功能。

\[7.2R] \[amd64, i386] 当 TSC 为 P-state 不变时，CPU 频率变化通知现在被禁用。此外，新增了一个加载器可调参数 `kern.timecounter.invariant_tsc`，可以通过将其设置为非零值强制启用该行为。

\[7.2R] [atkbd(4)](http://www.freebsd.org/cgi/man.cgi?query=atkbd\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在禁用了从键盘回调函数调用的中断处理程序（当启用轮询模式时）。这修复了在启用 [kbdmux(4)](http://www.freebsd.org/cgi/man.cgi?query=kbdmux\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 的多 CPU 系统中，在 `mountroot` 提示符下字符重复/丢失的问题。

\[7.2R] 在 [pci(4)](http://www.freebsd.org/cgi/man.cgi?query=pci\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 子系统中，当启用 MSI/MSIX 时，INTx 现在被禁用。此更改修复了与中断风暴相关的问题。

\[7.2R] \[sparc64] 添加了 Schizo Fireplane/Safari 到 PCI 2.1 和 Tomatillo JBus 到 PCI 2.2 桥的 schizo(4) 驱动程序。

\[7.2R] 添加了 [u3g(4)](http://www.freebsd.org/cgi/man.cgi?query=u3g\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，支持 USB 基于的 3G 卡和加密狗，包括 Vodafone Mobile Connect Card 3G、Qualcomm CDMA MSM、Huawei E220、Novatel U740、Sierra MC875U 等。它支持许多 3G USB/PC 卡调制解调器暴露的多个 USB 到串行接口，设备通过 [ucom(4)](http://www.freebsd.org/cgi/man.cgi?query=ucom\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序访问，使其表现得像一个 [tty(4)](http://www.freebsd.org/cgi/man.cgi?query=tty\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)。

\[7.2R] [sched\_ule(4)](http://www.freebsd.org/cgi/man.cgi?query=sched_ule\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 调度程序现在支持加载器可调参数 `machdep.hyperthreading_enabled`，就像 [sched\_4bsd(4)](http://www.freebsd.org/cgi/man.cgi?query=sched_4bsd\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 一样。请注意，无法在运行时修改该参数。

\[7.1R] 添加了 [cmx(4)](http://www.freebsd.org/cgi/man.cgi?query=cmx\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，这是一个 Omnikey CardMan 4040 PCMCIA 智能卡读卡器的驱动程序。

\[7.1R] \[sparc64] [kbdmux(4)](http://www.freebsd.org/cgi/man.cgi?query=kbdmux\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 sparc64。[sunkbd(4)](http://www.freebsd.org/cgi/man.cgi?query=sunkbd\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 [atkbd(4)](http://www.freebsd.org/cgi/man.cgi?query=atkbd\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 模拟，就像 [ukbd(4)](http://www.freebsd.org/cgi/man.cgi?query=ukbd\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 一样。

\[7.1R] nvram(4) 驱动程序现在是 MPSAFE。

\[7.1R] [puc(4)](http://www.freebsd.org/cgi/man.cgi?query=puc\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序的一个选项 PUC\_FASTINTR 不再受支持。

\[7.1R] [psm(4)](http://www.freebsd.org/cgi/man.cgi?query=psm\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在尝试在检测到 IntelliMouse 之前先检测 Synaptics 触摸板。一些触摸板会伪装成 IntelliMouse，导致 IntelliMouse 探测工作并且 Synaptics 检测未被执行。

\[7.1R] 导入了 [uslcom(4)](http://www.freebsd.org/cgi/man.cgi?query=uslcom\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，这是一个用于 Silicon Laboratories CP2101/CP2102 基于 USB 串行适配器的驱动程序，来自 OpenBSD。

**2.2.2.1 多媒体支持**

FreeBSD 音频子系统得到了改进。改动包括每个通道的音量控制、高质量的定点带限 SINC 采样率转换器、比特完美模式、透明/自适应虚拟通道和独占流。更多细节请参见 [snd(4)](http://www.freebsd.org/cgi/man.cgi?query=snd\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 手册页面。

\[7.2R] [agp(4)](http://www.freebsd.org/cgi/man.cgi?query=agp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 Intel G4X 系列图形芯片组。

\[7.2R] Direct Rendering Manager (**DRM**) 内核模块已更新，它为 DRI 客户端提供了直接的硬件访问。AMD/ATI r500、r600、r700 和 IGP 芯片、XGI V3XE/V5/V8 以及 Intel i915 芯片组的支持已得到改进。

\[7.2R] 新增了加载器可调参数 `hw.drm.msi`，用于控制 DRM 是否使用 MSI。默认设置为 1（启用）。

\[7.2R] 已移除 Aureal Vortex 1/2/Advantage PCI 的 \[snd\_au88x0(4)] 驱动程序，因为该驱动程序长期以来一直处于故障状态。

\[7.2R] [snd\_hda(4)](http://www.freebsd.org/cgi/man.cgi?query=snd_hda\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已更新。这些改动包括支持每个 HDA 总线的多个编解码器、每个编解码器的多个功能组、每个功能组的多个音频设备、数字（SPDIF/HDMI）音频输入/输出、挂起/恢复以及部分多声道音频。

\[7.2R] 请注意，由于增加了 HDMI 音频和逻辑音频设备的支持，更新后的驱动程序通常会提供多个 PCM 设备。这意味着在某些情况下，系统默认的音频设备不再与用户习惯的音频连接器相对应。在这种情况下，可以在音频应用程序的设置中指定默认设备，或通过 sysctl 变量 `hw.snd.default_unit` 全局定义默认设备，具体操作请参见 [sound(4)](http://www.freebsd.org/cgi/man.cgi?query=sound\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 手册页面。

\[7.1R] [agp(4)](http://www.freebsd.org/cgi/man.cgi?query=agp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 Intel G33 和 G45。

\[7.1R] \[i386] 新增了 dpms(4) 驱动程序，用于在挂起和恢复期间使用 VESA BIOS 进行 DPMS。

\[7.1R] **DRM** 内核驱动程序现在支持 i915 GME 设备。

**2.2.2.2 网络接口支持**

新增了 [bwi(4)](http://www.freebsd.org/cgi/man.cgi?query=bwi\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，支持 Broadcom BCM43xx IEEE 802.11b/g 无线网络接口。

\[sparc64] 新增了 [cas(4)](http://www.freebsd.org/cgi/man.cgi?query=cas\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，支持 Sun Cassini/Cassini+ 和 National Semiconductor DP83065 Saturn 千兆以太网设备。

已改进 [fxp(4)](http://www.freebsd.org/cgi/man.cgi?query=fxp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序。改动包括：

* 多播过滤器重新编程更为稳健。
* \[7.2R] 现在可以通过 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 控制校验和卸载功能。
* \[7.2R] 为 82559 或更高版本控制器添加了 Rx 校验和卸载支持。
* \[7.2R] 为 82550 和 82551 控制器添加了 TSO（TCP 分段卸载）支持。
* \[7.2R] 为 82550、82551、82558 和 82559 控制器添加了 WoL（远程唤醒）支持。请注意，基于 ICH 的控制器被视为 82559，而 82557、早期版本的 82558 和 82559ER 不支持 WoL。
* \[7.2R] 添加了 VLAN 硬件标签插入/去除支持，以及 VLAN 帧的 Tx/Rx 校验和卸载支持。请注意，VLAN 硬件协助仅适用于 82550/82551 控制器。

\[arm, powerpc] 新增了 \[mge(4)] 驱动程序，支持 ARM 架构 SOC（如 Orion、Kirkwood、Discovery）上的 Marvell 千兆以太网控制器，以及 PowerPC 处理器（如 MV64430、MV6446x）上的系统控制器。

[miibus(4)](http://www.freebsd.org/cgi/man.cgi?query=miibus\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 Marvell 88E3016。

[msk(4)](http://www.freebsd.org/cgi/man.cgi?query=msk\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 Yukon FE+ A0，包括 88E8040、88E8040T、88E8048 和 88E8070。

[mwl(4)](http://www.freebsd.org/cgi/man.cgi?query=mwl\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已新增，支持 Marvell 88W8363 IEEE 802.11n 无线网络设备。

[mxge(4)](http://www.freebsd.org/cgi/man.cgi?query=mxge\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持一些更新版本和 10GBASE-LRM 与 10GBASE-Twinax 媒体类型。固件版本已更新至 1.4.43。

[nge(4)](http://www.freebsd.org/cgi/man.cgi?query=nge\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已改进，现在支持所有平台。

新增了 tsec(4) 驱动程序，支持 Freescale 集成的三速以太网控制器（TSEC）。该驱动程序也支持该控制器的增强版（eTSEC）。

新增了 [uath(4)](http://www.freebsd.org/cgi/man.cgi?query=uath\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，支持基于 Atheros AR5005UG 和 AR5005UX 芯片组的 USB 无线 LAN 适配器。同时也新增了 [uathload(8)](http://www.freebsd.org/cgi/man.cgi?query=uathload\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 实用程序，这是 Atheros USB 无线驱动程序的固件加载器。

新增了 [urtw(4)](http://www.freebsd.org/cgi/man.cgi?query=urtw\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，支持 Realtek RTL8187B/L USB IEEE 802.11b/g 无线网络设备。

[xl(4)](http://www.freebsd.org/cgi/man.cgi?query=xl\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 TX 校验和卸载。

\[7.2R] [ae(4)](http://www.freebsd.org/cgi/man.cgi?query=ae\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现已支持 WoL（远程唤醒）。

\[7.2R] \[amd64, i386] [ale(4)](http://www.freebsd.org/cgi/man.cgi?query=ale\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现已包含在 GENERIC 内核中。

\[7.2R] [ath\_hal(4)](http://www.freebsd.org/cgi/man.cgi?query=ath_hal\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)，Atheros 硬件访问层，已更新为开源版本。

\[7.2R] [axe(4)](http://www.freebsd.org/cgi/man.cgi?query=axe\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已通过消除额外的上下文切换来提升性能，并且现在支持 Apple USB 以太网适配器。

\[7.2R] [bce(4)](http://www.freebsd.org/cgi/man.cgi?query=bce\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序的固件已更新为最新版本（4.6.X）。

\[7.2R] ciphy(4) 驱动程序现在支持 Vitesse VSC8211 PHY。

\[7.2R] [cxgb(4)](http://www.freebsd.org/cgi/man.cgi?query=cxgb\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已更新为固件版本 4.7，现在支持硬件 MAC 统计信息。

\[7.2R] 修复了 [igb(4)](http://www.freebsd.org/cgi/man.cgi?query=igb\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序中的一个错误，该错误阻止了加载器可调参数 `hw.igb.ave_latency` 的正常工作。

\[7.2R] [ixgbe(4)](http://www.freebsd.org/cgi/man.cgi?query=ixgbe\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已更新至版本 1.7.4。

\[7.2R] [jme(4)](http://www.freebsd.org/cgi/man.cgi?query=jme\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持更新版的 JMicron JMC250/JMC260。

\[7.2R] [msk(4)](http://www.freebsd.org/cgi/man.cgi?query=msk\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已改进。修复了在某些条件下导致其挂起的问题。已添加硬件 MAC 统计信息支持，用户可以通过名为 `dev.msk.N.stats` 的 sysctl 变量获取该信息。

\[7.2R] [nfe(4)](http://www.freebsd.org/cgi/man.cgi?query=nfe\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持硬件 MAC 统计信息。

\[7.2R] [re(4)](http://www.freebsd.org/cgi/man.cgi?query=re\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已改进。现在可以检测链接状态。新增了一个加载器可调参数 `hw.re.prefer_iomap`，用于禁用内存寄存器映射。该可调参数对 RTL8169SC 系列之外的所有控制器默认设置为 `0`。

\[7.2R] [rl(4)](http://www.freebsd.org/cgi/man.cgi?query=rl\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已改进。现在可以检测链接状态，修复了一个导致其在内存超过 4GB 的系统上无法正常工作的错误。

\[7.2R] 修复了 [sis(4)](http://www.freebsd.org/cgi/man.cgi?query=sis\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序中的 VLAN 标签帧处理错误。

\[7.2R] [txp(4)](http://www.freebsd.org/cgi/man.cgi?query=txp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持所有受支持的架构。新增了对 [altq(4)](http://www.freebsd.org/cgi/man.cgi?query=altq\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)、WoL、VLAN 启用时的校验和卸载支持，改进了链接状态变化处理，并新增了 `dev.txp.N.stats` 的 MAC 统计信息 sysctl 变量。新增了 `dev.txp.N.process_limit` sysctl 变量，用于控制接收处理器中应服务的接收帧数量（默认为 64，合法范围为 16 到 128，单位为帧）。固件已更新至最新版本。

\[7.1R] [ae(4)](http://www.freebsd.org/cgi/man.cgi?query=ae\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已新增，支持 Attansic/Atheros L2 快速以太网控制器。

\[7.1R] [jme(4)](http://www.freebsd.org/cgi/man.cgi?query=jme\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已新增，支持基于 JMicron JMC250 千兆以太网和 JMC260 快速以太网控制器的 PCIe 适配器。

\[7.1R] [age(4)](http://www.freebsd.org/cgi/man.cgi?query=age\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已新增，支持 Attansic/Atheros L1 千兆以太网控制器。

\[7.1R] [malo(4)](http://www.freebsd.org/cgi/man.cgi?query=malo\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已新增，支持基于 Marvell Libertas 88W8335 的 PCI 网络适配器。

\[7.1R] 已新增 bm(4) 驱动程序，支持 Apple Big Mac (BMAC) 以太网控制器，该控制器出现在多个 Apple G3 型号中。

\[7.1R] 已新增 et(4) 驱动程序，支持 Agere ET1310 10/100/千兆以太网控制器。

\[7.1R] 已新增 [glxsb(4)](http://www.freebsd.org/cgi/man.cgi?query=glxsb\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，支持 AMD Geode LX 处理器中的安全模块。

\[7.1R] 已新增 [ale(4)](http://www.freebsd.org/cgi/man.cgi?query=ale\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，支持 Atheros AR8121/AR8113/AR8114 千兆/快速以太网控制器。此驱动程序在本版本的 GENERIC 内核中未启用。

\[7.1R] [em(4)](http://www.freebsd.org/cgi/man.cgi?query=em\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已分为两个驱动程序并共享部分代码。 [em(4)](http://www.freebsd.org/cgi/man.cgi?query=em\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序将继续支持最多至 82575 的适配器以及新的客户端/桌面适配器。新增的 [igb(4)](http://www.freebsd.org/cgi/man.cgi?query=igb\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序将支持新的服务器适配器。

\[7.1R] [hme(4)](http://www.freebsd.org/cgi/man.cgi?query=hme\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已改进。

\[7.1R] 修复了 [miibus(4)](http://www.freebsd.org/cgi/man.cgi?query=miibus\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 支持的某些驱动程序中的错误，该错误导致 IEEE 802.3 自动协商顺序错误。现在，它按照附录 28B.3 中描述的顺序选择 IEEE 802.3 支持的正确技术。

\[7.1R] 已为 [msk(4)](http://www.freebsd.org/cgi/man.cgi?query=msk\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序中的 TCP/UDP 硬件校验和卸载短帧时的错误添加了临时解决方法。请注意，对于需要硬件 VLAN 标签插入的帧，由于 VLAN 标签后的 mbuf 中校验和偏移量发生变化，校验和卸载的临时解决方法无法正常工作。因此，在这种情况下需要禁用 VLAN 接口的硬件校验和卸载。

\[7.1R] [ndis(4)](http://www.freebsd.org/cgi/man.cgi?query=ndis\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) NDIS miniport 驱动程序包装器已改进。

\[7.1R] [sf(4)](http://www.freebsd.org/cgi/man.cgi?query=sf\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已改进，现在支持校验和卸载。

\[7.1R] [stge(4)](http://www.freebsd.org/cgi/man.cgi?query=stge\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序现在支持 WoL（远程唤醒）。

\[7.1R] [vr(4)](http://www.freebsd.org/cgi/man.cgi?query=vr\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已改进。

\[7.1R] \[amd64, i386] [wpi(4)](http://www.freebsd.org/cgi/man.cgi?query=wpi\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序已更新，包含多个稳定性修复。

#### 2.2.3 网络协议

已重新实现 FreeBSD 的 netisr 框架，以支持并行线程。该框架是一个内核网络分发接口，允许设备驱动程序（以及其他数据包源）将数据包直接或延迟地分发到协议进行处理。新的实现支持每个 CPU 一个 netisr 线程，并且在多处理器（SMP）机器上进行的几个基准测试显示，性能相比于旧版本有显著提升。

修复了 [gif(4)](http://www.freebsd.org/cgi/man.cgi?query=gif\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 中的一个 bug，该 bug 使得由 [if\_bridge(4)](http://www.freebsd.org/cgi/man.cgi?query=if_bridge\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 和 [gif(4)](http://www.freebsd.org/cgi/man.cgi?query=gif\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 组合发送的 EtherIP 数据包的版本字段被颠倒。如果需要通过 EtherIP 与旧版本 FreeBSD 通信，可以使用新的参数 accept\_rev\_ethip\_ver 和 send\_rev\_ethip\_ver 来控制处理颠倒的版本字段。可以通过 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具设置这些参数到 [gif(4)](http://www.freebsd.org/cgi/man.cgi?query=gif\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 接口。FreeBSD 6.1、6.2、6.3、7.0、7.1 和 7.2 版本的 EtherIP 实现存在互操作性问题，因为它发送了错误的 EtherIP 数据包并丢弃了正确的包。更多细节请参见 [gif(4)](http://www.freebsd.org/cgi/man.cgi?query=gif\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 手册页。

已添加对 IGMPv3 和源特定多播（SSM，包括 IPv6 SSM 和 MLDv2）的支持。虽然旧的 KAME MLDv2 钩子已被新的实现替换，但相关的内核编程接口仍然保留。

多播路由代码已改进，IPv4 和 IPv6 支持已拆分。

FreeBSD 现在支持即将到来的无线网状网络标准 IEEE 802.11s。当前的实现基于 2009 年 3 月 D3.0 草案版本。

无线网络支持层（net80211）现在使用伪接口 wlan*N*，而不是像 em0 这样的设备驱动程序名称。wlan*N* 接口由 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 创建，作为父接口的实例，类似于 [vlan(4)](http://www.freebsd.org/cgi/man.cgi?query=vlan\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)（IEEE 802.1Q VLAN 网络接口）用于实际通信。请注意，如果父接口支持，可以创建多个实例（例如实现多个 BSS 与单个 AP 设备）。更多细节请参见 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 手册页。

net80211 层现在支持使用 [ath(4)](http://www.freebsd.org/cgi/man.cgi?query=ath\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 设备的长距离点对点链路的 TDMA。

已添加一种用于加速 L2 和 L3 查找的流缓存基础设施。这被称为“流表”，在 amd64 和 i386 平台上默认启用。这也提供了状态感知的负载均衡，当与 RADIX\_MPATH 一起使用时。

FreeBSD L2 地址转换表已重新实现，以减少并行处理时的锁争用并简化路由逻辑。新实现具有分别用于 ARP（IPv4）和 NDP（IPv6）的 L2 地址转换表，这些表与 L3 路由表分开，并支持路由表和 L2 信息的流表缓存。一个用户可见的变化是，克隆路由的概念（通过带有 RTF\_CLONING 参数的条目生成的路由）已被弃用。这意味着路由参数 RTF\_CLONING、RTF\_WASCLONE 和 RTF\_LLINFO 已过时。

[ipsec(4)](http://www.freebsd.org/cgi/man.cgi?query=ipsec\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 子系统现在支持 NAT 穿越（RFC 3948）。默认情况下该功能处于禁用状态。要启用此功能，请添加以下内核选项并重新编译内核：

```sh
device crypto
options IPSEC
options IPSEC_NAT_T
```

\[7.2R] 已实现对未绑定套接字的 IPv4 源地址选择，具体如下：

1. 如果找到路由，则使用与外发接口对应的地址。
2. \[7.2R] 否则假设外部地址可以在直接连接的网络上访问，并尝试找到相应的接口来获取源地址。
3. \[7.2R] 作为最后的备选方案，使用默认的 jail 地址。

\[7.2R] 这也改变了在 [jail(8)](http://www.freebsd.org/cgi/man.cgi?query=jail\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 中选择进程 IP 地址的语义，因为现在它采用与 [jail(8)](http://www.freebsd.org/cgi/man.cgi?query=jail\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 外部相同的逻辑。

\[7.2R] 对于 IPv6，TCP MD5 签名选项（RFC 2385）的实现方式与 IPv4 相同。

\[7.2R] [ng\_netflow(4)](http://www.freebsd.org/cgi/man.cgi?query=ng_netflow\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) Netgraph 节点现在支持生成出口 netflow，替代或附加到入口 netflow。已添加一个 `NGM_NETFLOW_SETCONFIG` 控制消息来控制这一新功能。

\[7.2R] [tap(4)](http://www.freebsd.org/cgi/man.cgi?query=tap\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 以太网隧道软件网络接口现在支持一个新的 TAPGIFNAME 字符设备 ioctl。这是一个方便的快捷方式，通过字符设备的文件描述符获取网络接口名称。

\[7.2R] [tap(4)](http://www.freebsd.org/cgi/man.cgi?query=tap\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 现在支持 ioctl SIOCSIFMTU，允许设置大于 1500（ETHERMTU）的 MTU。这使得 [tap(4)](http://www.freebsd.org/cgi/man.cgi?query=tap\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 设备可以被添加到同一个桥接中（要求所有接口成员具有相同的 MTU），并配置为支持 Jumbo 帧的接口。

\[7.2R] 用于处理 [unix(4)](http://www.freebsd.org/cgi/man.cgi?query=unix\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)（UNIX 域协议族）子系统中受支持的域列表的域列表现在是 MPSAFE。

\[7.1R] [arp(8)](http://www.freebsd.org/cgi/man.cgi?query=arp\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持关键字 `reject` 和 `blackhole`。在标记为 `reject` 的条目中，流量会被丢弃，且发送者会被通知主机不可达。而在标记为 blackhole 的条目中，流量被丢弃，但发送者不会收到通知。

\[7.1R] [bpf(4)](http://www.freebsd.org/cgi/man.cgi?query=bpf\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 现在支持 ioctl BIOCSETFNR。它与 BIOCSETF 类似，但不会丢弃缓冲在描述符上的所有数据包并重置统计信息。

\[7.1R] [if\_bridge(4)](http://www.freebsd.org/cgi/man.cgi?query=if_bridge\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 接口现在可以通过 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 的 `ifmaxaddr` 参数限制桥接接口后面的源 MAC 数量。

\[7.1R] 修复了 [carp(4)](http://www.freebsd.org/cgi/man.cgi?query=carp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 接口配置中的一个 bug，该 bug 导致系统崩溃。

\[7.1R] [dummynet(4)](http://www.freebsd.org/cgi/man.cgi?query=dummynet\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 子系统现在支持快速模式操作，允许某些数据包绕过 dummynet 调度器。这可以在数据包流量低于管道带宽时实现更低的延迟和更少的开销，并消除子系统中的递归。已添加新的 sysctl 变量 `net.inet.ip.dummynet.io_fast` 来启用此功能。

\[7.1R] [enc(4)](http://www.freebsd.org/cgi/man.cgi?query=enc\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 接口现在支持 sysctl 变量来控制防火墙或 [bpf(4)](http://www.freebsd.org/cgi/man.cgi?query=bpf\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 是否会看到内外头信息，或仅仅是内部或外部头信息，用于进出 IPsec 数据包。

\[7.1R] [gre(4)](http://www.freebsd.org/cgi/man.cgi?query=gre\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 现在支持 ioctls GRESKEY 和 GREGKEY，允许设置或获取用于外发数据包的 GRE 密钥。

\[7.1R] 修复了 [ipsec(4)](http://www.freebsd.org/cgi/man.cgi?query=ipsec\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 子系统中的一个 bug，当路由的 MTU 小于外发接口的 MTU 时，PMTU 被破坏。

\[7.1R] 由于缺乏多处理器支持，已移除 netatm 子系统。

\[7.1R] [ng\_nat(4)](http://www.freebsd.org/cgi/man.cgi?query=ng_nat\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 现在支持在 libalias 中的重定向功能。更多细节，请参见手册页。

\[7.1R] [ng\_pptpgre(4)](http://www.freebsd.org/cgi/man.cgi?query=ng_pptpgre\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 现在支持多个挂钩，类似 [ng\_l2tp(4)](http://www.freebsd.org/cgi/man.cgi?query=ng_l2tp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)，以便使用一对 pptpgre 和 ksocket 节点进行所有对等体之间的呼叫。

\[7.1R] [resolver(3)](http://www.freebsd.org/cgi/man.cgi?query=resolver\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 现在允许在域名中使用下划线。尽管这违反了 RFC 1034 \[STD 13]，但某些名称服务器以及其他流行操作系统的解析器库接受这一做法。

\[7.1R] 已为 TCP 套接字新增套接字选项 TCP\_CONGESTION，用于设置和获取拥塞控制算法。该名称旨在与 Linux 保持兼容性。

\[7.1R] `rwlock(9)` 已在 `inpcbinfo` 和 `inpcb` 基础结构中广泛使用，并扩展到依赖这些基础结构的协议（包括 UDP、TCP 和 IP 原始套接字），以减少锁争用。

\[7.1R] FreeBSD 现支持多路由表。启用此功能需要以下步骤：

* 添加以下内核配置选项并重新编译内核。数字 2 表示 FIB（转发信息库，本文中等同于路由表）的数量，最大值为 16。

  ```sh
  options    ROUTETABLES=2
  ```

  有关重新编译 FreeBSD 内核的过程，请参考 [FreeBSD 手册](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html#AEN30408)。
* 此值可在引导时修改。为此，请将以下内容添加到 `/boot/loader.conf` 文件并重启系统：

  ```sh
  net.fibs=6
  ```
* 如果需要，可设置加载时调节项 `net.my_fibnum`，指定默认的路由表编号。如果未指定，则默认为 0。
* 如果需要，可设置加载时调节项 `net.add_addr_allfibs`。该选项可启用在添加新接口地址时，默认向所有 FIB 添加路由。当设置为 `0` 时，仅为调用者的 FIB 分配路由。请注意，此选项默认设置为 `1`。

要选择特定的 FIB，可使用新工具 [setfib(1)](http://www.freebsd.org/cgi/man.cgi?query=setfib\&sektion=1\&manpath=FreeBSD+8.0-RELEASE)，该工具为进程关联指定 FIB。例如：

```sh
# setfib -3 ping target.example.com
```

上述命令中，FIB #3 将用于 [ping(8)](http://www.freebsd.org/cgi/man.cgi?query=ping\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 命令。

数据包所关联的 FIB 将根据以下规则确定：

* 所有已关联 FIB 的数据包将使用该 FIB；未关联的则使用 FIB `#0`。
* 在接口上接收用于转发的包将使用 FIB #0。
* 与某个 FIB 关联的 TCP 监听套接字将生成与该 FIB 关联的 accept 套接字。
* 响应其他数据包生成的包将使用被响应数据包的 FIB。
* 在隧道接口（如 [gif(4)](http://www.freebsd.org/cgi/man.cgi?query=gif\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 和 [tun(4)](http://www.freebsd.org/cgi/man.cgi?query=tun\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)）上生成的数据包将使用设置隧道的进程的 FIB 进行封装。
* 路由消息将与进程的 FIB 关联。

此外，[ipfw(8)](http://www.freebsd.org/cgi/man.cgi?query=ipfw\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现支持一个名为 `setfib` 的操作规则。以下规则：

```
setfib fibnum
```

将使匹配的数据包使用指定的 *fibnum* FIB，并继续处理下一条规则。

#### 2.2.4 磁盘和存储

FreeBSD CAM SCSI 子系统（[cam(4)](http://www.freebsd.org/cgi/man.cgi?query=cam\&sektion=4\&manpath=FreeBSD+8.0-RELEASE)）现在包括对 ATA/SATA/AHCI 兼容设备的实验性支持。该功能默认禁用。启用此功能需要在内核配置文件中添加以下选项，并重新编译内核：

```sh
device    ahci
device    siis
```

当前实现支持 AHCI 兼容控制器以及 SiliconImage SiI3124/SiI3132/SiI3531 控制器。ATA 磁盘的设备节点为 ada，ATAPI 光驱的设备节点为 cd。

FreeBSD 的 iSCSI 发起程序已改进，并增加了对 IPv6 的支持。

新增了一个用户空间实用工具 [mfiutil(8)](http://www.freebsd.org/cgi/man.cgi?query=mfiutil\&sektion=8\&manpath=FreeBSD+8.0-RELEASE)，适用于 [mfi(4)](http://www.freebsd.org/cgi/man.cgi?query=mfi\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 设备。该工具提供基本功能，包括监控控制器、阵列和驱动器状态，修改基本属性，创建/删除阵列和备用驱动器，以及刷新控制器固件。请注意，这是一个小型工具，并非 Ports 中的 MegaCLI 的替代品，后者提供官方支持并具备更多功能。

新增了用户空间实用工具 [mptutil(8)](http://www.freebsd.org/cgi/man.cgi?query=mptutil\&sektion=8\&manpath=FreeBSD+8.0-RELEASE)，适用于 [mpi(4)](http://www.freebsd.org/cgi/man.cgi?query=mpi\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 设备。此工具提供基本功能，包括监控控制器、阵列和驱动器状态，修改基本属性，以及创建/删除阵列和备用驱动器。

新增了 [siis(4)](http://www.freebsd.org/cgi/man.cgi?query=siis\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动程序，用于支持 SiliconImage SiI3124/3132/3531 SATA2 控制器。该驱动支持串行 ATA 和 ATAPI 设备、端口扩展器（包括基于 FIS 的切换）、硬件命令队列（每个端口 31 个命令）和原生命令队列。

**\[7.2R]** [ata(4)](http://www.freebsd.org/cgi/man.cgi?query=ata\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动现已支持 Marvell PATA M88SX6121。

**\[7.2R]** [ata(4)](http://www.freebsd.org/cgi/man.cgi?query=ata\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动现在将 nForce MCP67 和 MCP73 SATA 控制器识别为 AHCI。

**\[7.2R]** [ataraid(4)](http://www.freebsd.org/cgi/man.cgi?query=ataraid\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动现已初步支持 Adaptec HostRAID 控制器中的 DDF 元数据。但目前尚不支持备用驱动器和重建功能。

**\[7.2R]** [cam(4)](http://www.freebsd.org/cgi/man.cgi?query=cam\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) SCSI 子系统新增了 sysctl 变量 `kern.cam.cd.retry_count`。该变量用于控制 CD 媒体的重试次数。在读取有划痕或损坏的 CD 和 DVD 时，默认机制效率较低，而类似 **ddrescue** 的程序在完全关闭重试后表现更佳，因为它们自身具有更优的算法。默认值为 4（总共尝试 5 次）。设置为 0 可完全关闭重试。

**\[7.2R]** 修复了 [ciss(4)](http://www.freebsd.org/cgi/man.cgi?query=ciss\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动中的一个错误。该错误导致“最大设备打开数”过低，从而造成性能下降。

**\[7.2R]** [glabel(8)](http://www.freebsd.org/cgi/man.cgi?query=glabel\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) GEOM 类现在支持一个新的基于 UFS 的标签 `ufsid`，可通过唯一的文件系统 ID 引用包含 UFS 的设备。当启用 [glabel(8)](http://www.freebsd.org/cgi/man.cgi?query=glabel\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) GEOM 类时，该文件系统 ID 会自动生成和检测。例如，新标签的形式为：`/dev/ufsid/48e69c8b5c8e1b43`。使用 GEOM 标签的优点在于避免设备重命名引起的问题，如移动驱动器或控制器时。

**\[7.2R]** [gjournal(8)](http://www.freebsd.org/cgi/man.cgi?query=gjournal\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) GEOM 类现在支持根文件系统。此前，不正常关机会导致启动时无法挂载根文件系统。

**\[7.2R]** [gpart(8)](http://www.freebsd.org/cgi/man.cgi?query=gpart\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具已更新：APM 方案现支持 Tivo Series 1 分区（只读）；新增 EBR 方案以支持扩展引导记录；BSD 方案现支持引导代码；修复了 PC98 和 VTOC8 方案中的错误。

**\[7.2R]** 修复了 [gvinum(8)](http://www.freebsd.org/cgi/man.cgi?query=gvinum\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 中一个与 gvinum plex 使用的底层磁盘访问权限相关的问题。如果 plex 是一个 raid5 plex 且正被写入，则可能需要从底层磁盘读取奇偶校验数据，这要求磁盘同时支持读写操作。

**\[7.2R]** [hptmv(4)](http://www.freebsd.org/cgi/man.cgi?query=hptmv\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 驱动已更新至 HighPoint 提供的版本 1.16。

\[7.2R] **mmc(4)** 和 **mmcsd(4)** 驱动程序现已支持 MMC 和 SDHC 卡、高速时序、宽总线以及多块传输。

\[7.2R] **\[sparc64]** **mpt(4)** 驱动程序现已包含在 GENERIC 内核中。

\[7.2R] 已添加 **sdhci(4)** 驱动程序。根据 SD 主机控制器规范，该驱动程序支持类别为 8 和子类别为 5 的 PCI 设备。

\[7.2R] **sdhci(4)** 驱动程序现已支持内核转储，并新增了用于调试级别的 sysctl 变量 **hw\.sdhci.debug**。

\[7.2R] **twa(4)** 驱动程序现已支持 64 位 DMA。

\[7.2R] **mmc(4)**、**mmcsd(4)** 和 **sdhci(4)** 驱动程序现已作为内核模块包含。

\[7.1R] **aac(4)** 驱动程序现已支持 64 位的 RAID 阵列（大于 2TB），并支持同时打开设备以向控制器发送命令。

\[7.1R] **ata(4)** 驱动程序现已支持一个加载器变量 **hw\.ata.ata\_dma\_check\_80pin**，可用于在某些问题系统（如特定笔记本和 Soekris 板）上禁用 80 针电缆检查。默认值为 1。

\[7.1R] 修复了 **ata(4)** 驱动程序在 ServerWorks HT1000 芯片组上的数据损坏问题。

\[7.1R] **ciss(4)** 驱动程序现已支持一个加载器调优变量 **hw\.ciss.nop\_message\_heartbeat**，用于在 **ciss\_periodic()** 中启用 NOP 消息轮询，可作为解决 ADAPTER HEARTBEAT FAILED 问题的替代方法。默认值为 0（禁用）。

\[7.1R] **geom\_part** GEOM 类现可作为内核模块构建。

\[7.1R] **geom\_linux\_lvm** GEOM 类现可作为内核模块构建。

\[7.1R] **hptrr(4)** 驱动程序已从 HighPoint 更新到版本 1.2。

\[7.1R] 修复了 **iir(4)** 驱动程序中的缓冲区溢出问题。这可能修复了许多与该驱动程序相关的异常问题。

\[7.1R] **mpt(4)** 驱动程序现已支持 **mpt\_user** 个性化功能。

\[7.1R] **rr232x(4)** 驱动程序已被 **hptrr(4)** 驱动程序取代。

\[7.1R] **twa(4)** 驱动程序在高内存和高 CPU 负载的机器上的稳定性已得到改善。

#### 2.2.5 文件系统

已不再支持 UFS 文件系统的“危险专用”模式（“dangerously dedicated”mode）。

> **重要提示：**
>
> 此类磁盘需要重新格式化才能在此版本中正常使用。

[gvinum(8)](http://www.freebsd.org/cgi/man.cgi?query=gvinum\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持旧版 vinum 实现中的命令，包括 `attach`、`detach`、`start`、`stop`、`concat`、`mirror`、`stripe` 和 `raid5`。

[gvinum(8)](http://www.freebsd.org/cgi/man.cgi?query=gvinum\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `grow` 命令，使用户可以更轻松地扩展 plex，而无需了解所有的实现细节。

FreeBSD 的 NFS 子系统现在在客户端和服务器端支持 `RPCSEC_GSS` 认证。这替代了 NFS 客户端和服务器的 RPC 实现，采用最初为支持 NFS 锁管理器而开发的新型 RPC 实现。该实现同时支持新的 RPC 实现和从原始 NFS 代码库继承的旧版实现，默认使用新的实现。要在客户端或服务器端使用 `RPCSEC_GSS`，必须构建一个包含 **KGSSAPI** 选项和 [crypto(4)](http://www.freebsd.org/cgi/man.cgi?query=crypto\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 设备的内核。有关更多详细信息，请参阅 [gssd(8)](http://www.freebsd.org/cgi/man.cgi?query=gssd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 手册页面。

FreeBSD 的 NFS 子系统现在包含一个新的实验性实现，支持 NFSv2、NFSv3 和 NFSv4。该功能默认未启用。要启用它，请将以下内核选项添加到内核配置文件中并重新构建内核：

```sh
options    NFSCL   # 用于 NFS 客户端
options    NFSD    # 用于 NFS 服务器
```

对于 [mount(8)](http://www.freebsd.org/cgi/man.cgi?query=mount\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序，新文件系统类型为 **newnfs**，并新增了 [mount\_newnfs(8)](http://www.freebsd.org/cgi/man.cgi?query=mount_newnfs\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序。旧版基于密歇根大学实现的 NFSv4 客户端已从 FreeBSD 源代码树中移除。

FreeBSD 的 NFS 子系统现在使用 TCP 作为默认传输协议。

[VFS(9)](http://www.freebsd.org/cgi/man.cgi?query=VFS\&sektion=9\&manpath=FreeBSD+8.0-RELEASE) 子系统中的路径名查找现在支持共享 vnode 锁定。此功能默认启用。将 sysctl 变量 `vfs.lookup_shared` 设置为 `0` 可禁用此功能。注意，已移除与 sysctl 变量等效的内核选项 **LOOKUP\_SHARED** 。

**ZFS** 文件系统已更新到版本 13，新增了普通用户操作 ZFS、L2ARC、在独立磁盘上实现 ZFS 意图日志（slog）、稀疏卷等功能。

\[7.2R] [acl(3)](http://www.freebsd.org/cgi/man.cgi?query=acl\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 扩展访问控制列表的语义已更改如下：

* 添加、修改或移除扩展属性时，不会更新 inode 修改时间 (mtime)。
* 查询扩展属性时，不会更新 inode 访问时间 (atime)。

\[7.2R] FreeBSD NFS 文件系统现支持 sysctl 变量 `vfs.nfs.prime_access_cache`，用于决定 `nfs_getattr()` 是否使用 ACCESS RPC 来预加载访问缓存，还是使用简单的 GETATTR RPC。由于在许多 NFS 服务器上，ACCESS RPC 的处理代价远高于 NFSv3 挂载文件的 GETATTR RPC，因此该变量默认启用以维持之前的行为。

\[7.2R] FreeBSD UDF 文件系统现支持 fifo。

\[7.1R] [fdescfs(5)](http://www.freebsd.org/cgi/man.cgi?query=fdescfs\&sektion=5\&manpath=FreeBSD+8.0-RELEASE) 现在是 MPSAFE 的。

\[7.1R] [gpart(8)](http://www.freebsd.org/cgi/man.cgi?query=gpart\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 BSD 磁盘标签（选项 **GEOM\_PART\_BSD**）和 VTOC8 磁盘标签（选项 **GEOM\_PART\_VTOC8**）。

\[7.1R] [gvinum(8)](http://www.freebsd.org/cgi/man.cgi?query=gvinum\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在在创建 plex 时接受 *volume* 参数。

\[7.1R] 修复了 unionfs(7) 中 UNIX 域套接字路径名查找的一个错误。

### 2.3 用户空间更改

FreeBSD 基本系统中已启用 GCC 堆栈保护（也称为 ProPolice）。

添加了 BSD 许可的 [ar(1)](http://www.freebsd.org/cgi/man.cgi?query=ar\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具以替代 **GNU binutils** 中的同类工具，并且现在它是构建 FreeBSD 基本系统的默认工具。

[awk(1)](http://www.freebsd.org/cgi/man.cgi?query=awk\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持最多 64 个文件。之前版本的上限为 20 个。

[bsnmpd(1)](http://www.freebsd.org/cgi/man.cgi?query=bsnmpd\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 程序现在支持 ZFS 的 OID。

[camcontrol(8)](http://www.freebsd.org/cgi/man.cgi?query=camcontrol\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序现在支持新的模块化 ATA 内核模块以及各种 ATA 命令。

[cat(1)](http://www.freebsd.org/cgi/man.cgi?query=cat\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 和 [cp(1)](http://www.freebsd.org/cgi/man.cgi?query=cp\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在如果系统物理内存页数超过 32k，则会使用更大的缓冲区，从而减少上下文切换的次数。

新增了一个 BSD 许可的 [cpio(1)](http://www.freebsd.org/cgi/man.cgi?query=cpio\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具以替代 **GNU cpio**，并且它现在是 FreeBSD 基本系统中的默认工具。

为 [crashinfo(8)](http://www.freebsd.org/cgi/man.cgi?query=crashinfo\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具新增了脚本，用于简单分析崩溃转储。该脚本生成一个包含多种命令（如 [kgdb(1)](http://www.freebsd.org/cgi/man.cgi?query=kgdb\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 堆栈跟踪、[ps(1)](http://www.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&manpath=FreeBSD+8.0-RELEASE)、[netstat(1)](http://www.freebsd.org/cgi/man.cgi?query=netstat\&sektion=1\&manpath=FreeBSD+8.0-RELEASE)、[vmstat(8)](http://www.freebsd.org/cgi/man.cgi?query=vmstat\&sektion=8\&manpath=FreeBSD+8.0-RELEASE)、[iostat(8)](http://www.freebsd.org/cgi/man.cgi?query=iostat\&sektion=8\&manpath=FreeBSD+8.0-RELEASE)、[dmesg(8)](http://www.freebsd.org/cgi/man.cgi?query=dmesg\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 和 [fstat(1)](http://www.freebsd.org/cgi/man.cgi?query=fstat\&sektion=1\&manpath=FreeBSD+8.0-RELEASE)）针对核心转储的输出的文本文件。

[df(1)](http://www.freebsd.org/cgi/man.cgi?query=df\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具的 `-h` 参数现在支持在指定 `-i` 参数时以人类可读的格式显示 inode 数量。

[df(1)](http://www.freebsd.org/cgi/man.cgi?query=df\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-T` 参数，用于在每项条目中显示文件系统类型。

修复了 [dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具可能导致生成不正确的 `/etc/resolv.conf` 文件的错误。

[dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在在调用 [route(8)](http://www.freebsd.org/cgi/man.cgi?query=route\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 命令时使用 `-n` 参数。这消除了当获得租约但 DNS 服务不可用时的长时间延迟。

[dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在对于单播 DHCPREQUEST 数据包使用 68（bootpc）作为源端口，而不是让协议栈选择随机的源端口。这修复了某些对 DHCP 欺骗具有严格策略的网络中 [dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 无法从 RENEWING 过渡到 BOUND 的问题，而必须经过 REBINDING。

[env(1)](http://www.freebsd.org/cgi/man.cgi?query=env\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-uname` 选项，可以完全取消设置给定名称，而不是将其设置为空值。

[find(1)](http://www.freebsd.org/cgi/man.cgi?query=find\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持多种 **GNU find** 中的条件，包括 `-ignore_readdir_race`、`-noignore_readdir_race`、`-noleaf`、`-gid`、`-uid`、`-wholename`、`-iwholename`、`-mount`、`-d`、`-lname`、`-ilname`、`-quit`、`-samefile` 和 `-true`。

[fsck(8)](http://www.freebsd.org/cgi/man.cgi?query=fsck\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现已支持 `-r` 参数，用于释放多余未使用的 inode。减少预分配 inode 的数量可以缩短将来运行 fsck 的时间，并释放可供文件分配的空间。在预检模式（preen mode）下运行时，此参数会被忽略。

[freebsd-update(8)](http://www.freebsd.org/cgi/man.cgi?query=freebsd-update\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持在安装新内核时备份旧内核。备份内核会写入 `/boot/kernel.old`，如果该目录不存在或是之前由 `freebsd-update` 创建的。否则，`freebsd-update` 将生成一个新的目录名称以存放备份。此功能默认启用。

[gdbserver(1)](http://www.freebsd.org/cgi/man.cgi?query=gdbserver\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在支持 arm 和 powerpc 平台。

[gpt(8)](http://www.freebsd.org/cgi/man.cgi?query=gpt\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序已被移除，取而代之的是 [gpart(8)](http://www.freebsd.org/cgi/man.cgi?query=gpart\&sektion=8\&manpath=FreeBSD+8.0-RELEASE)。

[gzip(1)](http://www.freebsd.org/cgi/man.cgi?query=gzip\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持解压由某些商业类 UNIX 系统中的 **pack** 工具创建的文件。

[i2c(8)](http://www.freebsd.org/cgi/man.cgi?query=i2c\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具已新增，用于 I2C 的诊断。

[ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `vnet` 和 `-vnet` 选项，用于在带有 vimage 的 jails 之间移动接口。

新增了 BSD 许可的 libdwarf 库，用于 DTrace 客户端。

libmsun 库现在支持以下函数：`acosl()`、`asinl()`、`atanl()`、`atan2l()`、`cargl()`、`csqrtl()`、`fmodl()`、`hypotl()` 和 `remquol()`。

新增了 libproc 库，用于 DTrace 客户端。

[mtest(8)](http://www.freebsd.org/cgi/man.cgi?query=mtest\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现已支持 IPv6。

[mount(8)](http://www.freebsd.org/cgi/man.cgi?query=mount\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序现在支持选项 `-o mountprog=filename`，允许使用其他程序挂载文件系统。这对非 [nmount(2)](http://www.freebsd.org/cgi/man.cgi?query=nmount\&sektion=2\&manpath=FreeBSD+8.0-RELEASE) 的文件系统（如 FUSE）特别有用。

新增了 [nfscbd(8)](http://www.freebsd.org/cgi/man.cgi?query=nfscbd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE)、[nfsuserd(8)](http://www.freebsd.org/cgi/man.cgi?query=nfsuserd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE)、[nfsdumpstate(8)](http://www.freebsd.org/cgi/man.cgi?query=nfsdumpstate\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 和 [nfsrevoke(8)](http://www.freebsd.org/cgi/man.cgi?query=nfsrevoke\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具，用于支持新的 NFSv4 子系统。

新增了 [pmcannotate(8)](http://www.freebsd.org/cgi/man.cgi?query=pmcannotate\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具，可以输出工具（以 C 或汇编语言编写）的源码，并嵌入由 [pmcstat(8)](http://www.freebsd.org/cgi/man.cgi?query=pmcstat\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 分析生成的性能分析信息。

[route(8)](http://www.freebsd.org/cgi/man.cgi?query=route\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现支持 `show`、`weights` 和 `sticky` 命令。有关更多详细信息，请参阅 [route(8)](http://www.freebsd.org/cgi/man.cgi?query=route\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 手册页。

[rtld(1)](http://www.freebsd.org/cgi/man.cgi?query=rtld\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在支持一个新的环境变量 `LD_ELF_HINTS_PATH`，用于覆盖 rtld 提示文件。如果进程使用了 setuid 和/或 setgid，则该环境变量会被忽略。这一功能为使用非默认位置的自定义共享库提供了便利。

[rtld(1)](http://www.freebsd.org/cgi/man.cgi?query=rtld\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在支持在 rpath 和 soneeded 路径中进行动态字符串令牌替换。支持的令牌包括 `$ORIGIN`、`$OSNAME`、`$OSREL` 和 `$PLATFORM`。启用此替换需要在 DT\_FLAGS 中设置参数 `DF_ORIGIN` 或在 `DF_FLAGS_1` 中设置 `DF_1_ORIGIN`，可以通过 **GNU ld** 的 `-z origin` 参数进行设置。对于 setuid/setgid 进程，此功能会被无条件禁用。`$ORIGIN` 的替换依赖于 FreeBSD 内核提供的 AT\_EXECPATH 辅助信息。

[sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 已不再支持以“危险专用”模式创建 UFS 文件系统，因为该模式已不再被支持。

已简化 [sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 的菜单，以减少与系统其他部分的混淆和重复。**Xorg** 窗口系统应像其他软件包一样安装。**Linux** 和 **OSF/1** 仿真的配置应通过内核重建完成。安装磁带媒体的支持已被移除，因为其被认为已不可用。支持 OLDCARD 的过时代码也已被移除。

[sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在可以通过 /dev/da*Xa* 使用未分区的 USB 驱动器作为安装源介质。

[sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持识别新的 /dev/ada*X* 磁盘设备（如果已编译到内核中）。

[sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在使用软件包 `freebsd-doc-*` 提供本地化文档。

[sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 在安装完成后，如果光盘被用作源介质，则会自动弹出光盘。

[traceroute(8)](http://www.freebsd.org/cgi/man.cgi?query=traceroute\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 和 [traceroute6(8)](http://www.freebsd.org/cgi/man.cgi?query=traceroute6\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-a` 参数，用于显示每跳的 IP 地址对应的 AS 号。它会通过 `-A` 选项指定的 WHOIS 服务器查询该号码。如果未指定 `-A`，则默认使用 `whois.radb.net`。

[tzsetup(8)](http://www.freebsd.org/cgi/man.cgi?query=tzsetup\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-s` 参数，用于跳过关于是否将时钟调整为 UTC 的问题。

新增了 [wake(8)](http://www.freebsd.org/cgi/man.cgi?query=wake\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具，用于向本地以太网网络上的主机发送 Wake on LAN 帧。

[ypserv(8)](http://www.freebsd.org/cgi/man.cgi?query=ypserv\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `shadow.byname` 和 `shadow.byuid` 映射。

\[7.2R] 修复了 [atacontrol(8)](http://www.freebsd.org/cgi/man.cgi?query=atacontrol\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具的一个错误，该错误导致在 `/usr` 未挂载或从 `/rescue` 调用时工具无法运行。

\[7.2R] 添加了来自 NetBSD [btpand(8)](http://www.freebsd.org/cgi/man.cgi?query=btpand\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 守护程序，支持蓝牙网络接入点 (NAP)、群组自组织网络 (GN) 和个人区域网络用户 (PANU) 配置文件。

\[7.2R] 添加了 [cpucontrol(8)](http://www.freebsd.org/cgi/man.cgi?query=cpucontrol\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具，用于控制 [cpuctl(4)](http://www.freebsd.org/cgi/man.cgi?query=cpuctl\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 伪设备。

\[7.2R] [ncal(1)](http://www.freebsd.org/cgi/man.cgi?query=ncal\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持多字节字符。

\[7.2R] [newfs(8)](http://www.freebsd.org/cgi/man.cgi?query=newfs\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持对普通文件的操作。

\[7.2R] [config(8)](http://www.freebsd.org/cgi/man.cgi?query=config\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持多条 `makeoption` 行。

\[7.2R] [csup(1)](http://www.freebsd.org/cgi/man.cgi?query=csup\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `CVSMode`，用于获取完整的 CVS 仓库。需要注意的是，当前已禁用 rsync 传输模式。

\[7.2R] [dirname(1)](http://www.freebsd.org/cgi/man.cgi?query=dirname\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持与 [basename(1)](http://www.freebsd.org/cgi/man.cgi?query=basename\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 相同的多参数功能。

\[7.2R] [du(1)](http://www.freebsd.org/cgi/man.cgi?query=du\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-l` 参数。当指定该参数时，具有多个硬链接的文件将被视为多个不同的文件。

\[7.2R] [du(1)](http://www.freebsd.org/cgi/man.cgi?query=du\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-A` 参数，以显示表观大小而非磁盘使用量。这在操作压缩卷或稀疏文件时非常有用。

\[7.2R] [du(1)](http://www.freebsd.org/cgi/man.cgi?query=du\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-Bblocksize` 选项，用于以 *blocksize* 字节为单位计算块数。这不同于 `-k` 或 `-m` 选项或设置 `BLOCKSIZE` 的方式，它可以估算在具有指定 *blocksize* 的文件系统上，检查的文件层级结构所需的空间大小。除非使用 `-A` 模式，否则 *blocksize* 会向上取整为 512 的倍数。

\[7.2R] [dumpfs(8)](http://www.freebsd.org/cgi/man.cgi?query=dumpfs\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-f` 参数，该参数可以按片段（块）编号列出文件系统中所有空闲的片段。这种新模式执行必要的运算，以生成绝对片段编号，而不是默认模式中打印的 cg 相对编号。

如果使用一次 `-f`，则连续片段范围会被压缩为 `X-Y` 格式，与常规 dumpfs 输出中的空闲块列表相同。如果使用两次，则会逐个打印所有块编号，支持更紧凑或脚本友好的表示方式。

\[7.2R] [fetch(1)](http://www.freebsd.org/cgi/man.cgi?query=fetch\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-i` 参数，该参数支持 If-Modified-Since HTTP 1.1 请求。如果指定此参数，则文件仅在比本地文件的 mtime 更新时才会被下载。此外，**libfetch** 现在接受 URL 结构中的 mtime，并支持用于启用此行为的参数。

\[7.2R] [fsck(8)](http://www.freebsd.org/cgi/man.cgi?query=fsck\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-C` 参数，用于检查清洁模式。在该模式下，首先检查文件系统是否被正常卸载，如果是，则跳过文件系统检查。否则，执行完整检查。

\[7.2R] [fsck(8)](http://www.freebsd.org/cgi/man.cgi?query=fsck\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-D` 参数，用于损坏恢复模式，该模式将启用某些激进操作，使得 [fsck(8)](http://www.freebsd.org/cgi/man.cgi?query=fsck\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 能够处理存在严重数据损坏的文件系统。当磁盘数据损坏非常严重并导致 [fsck(8)](http://www.freebsd.org/cgi/man.cgi?query=fsck\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 崩溃时，这是最后的补救措施。

\[7.2R] [getaddrinfo(3)](http://www.freebsd.org/cgi/man.cgi?query=getaddrinfo\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 函数现在支持 SCTP。

\[7.2R] 修复了 [ipfw(8)](http://www.freebsd.org/cgi/man.cgi?query=ipfw\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具的一个错误，该错误会在即使指定 `-q` 参数时，仍然为 NAT 规则显示额外消息。

\[7.2R] [ln(1)](http://www.freebsd.org/cgi/man.cgi?query=ln\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-w` 参数，用于检查源文件是否实际存在。如果指定该参数而文件不存在，[ln(1)](http://www.freebsd.org/cgi/man.cgi?query=ln\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 将发出警告消息。

[ln(1)](http://www.freebsd.org/cgi/man.cgi?query=ln\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在可以为符号链接创建硬链接，因为 POSIX.1-2008 要求 `-L` 和 `-P` 参数具有此行为。

[lpr(1)](http://www.freebsd.org/cgi/man.cgi?query=lpr\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-m` 参数，用于在作业完成后发送电子邮件，以及 `-t` 选项以设置作业标题。

\[7.2R] [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-p` 参数，仅打印输入图，而不执行任何命令。输出与 `-d g1` 相同。结合 `-f /dev/null` 使用时，仅显示 [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 的内置规则。

\[7.2R] [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-Q` 参数，使其在指定 `-j` 选项时不会生成文件横幅，同时具有 `-q` 参数的相同效果。

\[7.2R] [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持变量 `.MAKE.JOB.PREFIX`。如果指定了 `-j` 和 `-v`，其输出的每个目标都会带有一个前缀标记 — *target*，该标记的第一部分可以通过该变量控制。

\[7.2R] [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持变量 `.MAKE.PID` 和 `.MAKE.PPID`。它们分别设置为 [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 进程及其父进程的进程 ID。

\[7.2R] 新增了 [makefs(8)](http://www.freebsd.org/cgi/man.cgi?query=makefs\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具，该工具用于从目录树创建文件系统映像。

\[7.2R] [mergemaster(8)](http://www.freebsd.org/cgi/man.cgi?query=mergemaster\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-F` 选项，可自动安装仅在版本控制 ID 字符串上有所不同的文件。

\[7.2R] [mount(8)](http://www.freebsd.org/cgi/man.cgi?query=mount\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现支持 `-o mountprog=/somewhere/mount_xxx` 选项，用于强制指定程序挂载文件系统，而不是直接调用 [nmount(2)](http://www.freebsd.org/cgi/man.cgi?query=nmount\&sektion=2\&manpath=FreeBSD+8.0-RELEASE)。这在需要使用第三方程序（如 FUSE）时非常有用。

\[7.2R] [netstat(1)](http://www.freebsd.org/cgi/man.cgi?query=netstat\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-L` 参数，可显示 [unix(4)](http://www.freebsd.org/cgi/man.cgi?query=unix\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 套接字的监听队列统计信息。

\[7.2R] 修复了 [netstat(1)](http://www.freebsd.org/cgi/man.cgi?query=netstat\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具中的一个错误。此前版本中，以下选项会导致程序崩溃：

```shell
% netstat -m -N foo
```

\[7.2R] 修复了 [netstat(1)](http://www.freebsd.org/cgi/man.cgi?query=netstat\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具中的另一个错误，`-ss` 选项在 icmp6 部分现在可以按预期工作。

\[7.2R] [pciconf(8)](http://www.freebsd.org/cgi/man.cgi?query=pciconf\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具新增 `-b` 参数，用于列出每个设备分配资源的基址寄存器 (BAR)。

\[7.2R] [powerd(8)](http://www.freebsd.org/cgi/man.cgi?query=powerd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序进行了改进，包括对 SMP 系统的更合理的 CPU 负载估算，以及新增的适用于交流电供电系统的 hiadaptive 模式。该模式以两倍于 adaptive 模式的速度提升 CPU 频率，以四倍更慢的速度降低频率，更倾向于较低的 CPU 负载，并在最大负载后的高频阶段增加了额外的延迟。

新增 [revoke(1)](http://www.freebsd.org/cgi/man.cgi?query=revoke\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具，这是 [revoke(2)](http://www.freebsd.org/cgi/man.cgi?query=revoke\&sektion=2\&manpath=FreeBSD+8.0-RELEASE) 系统调用的封装。

\[7.2R] [stat(1)](http://www.freebsd.org/cgi/man.cgi?query=stat\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-x` 参数，可以八进制形式显示 suid、sgid 和粘性位。

\[7.2R] 新增 [strndup(3)](http://www.freebsd.org/cgi/man.cgi?query=strndup\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 函数。

[tftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=tftpd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序现在支持 `-W` 选项，与 `-w` 选项类似，但会基于提交的文件名、[strftime(3)](http://www.freebsd.org/cgi/man.cgi?query=strftime\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 格式字符串和两位数序列号生成唯一名称。时间格式字符串可通过 `-F` 选项设置。

\[7.2R] [wc(1)](http://www.freebsd.org/cgi/man.cgi?query=wc\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具新增 `-L` 参数，用于输出最长输入行中的字符数。

\[7.2R] 修复了 [rpc.yppasswdd(8)](http://www.freebsd.org/cgi/man.cgi?query=rpc.yppasswdd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 程序中的一个错误，该错误会在更改密码或默认 shell 时留下僵尸进程。

\[7.1R] [adduser(8)](http://www.freebsd.org/cgi/man.cgi?query=adduser\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具新增 `-M` 选项，用于设置新用户主目录的权限模式。

\[7.1R] [atacontrol(8)](http://www.freebsd.org/cgi/man.cgi?query=atacontrol\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具新增 spindown 命令，用于设置或报告设备在超时后进入停转状态的时间。

\[7.1R] [chflags(1)](http://www.freebsd.org/cgi/man.cgi?query=chflags\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-v` 参数输出详细信息，`-f` 参数忽略错误，以及 `-h` 参数，用于设置符号链接的参数，其语义与 [chmod(1)](http://www.freebsd.org/cgi/man.cgi?query=chmod\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 类似。

\[7.1R] [cp(1)](http://www.freebsd.org/cgi/man.cgi?query=cp\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-a` 参数，该参数等同于 `-RpP` 参数。

\[7.1R] 修复了 [cp(1)](http://www.freebsd.org/cgi/man.cgi?query=cp\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具中的一个错误，该错误导致 POSIX.1e ACL（请参见 [acl(3)](http://www.freebsd.org/cgi/man.cgi?query=acl\&sektion=3\&manpath=FreeBSD+8.0-RELEASE)）无法正确复制。

\[7.1R] [cron(8)](http://www.freebsd.org/cgi/man.cgi?query=cron\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-m` 参数，用于覆盖默认的 cron 邮件收件人，除非在 crontab 文件中明确提供了 MAILTO= 行。

\[7.1R] [dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持更多选项，详情见 [dhcp-options(5)](http://www.freebsd.org/cgi/man.cgi?query=dhcp-options\&sektion=5\&manpath=FreeBSD+8.0-RELEASE)。

\[7.1R] [dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `is_default_interface()` 函数，用于确定该接口是否是默认路由所在的接口。

\[7.1R] 修复了 [dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 中的一个错误，导致无法正常移除默认路由。

\[7.1R] [environ(7)](http://www.freebsd.org/cgi/man.cgi?query=environ\&sektion=7\&manpath=FreeBSD+8.0-RELEASE) 环境字符串数组现在支持通过将第一个字符设置为 NULL 来取消设置变量。这是 **Dovecot** 和 **Postfix** 等第三方软件所必需的。

\[7.1R] [fdisk(8)](http://www.freebsd.org/cgi/man.cgi?query=fdisk\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-q` 参数，以禁止显示任何警告。

\[7.1R] [fetch(1)](http://www.freebsd.org/cgi/man.cgi?query=fetch\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 程序和 libfetch 库现在支持环境变量 `NO_PROXY`。该变量指定了一个由逗号或空格分隔的主机名列表，表示不应为这些主机使用代理。如果指定了单个星号，则禁用代理的使用。

\[7.1R] 新增了 [ffsll(3)](http://www.freebsd.org/cgi/man.cgi?query=ffsll\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 和 [flsll(3)](http://www.freebsd.org/cgi/man.cgi?query=flsll\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 函数。这些函数与 [ffs(3)](http://www.freebsd.org/cgi/man.cgi?query=ffs\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 和 [fls(3)](http://www.freebsd.org/cgi/man.cgi?query=fls\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 函数相同，只是它们接受 long long 类型的参数。

\[7.1R] [fortune(6)](http://www.freebsd.org/cgi/man.cgi?query=fortune\&sektion=6\&manpath=FreeBSD+8.0-RELEASE) 程序现在支持 `FORTUNE_PATH` 环境变量，用于指定 fortune 文件的搜索路径。

\[7.1R] 修复了 [fortune(6)](http://www.freebsd.org/cgi/man.cgi?query=fortune\&sektion=6\&manpath=FreeBSD+8.0-RELEASE) 程序中的一个错误，导致 `-e` 选项与多个文件一起使用时无法正常工作。

\[7.1R] [freebsd-update.conf(5)](http://www.freebsd.org/cgi/man.cgi?query=freebsd-update.conf\&sektion=5\&manpath=FreeBSD+8.0-RELEASE) 现在支持 IDSIgnorePaths 声明。

\[7.1R] [fwcontrol(8)](http://www.freebsd.org/cgi/man.cgi?query=fwcontrol\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-f node` 选项，用于指定 *node* 作为下一个总线重置的根节点。

\[7.1R] \[sparc64] [gcc(1)](http://www.freebsd.org/cgi/man.cgi?query=gcc\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在正确接受 `-mcpu` 选项，之前该选项被硬编码为 `-mcpu=ultrasparc`。

\[7.1R] [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 命令现在支持显示 WPS IE（无线配置服务信息元素）。

\[7.1R] [kgdb(1)](http://www.freebsd.org/cgi/man.cgi?query=kgdb\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 命令现在支持 `add-kld *kld*` 命令，用于定位一个 [kld(4)](http://www.freebsd.org/cgi/man.cgi?query=kld\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 并加载其符号。

\[7.1R] [kgdb(1)](http://www.freebsd.org/cgi/man.cgi?query=kgdb\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 命令现在具有一个共享库后端，用于内核文件，将 [kld(4)](http://www.freebsd.org/cgi/man.cgi?query=kld\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 视为共享库，并在启动时自动加载 [kld(4)](http://www.freebsd.org/cgi/man.cgi?query=kld\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 的符号。

\[7.1R] [kgdb(1)](http://www.freebsd.org/cgi/man.cgi?query=kgdb\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `tid` 命令和其他与内核模块相关的命令，即使是远程目标。

\[7.1R] [kvm\_getcptime(3)](http://www.freebsd.org/cgi/man.cgi?query=kvm_getcptime\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 函数已被添加，用于获取内核中的全局 CPU 时间统计信息。

\[7.1R] libalias 库现在支持 PORT 和 EPRT FTP 命令的小写形式。

\[7.1R] [man(1)](http://www.freebsd.org/cgi/man.cgi?query=man\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 现在包括对 [bzip2(1)](http://www.freebsd.org/cgi/man.cgi?query=bzip2\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 压缩的手册页的有限支持。

\[7.1R] [mdconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=mdconfig\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 命令现在支持 `-v`（详细）参数用于 `-l` 命令。它一次显示所有 [md(4)](http://www.freebsd.org/cgi/man.cgi?query=md\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 设备的大小和后备存储。

\[7.1R] 新增了 [memrchr(3)](http://www.freebsd.org/cgi/man.cgi?query=memrchr\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 函数。它的行为与 [memchr(3)](http://www.freebsd.org/cgi/man.cgi?query=memchr\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 相同，只是它查找字符串中指定字符的最后一个出现位置。

\[7.1R] 修复了 [morse(6)](http://www.freebsd.org/cgi/man.cgi?query=morse\&sektion=6\&manpath=FreeBSD+8.0-RELEASE) 程序中的输出语法错误。

\[7.1R] [mountd(8)](http://www.freebsd.org/cgi/man.cgi?query=mountd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-hbindip` 选项，该选项指定要绑定的 IP 地址，用于 TCP 和 UDP 请求。此选项可以多次指定。如果未指定 `-h` 选项，则将使用 `INADDR_ANY`。请注意，在使用此选项指定 IP 地址时，它会自动将 127.0.0.1 和启用 IPv6 时的 `::1` 添加到列表中。

\[7.1R] [moused(8)](http://www.freebsd.org/cgi/man.cgi?query=moused\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-L` 参数，用于更改滚动速度，并使 `-U` 选项仅影响滚动阈值。

\[7.1R] [mv(1)](http://www.freebsd.org/cgi/man.cgi?query=mv\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 命令现在支持在跨设备移动目录到现有目录时遵循 POSIX 规范。

\[7.1R] [periodic(8)](http://www.freebsd.org/cgi/man.cgi?query=periodic\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持在 [periodic.conf(5)](http://www.freebsd.org/cgi/man.cgi?query=periodic.conf\&sektion=5\&manpath=FreeBSD+8.0-RELEASE) 中配置变量 `daily_status_mail_rejects_shorten`。此选项允许拒绝的邮件报告按黑名单统计拒绝数量，而不提供有关单个发送主机的详细信息。默认配置将保持原始报告格式。

\[7.1R] [ping6(8)](http://www.freebsd.org/cgi/man.cgi?query=ping6\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在以与 [ping(8)](http://www.freebsd.org/cgi/man.cgi?query=ping\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 相同的方式使用退出状态 0 和 2。

\[7.1R] [ping6(8)](http://www.freebsd.org/cgi/man.cgi?query=ping6\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-o` 参数，使用此参数， [ping6(8)](http://www.freebsd.org/cgi/man.cgi?query=ping6\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 在接收到一个回复包后成功退出。

\[7.1R] [ping6(8)](http://www.freebsd.org/cgi/man.cgi?query=ping6\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-r` 和 `-R` 参数，这与 [ping(8)](http://www.freebsd.org/cgi/man.cgi?query=ping\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 的 `-a` 和 `-A` 参数相同。

\[7.1R] [ping6(8)](http://www.freebsd.org/cgi/man.cgi?query=ping6\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 的最小间隔已从 0.01 降低到 0.000001。

\[7.1R] [realpath(1)](http://www.freebsd.org/cgi/man.cgi?query=realpath\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持 `-q` 参数，以抑制警告，并接受多个路径作为命令行参数。

\[7.1R] [rfcomm\_pppd(8)](http://www.freebsd.org/cgi/man.cgi?query=rfcomm_pppd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `-D` 参数，以注册拨号网络服务（DUN），除了局域网访问 PPP（LAN）服务之外。

\[7.1R] [sdpd(8)](http://www.freebsd.org/cgi/man.cgi?query=sdpd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 现在支持 NAP、GN 和 PANU 配置文件。

\[7.1R] [setkey(8)](http://www.freebsd.org/cgi/man.cgi?query=setkey\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在接受 esp 作为 spdadd 命令的协议名称。

\[7.1R] [telnetd(8)](http://www.freebsd.org/cgi/man.cgi?query=telnetd\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 中的一个错误已修复，该错误导致即使指定了 `-a off` 选项，仍会尝试进行身份验证。

\[7.1R] [top(1)](http://www.freebsd.org/cgi/man.cgi?query=top\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 和 [vmstat(8)](http://www.freebsd.org/cgi/man.cgi?query=vmstat\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 命令现在支持 `-P` 参数，显示每个 CPU 的统计信息。

\[7.1R] [uuid\_enc\_le(3)](http://www.freebsd.org/cgi/man.cgi?query=uuid_enc_le\&sektion=3\&manpath=FreeBSD+8.0-RELEASE)、[uuid\_dec\_le(3)](http://www.freebsd.org/cgi/man.cgi?query=uuid_dec_le\&sektion=3\&manpath=FreeBSD+8.0-RELEASE)、[uuid\_enc\_be(3)](http://www.freebsd.org/cgi/man.cgi?query=uuid_enc_be\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 和 [uuid\_dec\_be(3)](http://www.freebsd.org/cgi/man.cgi?query=uuid_dec_be\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 函数已添加。这些函数用于编码/解码 UUID 的二进制表示。

\[7.1R] [watch(8)](http://www.freebsd.org/cgi/man.cgi?query=watch\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具现在支持同时使用超过 10 个 [snp(4)](http://www.freebsd.org/cgi/man.cgi?query=snp\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 设备。

\[7.1R] [ypserv(8)](http://www.freebsd.org/cgi/man.cgi?query=ypserv\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 守护进程现在支持 `-P` 选项，可以指定其应监听的端口号。

#### 2.3.1 `/etc/rc.d` 脚本

\[7.1R] [rc.conf(5)](http://www.freebsd.org/cgi/man.cgi?query=rc.conf\&sektion=5\&manpath=FreeBSD+8.0-RELEASE) 现在支持 `dummynet_enable` 变量，该变量允许在 `firewall_enable` 为 `YES` 时加载 [dummynet(4)](http://www.freebsd.org/cgi/man.cgi?query=dummynet\&sektion=4\&manpath=FreeBSD+8.0-RELEASE) 内核模块。

\[7.1R] ntpd [rc(8)](http://www.freebsd.org/cgi/man.cgi?query=rc\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 脚本现在可以在没有配置文件 `/etc/ntp.conf` 的情况下工作。

\[7.1R] ppp [rc(8)](http://www.freebsd.org/cgi/man.cgi?query=rc\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 脚本现在支持多个实例。更多详情，请参阅 [rc.conf(5)](http://www.freebsd.org/cgi/man.cgi?query=rc.conf\&sektion=5\&manpath=FreeBSD+8.0-RELEASE) 中 `ppp_profile` 变量的描述。

\[7.1R] sysctl [rc(8)](http://www.freebsd.org/cgi/man.cgi?query=rc\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 脚本现在除了加载 /etc/sysctl.conf 外，还支持加载 /etc/sysctl.conf.local。

\[7.1R] [rc.conf(5)](http://www.freebsd.org/cgi/man.cgi?query=rc.conf\&sektion=5\&manpath=FreeBSD+8.0-RELEASE) 现在支持配置接口和附加网络，用于当 `firewall_type` 为 simple 或 client 时，rc.firewall 设置的防火墙规则集。请参见 `firewall_client_net`、`firewall_simple_iif`、`firewall_simple_inet`、`firewall_simple_oif` 和 `firewall_simple_onet`。

### 2.4 第三方的软件

**ISC BIND** 已更新到 9.6.1rc1 版本。

**ACPI-CA** 已更新到 20090521。

**ee**（简易编辑器）已更新到 1.5.0 版本。此版本现在使用 2-clause BSD 许可证，而不是 Artistic 许可证。

**hostapd** 已更新到 0.6.8 版本，并增加了 radius ACL 支持。

**less** 已更新到 v436 版本。

libarchive 库已更新到 2.7.0 版本。

libexpat 库已从 1.95.5 版本更新到 2.0.1 版本。

ncurses 库已更新到 5.7-20081102 版本。

**OpenBSM** 1.1 已合并到 Trusted BSD 项目中。

**TCPDUMP** 已更新到 4.0.0 版本。

时区数据库已更新到 **tzdata2009f** 版本。

**wpa\_supplicant** 已更新到 0.6.8 版本。

**ZFS** 文件系统已从版本 6 更新到版本 13。

\[7.1R] **am-utils** 已从版本 6.0.10p1 更新到 6.1.5 版本。

\[7.1R] **awk** 已从 2007 年 5 月 1 日的版本更新到 2007 年 10 月 23 日的版本。

\[7.1R] **bzip2** 已从版本 1.0.4 更新到 1.0.5 版本。

\[7.1R] **CVS** 已更新到版本 1.11.22.1。

\[7.1R] **NTP** 已更新到版本 4.2.4p5。

\[7.1R] **OpenPAM** 已从 Figwort 版本更新到 Hydrangea 版本。

\[7.1R] **OpenSSH** 已从版本 4.5p1 更新到 5.1p1 版本。

\[7.1R] [resolver(3)](http://www.freebsd.org/cgi/man.cgi?query=resolver\&sektion=3\&manpath=FreeBSD+8.0-RELEASE) 库已更新为 **ISC BIND** 9.4.3 版本。

\[7.1R] **sendmail** 已从版本 8.14.2 更新到 8.14.3 版本。

### 2.5 Ports/软件包基础架构

\[7.2R] 修复了 [pkg\_create(1)](http://www.freebsd.org/cgi/man.cgi?query=pkg_create\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 工具中的一个错误，该错误导致 `-n` 参数无法正常工作。

\[7.2R] FreeBSD Ports 现在支持在某些支持的 port 中使用多个 [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 作业。当 Port 被标记为 `MAKE_JOBS_SAFE` 时，该功能会自动启用，并通过将 `-jX` 选项传递给供应商的顶层 Makefile 来提高构建阶段的 CPU 利用率。默认情况下，*X* 的值设置为 CPU 的数量，用户可以通过 [make(1)](http://www.freebsd.org/cgi/man.cgi?query=make\&sektion=1\&manpath=FreeBSD+8.0-RELEASE) 变量 `MAKE_JOBS_NUMBER` 来设置。更多详情，请参见 `ports/Mk/bsd.port.mk`。

### 2.6 版本工程与集成

**GNOME** 桌面环境的支持版本已更新为 2.26.3（[x11/gnome2](http://www.freebsd.org/cgi/url.cgi?ports/x11/gnome2/pkg-descr)）。

**KDE** 桌面环境的支持版本已更新为 4.3.1（[x11/kde4](http://www.freebsd.org/cgi/url.cgi?ports/x11/kde4/pkg-descr)）。

## 3 从旧版 FreeBSD

\[amd64, i386] 使用 [freebsd-update(8)](http://www.freebsd.org/cgi/man.cgi?query=freebsd-update\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具支持在 RELEASE 版本之间（以及各种安全分支的快照）进行升级。二进制升级过程将更新未修改的用户空间工具以及未修改的 GENERIC/SMP 内核，这些内核作为官方 FreeBSD 发行版的一部分进行分发。[freebsd-update(8)](http://www.freebsd.org/cgi/man.cgi?query=freebsd-update\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 工具要求被升级的主机具有互联网连接。

通过 CDROM 分发媒体的主 [sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+8.0-RELEASE) 菜单中的升级选项支持一种旧的二进制升级形式。这种类型的二进制升级对于非 i386、非 amd64 机器或没有互联网连接的系统可能很有用。

根据 `/usr/src/UPDATING` 中的说明，支持从先前版本进行基于源代码的升级（即重新编译 FreeBSD 基本系统）。

> **重要提示：**
>
> 升级 FreeBSD 前，务必先备份 *所有* 数据和配置文件。

***

可以从 [ftp://ftp.FreeBSD.org/](ftp://ftp.freebsd.org/) 下载此文件和其他与发行版相关的文档。

有关 FreeBSD 的问题，请在联系 <questions@FreeBSD.org> 之前阅读 [文档](http://www.freebsd.org/docs.html)。

有关此文档的问题，请发送电子邮件至 <doc@FreeBSD.org>。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/release/8.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
