FreeBSD 项目
版权所有 © 2000, 2001, 2002, 2003, 2004 FreeBSD 文档项目
FreeBSD 4.10-RELEASE 的发布说明包含自 4.9-RELEASE 以来对 FreeBSD 基本系统所做的变更的摘要。列出了内核和用户空间的所有变更,以及自上次发布以来发布的与基本系统相关的安全公告。同时也提供了关于升级的一些简要说明。
本文档包含了 FreeBSD 4.10-RELEASE 在 i386 硬件平台上的发布说明。它介绍了自 4.9-RELEASE 以来新增(或变更)的 FreeBSD 新特性。它还提供了一些关于从先前版本的 FreeBSD 升级的注意事项。
此发行版的 FreeBSD 4.10-RELEASE 是一个发布版。它可以在 ftp://ftp.FreeBSD.org/ 或其镜像站点找到。有关获取此(或其他)FreeBSD 发行版的更多信息,请参见 FreeBSD 手册 中的 获取 FreeBSD
附录。
有关在发布后发现的重要信息或发布周期中的最后一刻变更,请参阅 勘误 文档。
本节介绍了自 4.9-RELEASE 以来 FreeBSD 中最显著的用户可见新特性或变更。典型的发布说明项目记录了新驱动程序或硬件支持、新命令或选项、主要的 bug 修复,或第三方软件更新。还列出了自 4.9-RELEASE 之后发布的与基本系统相关的安全公告。
已修复 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。
驱动程序 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* 设备节点。
已修复 em(4) 在参数重新配置过程中出现的短暂卡顿问题。
已修复一个 bug,导致驱动程序 nge(4) 无法启用 VLAN 支持。
已修复与 polling(4) 支持相关的多个 bug,涉及 rl(4) 驱动程序。
驱动程序 ste(4) 现在支持 polling(4)。
已禁用驱动程序 xl(4) 的硬件 TX 校验和支持,因为它无法正常工作且会减慢传输速度。
已移除内核选项 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 标记。
驱动程序 amr(4) 现在支持系统崩溃转储。
已新增驱动程序 twa(4) ,支持 3ware 的 9000 系列 PATA/SATA RAID 控制器。
驱动程序 umass(4) 现在支持缺失的 ATAPI MMC 命令,并能正确处理超时。
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 重新实现。
BIND 已从版本 8.3.4 更新到版本 8.3.7。
OpenSSL 已从版本 0.9.7c 更新到版本 0.9.7d。
sendmail 已从版本 8.12.9 更新到版本 8.12.11。
已新增并默认启用 distfiles 的 SIZE
属性,可以在获取文件之前检查文件大小。DISABLE_SIZE
是一个用户控制选项,用于禁用 distfile 大小检查。这对于一些旧版本的 FreeBSD,尤其是那些没有 fetch(1) 支持的版本,以及某些总是报告错误或虚假大小的 FTP 代理非常有用。
在 ports 树中新增了两个文件以追踪值得注意的变化:ports/CHANGES
列出了 Ports 及其基础设施的重大变化,ports/UPDATING
介绍了更新某些 Port 时可能遇到的潜在问题,类似于基本系统中的 src/UPDATING
。
支持的 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。
如果你从之前的 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。