FreeBSD 项目
版权所有 © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 FreeBSD 文档项目
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 国际公司在美国及其他国家的商标。带有 SPARC 商标的产品基于 Sun Microsystems, Inc. 开发的架构。
许多制造商和销售商用于区分其产品的名称被声明为商标。当这些名称出现在本文件中,并且 FreeBSD 项目已知该商标声明时,名称后会附有“™”或“®”符号。
FreeBSD 6.2-RELEASE 的发布说明包含了在 6.2-STABLE 开发线中对 FreeBSD 基本系统所做的变更的摘要。本文档列出了自上次发布以来发布的相关安全公告,以及对 FreeBSD 内核和用户空间的重大变更。还简要介绍了升级的一些注意事项。
本文件包含 FreeBSD 6.2-RELEASE 在 AMD64 硬件平台上的发布说明。它介绍了 FreeBSD 中最近新增、修改或删除的功能,并提供了一些关于从以前版本的 FreeBSD 升级的说明。
此版本的 FreeBSD 6.2-RELEASE 是一个发布版本,可以在 http://www.FreeBSD.org/snapshots/ 或其任何镜像站点上找到。有关获取此版本(或其他)FreeBSD 发行版的更多信息,请参见 《获取 FreeBSD》附录 中的内容,该附录位于 FreeBSD 手册 中。
建议所有用户在安装 FreeBSD 之前查阅发布勘误。勘误 文档会更新发布周期结束时或发布后发现的“最后时刻”信息。通常,它包含已知错误、安全公告和文档更正的内容。FreeBSD 6.2-RELEASE 的最新勘误副本可以在 FreeBSD 网站上找到。
本节介绍了自 6.1-RELEASE 以来 FreeBSD 中最为用户可见的新特性或变化。
典型的发布说明项包括发布后发布的最新安全公告、新驱动程序或硬件支持、新命令或选项、主要的 bug 修复或第三方软件升级。它们还可能列出主要 Port/包或发布工程实践的变更。显然,发布说明无法列出每个版本之间对 FreeBSD 所做的所有变更;本文档主要关注安全公告、用户可见的变化和主要的架构改进。
在 ypserv(8) 中的一个 bug,实际上禁用了 /var/yp/securenets
访问控制机制,现已修正。更多详细信息,请参见安全公告 FreeBSD-SA-06:15.ypserv。
在 smbfs 文件系统中的一个 bug,可能允许攻击者在 smbfs 挂载的文件系统中逃脱 chroot(2) 环境,现已修正。更多详细信息,请参见安全公告 FreeBSD-SA-06:16.smbfs。
由于过度递归导致堆栈耗尽,试图传送格式错误的 MIME 消息时, sendmail(8) 中的一个潜在拒绝服务问题现已修复。更多详细信息,请参见安全公告 FreeBSD-SA-06:17.sendmail。
已修复 sppp(4) 中的潜在缓冲区溢出条件。更多详细信息,请参见安全公告 FreeBSD-SA-06:18.ppp。
已修复与验证 PKCS#1 v1.5 签名相关的 OpenSSL bug。更多详细信息,请参见安全公告 FreeBSD-SA-06:19.openssl。
已修复对 named(8) 的潜在拒绝服务攻击。更多详细信息,请参见安全公告 FreeBSD-SA-06:20.bind。
已修复 gzip(1) 中的几个编程错误,这些错误可能导致崩溃或在解压文件时发生无限循环。更多信息请参见安全公告 FreeBSD-SA-06:21.gzip。
已修复 OpenSSH 中的几个漏洞。更多详细信息,请参见安全公告 FreeBSD-SA-06:22.openssh。
已修复 OpenSSL crypto(3) 库中的多个错误。潜在影响是多样的,详细信息请参见安全公告 FreeBSD-SA-06:23.openssl。
已修复一个 bug,允许损坏的归档文件在 libarchive(3) 和 tar(1) 中引发无限循环。更多详细信息,请参见 FreeBSD-SA-06:24.libarchive。
已修复一个 bug,允许操作员组的用户读取部分内核内存。更多详细信息,请参见安全公告 FreeBSD-SA-06:25.kmem。
已修复一个 Jail 启动脚本中的 bug,可能通过符号链接攻击引发特权提升。更多信息请参见 FreeBSD-SA-07:01.jail。
FreeBSD 内核现在支持安全事件审计,并通过 AUDIT 内核配置选项启用。更多信息可以在 audit(4) 手册页中找到。
内核不再包含所有物理内存作为崩溃转储,而是默认仅转储当前映射到内核虚拟内存中的页面。此功能需要设置新的 sysctl 变量 debug.minidump
为 1
。
已为 tty(4) 层的几个 bug 新增工作绕过;这些变更防止了观察到的多种内核 panic。
已修复内核 UMA 内存分配器中的统计保持代码中的一个 bug。此问题导致内存分配失败的计数(通过 netstat -m
显示)错误地增加。
FreeBSD 现在可以在 Xbox 上运行,Xbox 的架构与 i386 几乎相同。有关最新开发的详细信息,请参见 http://www.FreeBSD.org/platforms/xbox.html。
已新增驱动程序 amdsmb(4) ,提供对 AMD-8111 SMBus 2.0 控制器的支持。
已新增驱动程序 ipmi(4) ,它与 OpenIPMI 兼容。OpenIPMI(智能平台管理接口)是一个开放标准,旨在启用对服务器、网络和电信平台的远程监控和控制。
已向子系统 crypto(9) 新增对 VIA C3、Eden 和 C7 处理器中的 PadLock 安全协处理器的支持。更多信息请参见 padlock(4) 手册页。
已新增支持 NVIDIA nForce 2/3/4 SMBus 2.0 控制器的驱动程序 nfsmb(4) 。
2.2.2.1 多媒体支持
2.2.2.2 网络接口支持
已将驱动程序 ath(4) 更新至 HAL 版本 0.9.17.2。
驱动程序 ath(4)、ath_hal(4) 和 ath_rate_sample
已默认包含在 GENERIC 内核中。
已对驱动程序 bce(4) 进行了若干改进,以提高其稳定性。变更的一个显著方面是,涉及 IP 分片的传输端校验和卸载已被禁用,因为硬件未能正确处理此功能。
已将驱动程序 em(4) 更新为来自 Intel 的版本 6.2.9。除其他变更外,它还支持多种新适配器。通过定义 EM_FAST_INTR 预处理符号编译驱动程序将启用可选的“快速中断”处理。“快速中断”处理在此版本的驱动程序中已被证明在某些情况下能显著提高性能,但在其他情况下与稳定性问题有关。
已对驱动程序 iwi(4) 的功能进行了若干改进和 bug 修复。该驱动程序现在需要在 Port/包 net/iwi-firmware-kmod 中提供固件镜像;以前版本的驱动程序使用 net/iwi-firmware 。
已将驱动程序 nve(4) 更新为版本 1.0-0310(2005年11月23日)。它现在也支持 altq(4)。
驱动程序 sk(4) 现在是 MPSAFE。
已新增驱动程序 stge(4) 。它支持 Sundance/Tamarack TC9021 Gigabit Ethernet 控制器,并已从 NetBSD 移植过来。
通过不同监听器 bpf(4) 接收到的多个数据包现在都有相同的时间戳。
已新增IPsec 过滤伪设备 enc(4) 。它允许使用 pfil(9) 框架的防火墙包在出站加密前和入站解密后检查(并过滤)IPsec 流量。
sysctl 变量 net.inet.ip.portrange.reservedhigh
和 net.inet.ip.portrange.reservedlow
现在可以与 IPv6 一起使用。
已移除内核选项 IPFIREWALL_FORWARD_EXTENDED
。该选项用于允许 ipfw(4) 重定向具有本地目标的包。现在,只要启用内核选项,IPFIREWALL_FORWARD
此行为总是启用。
数据包过滤器 ipfw(4) 现在支持规则关键字 tag
和 untag
。当数据包匹配带有 tag 关键字的规则时,给定范围内的数字标签(从 0
到 65535
)将附加到数据包上。标签作为内部标记(不会通过网络传输),可以用于稍后识别这些数据包,例如,通过使用带标签规则选项。更多详情请参见 ipfw(8)。
Netgraph 节点 ng_ether(4) 不再默认覆盖出站帧的 MAC 地址。
已新增 Netgraph 节点 ng_tag(4) ,用于支持操作内核中附加到数据的 mbuf 标签。
已向 tun(4) 驱动程序新增对 kqueue(2) 操作的支持。
FreeBSD 6.1-RELEASE 包含 IPv6 实现中的一个 bug,导致点对点接口出现多余的错误信息。此问题已被修正。
IPv6 链路本地地址现在仅在 ipv6_enable
设置为 rc.conf(5) 时启用。
已修复一个 bug,该 bug 导致 carp(4) 在某些 IPv6 环境中无法正常工作。
已更新驱动程序 arcmsr(4) 至版本 1.20.00.13。
驱动程序 ata(4) 现在支持 USB 大容量存储类设备。要启用此功能,需要在内核配置文件中新增行 device atausb
或加载内核模块 atausb
。请注意,此功能不能与驱动程序 umass(4) 共存。
已更新驱动程序 ata(4) ,以反映 FreeBSD CURRENT 中的版本。
geli(8) 现在能够执行对存储在磁盘上的加密数据的数据完整性验证(数据认证)。请注意,现在使用 -e
选项在 geli(8) 控制程序中指定加密算法;-a
选项现在用于指定认证算法。
已更新驱动程序 isp(4) ,以反映 FreeBSD CURRENT 中的版本。
已修复多个与锁定相关的 bug,这些问题出现在 devfs(5) 中。这些修复防止了几个已观察到的死锁条件。
已新增伪文件系统驱动 linsysfs(5) 。它提供了 Linux sys 文件系统的一个子集,并且是某些 Linux 二进制文件(如 LSI MegaRAID SAS 工具)正确操作所必需的。
在 FreeBSD 6.1-RELEASE 中,当文件系统同时使用配额和快照时,观察到的死锁问题已被修正。
由于 Giant 内核锁泄漏,FreeBSD 6.1-RELEASE 中运行的 NFS 服务器存在性能回归问题,现已修复。
工具 asf(8) 已被修订和扩展。现在,它可以通过多个接口运行,包括 kvm(3),该接口不仅支持实时系统,还支持内核崩溃转储。
已新增 OpenBSM 用户空间工具,包括 audit(8)、auditd(8)、auditreduce(1) 和 praudit(1)。
工具 cp(1) 现在支持 -l
选项,该选项会使其创建指向源文件的硬链接,而不是复制文件。
已导入工具 csup(1) 。这是一款用 C 语言编写的 CVSup 兼容客户端的实现。请注意,它目前仅支持检出模式。
程序 dhclient(8) 现在会在 DHCP 请求中发送主机名(如果在配置文件中未指定)。
程序 du(1) 现在支持 -n
参数,该参数使其忽略设置了 nodump 参数的文件和目录。
程序 find(1) 现在支持 -Btime
和其他相关的主要选项,可以用于根据文件的创建时间创建表达式。
已新增工具 freebsd-update(8) ,这是一个管理 FreeBSD 基本系统二进制更新的工具。
工具 fsdb(8) 现在支持使用新的命令 btime
变更 UFS2 文件系统上文件的创建时间。
程序 fsdb(8) 现在支持命令 findblk
,用于查找拥有特定磁盘块的 inode。
已从 NetBSD 导入工具 getent(1) 。它通过 nsswitch.conf(5) 中指定的查找顺序从管理数据库(例如 hosts)中检索并显示信息。
工具 id(1) 现在支持 -A
参数,用于打印进程的审计属性,包括审计用户 ID。
工具 iostat(8) 现在支持 -x
参数(受到 Solaris 启发),用于打印扩展的磁盘统计信息。如果同时指定了新的 -z
参数,则没有活动的磁盘将不输出任何信息。
程序 jail(8) 现在支持 -s
选项,用于指定 Jail 的 securelevel。
工具 jexec(8) 现在支持 -u
和 -U
参数,用于指定在其下执行命令的用户名凭证。
工具 logger(1) 现在支持 -P
,指定 syslog 消息应发送到的端口。
工具 ls(1) 现在支持 -U
参数,用于使用文件的创建时间进行排序。
工具 mount(8) 现在支持在 fstab(5) 中使用 late 关键字,并且有个相应的命令行选项 -l
,用于指定这些“延迟”文件系统应进行挂载。
命令 ping(8) 现在支持 -W
选项,用于指定等待回显回复的最大时间。
工具 pkill(1)(也称为 pgrep(1))已从 /usr/bin
移动到 /bin
,以便启动脚本可以使用。已为向后兼容创建了从原位置的符号链接。
已将兼容 GLIBC 的 printf(3) 的可扩展实现新增到 libc。只有在定义了环境变量 USE_XPRINTF
、调用了其中扩展函数,或者全局变量 __use_xprintf
的值大于 0
时才会使用它。目前支持五个扩展:%H
(十六进制转储)、%T
(time_t
和与时间相关的结构)、%M
(错误号消息)、%Q
(双引号包围的转义字符串)、%V
(strvis(3) 格式字符串)。
FreeBSD libc 中的 DNS 解析库已更新为 BIND 9.3.3 版本。
工具 tail(1) 现在支持 -q
参数,用于在指定多个文件时抑制头部行。
程序 traceroute(8) 现在支持 -D
参数,显示发送和接收数据包之间的差异。
工具 traceroute(8) 现在支持 -e
选项,用于为探测包设置固定的目标端口。这对于在包过滤防火墙后进行追踪很有用。
traceroute(8) 现在解码其输出中的所有 ICMP 不可达消息。
编译器工具链现在能够为使用 ARM 处理器的系统生成可执行文件。
/etc/rc.d
脚本已新增 OpenBSM auditd(8) 的 auditd 脚本。
修复了 rc.d/jail 启动脚本中的一个错误,该错误导致用户在 FreeBSD 6.1-RELEASE 上使用 jail 时遇到一些问题。
BIND 已从 9.3.1 更新到 9.3.3。
GCC 已从 3.4.4 更新到 3.4.6。
IPFilter 已从 4.1.8 更新到 4.1.13。
less 已从 v381 更新到 v394。
libpcap 已从 0.9.1 更新到 0.9.4。
lukemftpd 已从 2004 年 8 月 9 日的 NetBSD 快照更新到 2006 年 8 月 31 日的 NetBSD 快照。
netcat 已从 2005 年 2 月 4 日的 OpenBSD 快照更新到 OpenBSD 3.9 中的版本。
OpenSSH 已从 4.2p1 更新到 4.5p1。
sendmail 已从 8.13.6 更新到 8.13.8。
tcpdump 已从 3.9.1 更新到 3.9.4。
时区数据库已从 tzdata2005r 版本更新到 tzdata2006g 版本。
TrustedBSD OpenBSM,版本 1.0 alpha 12,已新增。它是已记录的 Sun Basic Security Module (BSM) 审计 API 和文件格式的实现,以及支持 Mac OS X 和 FreeBSD 操作系统的本地扩展。此版本还包括用于审计轨迹缩减和转换为文本的命令行工具,以及命令、文件格式和 API 的文档。为了实现这些功能,已新增内核选项 AUDIT
、/var/audit
目录和审计组。
zlib 已从版本 1.2.2 更新到 1.2.3。
pkg_add(1) 现在支持 -F
参数,用于禁用检查是否已经安装相同软件包。
sysinstall(8) 工具现在在菜单标题中显示正在运行的 FreeBSD 版本。
sysinstall(8) 程序存在一个错误,可能会在安装时没有明确选择发行版的情况下阻止其安装内核。该错误已被修复。
sysinstall(8) 中的一个错误,曾经阻止从多个 CD-ROM 卷安装软件包,已被修复。
新增目录 /media
,用于包含可移动媒体的挂载点,如 CD-ROM、软盘、USB 驱动器等。
GNOME 桌面环境的支持版本(x11/gnome2)已从 2.12.3 更新为 2.16.1。作为更新的一部分,GNOME(以及一些相关程序)的默认前缀已从 /usr/X11R6
移动到 /usr/local
。该版本的 GNOME 还增加了对硬件抽象层(HAL)的支持,提供了自动挂载可移动媒体、自动播放 CD 和更集成的电源控制等功能。
KDE 桌面环境的支持版本(x11/kde3)已从 3.5.1 更新为 3.5.4。
支持的 Linux 仿真现在使用 emulators/linux_base-fc4 包中的库。
NTP 的手册页已更新为 4.2.0,以匹配 FreeBSD 中实际包含的代码版本。
通过新增以下手册页,改进了现有功能的文档:nanobsd(8),sysctl(9)。
从 FreeBSD 5.3-RELEASE 或更高版本升级到 FreeBSD 6.2-RELEASE 的源代码升级是支持的。希望升级到 6.2-RELEASE 的旧系统用户,需要首先升级到 FreeBSD 5.3 及更高版本,然后再升级到 FreeBSD 6.2-RELEASE。
重要:
升级 FreeBSD 之前,必须先备份 所有 数据和配置文件。
此文件和其他与发布相关的文档可以从 http://www.FreeBSD.org/snapshots/ 下载。
有关 FreeBSD 的问题,请在联系 questions@FreeBSD.org 之前阅读 文档。
所有 FreeBSD 6.2-STABLE 的用户应订阅 stable@FreeBSD.org 邮件列表。
有关此文档的问题,请通过电子邮件联系 doc@FreeBSD.org。