FreeBSD 4.10 RELEASE i386 发行公告(2004 年 5 月 27 日)
FreeBSD 项目
版权所有 © 2000, 2001, 2002, 2003, 2004 FreeBSD 文档项目
FreeBSD 4.10-RELEASE 的发布说明包含自 4.9-RELEASE 以来对 FreeBSD 基本系统所做的变更的摘要。列出了内核和用户空间的所有变更,以及自上次发布以来发布的与基本系统相关的安全公告。同时也提供了关于升级的一些简要说明。
1 引言
本文档包含了 FreeBSD 4.10-RELEASE 在 i386 硬件平台上的发布说明。它介绍了自 4.9-RELEASE 以来新增(或变更)的 FreeBSD 新特性。它还提供了一些关于从先前版本的 FreeBSD 升级的注意事项。
此发行版的 FreeBSD 4.10-RELEASE 是一个发布版。它可以在 ftp://ftp.FreeBSD.org/ 或其镜像站点找到。有关获取此(或其他)FreeBSD 发行版的更多信息,请参见 FreeBSD 手册 中的 获取 FreeBSD
附录。
有关在发布后发现的重要信息或发布周期中的最后一刻变更,请参阅 勘误 文档。
2 新特性
本节介绍了自 4.9-RELEASE 以来 FreeBSD 中最显著的用户可见新特性或变更。典型的发布说明项目记录了新驱动程序或硬件支持、新命令或选项、主要的 bug 修复,或第三方软件更新。还列出了自 4.9-RELEASE 之后发布的与基本系统相关的安全公告。
2.1 安全公告
已修复 BIND 中的潜在拒绝服务漏洞。有关更多信息,请参见安全公告 FreeBSD-SA-03:19。
已修复系统 V 共享内存接口中的一个 bug(特别是 shmat(2) 系统调用)。该 bug 可能导致共享内存段引用未分配的内核内存,从而允许本地攻击者未经授权访问内核内存的某些部分,可能导致敏感信息泄露、绕过访问控制机制或特权升级。更多细节请参见安全公告 FreeBSD-SA-04:02。
通过限制一次可以持有的乱序 TCP 段数量,防止了针对 FreeBSD TCP 堆栈的潜在低带宽拒绝服务攻击。更多细节请参见安全公告 FreeBSD-SA-04:04。
已修复 OpenSSL 在 SSL/TLS ChangeCipherSpec 消息处理中的一个 bug,可能导致空指针解引用,进而导致远程攻击者使 OpenSSL 使用的应用崩溃,并造成系统拒绝服务。更多细节请参见安全公告 FreeBSD-SA-04:05。
已修复 CVS 中的两个编程错误,允许服务器覆盖客户端的任意文件,客户端在访问远程 CVS 仓库时读取服务器上的任意文件。更多细节请参见安全公告 FreeBSD-SA-04:07。
Heimdal 的一个 bug 修复了它在跨自治领域进行身份验证时未进行充分检查的问题。有关更多信息,请参见安全公告 FreeBSD-SA-04:08。
kadmind(8) 中的一个修复解决了潜在的缓冲区溢出问题。详细信息请参见安全公告 FreeBSD-SA-04:09。
2.2 内核变更
驱动程序 cx(4) 已更新到版本 4.4.0,用于 Cronyx Sigma 同步/异步串行适配器。
已新增驱动程序 ctau(4),用于 Cronyx-Tau 同步串行适配器。一直以来,这个驱动程序在 FreeBSD 源代码树之外被称为 “ct”。
注意:
驱动程序的名称已变更,但网络接口仍使用
ct
这个名称。
已新增驱动程序 dcons(4) “dumb console”,用于提供本地和远程控制台。可以通过 FireWire 使用驱动程序 dcons_crom(4) 进行访问。dconschat(8) 工具提供用户访问 dcons(4) 设备。
已修复 mmap(2) 中的一个 bug,导致某些情况下标记为 PROT_NONE 的页面可能变得可读。
驱动程序 stl(4) 已更新至版本 5.6.0b1。
已新增驱动程序 umct(4),提供对基于 Magic Control Technology USB-232 的 USB 到 RS-232 转换器的支持。
usb(4) 支持已改进,包含了大量的 bug 修复,并且对某些 USB2 设备提供了早期支持。
注意:
umodem(4) 现在使用 /dev/ucom* 而不是 /dev/umodem* 设备节点。
2.2.1 平台特定硬件支持
2.2.2 启动加载器变更
2.2.3 网络接口支持
已修复 em(4) 在参数重新配置过程中出现的短暂卡顿问题。
已修复一个 bug,导致驱动程序 nge(4) 无法启用 VLAN 支持。
已修复与 polling(4) 支持相关的多个 bug,涉及 rl(4) 驱动程序。
驱动程序 ste(4) 现在支持 polling(4)。
已禁用驱动程序 xl(4) 的硬件 TX 校验和支持,因为它无法正常工作且会减慢传输速度。
2.2.4 网络协议
已移除内核选项 DA_OLD_QUIRKS
(用于 CAM SCSI 磁盘驱动程序 cam(4))。
TCP 实现现在包括对 RFC 2385(TCP-MD5)摘要支持的部分(仅输出)支持。此功能通过内核选项 TCP_SIGNATURE
和 FAST_IPSEC
启用,是一种用于认证 TCP 会话的 TCP 选项。setkey(8) 现在支持 TCP-MD5 类型的安全关联。
实现了来自 OpenBSD 的随机临时端口分配。默认启用,你可以使用 sysctl net.inet.ip.portrange.randomized
禁用此功能。
已新增 NetGraph 节点类型 ng_vlan(4) ,支持 IEEE 802.1Q VLAN 标记。
2.2.5 磁盘和存储
驱动程序 amr(4) 现在支持系统崩溃转储。
已新增驱动程序 twa(4) ,支持 3ware 的 9000 系列 PATA/SATA RAID 控制器。
驱动程序 umass(4) 现在支持缺失的 ATAPI MMC 命令,并能正确处理超时。
2.2.6 文件系统
2.2.7 PCCARD 支持
2.2.8 多媒体支持
2.3 用户空间变更
disklabel(8) 现在支持 -f
选项,用于操作包含磁盘映像的常规文件。
ifconfig(8) 现在支持接口的 staticarp
选项,用于禁用该接口发送 ARP 请求。
ifconfig(8) 现在会打印接口上的 polling(4) 状态。
killall(1) 现在支持 -e
参数,使得 -u
可以操作有效的用户 ID,而不是实际的用户 ID。
fsck(8) 的 lost+found
目录的默认模式现在是 0700
,而不是 01777
。
libalias 库、natd(8) 和 ppp(8) 现在支持 Cisco Skinny Station 协议,这是 Cisco IP 电话与 Cisco Call Managers 通信时使用的协议。请注意,目前不支持将 Call Manager 放在 NAT 网关后面。
libdisk 现在使用正确的 PC98 磁盘分区值,这使得 sysinstall(8) 磁盘分区编辑器可以正确创建覆盖整个磁盘的单一 FreeBSD 分区。
makewhatis(1),原本是个 Perl 脚本,已用 C 重新实现。
ps(1) 的 POSIX/SUSv3 兼容性得到了增强。变更包括 -p
用于列出进程 ID,-t
用于列出终端名称,-A
等效于 -ax
,-G
用于列出组 ID,-X
是 -x
的反义操作,以及一些小改进。更多信息请参见 ps(1)。
pw(8) 现在支持 -H
选项,可以接受文件描述符中的加密密码。
rtld(1) 现在支持共享对象依赖项的动态映射。有关如何使用此功能的更多信息,请参见 libmap.conf(5)。
sconfig(8) 工具作为 cx(4) 驱动程序更新的一部分添加。它替代了工具 cxconfig
,用于管理 cx(4) 设备。
stat(1) 从 NetBSD 导入,自 2002 年 6 月 5 日起生效。
which(1),原本是个 Perl 脚本,已用 C 重新实现。
2.4 第三方软件
BIND 已从版本 8.3.4 更新到版本 8.3.7。
OpenSSL 已从版本 0.9.7c 更新到版本 0.9.7d。
sendmail 已从版本 8.12.9 更新到版本 8.12.11。
2.5 Ports/软件包
已新增并默认启用 distfiles 的 SIZE
属性,可以在获取文件之前检查文件大小。DISABLE_SIZE
是一个用户控制选项,用于禁用 distfile 大小检查。这对于一些旧版本的 FreeBSD,尤其是那些没有 fetch(1) 支持的版本,以及某些总是报告错误或虚假大小的 FTP 代理非常有用。
在 ports 树中新增了两个文件以追踪值得注意的变化:ports/CHANGES
列出了 Ports 及其基础设施的重大变化,ports/UPDATING
介绍了更新某些 Port 时可能遇到的潜在问题,类似于基本系统中的 src/UPDATING
。
2.6 发布工程和集成
支持的 GNOME 版本已从 2.4 更新到 2.6。
注意: 如果你使用的是较旧的 GNOME 桌面(x11/gnome2),仅通过 FreeBSD Ports 使用 portupgrade(1)(sysutils/portupgrade)进行升级会导致严重问题。如果你是 GNOME 桌面用户,请仔细阅读 http://www.FreeBSD.org/gnome/docs/faq26.html 中的说明,并使用脚本
gnome_upgrade.sh
正确升级到 GNOME 2.6。请注意,如果你只是偶尔使用某些 GNOME 库,portupgrade(1) 应该足以更新你的 Port。
支持的 KDE 版本已从 3.1.4 更新到 3.2.2。
3 从之前的 FreeBSD 版本升级
如果你从之前的 FreeBSD 版本进行升级,通常有三种选择:
使用 sysinstall(8) 的二进制升级方案。这可能是最快的方式,尽管它假设你的 FreeBSD 安装没有特殊的编译选项。
完全重新安装 FreeBSD。从技术上讲,这不是一种升级方法,而且通常比二进制升级不那么方便,因为它需要你手动备份和恢复
/etc
的内容。不过,在需要变更磁盘分区的情况下,这可能是有用的。从
/usr/src
的源代码升级。这条路径更灵活,但需要更多的磁盘空间、时间和技术专长。更多信息可以参考 “使用 make world” 部分,见 FreeBSD Handbook。从非常旧版本的 FreeBSD 升级可能会遇到问题;在这种情况下,通常执行二进制升级或完全重新安装会更有效。
请在开始升级之前阅读 INSTALL.TXT
文件,获得更多信息。如果你从源代码进行升级,请确保阅读 /usr/src/UPDATING
文件。
最后,如果你想使用各种方式跟踪 FreeBSD 的 -STABLE 或 -CURRENT 分支,请确保查阅 “-CURRENT 与 -STABLE” 部分,见 FreeBSD Handbook。
重要:
当然,在升级 FreeBSD 之前,应该先备份 所有 数据和配置文件。
此文件和其他与发布相关的文档可以从 ftp://ftp.FreeBSD.org/ 下载。
如有关于 FreeBSD 的问题,请在联系 questions@FreeBSD.org 之前先阅读 文档。
如有关于此文档的疑问,请发送电子邮件至 doc@FreeBSD.org。
最后更新于