原文链接:FreeBSD/amd64 5.5-RELEASE Release Notes
FreeBSD 项目
版权所有 © 2000, 2001, 2002, 2003, 2004, 2005, 2006 FreeBSD 文档项目
FreeBSD 是 FreeBSD 基金会的注册商标。
IBM、AIX、EtherJet、Netfinity、OS/2、PowerPC、PS/2、S/390 和 ThinkPad 是国际商业机器公司(International Business Machines Corporation)在美国及其他国家或地区的商标。
IEEE、POSIX 和 802 是电气与电子工程师协会(Institute of Electrical and Electronics Engineers, Inc.)在美国的注册商标。
Intel、Celeron、EtherExpress、i386、i486、Itanium、Pentium 和 Xeon 是英特尔公司或其子公司在美国及其他国家或地区的商标或注册商标。
Sparc、Sparc64、SPARCEngine 和 UltraSPARC 是 SPARC 国际公司在美国及其他国家或地区的商标。带有 SPARC 商标的产品基于 Sun Microsystems, Inc. 开发的架构。
许多制造商和销售商用于区分其产品的名称被主张为商标。在本文件中出现这些名称时,若 FreeBSD 项目知晓其为商标,则在名称后附有“™”或“®”符号。
FreeBSD 5.5-RELEASE 的发行说明包含自 5.4-RELEASE 以来对 FreeBSD 基本系统所作变更的摘要。此文档列出了自上次发布以来发布的适用安全通告,以及对 FreeBSD 内核和用户空间的重大变更。文档中还简要介绍了升级的相关说明。
本文档包含适用于 AMD64 硬件平台的 FreeBSD 5.5-RELEASE 的发行说明。它介绍了 FreeBSD 最近新增、修改或移除的功能,并提供了一些关于从旧版本 FreeBSD 升级的说明。
FreeBSD 5.5-RELEASE 的发布版可以通过 ftp://ftp.FreeBSD.org/ 或其任意镜像站点获取。关于获取本版(或其他版本)FreeBSD 的更多信息,请参阅 《获取 FreeBSD》附录 和 《FreeBSD 手册》。
所有用户在安装 FreeBSD 之前,建议先查阅发行勘误表。该勘误文档会随着发行周期后期或发行后的最新发现进行更新,通常包含已知的错误、安全公告以及文档修订。可以在 FreeBSD 官网找到 FreeBSD 5.5-RELEASE 的最新勘误文档。
FreeBSD 5.5-RELEASE 是计划中 5.5-STABLE 分支的最后一个发行版本。当前,FreeBSD 开发社区将其工作重点放在 6-STABLE 和 CURRENT 代码分支上。虽然 5.5-STABLE 分支没有计划新增重大功能,但根据个别开发者的决定,可能会合并一些小的更新和错误修复。FreeBSD 安全团队将为基于 5.5-RELEASE 的安全分支提供安全公告和补丁支持,直至其生命周期结束日期(截至本文撰写时,为 2008 年 5 月 31 日),具体信息见 http://security.freebsd.org/。
本节介绍了自 5.4-RELEASE 以来 FreeBSD 中最显而易见的新功能或已变更的功能。
通常,发行说明条目包括以下内容:5.4-RELEASE 后发布的最新安全公告、新的驱动程序或硬件支持、新命令或选项、重大错误修复,或第三方软件的升级。此外,还可能列出主要 Port/软件包或发行工程实践的变更。显然,发行说明无法列出 FreeBSD 在两次发布之间所做的每一个变更;本文档主要关注安全公告、用户可见的变更以及重要的架构改进。
由于使用超线程技术 (HTT) 的处理器存在信息泄露漏洞,新增了 sysctl 变量 machdep.hyperthreading_allowed
。在 FreeBSD CURRENT 分支中默认值为 1
(启用 HTT),而在 4-STABLE 和 5-STABLE 开发分支及其支持的安全修复分支中默认为 0
(禁用 HTT)。更多信息请参阅安全公告 FreeBSD-SA-05:09.htt。
tcpdump(1) 工具中存在的一个漏洞已被修复。该漏洞允许恶意远程用户通过特制的数据包导致拒绝服务攻击。更多信息请参阅安全公告 FreeBSD-SA-05:10.tcpdump。
gzip(1) 工具中存在的两个问题已被修复。这些问题可能允许本地用户修改任意文件的权限,并在解压缩文件时覆盖任意本地文件。更多信息请参阅安全公告 FreeBSD-SA-05:11.gzip。
ipfw(4) 中已修复一个问题,该问题可能导致数据包在查找表中被错误匹配。此漏洞仅影响启用了 SMP 的机器或启用了内核选项 PREEMPTION
的单处理器 (UP) 机器。更多信息请参阅安全公告 FreeBSD-SA-05:13.ipfw。
bzip2(1) 工具中的两个安全问题已被修复,包括潜在的拒绝服务漏洞以及文件权限未经授权的变更问题。更多信息请参阅安全公告 FreeBSD-SA-05:14.bzip2。
FreeBSD TCP 栈中的两个问题已被修复,这些问题可能允许攻击者阻塞现有的 TCP 连接,导致拒绝服务的情况。更多信息请参阅安全公告 FreeBSD-SA-05:15.tcp。
zlib 库中的两个缓冲区溢出问题已被修复。更多信息请参阅安全公告 FreeBSD-SA-05:16.zlib 和 FreeBSD-SA-05:18.zlib。
一个安全漏洞已被修复,该漏洞可能允许运行在 jail(2) 内的进程访问隐藏的 devfs(5) 文件节点。详情请参阅安全公告 FreeBSD-SA-05:17.devfs。
ipsec(4) 实现中由于编程错误导致的 AES-XCBC-MAC 认证使用固定密钥的问题已被修复。更多信息请参阅安全公告 FreeBSD-SA-05:19.ipsec。
cvsbug(8) 工具中的一个临时文件漏洞已被修复,该漏洞可能允许攻击者以运行该工具的用户权限修改或覆盖文件。更多信息请参阅安全公告 FreeBSD-SA-05:20.cvsbug。
OpenSSL 中的一个漏洞已被修复,该漏洞可能允许攻击者强制使用已知存在弱点的旧版本 SSL 协议。详情请参阅安全公告 FreeBSD-SA-05:21.openssl。
工具 texindex(1) 中的一个临时文件漏洞已被修复。该漏洞可能允许本地攻击者在运行 texindex(1) 工具的用户上下文中覆盖文件。详情请参阅安全公告 FreeBSD-SA-06:01.texindex。
文本编辑器 ee(1) 中的一个临时文件漏洞已被修复。该漏洞可能允许本地攻击者在运行 ee(1) 的用户上下文中覆盖文件。详情请参阅安全公告 FreeBSD-SA-06:02.ee。
工具 cpio(1) 中已修复若干漏洞。详情请参阅安全公告 FreeBSD-SA-06:03.cpio。
已修复两个可能导致内核内存部分内容泄露给用户的问题。详情请参阅安全公告 FreeBSD-SA-06:06.kmem。
pf(4) 中的 IP 分片处理逻辑漏洞已被修复,该漏洞可能在某些情况下导致系统崩溃。详情请参阅安全公告 FreeBSD-SA-06:07.pf。
TCP/IP 协议栈中与选择性确认 (SACK) 支持相关的错误已被修复。该错误可能导致接收特定系列的数据包时进入死循环。详情请参阅安全公告 FreeBSD-SA-06:08.sack。
OpenSSH 的内部逻辑错误已被修复。该错误可能导致主进程错误地认为超载而停止接受客户端连接。详情请参阅安全公告 FreeBSD-SA-06:09.openssh。
NFS 服务器代码中的一个逻辑错误已被修复。该错误可能导致服务器接收到负载为零长度的消息时崩溃。详情请参阅安全公告 FreeBSD-SA-06:10.nfs。
fast_ipsec(4) 实现中的一个编程错误已被修复。该错误导致与安全关联 (Security Association) 相关的序列号未被更新,从而允许数据包无条件通过序列号验证检查。详情请参阅安全公告 FreeBSD-SA-06:11.ipsec。
opiepasswd(1) 中的一个逻辑错误已被修复。该错误可能允许非特权用户在某些情况下为 root 用户配置 OPIE 认证。详情请参阅安全公告 FreeBSD-SA-06:12.opie。
sendmail(8) 中的异步信号处理漏洞已被修复。该漏洞可能允许远程攻击者以运行 sendmail(通常是 root 用户)的权限执行任意代码。详情请参阅安全公告 FreeBSD-SA-06:13.sendmail。
在运行 7 代和 8 代 AMD 处理器的 FreeBSD 内核中发现的信息泄露问题已被修复。详情请参阅安全公告 FreeBSD-SA-06:14.fpu。
当 autoboot_delay
变量设置为 -1
时,autoboot
命令将完全禁止用户中断启动过程。
支持双核处理器(例如 Intel Core Duo),默认情况下在启用 SMP 的内核中可使用两个核心。
2.2.2.1 多媒体支持
驱动程序 uaudio(4) 增加了一些功能,包括更多输入的音量控制以及部分设备的录音功能。
2.2.2.2 网络接口支持
驱动 bge(4) 现在支持 BCM5714 和 5789 芯片。
驱动 ixgb(4) 现在支持 MPSAFE(多处理器安全)。
使用设备驱动程序 ndis(4) 包装机制的驱动程序现在以不同方式构建和加载。ndis(4) 驱动程序可以预先构建为模块或静态编译到内核中。使用 ndisgen(8) 工具可单独构建驱动程序;生成的内核模块可通过 kldload(8) 加载到运行中的内核。
许多(但不是全部)ndis(4) 系统的变更从 HEAD 分支中合并。
驱动 xl(4) 现在支持 polling(4)。
新增网络桥接实现 if_bridge(4) ,最初来源于 NetBSD。它支持 IEEE 802.1D 生成树协议 (Spanning Tree Protocol)、为每个桥接分配单独的接口设备、桥接数据包的过滤以及镜像端口(将桥接接收到的每帧数据复制一份并发送到指定端口)。ifconfig(8) 工具现在支持配置 if_bridge(4)。
驱动 twa(4) 已更新至 3ware 网站上的 9.3.0.1 版本。
已新增工具 bsdiff(1) 和 bspatch(1) 。这些工具用于构建和应用二进制补丁。
工具 cmp(1) 现在支持 -h
选项,用于比较符号链接本身而非其指向的文件。
函数 gethostbyname(3)、gethostbyname2(3) 和 gethostbyaddr(3) 现在是线程安全的。
函数 getnetent(3)、getnetbyname(3) 和 getnetbyaddr(3) 现在是线程安全的。
函数 getprotoent(3)、getprotobyname(3) 和 getprotobynumber(3) 现在是线程安全的。
函数 getservent(3)、getservbyname(3) 和 getservbyport(3) 现在是线程安全的。
程序 kdump(1) 现在支持 -s
选项,用于抑制 I/O 数据的显示。
工具 kldstat(8) 现在支持 -m
选项,用于返回特定内核模块的状态。
在 libpthread
、libthr
和 libc_r
中,默认的堆栈大小已增加。在 32 位平台上,主线程的默认堆栈大小为 2MB,其它线程为 1MB。在 64 位平台上,默认堆栈大小分别为 4MB 和 2MB。
工具 netstat(1) 现在支持接口统计模式下的 -h
选项,用于以人类可读的形式打印所有接口统计信息。
工具 ping(8) 现在支持“逐步增加的 ping”,即发送的数据包的 icmp(4) 有效负载大小按指定步长递增。这对于测试有问题的通道、MTU 问题或网络中的流量控制功能非常有用。
已新增程序用于管理功耗的 powerd(8) 。
程序 rfcomm_sppd(1) 现在支持除 -c
选项的频道号外的服务名称。支持的名称包括:DUN(拨号网络)、FAX(传真)、LAN(通过 PPP 的 LAN 访问)和 SP(串行端口)。
工具 rm(1) 现在支持 -I
选项,当递归删除目录或命令行中列出超过 3 个文件时,会询问一次确认。
sed(1) 现在支持 -l
选项,使其输出为行缓冲模式。
工具 sh(1) 现在支持内建命令 times
。
已新增工具显示 UFS 文件系统快照位置的 snapinfo(8) 。
新增了蓝牙脚本。该脚本将通过 devd(8) 在设备连接/断开事件时调用,以便在不手动拔掉设备的情况下停止/启动特定设备。配置参数位于 /etc/defaults/bluetooth.device.conf
,可以通过使用 /etc/bluetooth/$device.conf 文件覆盖(其中 $device
是 ubt0
、btcc0
等)。更多细节请参见 bluetooth.conf(5)。
rc.d/jail 启动脚本现在支持变量 jail_name_flags
,可以指定 jail(8) 参数。
BIND 已从 9.3.1 更新到 9.3.2。
sendmail 已从 8.13.3 更新到 8.13.6。
时区数据库已从 tzdata2005g 版本更新到 tzdata2006g 版本。
程序 pkg_add(1) 现在支持 -P
选项,该选项与 -p
选项相同,只是如果有依赖包时,也会递归地使用给定的前缀。
工具 pkg_add(1) 和 pkg_create(1) 现在支持 -K
选项,默认将包保存到当前目录(或如果定义了 PKGDIR
则保存到该目录)。
程序 pkg_create(1) 现在支持 -x
选项,支持基本的正则表达式用于包名,-E
选项用于扩展正则表达式,-G
选项用于精确匹配。
工具 pkg_version(1) 现在支持 -I
选项,该选项使工具仅使用 INDEX 文件来判断包是否过时。
工具 pkg_version(1) 现在支持 -o
选项,显示包生成时记录的来源,而不是包名,-O
选项则列出注册来源为 origin 的包。
工具 portsnap(8)(sysutils/portsnap
)已加入 FreeBSD 基本系统。它是一种安全、易用、快速、轻量且通常不错的方式,供用户保持其 POrts 的更新。
Ports 中的启动脚本后缀已被移除。这意味着 foo.sh 被重命名为 foo,现在名为 foo.ORG 的脚本也将被执行。建议重新安装安装此类脚本的包,并删除 local_startup
目录中的额外文件。
rc.conf
新增了变量 ldconfig_local_dirs
和 ldconfig_local32_dirs
。这些变量保存本地 ldconfig(8) 目录的列表。
pkg-plist
中的命令 @cwd
现在允许没有目录参数。如果没有给定目录参数,它将把当前工作目录设置为 @cwd
命令给定的第一个前缀。
GNOME 桌面环境的支持版本(x11/gnome2)已从 2.10.2 更新到 2.12.3。
KDE 桌面环境的支持版本(x11/kde3)已从 3.4.2 更新到 3.5.1。
Perl 解释器的支持版本(lang/perl5.8)已从 5.8.7 更新到 5.8.8。
Xorg 窗口系统的支持版本(x11/xorg)已从 6.8.2 更新到 6.9.0。
如果你正在从旧版本的 FreeBSD 升级,通常有三种选择:
使用 sysinstall(8) 的二进制升级方式。此方法可能是最快的,尽管它假设你的 FreeBSD 安装没有使用特殊的编译选项。
完全重新安装 FreeBSD。严格来说,这不是一种升级方法,并且通常不如二进制升级方便,因为它需要你手动备份并恢复 /etc 目录的内容。然而,在需要变更磁盘分区的情况下,这种方法可能很有用。
从 /usr/src
源代码升级。此方法更加灵活,但需要更多的磁盘空间、时间和技术专长。有关更多信息,请参阅 使用 make world 章节,位于 FreeBSD 手册 中。升级非常旧版本的 FreeBSD 可能会遇到问题;在这种情况下,通常执行二进制升级或完全重新安装会更有效。
在开始升级之前,请务必阅读 INSTALL.TXT
文件,以获取更多信息。如果你是从源代码进行升级,请确保同时阅读 /usr/src/UPDATING
文件。
最后,如果你希望使用各种方法跟踪 FreeBSD 的 -STABLE 或 -CURRENT 分支,请务必查阅 -CURRENT 与 -STABLE 章节,位于 FreeBSD 手册 中。
重要提示:
升级 FreeBSD 之前,务必备份 所有 数据和配置文件。
此文件和其他与发布相关的文档可以从 ftp://ftp.FreeBSD.org/ 下载。
如有关于 FreeBSD 的问题,请在联系 questions@FreeBSD.org 前先阅读 文档。
如有关于本文档的问题,请通过电子邮件联系 doc@FreeBSD.org。