# FreeBSD 7.4 RELEASE 发行公告（2011 年 2 月 24 日）

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

**FreeBSD 项目**

版权所有 © 2011 FreeBSD 文档项目

```
$FreeBSD: stable/7/release/doc/en_US.ISO8859-1/relnotes/article.sgml 219008 2011-02-24 19:22:59Z hrs $
```

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

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

IEEE、POSIX 和 802 是电气和电子工程师协会（Institute of Electrical and Electronics Engineers, Inc.）在美国的注册商标。

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

SPARC、SPARC64、SPARCengine 和 UltraSPARC 是 SPARC 国际公司在美国和其他国家的商标。SPARC 国际公司拥有所有 SPARC 商标，并通过许可协议允许其成员正确使用这些商标。

许多制造商和销售商用来区分其产品的名称被声明为商标。在本文件中出现这些名称时，如果 FreeBSD 项目已知其商标声明，则这些名称后面会加上“™”或“®”符号。

FreeBSD 7.4-RELEASE 的发行说明包含了 FreeBSD 7.4-STABLE 开发线在基本系统上所做更改的摘要。本文件列出了自上次发布以来发布的适用安全通告，以及 FreeBSD 内核和用户空间的重大变化。此外，还简要介绍了升级的相关事项。

## 1 引言

本文档包含 FreeBSD 7.4-RELEASE 的发行说明。它介绍了 FreeBSD 最近新增、修改或删除的功能，并提供了一些关于从早期版本升级 FreeBSD 的说明。

此发行版是 FreeBSD 7.4-RELEASE 的正式发布版。可以在 [ftp://ftp.FreeBSD.org/](ftp://ftp.freebsd.org/) 或其任何镜像站点找到更多信息。有关获取此（或其他）发行版的更多信息，可以参阅 [《获取 FreeBSD》附录](https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mirrors.html) 中的内容，该附录位于 [FreeBSD 手册](https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/) 中。

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

## 2 新特性

本节介绍了自 7.3-RELEASE 以来，FreeBSD 中最显著的用户可见新功能或已更改功能。

典型的发行说明项目记录了自 7.3-RELEASE 之后发布的安全通告、新的驱动程序或硬件支持、新的命令或选项、重要的错误修复或第三方软件升级。它们也可能列出重大 Port/包或发布工程实践的更改。显然，发行说明无法列出发布之间对 FreeBSD 所做的每一个更改；本文件主要聚焦于安全通告、用户可见的变化和重大架构改进。

### 2.1 安全通告

以下安全通告中描述的问题已被修复。更多信息，请参考来自 [http://security.FreeBSD.org/](http://security.freebsd.org/) 的个别通告。

| 通告                                                                                        | 日期               | 主题                |
| ----------------------------------------------------------------------------------------- | ---------------- | ----------------- |
| [SA-10:08.bzip2](http://security.freebsd.org/advisories/FreeBSD-SA-10:08.bzip2.asc)       | 2010 年 9 月 20 日  | bzip2 解压缩中的整数溢出问题 |
| [SA-10:09.pseudofs](http://security.freebsd.org/advisories/FreeBSD-SA-10:09.pseudofs.asc) | 2010 年 10 月 10 日 | 多余的互斥锁解锁          |
| [SA-10:10.openssl](http://security.freebsd.org/advisories/FreeBSD-SA-10:10.openssl.asc)   | 2010 年 11 月 29 日 | OpenSSL 多个漏洞      |

### 2.2 内核更改

\[sparc64] FreeBSD/sparc64 现在支持基于保留的物理内存分配，提供更好的性能。

\[sparc64] FreeBSD/sparc64 现在支持 UltraSPARC IV、IV+ 和 SPARC64 V CPU。

[alq(9)](http://www.freebsd.org/cgi/man.cgi?query=alq\&sektion=9\&manpath=FreeBSD+7.4-RELEASE) 支持已得到改善。`alq_writen()` 和 `alq_getn()` 的 KPI 已扩展以支持可变长度的消息，这在 ALQ 创建时根据传递给 `alq_open()` 的参数启用。同时，已添加 ALQ\_NOACTIVATE 和 ALQ\_ORDERED 参数，以便 ALQ 消费者可以分别更好地控制 I/O 调度和资源获取。这些扩展完全向后兼容。

[alq(9)](http://www.freebsd.org/cgi/man.cgi?query=alq\&sektion=9\&manpath=FreeBSD+7.4-RELEASE) 支持现在作为内核模块 alq.ko 提供。

FreeBSD 的 [memguard(9)](http://www.freebsd.org/cgi/man.cgi?query=memguard\&sektion=9\&manpath=FreeBSD+7.4-RELEASE) 框架已得到改进，现在能够在更长的时间内检测已分配内存的使用后释放问题。更多详细信息，请参阅 [memguard(9)](http://www.freebsd.org/cgi/man.cgi?query=memguard\&sektion=9\&manpath=FreeBSD+7.4-RELEASE) 手册页面。

以下 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 变量已被添加：`vm.kmem_map_size` 表示当前 kmem 映射的大小，`vm.kmem_map_free` 表示 kmem 映射中最大的连续空闲区域。[r213554](http://svn.freebsd.org/viewvc/base?view=revision\&revision=213554), [r213556](http://svn.freebsd.org/viewvc/base?view=revision\&revision=213556), [r213560](http://svn.freebsd.org/viewvc/base?view=revision\&revision=213560)

#### 2.2.1 硬件支持

\[amd64, i386] [ichwd(4)](http://www.freebsd.org/cgi/man.cgi?query=ichwd\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在支持 Intel NM10 Express 芯片组的看门狗定时器。

\[amd64, i386] 已添加 qpi(4) 伪总线驱动程序。该驱动支持 Intel QPI 芯片组上的额外 PCI 总线，其中连接了每个插槽的内存控制器等硬件。

**2.2.1.1 多媒体支持**

[acpi\_video(4)](http://www.freebsd.org/cgi/man.cgi?query=acpi_video\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动已更新。已实现 LCD 亮度控制通知处理程序。

[acpi\_sony(4)](http://www.freebsd.org/cgi/man.cgi?query=acpi_sony\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 辅助驱动现在支持默认显示亮度、有线 LAN 电源和低音增益。

**2.2.1.2 网络接口支持**

[alc(4)](http://www.freebsd.org/cgi/man.cgi?query=alc\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在支持 Atheros AR8151/AR8152 PCIe 千兆/快速以太网控制器。

[alc(4)](http://www.freebsd.org/cgi/man.cgi?query=alc\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动中的 TX 中断调节定时器已从 50ms 降至 1ms。50ms 的定时器导致了较差的 UDP 性能。

[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在支持 BCM5718 x2 PCI Express 双端口千兆以太网控制器系列。该系列是 BCM5714/BCM5715 系列的继任者，支持 IPv4/IPv6 校验和卸载、TSO、VLAN 硬件标签、大帧、MSI/MSIX、IOV、RSS 和 TSS。当前版本的驱动支持除 IOV 和 RSS/TSS 以外的所有硬件特性。

[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在支持 BCM5705 或更新版本的 Broadcom 控制器的硬件 MAC 统计信息，这些统计信息可以通过 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 变量 `dev.bge.N.stats.*` 访问，为诊断驱动问题提供有用信息。

[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动中的 ASF 心跳发送长期存在的错误已被修复。

[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动中的 UDP 校验和卸载已默认禁用。这是因为 Broadcom 控制器存在一个错误，当启用 TX UDP 校验和卸载时，可能会生成校验和值为 0 的 UDP 数据报。可以通过使用以下加载器可调项启用校验和卸载：

```sh
dev.bge.N.forced_udpcsum
```

[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动中的一个错误，导致 BCM57780 中 TSO 无法正常工作，已被修复。

[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动中的一个错误，可能导致系统内存超过 4 GB 时性能不佳，已被修复。原因是除了 BCM5755 及更高版本的 Broadcom 控制器外，所有 Broadcom 控制器在 4 GB 边界 DMA 处理上存在一个错误，并且使用了低效的缓冲区。

[cxgb(4)](http://www.freebsd.org/cgi/man.cgi?query=cxgb\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在支持基于 L2/L3/L4 标头检查的硬件过滤。可以根据源 IP 地址、目标 IP 地址、源端口号、目标端口号、802.1q VLAN 帧标签、UDP、TCP 和 MAC 地址进行过滤。配置可以通过 cxgbtool(8) 工具进行。注意，cxgbtool(8) 位于 src/usr.sbin/cxgbtool 中，但默认未编译。

[em(4)](http://www.freebsd.org/cgi/man.cgi?query=em\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动已更新为版本 7.1.9。

[em(4)](http://www.freebsd.org/cgi/man.cgi?query=em\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 和 [igb(4)](http://www.freebsd.org/cgi/man.cgi?query=igb\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在提供作为 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) MIB 对象的统计计数器。

[fxp(4)](http://www.freebsd.org/cgi/man.cgi?query=fxp\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在通过 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 变量导出硬件 MAC 统计信息。

[fxp(4)](http://www.freebsd.org/cgi/man.cgi?query=fxp\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动现在支持在 i82550 和 i82551 控制器上通过 VLAN 的 TSO。

[igb(4)](http://www.freebsd.org/cgi/man.cgi?query=igb\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动已更新为版本 2.0.7。

[miibus(4)](http://www.freebsd.org/cgi/man.cgi?query=miibus\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 已重写以支持 IEEE 802.3 附录 31B 的全双工流量控制。 [alc(4)](http://www.freebsd.org/cgi/man.cgi?query=alc\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[bce(4)](http://www.freebsd.org/cgi/man.cgi?query=bce\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[cas(4)](http://www.freebsd.org/cgi/man.cgi?query=cas\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[fxp(4)](http://www.freebsd.org/cgi/man.cgi?query=fxp\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[gem(4)](http://www.freebsd.org/cgi/man.cgi?query=gem\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[jme(4)](http://www.freebsd.org/cgi/man.cgi?query=jme\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[msk(4)](http://www.freebsd.org/cgi/man.cgi?query=msk\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[nfe(4)](http://www.freebsd.org/cgi/man.cgi?query=nfe\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[re(4)](http://www.freebsd.org/cgi/man.cgi?query=re\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[stge(4)](http://www.freebsd.org/cgi/man.cgi?query=stge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 和 [xl(4)](http://www.freebsd.org/cgi/man.cgi?query=xl\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动以及 atphy(4)、bmtphy(4)、brgphy(4)、e1000phy(4)、gentbi(4)、inphy(4)、ip1000phy(4)、jmphy(4)、nsgphy(4)、nsphyter(4) 和 [rgephy(4)](http://www.freebsd.org/cgi/man.cgi?query=rgephy\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动已更新以支持通过此功能的流量控制。

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

* 现在支持 88E8059（Marvell Yukon Optima）设备。
* 实现了基本的中断调节功能，具有可编程倒计时计时器寄存器。默认的保持时间参数为 100 微秒，可以通过 sysctl 变量 `dev.mskc.0.int_holdoff` 更改。请注意，在双端口控制器上，中断调节是共享资源，无法为每个端口使用独立的中断调节值。

修复了 [mxge(4)](http://www.freebsd.org/cgi/man.cgi?query=mxge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序中的一个错误，该错误导致 TSO 无法正常工作。

[nfe(4)](http://www.freebsd.org/cgi/man.cgi?query=nfe\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持 WoL（Wake on LAN）。

[re(4)](http://www.freebsd.org/cgi/man.cgi?query=re\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在将 PCIe 最大读取请求大小设置为 2048。这提高了大规模传输的性能。

[re(4)](http://www.freebsd.org/cgi/man.cgi?query=re\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持 RTL810xE/RTL8168/RTL8111 PCIe 控制器的 64 位 DMA 定址。

[re(4)](http://www.freebsd.org/cgi/man.cgi?query=re\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持 RTL8169/RTL8168 控制器的硬件中断调节。

[rl(4)](http://www.freebsd.org/cgi/man.cgi?query=rl\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持 RTL8139B 或更新控制器的 WoL（Wake on LAN）。

[rl(4)](http://www.freebsd.org/cgi/man.cgi?query=rl\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持一个设备提示，改变寄存器访问方式。尽管一些较新的 RTL8139 控制器支持内存映射寄存器访问，但自动检测支持较为困难。因此，驱动程序默认使用 I/O 映射，并提供以下设备提示。如果将其设置为 0，则驱动程序将使用内存映射方式进行寄存器访问。

```sh
hint.rl.N.prefer_iomap="0"
```

默认值为 1。

[rl(4)](http://www.freebsd.org/cgi/man.cgi?query=rl\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序改进了中断处理，在高 RX 负载下具有更好的 TX 性能。

[sk(4)](http://www.freebsd.org/cgi/man.cgi?query=sk\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在默认禁用 TX 校验和卸载功能。因为一些 Yukon 控制器的某些版本会生成损坏的帧。可以通过在 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具中使用选项 `txcsum` 手动启用校验和卸载。

修复了 [sk(4)](http://www.freebsd.org/cgi/man.cgi?query=sk\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序中的一个错误，该错误未为 Yukon 控制器编程站地址，并且无法通过 [ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 覆盖站地址。

为 Silicon Integrated Systems SiS190/191 Fast/Gigabit Ethernet 提供的 [sge(4)](http://www.freebsd.org/cgi/man.cgi?query=sge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序已添加。它支持 TSO 和 VLAN 上的 TSO。

[sis(4)](http://www.freebsd.org/cgi/man.cgi?query=sis\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持 NS DP8315 控制器上的 WoL（Wake on LAN）。

为 [sis(4)](http://www.freebsd.org/cgi/man.cgi?query=sis\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序添加了 tunable `dev.sis.N.manual_pad`。此选项控制是否由 CPU 而不是控制器对短帧进行 `0x00` 填充。添加此选项的原因是，NS DP83815/DP83816 会用 0xff 填充它们，而 RFC 1042 规定应该使用 0x00。此选项默认禁用，这意味着使用 0xff 填充，因为由软件进行 0x00 填充需要额外的 CPU 周期。启用 `manual_pad`，将此 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 变量设置为非零值，将强制使用软件填充。

[ste(4)](http://www.freebsd.org/cgi/man.cgi?query=ste\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持一个设备提示，改变设备寄存器访问模式。驱动程序默认使用内存映射寄存器访问，但这会导致一些旧款 IC Plus Corp（前身为 Sundace）控制器的稳定性问题。以下设备提示会使驱动程序使用 I/O 映射进行寄存器访问：

```sh
hint.ste.N.prefer_iomap="1"
```

现在驱动程序 [xl(4)](http://www.freebsd.org/cgi/man.cgi?query=xl\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 支持 WoL（Wake on LAN）。请注意，并非所有控制器都支持此功能，某些控制器需要额外的远程唤醒电缆。

#### 2.2.2 网络协议

修复了 [carp(4)](http://www.freebsd.org/cgi/man.cgi?query=carp\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 虚拟接口和底层接口的链路状态更改问题。该问题发生在 [carp(4)](http://www.freebsd.org/cgi/man.cgi?query=carp\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 接口在底层接口及其链路状态变为 UP 之前被创建时。

新增了一个加载器 tunable `net.link.ifqmaxlen`，它指定了发送接口队列长度的默认值。该参数的默认值为 `50`。

FreeBSD NFS 子系统现在支持客户端的负面名称缓存条目的超时。这避免了当另一个客户端在同一 NFS 服务器的同一时间创建一个具有相同名称的条目时，虚假的负面名称缓存条目永远存在。可以使用系统范围的 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) sysctl 变量 `vfs.nfs.negative_name_timeout` 来调整超时时间。将此变量设置为 0 会禁用负面名称缓存。

新增了一个 [netgraph(4)](http://www.freebsd.org/cgi/man.cgi?query=netgraph\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 节点 [ng\_patch(4)](http://www.freebsd.org/cgi/man.cgi?query=ng_patch\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)，它执行通过的数据包修改。修改仅限于对 8 位、16 位、32 位或 64 位无符号整数的 C 语言操作子集。

RFC 3390 中的 TCP 初始窗口增加现可通过 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 变量 `net.inet.tcp.rfc3390` 控制，现在，如果 TCP 连接在一个重传超时或更长时间内处于空闲状态，拥塞窗口将缩小到重启窗口。详细信息请参阅 RFC 5681 第 4.1 节。

修复了 FreeBSD TCP 路径 MTU 发现中的一个错误，该错误可能导致 MTU 小于 256 字节时计算错误。请注意，这个错误不会影响大于或等于 256 字节的 MTU。

新增了 [siftr(4)](http://www.freebsd.org/cgi/man.cgi?query=siftr\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 模块（TCP 研究的统计信息记录器）。这是一个可以将活动 TCP 连接的统计信息记录到日志文件中的工具，旨在为系统管理员、开发人员和研究人员提供对 TCP 连接状态的高粒度度量。

FreeBSD 的 TCP 重新组装实现得到了改进。已修复影响 SMP 系统的长期存在的会计错误，`net.inet.tcp.reass.maxqlen` [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 变量已被废弃，取而代之的是基于接收套接字缓冲区大小的每连接动态限制。FreeBSD 接收端现在比以前更好地处理丢包（特别是由队列溢出引起的丢包），从而提高了连接吞吐量。

[tun(4)](http://www.freebsd.org/cgi/man.cgi?query=tun\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 虚拟接口驱动程序现在支持显式的 UP/DOWN 链路状态。

[vlan(4)](http://www.freebsd.org/cgi/man.cgi?query=vlan\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 虚拟接口现在支持 TSO（TCP 分段卸载）。该功能参数名为 `IFCAP_VLAN_HWTSO`，与 `IFCAP_VLAN_HWTAGGING` 分开。支持此功能的驱动程序包括 [age(4)](http://www.freebsd.org/cgi/man.cgi?query=age\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[alc(4)](http://www.freebsd.org/cgi/man.cgi?query=alc\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[ale(4)](http://www.freebsd.org/cgi/man.cgi?query=ale\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[bce(4)](http://www.freebsd.org/cgi/man.cgi?query=bce\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[bge(4)](http://www.freebsd.org/cgi/man.cgi?query=bge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[cxgb(4)](http://www.freebsd.org/cgi/man.cgi?query=cxgb\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[jme(4)](http://www.freebsd.org/cgi/man.cgi?query=jme\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)、[re(4)](http://www.freebsd.org/cgi/man.cgi?query=re\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 和 [mxge(4)](http://www.freebsd.org/cgi/man.cgi?query=mxge\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序。

#### 2.2.3 磁盘和存储

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

[ata(4)](http://www.freebsd.org/cgi/man.cgi?query=ata\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序现在支持 ATA 硬盘的停转功能。 [atacontrol(8)](http://www.freebsd.org/cgi/man.cgi?query=atacontrol\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具新增了子命令 `spindown`，以便从用户空间支持此功能。

GEOM 类 [gconcat(8)](http://www.freebsd.org/cgi/man.cgi?query=gconcat\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 现在支持内核崩溃转储。转储会执行到组件中转储分区开始的位置。

[gmultipath(8)](http://www.freebsd.org/cgi/man.cgi?query=gmultipath\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在支持命令 `destroy`、`rotate` 和 `getactive`。

[ispfw(4)](http://www.freebsd.org/cgi/man.cgi?query=ispfw\&sektion=4\&manpath=FreeBSD+7.4-RELEASE)，用于 [isp(4)](http://www.freebsd.org/cgi/man.cgi?query=isp\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序的固件已被添加。

[twa(4)](http://www.freebsd.org/cgi/man.cgi?query=twa\&sektion=4\&manpath=FreeBSD+7.4-RELEASE) 驱动程序已更新，版本号为 3.70.05.010。

#### 2.2.4 文件系统

[ffs(7)](http://www.freebsd.org/cgi/man.cgi?query=ffs\&sektion=7\&manpath=FreeBSD+7.4-RELEASE) 文件系统中的 inode 编号处理现在为无符号类型。之前，一些较大的 inode 编号可能会被当作负数处理，这个问题在块大小为 16k 的超过 16TB 大小的文件系统中会出现。[newfs(8)](http://www.freebsd.org/cgi/man.cgi?query=newfs\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在会避免创建超过 `2^32` 个 inode 的文件系统，如果需要，它会减少每个柱面组中的 inode 数量，以保持在限制范围内。

已修复了 zfs 接收可能导致死锁的问题。

### 2.3 用户空间变更

[arp(8)](http://www.freebsd.org/cgi/man.cgi?query=arp\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具得到了改进。即使单个接口有多个别名，它现在也能更快地运行。

修复了 [b64decode(1)](http://www.freebsd.org/cgi/man.cgi?query=b64decode\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 工具中的一个 bug，该 bug 阻止了 `-r` 选项处理 base64 编码字符串中的任意换行。

[chgrp(1)](http://www.freebsd.org/cgi/man.cgi?query=chgrp\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 和 [chown(8)](http://www.freebsd.org/cgi/man.cgi?query=chown\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 现在支持 `-x` 参数，以防止递归操作遍历多个挂载点。

[cp(1)](http://www.freebsd.org/cgi/man.cgi?query=cp\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 现在支持 `-x` 参数，以防止递归操作遍历多个挂载点。

[dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在报告退出的原因，并且在 [dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 忽略路由消息的 10 秒等待时间已改为在 dhclient-script 开始后而非完成后开始。此更改修复了 [dhclient(8)](http://www.freebsd.org/cgi/man.cgi?query=dhclient\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 在某些条件下静默退出的问题。

修复了 [find(1)](http://www.freebsd.org/cgi/man.cgi?query=find\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 工具中的一个 bug。选项 `-newerXB` 被误解为与 `-newerXm` 相同。

[tftp(1)](http://www.freebsd.org/cgi/man.cgi?query=tftp\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 和 [tftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=tftpd\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具已改进，支持更好的互操作性，并且现在支持 RFC 1350、2347、2348、2349 和 3617。

修复了 [jn(3)](http://www.freebsd.org/cgi/man.cgi?query=jn\&sektion=3\&manpath=FreeBSD+7.4-RELEASE) 和 [jnf(3)](http://www.freebsd.org/cgi/man.cgi?query=jnf\&sektion=3\&manpath=FreeBSD+7.4-RELEASE) 函数在 libm 中的精度问题。

[indent(1)](http://www.freebsd.org/cgi/man.cgi?query=indent\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 工具现在支持 `-ta` 参数，将所有带有 `_t` 后缀的标识符视为类型。

[mount(8)](http://www.freebsd.org/cgi/man.cgi?query=mount\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具中的 `-p` 选项现在正确显示 rw 挂载选项，就像在 [fstab(5)](http://www.freebsd.org/cgi/man.cgi?query=fstab\&sektion=5\&manpath=FreeBSD+7.4-RELEASE) 格式中一样。

[ncal(1)](http://www.freebsd.org/cgi/man.cgi?query=ncal\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 工具已更新。`-b` 选项已被替换为 `-C` 和 `-B <number>`。新增了 `-3` 选项以显示上个月、当前月和下个月，并且 `-A <number>` 选项显示当前月之后的月份。选项 `-m <N YYYY>` 现在只打印月份，而不是整个年份。

修复了 [newfs(8)](http://www.freebsd.org/cgi/man.cgi?query=newfs\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具中的一个问题。使用 64KB 块大小创建的 UFS1 文件系统被错误地识别为有损坏的超级块。这是因为 FreeBSD 内核首先检查一个分区的 UFS2 超级块在 64KB 偏移位置，而某些 UFS1 文件系统（如使用 `newfs -U -O 1 -b 65536 -f 8192` 创建的文件系统）也可能在该位置有一个备用超级块。

[newsyslog(8)](http://www.freebsd.org/cgi/man.cgi?query=newsyslog\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在不再将 PID 文件不存在视为错误。新增了 `-P` 参数以恢复到旧行为。

[newsyslog(8)](http://www.freebsd.org/cgi/man.cgi?query=newsyslog\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在支持 `-S <pidfile>` 选项，用于覆盖默认的 [syslogd(8)](http://www.freebsd.org/cgi/man.cgi?query=syslogd\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) PID 文件。

[pmcstat(8)](http://www.freebsd.org/cgi/man.cgi?query=pmcstat\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在支持文件和网络套接字作为主要来源。新增选项 `-O <filename>` 将日志输出发送到 *filename*，另一个新选项 `-R <filename>` 用于从 *filename* 接收事件。对于套接字，*filename* 以 *ipaddr:port* 形式指定。这允许在没有本地符号的系统上通过 TCP 进行顶部监控。

[powerd(8)](http://www.freebsd.org/cgi/man.cgi?query=powerd\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在支持选项 `-m <freq>` 和 `-M <freq>`，用于分别控制最小和最大频率。

[ruptime(1)](http://www.freebsd.org/cgi/man.cgi?query=ruptime\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 工具现在显示超过 12 个字符的主机名。

[stat(1)](http://www.freebsd.org/cgi/man.cgi?query=stat\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 工具现在支持 `%Sf` 输出说明符，以符号方式显示文件参数。

[sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 工具现在支持 `-i` 参数，以在检索个别 OID 时忽略失败。这允许将相同的 OID 列表传递给不同系统的 [sysctl(8)](http://www.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&manpath=FreeBSD+7.4-RELEASE)，即使某些 OID 在某些系统上不存在，仍然可以尽可能多地获取信息。

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

现在，`rc.conf(5)` 支持一个 `firewall_coscripts` 变量。这个变量应包含在防火墙启动或停止后需要执行的命令列表。

`rc.d/tmp` 脚本现在使用一个唯一的目录名称，前缀为 `/tmp/.diskless`，而不是直接使用 `/tmp/.diskless`。这修复了在脚本运行之前 `/tmp/.diskless` 已经存在时出现的问题。

### 2.4 第三方软件

**ISC BIND** 已更新到版本 9.4-ESV-R4。

GNU [cpio(1)](http://www.freebsd.org/cgi/man.cgi?query=cpio\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 程序已更新到版本 2.8。

[less(1)](http://www.freebsd.org/cgi/man.cgi?query=less\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 程序已更新到版本 v436。

**netcat** 程序已更新到版本 4.8。

**OpenSSL** 已更新到版本 0.9.8q。

[tcsh(1)](http://www.freebsd.org/cgi/man.cgi?query=tcsh\&sektion=1\&manpath=FreeBSD+7.4-RELEASE) 程序已更新到版本 6.17.00。

时区数据库已更新为 **tzdata2010o** 版本。

### 2.5 发布工程与集成

[sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 程序现在使用以下默认和最小分区大小：`/` 为 1GB，`/var` 为 4GB，`/tmp` 为 1GB。

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

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

## 3 从先前版本升级 FreeBSD

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

较旧的二进制升级形式可以通过 CDROM 分发媒体上的 [sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+7.4-RELEASE) 主菜单中的“Upgrade”选项来支持。这种类型的二进制升级可能在非 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)。

所有使用 FreeBSD 7.4-STABLE 的用户应订阅 <stable@FreeBSD.org> 邮件列表。

关于此文档的问题，请通过电子邮件联系 <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/7.4.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.
