FreeBSD 5.2.1 RELEASE amd64 发行公告(2004 年 2 月 25 日)
FreeBSD 项目
版权 © 2000, 2001, 2002, 2003, 2004 FreeBSD 文档项目
FreeBSD 5.2.1-RELEASE 的发布说明包含了对 FreeBSD 基本系统在 5-CURRENT 开发分支上进行的最近变更的总结。本文件列出了自上一个发布版本以来发布的适用安全公告,以及 FreeBSD 内核和用户空间的重要变更。同时,也提供了一些关于升级的简要说明。
1 介绍
本文件包含了 FreeBSD 5.2.1-RELEASE 在 AMD64 硬件平台上的发布说明。它介绍了 FreeBSD 中最近新增、改变或删除的功能,并提供了有关从先前版本升级的说明。
此版本的 FreeBSD 5.2.1-RELEASE 是一个“点版本”,旨在解决在 FreeBSD 5.2-RELEASE 中发现的一些问题(主要是 bug 修复)。
对于新接触 FreeBSD 5-CURRENT 系列的用户,建议阅读《FreeBSD 5.2.1-RELEASE 早期用户指南》。此文档通常可以在发布说明的相同位置找到(无论是作为 FreeBSD 分发版的一部分,还是在 FreeBSD 网站上)。该文档包含了关于使用 FreeBSD 5.2.1-RELEASE 相比于基于 FreeBSD 4-STABLE 开发分支的发布版的优缺点的重要信息。
所有用户在安装 FreeBSD 之前,强烈建议查阅发布的错误修复文档。错误修复文档会更新“临时的”信息,通常是在发布周期后期或发布之后发现的。它通常包含已知的 bug、安全公告和文档的修正。FreeBSD 5.2.1-RELEASE 的最新错误修复文档可以在 FreeBSD 网站上找到。
2 新特性
本节介绍了自 5.1-RELEASE 以来 FreeBSD 中许多用户可见的新功能或变更。它包括专属于 5-CURRENT 分支的条目,以及一些可能已经合并到其他分支的功能(在 FreeBSD 5.1-RELEASE 之后)。后者的条目标注为 [已合并]。
典型的发布说明条目会记录自 5.1-RELEASE 之后发布的安全公告、新驱动程序或硬件支持、新命令或选项、重要的 bug 修复或第三方软件升级。它们还可能列出主要 Port/包或发布工程实践的变更。显然,发布说明无法列出每个版本之间对 FreeBSD 所做的所有变更;本文件主要关注安全公告、用户可见的变更和主要架构改进。
描述此点版本特定变更的发布说明条目将标注为 [5.2.1]。
2.1 安全公告
2.2 内核变化
现在,内核选项 LIBICONV 支持多字节字符集转换方法。
交换分区管理程序进行了重构。用户可见的变化包括布局策略的变更(从固定宽度条带到设备之间的轮询),以提高 I/O 吞吐量,消除了编译时对交换设备数量的限制,并减少了内存开销。
2.2.1 特定平台硬件支持
2.2.2 启动加载程序变化
2.2.3 网络接口支持
802.11 支持层已重写,以便为未来的扩展和新功能提供支持。
2.2.4 网络协议
IPv4 协议实现中的 ip_flow
特性已被 ip_fastforward
特性替代。ip_fastforward
尝试加速简单的包转发案例,将转发的包直接处理到输出接口,而不使用队列或 netisrs。如果它无法处理某个包,则将该包传递给正常的 ip_input
例程进行处理。可以通过将 net.inet.ip.fastforwarding sysctl 变量设置为 1 来启用此特性。
启用 IPFILTER 特性时,还需要启用选项 PFIL_HOOKS
。
FreeBSD 蓝牙协议栈已更新:
libsdp 已使用 BSD 风格许可证重新实现。这是因为 Linux BlueZ 代码是以 GPL 许可证发布的。
从 KAME 项目导入了一些 IPv6 和 IPSec 代码的修复和更新。
[5.2.1] 修复了 KAME 项目中的 IPsec 实现中的一些错误。这些错误与在移除所有引用之前释放内存对象有关,可能会导致在刷新安全策略数据库(SPD)后出现异常行为或内核 panic。
IPv6 高级套接字 API 的支持现在符合 RFC 3542(也称为 RFC 2292bis),而不是 RFC 2292。使用此 API 的应用程序已相应更新。
[5.2.1] 现在在 GENERIC 内核中默认启用选项 PFIL_HOOKS
。此变更的最显著影响是使 IPFilter 在作为内核模块加载时能够正确工作。
已向 TCP 实现中新增 tcp_hostcache
特性。它缓存了过去 TCP 会话的测量参数,为来自或到相同源或目标的后续连接提供更好的初始起始值。曾经存储在路由表中的类似信息已被移除。
FreeBSD 中的 TCP 实现现在包括对某类 TCP MSS 资源耗尽攻击的保护,形式为对 TCP 段的大小和速率进行限制。第一个限制设置了允许的最小最大 TCP 段大小,由 sysctl 变量 net.inet.tcp.minmss
控制(默认值为 216 字节)。第二个限制由变量 net.inet.tcp.minmssoverload
设置,控制连接的最大速率,其平均段大小小于 net.inet.tcp.minmss
。超过此数据包速率的连接会被重置并丢弃。由于此特性是在 5.2-RELEASE 发布周期的后期新增的,连接速率限制默认是禁用的,但可以通过将非零值分配给 net.inet.tcp.minmssoverload
来手动启用。
2.2.5 磁盘与存储
新增了 GEOM_FOX
模块,用于检测并选择多个冗余路径以访问同一设备。
2.2.6 文件系统
现在,通过分别包含内核选项 CD9660_ICONV
、MSDOSFS_ICONV
、NTFS_ICONV
和 UDF_ICONV
,支持 cd9660、msdosfs、ntfs 和 udf 文件系统的多字节字符转换。
[5.2.1] 修复了 GEOM 中的一个错误,该错误可能在某些罕见情况下导致 I/O 停滞。
修复了 smbfs 中的几个越界错误,之前这些错误使其无法正确处理 15 字符的 NetBIOS 名称。
为了更好地支持多达 TB 级别的文件系统,statfs
结构中的某些成员的大小已从 32 位变更为 64 位。
执行跨此变更的源代码升级的用户,必须确保他们的内核和用户空间的代码版本一致,方法是遵循文档中的源代码升级程序。
[5.2.1] 修复了 NFSv4 客户端中的一个崩溃问题;此问题发生在尝试对 NFSv3/NFSv2-only 服务器执行操作时。
2.2.7 多媒体支持
2.3 用户空间变更
compat4x.i386
库已更新,以对应 FreeBSD 4.9-RELEASE 中提供的版本。
由于 devfs 的强制存在,工具 dev_mkdb
不再需要,已被移除。
已移除 libcipher DES 加密库。其所有功能已由 libcrypto 库提供,并且所有使用 libcipher 的基本系统程序已转换为改用 libcrypto。
已新增 libkiconv 库,以支持在内核中处理可加载字符集转换表。
已移除工具 symorder。由于所有内核现在都使用 ELF 格式,因此不再需要 a.out
格式工具链。
许多 /bin
和 /sbin
中的可执行文件现在采用动态链接,而非静态链接。此功能为基本系统工具提供了对可加载的 PAM 和 NSS 模块的支持,也减少了由于使用共享库而导致的根文件系统存储需求。可以通过在 buildworld
中定义 Makefile 变量 NO_DYNAMICROOT
来禁用此功能。请注意,在 /rescue
目录中提供了静态链接的、压缩过的可执行文件,以便在系统修复和恢复操作中使用。
2.4 第三方软件
ACPI-CA 代码已从 20030228 快照更新到 20030619 快照。
amd 已从 6.0.7 更新至 6.0.9。
awk(来自贝尔实验室)已从 2003 年 3 月 14 日的快照更新至 2003 年 7 月 29 日的快照。
BIND 已从 8.3.4 更新至 8.3.7。[已合并]
GCC 已从 3.2.2 更新至 2003 年 11 月 6 日的 3.3.3 预发布快照。
注:
之前的 GCC 版本在启用
-march=pentium4
优化时会生成不正确的代码。此问题已通过此次升级修复,且之前针对CPUTYPE=p4
的解决方法已被移除。
GNU Readline 已从 4.2 更新至 4.3。
GNU Sort 已从 textutils 2.0.21 版本更新至 textutils 2.1 版本。
Heimdal Kerberos 已从 0.5.1 更新至 0.6。
ISC DHCP 客户端已从 3.0.1rc11 更新至 3.0.1rc12。
lukemftp 已从 1.6beta2 更新至 2003 年 11 月 11 日的 NetBSD 快照。
OpenPAM 已从“Dianthus”版本更新至“Dogwood”版本。
OpenSSL 已从 0.9.7a 更新至 0.9.7c。[已合并]
sendmail 已从 8.12.9 更新至 8.12.10。[已合并]
texinfo 已从 4.5 更新至 4.6。[已合并]
时区数据库已从 tzdata2003a 版本更新至 tzdata2003d 版本。[已合并]
2.5 Ports/软件包
如果定义了 GNU_CONFIGURE
,则在 WRKDIR 下找到的所有 config.guess
和 config.sub
实例将被 PORTSDIR/Template
中的主版本所替代。这允许旧的 Port(其中包含这些脚本的旧版本)在较新的架构(如 ia64 和 amd64)上进行构建。
2.6 发布工程与集成
不再为 alpha、amd64 和 ia64 架构构建软盘安装镜像。
GNOME 的支持版本已从 2.2.1 更新至 2.4。[已合并]
KDE 的支持版本已从 3.1.2 更新至 3.1.4。[已合并]
2.7 文档
为了减少信息重复(以及随后维护一致性的难度),硬件说明中的许多具体设备实例已被移至系统手册页。该项目在本次发布中仍在进行中。
已启动土耳其语(tr_TR.ISO8859-9)翻译项目。
从旧版 FreeBSD 升级
强烈 现有 FreeBSD 系统的用户建议阅读《FreeBSD 5.2.1-RELEASE 早期采用者指南》。此文档通常以 EARLY.TXT
为文件名,位于发布媒体或其他可以找到发布说明的地方。它提供了有关升级的一些说明,更重要的是,还讨论了升级到 FreeBSD 5.X 与继续使用 FreeBSD 4.X 的相对优点。
重要:
升级 FreeBSD 时,当然只能在备份 所有 数据和配置文件之后进行。
最后更新于