FreeBSD 项目
版权 © 2000, 2001, 2002, 2003, 2004, 2005 FreeBSD 文档项目
FreeBSD 4.11-RELEASE 的发布说明包含了自 4.10-RELEASE 以来对 FreeBSD 基本系统所做的变更摘要。列出了内核和用户空间的变更,以及自上次发布以来发布的适用于基本系统的安全公告。同时,还提供了关于升级的一些简要说明。
本文档包含了 FreeBSD 4.11-RELEASE 在 i386 硬件平台上的发布说明。它介绍了自 4.10-RELEASE 以来,FreeBSD 中新增(或变更)的新功能。同时,它还提供了一些关于从先前版本升级的说明。
此版本的 FreeBSD 4.11-RELEASE 是发布版。可以在 ftp://ftp.FreeBSD.org/ 或其镜像站点上找到。有关如何获取此版本(或其他版本)发行版的更多信息,请参见 FreeBSD 手册 中的 获取 FreeBSD 附录。
本节介绍了自 4.10-RELEASE 以来,FreeBSD 中最显著的新功能或已变更的功能。典型的发布说明项目包括新驱动程序或硬件支持、新命令或选项、重大 bug 修复或第三方软件升级。发布后的基本系统安全公告也一并列出。
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。
为 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 可能会导致系统崩溃。
已新增 pbio(4) 驱动程序,该驱动程序支持对 Intel 8255A 可编程外设接口(PPI)芯片在模式 0(简单 I/O)下的直接访问。
已新增驱动程序 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
时发生的系统崩溃问题。
已实现来自 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_rst
为 1
来禁用此功能并使用传统行为。
已新增驱动程序 ips(4) ,该驱动程序支持 IBM/Adaptec ServeRAID 控制器。
驱动程序 mpt(4) 现已支持 LSI Logic FC929X 双 2Gb/s 光纤通道卡。
驱动程序 trm(4) 现已支持 DC395U2W 适配器,并且在高负载下的问题已被修复。
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 地址分配的详细信息。
CVS 从版本 1.11.5 更新到 1.11.17。
sendmail 从版本 8.12.11 更新到 8.13.1。
GNU patch 在 src/contrib/patch
中的源文件已被移除。FreeBSD 已经使用 src/gnu/usr.bin/patch
中的 patch(1) 源文件近七年。
时区数据库从 tzdata2004e 更新到 tzdata2004g 版本。
支持的 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
。
如果你正在从先前版本的 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。