FreeBSD 4.11 RELEASE i386 发行公告(2005 年 1 月 25 日)

FreeBSD 项目

版权 © 2000, 2001, 2002, 2003, 2004, 2005 FreeBSD 文档项目

$FreeBSD: src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml,v 1.22.2.419.2.9 2005/01/21 11:16:10 hrs Exp $

FreeBSD 4.11-RELEASE 的发布说明包含了自 4.10-RELEASE 以来对 FreeBSD 基本系统所做的变更摘要。列出了内核和用户空间的变更,以及自上次发布以来发布的适用于基本系统的安全公告。同时,还提供了关于升级的一些简要说明。

1 引言

本文档包含了 FreeBSD 4.11-RELEASE 在 i386 硬件平台上的发布说明。它介绍了自 4.10-RELEASE 以来,FreeBSD 中新增(或变更)的新功能。同时,它还提供了一些关于从先前版本升级的说明。

此版本的 FreeBSD 4.11-RELEASE 是发布版。可以在 ftp://ftp.FreeBSD.org/ 或其镜像站点上找到。有关如何获取此版本(或其他版本)发行版的更多信息,请参见 FreeBSD 手册 中的 获取 FreeBSD 附录。

2 新特性

本节介绍了自 4.10-RELEASE 以来,FreeBSD 中最显著的新功能或已变更的功能。典型的发布说明项目包括新驱动程序或硬件支持、新命令或选项、重大 bug 修复或第三方软件升级。发布后的基本系统安全公告也一并列出。

2.1 安全公告

FreeBSD Linux 二进制兼容层中的一个编程错误已被修复,该错误允许本地攻击者读取或写入内核内存的部分内容。更多细节,请参见安全公告 FreeBSD-SA-04:13.linux

修复了 CVS 服务器模式中的多个远程可利用的漏洞,包括双重释放、整数溢出和缓冲区溢出,这些漏洞可能导致信息泄露、拒绝服务攻击和/或可能的任意代码执行。此问题通过升级到 CVS 1.11.17 解决。更多细节,请参见安全公告 FreeBSD-SA-04:14

修复了 fetch(1) 工具中的一个 bug,该漏洞允许恶意的 HTTP 服务器导致客户端内存的任意部分被覆盖。更多信息,请参见安全公告 FreeBSD-SA-04:16

修复了 procfs(5)linprocfs(5) 中的一个 bug,该 bug 可能导致恶意本地用户通过导致系统崩溃进行本地拒绝服务攻击,或用户可以读取部分内核内存。更多信息,请参见安全公告 FreeBSD-SA-04:17

2.2 内核变更

为 Cronyx Tau-PCI 同步串行适配器新增驱动程序 cp(4)

修复了 mmap(2) 中的一个 bug,该 bug 导致在某些情况下,标记为 PROT_NONE 的页面可能变为可读。

修复了 FreeBSD 虚拟内存子系统中函数 vm_object_madvise()vm_object_sync()contigmalloc() 中的 bug。vm_object_madvise()vm_object_sync() 中的 bug 可能会导致内存损坏,而 contigmalloc() 中的 bug 可能会导致系统崩溃。

2.2.1 特定平台硬件支持

已新增 pbio(4) 驱动程序,该驱动程序支持对 Intel 8255A 可编程外设接口(PPI)芯片在模式 0(简单 I/O)下的直接访问。

2.2.2 网络接口支持

已新增驱动程序 axe(4),该驱动程序支持 ASIX Electronics AX88172 USB 2.0 以太网芯片组。

驱动程序 bge(4) 现已支持 BCM5750 和 BCM5751。

em(4) 现已支持 82541ER 和 82546GB 双端口 PCI Express 适配器。

已新增驱动程序 ixgb(4) ,该驱动程序支持基于 Intel 82597EX 以太网控制器芯片的 PCI 千兆以太网适配器。

已新增 Netgraph 节点类型 ng_hub(4) ,该类型支持类似以太网集线器的简单数据包分发功能。

已修复 sk(4) 驱动程序中与 Jumbo 帧处理相关的 bug。

vr(4) 驱动程序现已支持 polling(4)

已实现每接口的 polling(4) 支持。所有支持 polling(4) 的网络驱动程序(如 dc(4)fxp(4)em(4)nge(4)re(4)rl(4)sis(4)ste(4)vr(4))现在也支持此功能,并且可以通过 ifconfig(8) 控制。

已修复当 net.inet.ip.rtexpire/net.inet6.ip6.rtexpire 设置为 0 时发生的系统崩溃问题。

2.2.3 网络协议

已实现来自 OpenBSD 的随机临时端口分配。默认启用此功能,用户可以通过 sysctl net.inet.ip.portrange.randomized 禁用此功能。请注意,随机化可能导致在高连接速率下极其快速的端口重用,这会导致一些用户遇到问题。为了保持随机端口的安全优势并确保正常操作,在高连接速率期间会禁用此功能。具体来说,当连接速率超过 sysctl net.inet.ip.portrange.randomcps 的值(默认值为 10)时,随机化将在 sysctl net.inet.ip.portrange.randomtime 指定的秒数(默认值为 45)内禁用。

ipfw(4) 现在支持查找表。这一功能对于处理大型稀疏地址集非常有用。

ipnat(8) 现在允许重定向规则适用于非 TCP/UDP 数据包。

已改进 FreeBSD TCP 堆栈的 RST 处理,使得重置攻击尽可能困难,同时保持与广泛的 TCP 堆栈兼容。算法如下:对于处于 ESTABLISHED 状态的连接,只有与 last_ack_sent 完全匹配的重置序列号才会导致重置,所有其他段会被默默丢弃;对于处于其他状态的连接,窗口中的任何位置的重置都会导致连接重置,其他段会被默默丢弃。需要注意的是,这打破了 RFC 793 规范,用户仍然可以通过设置新 sysctl net.inet.tcp.insecure_rst1 来禁用此功能并使用传统行为。

2.2.4 磁盘和存储

已新增驱动程序 ips(4) ,该驱动程序支持 IBM/Adaptec ServeRAID 控制器。

驱动程序 mpt(4) 现已支持 LSI Logic FC929X 双 2Gb/s 光纤通道卡。

驱动程序 trm(4) 现已支持 DC395U2W 适配器,并且在高负载下的问题已被修复。

2.3 用户空间变更

cron(8) 守护进程现在接受两个新选项,-j-J,分别用于启用无特权用户和超级用户的作业时间抖动。时间抖动意味着 cron(8) 在执行作业之前,会在指定范围内睡眠一小段随机时间。此功能旨在平滑当大量作业在特定时刻被调度时出现的负载峰值。

fwcontrol(8) 现在支持 -m 选项,用于设置默认的 fwmem 目标。

选项 -C 60 现在用于 /etc/rc.conf 中默认的变量 $inetd_flags

libc 现在支持 eui64(3) 函数。

ngctl(8) 现在支持 dot 命令,用于生成整个 Netgraph 的 GraphViz (.dot) 图。

ppp(8) 中的 LQM(链路质量监控)支持已重新实现。LQM 描述在 RFC 1989 中,允许 PPP 跟踪运行连接的质量。

用户空间 ppp(8) 实现现在支持 set rad_alive N 命令,用于启用周期性 RADIUS 会计信息发送到 RADIUS 服务器。

Syslogd(8) 现在支持 LOG_NTP 功能。

修复了 pax(1) 中的多个越界错误和潜在的缓冲区溢出问题。

whois(1) 现在支持 NORID(挪威顶级注册机构)句柄、德国 whois 名称服务器,并且支持 -k 参数用于查询 whois.krnic.net(韩国国家互联网发展局),它持有韩国 IP 地址分配的详细信息。

2.4 第三方软件

CVS 从版本 1.11.5 更新到 1.11.17。

sendmail 从版本 8.12.11 更新到 8.13.1。

GNU patchsrc/contrib/patch 中的源文件已被移除。FreeBSD 已经使用 src/gnu/usr.bin/patch 中的 patch(1) 源文件近七年。

时区数据库从 tzdata2004e 更新到 tzdata2004g 版本。

2.5 发布工程与集成

支持的 GNOME 版本已从 2.6 更新到 2.8.2。每个组件的变更列表可以在 http://mail.gnome.org/archives/gnome-announce-list/2004-December/msg00026.html 找到。

支持的 KDE 版本已从 3.2.2 更新到 3.3.2。

支持的 Linux 二进制兼容用户空间包已从 linux_base-6(基于 Red Hat Linux 7.1)更新到 linux_base-8(基于 Red Hat Linux 8.0)。

支持的 X Window 系统 版本已更新为 XFree86 4.4.0。请注意,Xorg X11R6.8.1 也可以在 FreeBSD Ports 中找到(x11/xorg)。

已移除 make.conf 中的变量 NOSECURE,因为它已损坏且不再受支持。如果你之前使用了 NOSECURE,请现在改用 NOCRYPT

3 从旧版升级 FreeBSD

如果你正在从先前版本的 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

最后更新于