FreeBSD 8.3-RELEASE 发行说明(2012 年 4 月 18 日)

原文地址:FreeBSD 8.3-RELEASE Release Notes

FreeBSD 项目

版权所有 © 2012 FreeBSD 文档项目

$FreeBSD: releng/8.3/release/doc/en_US.ISO8859-1/relnotes/article.sgml 234052 2012-04-09 04:44:39Z hrs $

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 是 Intel Corporation(英特尔公司)或其子公司在美国及其他国家的商标或注册商标。

SPARC、SPARC64、SPARCengine 和 UltraSPARC 是 SPARC International, Inc 在美国及其他国家的商标。SPARC International, Inc 拥有所有 SPARC 商标,并通过许可协议允许其成员正确使用这些商标。

许多制造商和销售商用来区分其产品的名称被声称为商标。若这些名称出现在本文件中,并且 FreeBSD 项目知悉其商标权主张,这些名称均附带了“™”或“®”符号。

FreeBSD 8.3-RELEASE 的发行说明包含了对 FreeBSD 基本系统在 8.3-STABLE 开发分支上所做更改的摘要。本文件列出了自上次发布以来发布的适用安全公告,以及 FreeBSD 内核和用户空间的重大更改。此外,还简要介绍了一些升级相关的说明。

1 简介

本文档包含 FreeBSD 8.3-RELEASE 的发行说明,介绍了 FreeBSD 最近新增、更改或删除的功能,同时提供了从以前版本的 FreeBSD 升级的一些注意事项。

FreeBSD 8.3-RELEASE 的此发行版为正式发行版,可从 ftp://ftp.FreeBSD.org/ 或其任意镜像站点下载。有关获取此版本(或其他版本)FreeBSD 的更多信息,请参阅 FreeBSD 手册 中的 “获取 FreeBSD”附录

建议所有用户在安装 FreeBSD 之前查阅发行勘误表。勘误文档包含在发布周期后期或发布后发现的“最新”信息,通常包括已知问题、安全公告以及文档修正。FreeBSD 8.3-RELEASE 的最新勘误表可在 FreeBSD 网站上找到。

2 更新内容

本节介绍自 FreeBSD 8.2-RELEASE 以来,用户最能感知到的新增或更改功能。

典型的发行说明项目记录了自 8.2-RELEASE 之后发布的最新安全公告、新驱动程序或硬件支持、新命令或选项、主要错误修复或引入的软件升级。它们可能还会列出主要的 Port/包更改或发行工程实践的调整。显然,发行说明不可能列出两个版本之间 FreeBSD 所做的每一个更改;本文档主要关注安全公告、用户可见的更改以及重要的架构改进。

2.1 安全公告

以下安全公告中描述的问题已修复。有关更多详细信息,请参阅 http://security.FreeBSD.org/ 提供的各个公告。

公告
日期
主题

2011 年 4 月 20 日

2011 年 5 月 28 日

BIND 中大 RRSIG RRsets 与负缓存引发的远程 DoS 漏洞

2011 年 9 月 28 日

2011 年 9 月 28 日

UNIX 套接字地址处理中的缓冲区溢出漏洞

2011 年 12 月 23 日

2011 年 12 月 23 日

通过 chroot 环境下的 ftpd 实现代码执行

2011 年 12 月 23 日

telnetd 的代码执行漏洞

2011 年 12 月 23 日

当用户账户中存在未加密的 SSH 私钥时,pam_ssh 错误地授予访问权限

2011 年 12 月 23 日

pam_start() 未验证服务名称

2.2 内核更改

[amd64, i386] FreeBSD 的 dtrace(1) 框架现在支持在 FreeBSD/amd64 上针对 linux32 和 freebsd32 系统调用的 systrace。两个新的内核模块 systrace_linux32systrace_freebsd32 提供了兼容系统调用的跟踪支持,此外还支持由 systrace 模块提供的原生系统调用跟踪。[r219107]

已实现 hhook(9)(Helper Hook)和 khelp(9)(Kernel Helpers)KPIs。它们是 pfil(9) 框架的超集,可更广泛地用于内核。[hhook(9)] KPI 提供了一种方式,允许内核子系统导出钩子点,而 [khelp(9)] 模块可以钩挂这些钩子点以为内核提供增强或新功能。[khelp(9)] KPI 提供了一个框架来管理 [khelp(9)] 模块,这些模块间接使用 [hhook(9)] KPI 将其钩子函数注册到内核中的感兴趣钩子点。这种方法允许以保持 ABI(应用程序二进制接口)兼容的方式动态扩展内核功能。[r222406]

[amd64, i386, pc98] 新增了一个 loader(8) 可调参数 hw.memtest.tests,用于控制是否在启动时执行内存测试。默认值为 1(执行内存测试)。[r230282]

open(2)fhopen(2) 系统调用现在支持 O_CLOEXEC 参数,用于为新创建的文件描述符设置参数 FD_CLOEXEC。此功能已在 IEEE Std 1003.1-2008(POSIX,单一 UNIX 规范第 4 版)中标准化。[r220241]

实现了 posix_fallocate(2) 系统调用。此 POSIX 函数可确保在文件系统存储介质上分配常规文件数据的部分存储空间。[r227573]

实现了 posix_fadvise(2) 系统调用。此 POSIX 函数类似于 madvise(2),但它作用于文件描述符而非内存区域。[r229725]

2.2.1 硬件支持

FreeBSD 的 usb(4) 子系统现在支持 USB 数据包过滤功能。这允许捕获通过每个 USB 主机控制器的包。该实现几乎基于 bpf(4) 代码。用户空间程序 usbdump(8) 已添加。[r221174]

2.2.1.1 网络接口支持

cxgb(4) 驱动已更新至版本 7.11.0。[参见 r220340]

新增了适用于 Chelsio T4(Terminator 4)系列 10Gb/1Gb 适配器的 cxgbe(4) 驱动。[参见 r219633]

[i386] dc(4) 驱动现已能在启用 PAE 选项的内核中正常工作。[参见 r220072]

em(4) 驱动已更新至版本 7.3.2。[参见 r230848]

igb(4) 驱动已更新至版本 2.3.1。[参见 r230848]

igb(4) 驱动现已支持 Intel I350 PCIe 千兆以太网控制器。[参见 r230848]

ixgbe(4) 驱动已更新至版本 2.4.5。[参见 r230924]

iwn(4) 驱动中的固件镜像已更新,适用于 1000、5000、6000 和 6500 系列网卡。[参见 r223255]

msk(4) 驱动现已支持 Yukon EC、Yukon Ultra、Yukon FE 和 Yukon Ultra2 的 RX 校验和卸载功能。由于已知的硅问题,Yukon XL 的校验和卸载功能仍被禁用。[参见 r223394]

修复了 nfe(4) 驱动中的一个错误,该错误可能导致更改 MTU 后无法重新初始化。[参见 r218872]

新增了支持 RDC Semiconductor R6040 10/100 PHY 的 rdcphy(4) 驱动。[参见 r218294]

re(4) 驱动现已支持 RTL8168E/8111E-VL PCIe 千兆以太网控制器和 RTL8401E PCIe 快速以太网控制器。[参见 r218901r219116]

re(4) 驱动现已支持在 RTL810xE PCIe 快速以太网控制器上进行 TX 中断调节。[参见 r218905]

由于性能问题,re(4) 驱动现已支持另一种 RX 中断调节机制。新增了 sysctl(8) 变量 dev.re.N.int_rx_mod,以微秒为单位控制 RX 中断处理延迟时间。将该变量设置为 0 可完全禁用 RX 中断调节。新增的 loader(8) 可调参数 hw.re.intr_filter 控制是否使用旧机制(在支持的控制器上利用 MSI/MSI-X 功能)。将其设置为非零值时,re(4) 驱动将使用旧机制。默认值为 0,该参数对不支持 MSI/MSI-X 功能的控制器无效。[参见 r219110]

re(4) 驱动现已支持在 RealTek RTL8168/8111 C 及更高版本控制器上启用 TSO(TCP 分段卸载)。请注意,此功能默认禁用,因为在某些条件下可能会发送损坏的帧。[参见 r218897]

re(4) 驱动现在可以分别独立启用或禁用 TX 和 RX 校验和卸载功能。请注意,在某些基于 RTL8168C 的网络接口上,TX IP 校验和功能被禁用,因为当数据包包含 IP 选项时可能会生成错误的 IP 校验和。[参见 r218899r219114]

re(4) 驱动现已支持 RTL8105E PCIe 快速以太网控制器。[参见 r229530]

新增了适用于 RDC R6040 快速以太网控制器(通常用于 Vortex86 系统芯片)的 vte(4) 驱动。[参见 r218296]

2.2.2 网络协议

ipfw(8) 现在支持 callreturn 动作。执行 call *number* 动作时,当前规则号会保存到内部堆栈,并从编号为 number 或更高的第一条规则继续规则集处理。return 动作会取出内部堆栈中由最新的 call 动作保存的规则号,并将规则集处理返回到大于该保存号码的第一条规则。[ r230575 ]

FreeBSD 的 ipsec(4) 现在在哈希消息认证模式(HMAC-SHA-256、HMAC-SHA-384 和 HMAC-SHA-512)中使用哈希大小的一半作为认证器哈希大小,如 RFC 4868 中描述的那样。在先前的版本中,由于实现基于旧的互联网草案 draft-ietf-ipsec-ciph-sha-256-00,固定使用 96 位长度。需要注意的是,这意味着 8.3-RELEASE 及更高版本与早期的 FreeBSD 版本不再兼容。[ r221157 ]

修复了 sendmsg(2) 中 IPV6_PKTINFO 选项的一个错误,此错误会导致通过 setsockopt(2) 设置的 IPV6_USE_MIN_MTU 状态被忽略。[ r232560 ]

FreeBSD 的 TCP/IP 网络栈现在支持可插拔拥塞控制框架 mod_cc(9) 。这使得 TCP 拥塞控制算法可以实现为动态加载的内核模块。以下内核模块在 8.3-RELEASE 中可用:用于 CAIA-Hamilton-Delay 算法的 cc_chd(4)、用于 CUBIC 算法的 cc_cubic(4)、用于 Hamilton-Delay 算法的 cc_hd(4)、用于 H-TCP 算法的 cc_htcp(4)、用于 NewReno 算法的 cc_newreno(4) 和用于 Vegas 算法的 cc_vegas(4)。默认算法可以通过新的 sysctl(8) 变量 net.inet.tcp.cc.algorithm 设置。其值必须设置为 net.inet.tcp.cc.available 列出的名称之一,默认值为 newreno。[ r222401r222402r222403 等 ]

新增了一个 h_ertt(4)(增强的往返时间)khelp(9) 模块。该模块允许 TCP/IP 网络栈中每个连接的即时 RTT(往返时间)的低噪声估计,并且即使在使用延迟确认和/或 TSO(TCP 分段卸载)的情况下,也能提供稳健的实现。[ r222410 ]

新增了一个 tcp(4) 套接字选项 TCP_CONGESTION,允许选择或查询 TCP/IP 网络栈为套接字连接使用的拥塞控制算法。[ r222401 ]

ng_ipfw(4) netgraph(4) 节点现在支持 IPv6。[ r225876 ]

ng_one2many(4) netgraph(4) 节点现在支持 XMIT_FAILOVER 传输算法。该算法使得数据包通过第一个激活的 many 钩子进行传输。[ r219660 ]

2.2.3 磁盘与存储

ada(4) 驱动现已支持写缓存控制。一个新的 sysctl(8) 变量 kern.cam.ada.write_cache 用于决定 ada(4) 设备的写缓存是否启用。设置为 1 表示启用,0 表示禁用,-1 表示保持设备的默认行为。sysctl(8) 变量 kern.cam.ada.N.write_cache 可用于单个设备的覆盖配置(默认值为 -1,即使用全局设置)。请注意,该值可以在运行时更改,但仅在设备重置后生效。[r220841]

arcmsr(4) 驱动已更新至版本 1.20.00.22。[r224991]

新增了 graid(8) GEOM 类,以替代 ataraid(4) 驱动,支持多种基于 BIOS 的软件 RAID。[r223177]

mxge(4) 驱动已更新。[r224235]

新增了针对 3ware 9750 SATA+SAS 6Gb/s RAID 控制器的 tws(4) 驱动。[r226243]

2.2.4 文件系统

FreeBSD 快速文件系统(Fast File System)现已支持在释放数据块时发送 TRIM 命令。新的 newfs(8)tunefs(8) 工具中的 -t 参数可以为文件系统设置 TRIM 启用参数。启用后,文件系统会在释放每个数据块时向底层设备发送删除请求。TRIM 命令在 ATA8-ACS2 标准中作为数据集管理命令定义,主要用于优化 SSD(固态硬盘)性能。[r218079]

newfs(8)fsck_ffs(8) 工具新增了 -E 参数,用于清除未分配的块,通知底层设备它们未被使用,其内容可以被丢弃。这在 fsck_ffs(8) 中尤为有用,例如在不支持 TRIM 或禁用 TRIM 的系统上挂载的文件系统,以及从一个设备复制到另一个设备的文件系统。[r225296]

FreeBSD 的 NFS 子系统现已支持挂载选项 nocto。该选项可在打开文件时禁用 close-to-open 缓存一致性检查。这可能提高只读挂载的性能,但仅应在服务器上的数据很少更改时使用。mount_nfs(8) 工具现在也支持此选项。[r221759]

新增了 loader(8) 可调变量 vfs.typenumhash。将其设置为 1 可对内核内部使用的文件系统标识号进行哈希计算,从而修复在 NFS 服务器上升级或重建内核时,由于这些标识号意外更改而导致 NFS 客户端出现“Stale NFS file handle”错误。为向后兼容,默认值为 0(禁用)。[r226926]

FreeBSD 的 ZFS 子系统已更新至 SPA(存储池分配器,Storage Pool Allocator)版本 28。现在支持数据去重、三重奇偶校验 RAIDZ(raidz3)、快照保持、日志设备移除、zfs diffzpool splitzpool import -F 和只读 zpool import 功能。[r222741]

2.3 用户空间变更

bsdtar(1)cpio(1) 工具现在基于 libarchive 版本 2.8.5。[r229589]

cpuset(1) 工具现在支持 -C 参数,用于创建新的 CPU 集并将现有进程分配到该集。同时,-l cpu-list 选项支持 all 关键字以指定系统中的所有 CPU。[r218033]

修复了 fetch(1) 工具中的一个 bug,该 bug 可能导致 STAT FTP 命令无法正常工作。[r221764]

gpart(8) 工具的子命令 show 现在支持 -p 参数,用于显示分区的提供者名称,而不是分区索引。[r219861]

hastd(8) 工具现在将工作进程的 root 权限降为 hast 用户权限。[r220104]

hastd(8) 现在支持关键字 checksum,可以在资源部分指定校验算法。目前支持 none、sha256 和 crc32。[r220104]

hastd(8) 现在支持关键字 compression,可以在资源部分指定压缩算法。目前支持 none、hole 和 lzf。[r220104]

hastd(8) 现在支持 source 关键字,可用于指定本地地址以绑定到远程 hastd(8) 守护进程之前的连接。[r220104]

libedit 中已引入 readline(3) API 集。这基于 NetBSD 的实现,BSD 许可的工具现在使用它来代替 GNU libreadline。[r220612]

makefs(8) 工具现在支持 ISO 9660 格式。[r224447]

libmdlibcrypt 现在支持 SHA-256 和 SHA-512 算法。[r231588]

netstat(1) 工具的 netstat -aninetstat -nr 命令结果中,现在不再暴露 FreeBSD 内核中使用的 KAME IPv6 栈的内部范围地址表示形式。[r219062]

newsyslog(8) 工具现在支持 xz(1) 压缩。新增了 X 参数,用于在可选字段中指定压缩类型。[r218911]

新增了 poweroff(8) 工具,其等效命令如下:[r224259]

# shutdown -p now

ppp(8) 工具现在支持 iface name nameiface description description 命令,与 ifconfig(8) 工具中的 name 和 description 子命令功能相同。[r224285]

ps(1) 工具现在支持选项 -o usertime-o systime,分别显示累计的用户和系统 CPU 时间。[r219943]

rtadvd(8) 守护进程现在支持关键字 noifprefix,当未指定关键字 addr 时,禁用从接口获取的 on-link 前缀。如果在 /etc/rtadvd.conf 中使用 noifprefix 和无 addr 条目,将生成一个不包含前缀信息选项的 RA 消息。[r231802]

rtadvd(8) 守护进程现在支持 RFC 6106 描述的选项 RDNSS 和 DNSSL ,即“IPv6 路由器广告选项用于 DNS 配置”。同时新增了 rtadvctl(8) 工具,用于控制 rtadvd(8) 守护进程。[r231802]

修复了 tftpd(8) 守护进程中的一个 bug,该 bug 导致传输大文件时出现兼容性问题。[r227083]

zpool(8) 工具现在支持 zpool labelclear 命令,用于清除不在活动池中的驱动器上的标签数据。[r229570]

2.4 第三方软件

awk 已更新至 2011 年 8 月 7 日版本。

ISC BIND 已更新至 9.6-ESV-R5-P1 版本。

netcat 工具已更新至 4.9 版本。

GNU GCClibstdc++ 已更新至 gcc-4_2 分支的修订版 127959(最后一个 GPLv2 授权版本)。[r221274]

LESS 程序已更新至 v444 版本。[r223454]

OpenSSH 工具已更新至 5.4p1 版本,新增对大带宽-延迟积连接的优化以及 none 加密支持。[r228152]

sendmail 已更新至 8.14.5 版本。[r223315]

时区数据库已更新至 tzdata2011n 版本。[r226977]

unifdef(1) 工具已更新至 2.5.6 版本。

xz 程序已从 5.0.0 更新至 5.0.1 版本。[r219219]

2.5 软件包/Ports 基础设施

KDE 桌面环境(x11/kde4)的支持版本已从 4.5.5 更新至 4.7.4。

3 从 FreeBSD 的旧版本升级

[amd64, i386] 可以使用 freebsd-update(8) 工具,在 RELEASE 版本之间(以及安全分支的快照版本)进行升级。二进制升级过程将更新未修改的用户工具,以及作为官方 FreeBSD 发行版的一部分分发的未修改的 GENERIC 内核。freebsd-update(8) 工具要求升级的主机具有互联网连接。

对于无互联网连接的系统,可以通过光盘分发介质主菜单中的 sysinstall(8) 的升级选项,进行早期形式的二进制升级。这种升级方式可能对非 i386 或非 amd64 架构的机器有用。

基于源代码的升级(通过重新编译 FreeBSD 基本系统的源代码进行升级)受支持,具体说明请参考 /usr/src/UPDATING 文件。

重要提示:

在尝试升级 FreeBSD 之前,请务必备份 所有 数据和配置文件。


此文件及其他与发行版相关的文档,可从 ftp://ftp.FreeBSD.org/ 下载。

如有关于 FreeBSD 的问题,请阅读 文档,然后再联系 questions@FreeBSD.org

如有关于本文件的问题,请发送邮件至 doc@FreeBSD.org

最后更新于