# FreeBSD 4.7 RELEASE i386 发行公告（2002 年 10 月 10 日）

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

**FreeBSD 项目**

版权所有 © 2000、2001、2002，FreeBSD 文档项目所有

```
$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.22.2.300 2002/09/30 19:03:49 dd Exp $
```

FreeBSD 4.7-RELEASE 的发行说明总结了自 4.6-RELEASE 以来对 FreeBSD 基本系统所做的变更。包括内核和用户空间的变更，以及自上次发行以来发布的基本系统相关的安全公告。同时，还简要介绍了一些升级的注意事项。

## 1 简介

本文档包含针对 FreeBSD 4.7-RELEASE 在 IA-32 硬件平台上的发行说明。内容包括自 4.6-RELEASE 以来新增（或变更）的 FreeBSD 功能，还提供了一些关于从之前版本升级的说明。

FreeBSD 4.7-RELEASE 的发行版本可以通过 [ftp://ftp.FreeBSD.org/](ftp://ftp.freebsd.org/) 或其任何镜像站点获取。有关获取此版本（或其他版本）的更多信息，请参阅 [《FreeBSD 手册》](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/) 中的 [“获取 FreeBSD”](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mirrors.html) 附录。

## 2 新特性

本节介绍了自 4.6-RELEASE 以来 FreeBSD 中最为明显的新功能或已变更的功能。发行说明中的典型条目包括新驱动程序或硬件支持、新命令或选项、主要错误修复以及外部软件升级。此外，还列出了 4.6-RELEASE 发布后针对基本系统发布的安全公告。

### 2.1 内核变更

[acct(2)](http://www.freebsd.org/cgi/man.cgi?query=acct\&sektion=2\&manpath=FreeBSD+4.7-RELEASE) 被修改为以追加模式打开记账文件，以便可以使用 [accton(8)](http://www.freebsd.org/cgi/man.cgi?query=accton\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 启用对仅追加文件的记账。

新增了 RLIMIT\_VMEM 支持。此功能定义了一个新的资源限制，覆盖进程的整个虚拟内存空间，包括 [mmap(2)](http://www.freebsd.org/cgi/man.cgi?query=mmap\&sektion=2\&manpath=FreeBSD+4.7-RELEASE) 空间。此限制可通过 [login.conf(5)](http://www.freebsd.org/cgi/man.cgi?query=login.conf\&sektion=5\&manpath=FreeBSD+4.7-RELEASE) 中的新变量 `vmemoryuse` 配置。

修复了 [sendfile(2)](http://www.freebsd.org/cgi/man.cgi?query=sendfile\&sektion=2\&manpath=FreeBSD+4.7-RELEASE) 系统调用中的一个错误，该错误会导致头部计入要发送文件的大小。

新增设备驱动程序 [ucom(4)](http://www.freebsd.org/cgi/man.cgi?query=ucom\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) ，用于支持 USB 调制解调器、串口设备及其他需要仿真为 tty 的程序。相关的驱动程序 [uplcom(4)](http://www.freebsd.org/cgi/man.cgi?query=uplcom\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 和 [uvscom(4)](http://www.freebsd.org/cgi/man.cgi?query=uvscom\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 分别为 Prolific PL-2303 串行适配器和 SUNTAC Slipper U VS-10U 提供支持。

新增了用于通过 USB 连接 Handspring Visor 的 [uvisor(4)](http://www.freebsd.org/cgi/man.cgi?query=uvisor\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 驱动程序。

#### 2.1.1 处理器/主板支持

新增对 AMD Élan SC520 的支持；需在内核配置文件中新增选项 `CPU_ELAN`。

#### 2.1.2 引导加载程序

#### 2.1.3 网络接口支持

[em(4)](http://www.freebsd.org/cgi/man.cgi?query=em\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 驱动程序现在支持 Intel 82545EM 和 82545EB 芯片，并且新增了 VLAN 支持。

[rp(4)](http://www.freebsd.org/cgi/man.cgi?query=rp\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 驱动程序已更新至版本 3.02，现在可以作为模块构建。

#### 2.1.4 网络协议

新增了 [ipfw(4)](http://www.freebsd.org/cgi/man.cgi?query=ipfw\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 的新版（通常称为“IPFW2”）作为一个选项。它在内核中采用了类似 [bpf(4)](http://www.freebsd.org/cgi/man.cgi?query=bpf\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 指令的可变大小规则表示法。尽管大部分外部可见的行为（如通过 [ipfw(8)](http://www.freebsd.org/cgi/man.cgi?query=ipfw\&sektion=8\&manpath=FreeBSD+4.7-RELEASE)）保持不变，[ipfw(8)](http://www.freebsd.org/cgi/man.cgi?query=ipfw\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 现在支持匹配字段之间的逻辑或连接操作。此新版本默认未启用。如需使用：

1. 在内核配置中新增 `options IPFW2`（尚未记录）。
2. 编译并安装带有 `-DIPFW2` 选项的 libalias 和 [ipfw(8)](http://www.freebsd.org/cgi/man.cgi?query=ipfw\&sektion=8\&manpath=FreeBSD+4.7-RELEASE)。

新增了 netgraph 节点类型 [ng\_l2tp(4)](http://www.freebsd.org/cgi/man.cgi?query=ng_l2tp\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) ，它实现了 RFC 2661 中描述的 L2TP 协议的封装层。

[tcp(4)](http://www.freebsd.org/cgi/man.cgi?query=tcp\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 协议的重传计时器现在可以通过两个 sysctl 变量（`net.inet.tcp.rexmit_min` 和 `net.inet.tcp.rexmit_slop`）进行调整。

[tcp(4)](http://www.freebsd.org/cgi/man.cgi?query=tcp\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 协议现在能够动态限制发送端窗口，以最大化带宽并最小化往返时间。该功能可通过 sysctl `net.inet.tcp.inflight_enable` 启用。

#### 2.1.5 磁盘和存储

新增驱动程序 [ahd(4)](http://www.freebsd.org/cgi/man.cgi?query=ahd\&sektion=4\&manpath=FreeBSD+4.7-RELEASE)，用于支持 Adaptec AIC7901、AIC7901A 和 AIC7902 Ultra320 PCI-X SCSI 控制器芯片。

修复了一个可能导致 [ata(4)](http://www.freebsd.org/cgi/man.cgi?query=ata\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 标记队列无法正常工作的错误。

驱动程序 [ata(4)](http://www.freebsd.org/cgi/man.cgi?query=ata\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 现在能够正确计算最大传输大小，从而修复了访问某些 ATA 设备时发生的许多 `READ_BIG` 和其他错误。

驱动程序 [ata(4)](http://www.freebsd.org/cgi/man.cgi?query=ata\&sektion=4\&manpath=FreeBSD+4.7-RELEASE) 现在支持 Sil 0680 和 VIA 8233/8235 控制器。

新增驱动程序 mpt，用于支持 LSI Logic Fusion/MP 架构光纤通道控制器。

新增驱动程序 pst，用于支持 Promise SuperTrak ATA RAID 控制器。

#### 2.1.6 文件系统

#### 2.1.7 PCCARD 支持

#### 2.1.8 多媒体支持

VT8233 音频控制器现在拥有自己的驱动程序，以支持所有已知的硬件修订版。可以通过在内核配置中新增 `device pcm`；或在 `/boot/loader.conf` 中新增 `snd_via8233="YES"` 在启动时可加载此驱动程序。相关文档由 VIA 提供支持。

ich 声卡驱动程序现在提供基本的 ich4 音频支持。

新增了用于 USB 音频设备的 uaudio 驱动程序。

#### 2.1.9 第三方软件

**IPFilter** 已更新至版本 3.4.29。

### 2.2 安全公告

最初修复安全公告 SA-02:23（解决了 set-user-id 或 set-group-id 程序使用文件描述符的问题）时存在错误。对于使用 [procfs(5)](http://www.freebsd.org/cgi/man.cgi?query=procfs\&sektion=5\&manpath=FreeBSD+4.7-RELEASE) 或 [linprocfs(5)](http://www.freebsd.org/cgi/man.cgi?query=linprocfs\&sektion=5\&manpath=FreeBSD+4.7-RELEASE) 的系统，仍可能被利用。此错误已修正，修订版的安全公告 [FreeBSD-SA-02:23](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:23.stdio.asc) 提供了更多细节。

修复了解析器中的缓冲区溢出漏洞，该漏洞可能被恶意域名服务器或伪造 DNS 消息的攻击者利用。详情请参阅安全公告 [FreeBSD-SA-02:28](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:28.resolv.asc)。

修复了 [tcpdump(1)](http://www.freebsd.org/cgi/man.cgi?query=tcpdump\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 中的缓冲区溢出漏洞，该漏洞可能因格式错误的 NFS 数据包触发。详情请参阅安全公告 [FreeBSD-SA-02:29](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:29.tcpdump.asc)。

[ktrace(1)](http://www.freebsd.org/cgi/man.cgi?query=ktrace\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 不再允许跟踪先前具有特权的进程操作，从而防止了该进程在放弃特权之前可能获取的敏感信息泄露。有关此问题的讨论，请参阅安全公告 [FreeBSD-SA-02:30](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:30.ktrace.asc)。

修复了 [pppd(8)](http://www.freebsd.org/cgi/man.cgi?query=pppd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 中的竞争条件漏洞，该漏洞可能被用来变更任意文件的权限。更多信息请参阅安全公告 [FreeBSD-SA-02:32](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:32.pppd.asc)。

通过升级 **OpenSSL**，修复了其多个缓冲区溢出漏洞。更多详情请参阅安全公告 [FreeBSD-SA-02:33](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:33.openssl.asc)。

修复了 XDR 解码器中的堆缓冲区溢出漏洞。更多信息请参阅安全公告 [FreeBSD-SA-02:34](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:34.rpc.asc)。

修复了一个允许本地用户读取和写入 FFS 文件系统任意块的漏洞。更多信息请参阅安全公告 [FreeBSD-SA-02:35](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:35.ffs.asc)。

修复了 NFS 服务器代码中的一个漏洞，该漏洞可能允许远程拒绝服务攻击。安全公告 [FreeBSD-SA-02:36](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:36.nfs.asc) 提供了更多细节。

修复了一个可能允许本地用户通过 [kqueue(2)](http://www.freebsd.org/cgi/man.cgi?query=kqueue\&sektion=2\&manpath=FreeBSD+4.7-RELEASE) 机制使系统崩溃的漏洞。更多信息请参阅安全公告 [FreeBSD-SA-02:37](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:37.kqueue.asc)。

修复了系统调用中的几个边界检查错误，这些错误可能导致部分系统调用返回大量内核内存。更多信息请参阅安全公告 [FreeBSD-SA-02:38](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:38.signed-error.asc)。

修复了一个可能导致使用 libkvm 的应用程序泄露敏感文件描述符的漏洞。详情请参阅安全公告 [FreeBSD-SA-02:39](ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-02:39.libkvm.asc)。

### 2.3 用户态的变更

[biff(1)](http://www.freebsd.org/cgi/man.cgi?query=biff\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在接受一个 `b` 参数，用于启用新邮件的“响铃通知”（不会影响终端内容显示，区别于 biff y）。

[cp(1)](http://www.freebsd.org/cgi/man.cgi?query=cp\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现新增一个（非标准）`-n` 选项，当需要覆盖文件时自动回答“否”。

新增程序 [daemon(8)](http://www.freebsd.org/cgi/man.cgi?query=daemon\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) ，它是 [daemon(3)](http://www.freebsd.org/cgi/man.cgi?query=daemon\&sektion=3\&manpath=FreeBSD+4.7-RELEASE) 的命令行接口。它会从控制终端分离，并执行命令行指定的程序，从而允许用户将任意程序作为守护进程运行。

[dump(8)](http://www.freebsd.org/cgi/man.cgi?query=dump\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 新增了 `-S` 参数，仅打印备份大小估算值并退出。

[finger(1)](http://www.freebsd.org/cgi/man.cgi?query=finger\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `.pubkey` 文件。

[finger(1)](http://www.freebsd.org/cgi/man.cgi?query=finger\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 增加了 `-g` 选项，仅显示用户全名的 GECOS 信息。

[finger(1)](http://www.freebsd.org/cgi/man.cgi?query=finger\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 支持 `-4` 和 `-6` 选项，用于为远程查询指定地址族。

[fold(1)](http://www.freebsd.org/cgi/man.cgi?query=fold\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-b` 选项按字节位置断行，以及 `-s` 选项按单词边界断行。

[ftp(1)](http://www.freebsd.org/cgi/man.cgi?query=ftp\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 新增了 `epsv4` 命令，在使用 IPv4 时切换到 EPSV/EPRT 和传统 PASV/PORT 请求之间。此命令解决了运行 [ftp(1)](http://www.freebsd.org/cgi/man.cgi?query=ftp\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 时因 IPFilter 或其他防火墙不支持新 FTP 请求而导致的问题。

[ftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=ftpd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 增加了 `-m` 选项，允许访客用户修改现有文件（如果文件系统权限允许）。这特别支持访客用户恢复上传。

[ftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=ftpd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 增加了 `-M` 选项，阻止访客用户创建目录。

[ftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=ftpd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 增加了 `-W` 选项，禁用将 FTP 会话记录到 [wtmp(5)](http://www.freebsd.org/cgi/man.cgi?query=wtmp\&sektion=5\&manpath=FreeBSD+4.7-RELEASE)。

[ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 增加了 `eui64` 命令，自动填充 IPv6 地址的低 64 位，使得 [prefix(8)](http://www.freebsd.org/cgi/man.cgi?query=prefix\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 变得多余。

[ifconfig(8)](http://www.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 现在可以通过参数 `promisc` 设置接口的混杂模式。

[inetd(8)](http://www.freebsd.org/cgi/man.cgi?query=inetd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 现在能够限制单个 IP 地址的最大服务同时调用数。

[lock(1)](http://www.freebsd.org/cgi/man.cgi?query=lock\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在接受 `-v` 参数，用于在终端被锁定时禁用切换虚拟终端（VTY）。这允许通过单个终端锁定整个控制台。

[ls(1)](http://www.freebsd.org/cgi/man.cgi?query=ls\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 程序新增了 `-m` 选项以跨页显示文件，`-p` 选项强制在目录后新增 `/`，以及 `-x` 选项以跨页对文件名排序。

[mv(1)](http://www.freebsd.org/cgi/man.cgi?query=mv\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现新增（非标准）`-n` 选项，当需要覆盖文件时自动回答“否”。

[nice(1)](http://www.freebsd.org/cgi/man.cgi?query=nice\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在使用 `-n` 参数指定运行程序的“优先级”。

[od(1)](http://www.freebsd.org/cgi/man.cgi?query=od\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-A` 选项指定输入地址基，`-N` 选项指定转储字节数，`-j` 选项指定跳过字节数，`-s` 选项输出有符号十进制短整型，以及 `-t` 选项指定输出类型。

[pam\_opie(8)](http://www.freebsd.org/cgi/man.cgi?query=pam_opie\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 在指定变量 `no_fake_prompts` 时，不再生成伪挑战。

新增模块 [pam\_opieaccess(8)](http://www.freebsd.org/cgi/man.cgi?query=pam_opieaccess\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 。

[pam\_radius(8)](http://www.freebsd.org/cgi/man.cgi?query=pam_radius\&sektion=8\&manpath=FreeBSD+4.7-RELEASE)、[pam\_ssh(8)](http://www.freebsd.org/cgi/man.cgi?query=pam_ssh\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 和 [pam\_tacplus(8)](http://www.freebsd.org/cgi/man.cgi?query=pam_tacplus\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 已与 2002 年 7 月 3 日的 FreeBSD -CURRENT 版本同步。

[pam\_unix(8)](http://www.freebsd.org/cgi/man.cgi?query=pam_unix\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 已与 2002 年 3 月 9 日的 FreeBSD -CURRENT 版本同步（pre-OpenPAM）。

[pwd(1)](http://www.freebsd.org/cgi/man.cgi?query=pwd\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-L` 选项，以打印逻辑当前工作目录。

[renice(8)](http://www.freebsd.org/cgi/man.cgi?query=renice\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 命令实现了 `-n` 选项，用于指定对进程优先级的增量。

[sed(1)](http://www.freebsd.org/cgi/man.cgi?query=sed\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-i` 选项，实现文件的就地编辑。

[sh(1)](http://www.freebsd.org/cgi/man.cgi?query=sh\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-C` 选项，可以防止通过输出重定向覆盖已有的普通文件，并支持 `-u` 选项，在扩展未设置的变量时触发错误。

[sh(1)](http://www.freebsd.org/cgi/man.cgi?query=sh\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 的内置 `cd` 命令现在支持 `-L` 和 `-P` 参数，分别用于调用逻辑模式或物理模式。默认使用逻辑模式，但可以通过 `sh(1)` 的物理选项变更默认设置。

[sh(1)](http://www.freebsd.org/cgi/man.cgi?query=sh\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 的内置 `jobs` 命令现在支持 `-s` 参数，仅输出进程 ID（PID），以及 `-l` 参数，将 PID 新增到输出中。

[sh(1)](http://www.freebsd.org/cgi/man.cgi?query=sh\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 的内置 `export` 和 `readonly` 命令现在支持 `-p` 参数，以“可移植”格式打印其输出。

[sh(1)](http://www.freebsd.org/cgi/man.cgi?query=sh\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 不再接受诸如 `command & && command`、`&& command` 或 `|| command` 的无效构造。

[split(1)](http://www.freebsd.org/cgi/man.cgi?query=split\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-a` 选项，用于指定拆分文件后缀使用的字母数量。

[su(1)](http://www.freebsd.org/cgi/man.cgi?query=su\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 Kerberos V 认证。

[tr(1)](http://www.freebsd.org/cgi/man.cgi?query=tr\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在基本支持对具有此功能的区域设置的等价类（equivalence classes）。

[unexpand(1)](http://www.freebsd.org/cgi/man.cgi?query=unexpand\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-t` 选项，用于指定制表符间距，类似于 [expand(1)](http://www.freebsd.org/cgi/man.cgi?query=expand\&sektion=1\&manpath=FreeBSD+4.7-RELEASE)。

[vidcontrol(1)](http://www.freebsd.org/cgi/man.cgi?query=vidcontrol\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在接受 `-S` 选项，允许用户禁用虚拟终端（VTY）切换。

[who(1)](http://www.freebsd.org/cgi/man.cgi?query=who\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 增加了一些新选项：`-H` 显示列标题；`-T` 显示 [mesg(1)](http://www.freebsd.org/cgi/man.cgi?query=mesg\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 状态；`-m` 等同于 `am i`；`-u` 显示空闲时间；`-q` 按列显示用户名称。

[xargs(1)](http://www.freebsd.org/cgi/man.cgi?query=xargs\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-I replstr` 选项，允许用户将从标准输入读取的数据插入到命令行参数的特定位置，而不是末尾。（FreeBSD 专用的 `-J` 选项功能类似，但已被更便携的 `-I` 选项取代。）

[xargs(1)](http://www.freebsd.org/cgi/man.cgi?query=xargs\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在支持 `-L` 选项，强制在处理一定数量的行后调用其实用程序参数。

#### 2.3.1 第三方软件

* **BIND** 已更新至 8.3.3。
* **Binutils** 已更新至 2.12.1（具体为 2002 年 7 月 20 日的发布后快照版本）。
* **gcc** 已更新为 2002 年 3 月 20 日 GCC 2.95 CVS 分支的快照版本，非官方版本号为 2.95.4。
* **Heimdal Kerberos** 已更新为 2002 年 8 月 29 日的 pre-0.5 快照版本。
* **libpcap** 已更新至 0.7.1。
* 已引入来自 NetBSD 的 FTP 守护进程（又名 **lukemftpd** 1.2 beta 1），并作为 [lukemftpd(8)](http://www.freebsd.org/cgi/man.cgi?query=lukemftpd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 提供。
* 已从 OpenBSD 引入 [m4(1)](http://www.freebsd.org/cgi/man.cgi?query=m4\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) ，版本日期为 2002 年 4 月 26 日。
* **OPIE** 一次性密码套件已更新至 2.4。
* **OpenSSH** 已更新至 3.4p1 版本，主要变化包括：
  * `*2` 文件已废弃（例如，`~/.ssh/known_hosts` 可包含 `~/.ssh/known_hosts2` 的内容）。
  * [ssh-keygen(1)](http://www.freebsd.org/cgi/man.cgi?query=ssh-keygen\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 支持使用 SECSH 公钥文件格式导入和导出密钥，以便与部分商业 SSH 实现进行密钥交换。
  * [ssh-add(1)](http://www.freebsd.org/cgi/man.cgi?query=ssh-add\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 现在会新增所有三个默认密钥。
  * [ssh-keygen(1)](http://www.freebsd.org/cgi/man.cgi?query=ssh-keygen\&sektion=1\&manpath=FreeBSD+4.7-RELEASE) 不再默认使用特定密钥类型，必须通过 `-t` 选项指定。
  * 引入了“权限隔离”（privilege separation）功能，使用非特权进程来限制未来可能的漏洞或编程错误的影响。
  * 修复了一些漏洞，包括可能导致整数溢出和权限提升的问题。
  * 默认使用的 SSH 协议版本现在是版本 2（可回退至版本 1），而不是版本 1（可回退至版本 2）。
* **OpenSSL** 已更新至 0.9.6g。
* **sendmail** 从 8.12.3 版本更新至 8.12.6。
* **smbfs** 用户态工具的版本已引入 1.4.5。
* **GNU tar** 已更新至 1.13.25。
* **tcsh** 已更新至 6.12 版本。
* **texinfo** 已更新至 4.2。
* **tcp\_wrappers** 的贡献版本现已包含辅助守护进程 [tcpd(8)](http://www.freebsd.org/cgi/man.cgi?query=tcpd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE)。尽管在标准 FreeBSD 安装中并非必需（因为 [inetd(8)](http://www.freebsd.org/cgi/man.cgi?query=inetd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 已实现此功能），但对 **xinetd** 等 [inetd(8)](http://www.freebsd.org/cgi/man.cgi?query=inetd\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 替代程序可能有用。
* **tcpdump** 已更新至 3.7.1。
* **top** 已更新至 3.5b12 版本。

#### 2.3.2 Ports/软件包

已更新 Port [emulators/linux\_base](http://www.freebsd.org/cgi/url.cgi?ports/emulators/linux_base/pkg-descr)（Linux 仿真所需）安装的库，现在对应 **Red Hat Linux** 7.1 的版本。

**XFree86** 已更新至 4.2.1 版本。此版本较 4.2.0 提供了一些安全性和错误修复

### 2.4 发布工程与集成

修复了一个导致 `/usr/share/examples` 在全新安装时未完全填充的错误。

现在，可以在 FreeBSD 4-STABLE 主机上生成 FreeBSD 5-CURRENT 的版本，反之亦然。此外，还支持跨架构发布（在不同架构的主机上为目标架构构建发布版本）。详情请参阅 [release(7)](http://www.freebsd.org/cgi/man.cgi?query=release\&sektion=7\&manpath=FreeBSD+4.7-RELEASE)。

## 3 从之前的 FreeBSD 版本升级

如果你从之前的 FreeBSD 版本升级，通常有以下三种选项：

* 使用 [sysinstall(8)](http://www.freebsd.org/cgi/man.cgi?query=sysinstall\&sektion=8\&manpath=FreeBSD+4.7-RELEASE) 的二进制升级方法。这可能是最快的方式，但假定你的 FreeBSD 安装未使用任何特殊的编译选项。
* 执行 FreeBSD 的完整重装。严格来说，这不是一种升级方法，并且通常比二进制升级不够方便，因为需要手动备份和恢复 `/etc` 的内容。然而，当你需要或想要变更磁盘分区时，这可能是有用的。
* 从 `/usr/src` 的源代码升级。这种方式更灵活，但需要更多的磁盘空间、时间和技术经验。更多信息可参见 [FreeBSD Handbook](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/) 的 [`Using make world`](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html) 部分。从较旧的 FreeBSD 版本升级可能会出现问题；在这种情况下，通常更有效的方法是执行二进制升级或完全重装。

在升级开始前，请阅读 INSTALL.TXT 文件以获取更多信息。如果从源代码升级，请务必阅读 `/usr/src/UPDATING`。

如果你希望通过某种方式追踪 FreeBSD 的 -STABLE 或 -CURRENT 分支，请参阅 [FreeBSD Handbook](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/) 中的 [`-CURRENT vs. -STABLE`](http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html) 部分。

> **重要提示：**
>
> 升级 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/4.7-i386.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.
