FreeBSD 6.0 RELEASE amd64 发行公告(2005 年 11 月 4 日)
FreeBSD 项目
版权 © 2000, 2001, 2002, 2003, 2004, 2005 FreeBSD 文档项目
FreeBSD 是 FreeBSD 基金会的注册商标。
IBM、AIX、EtherJet、Netfinity、OS/2、PowerPC、PS/2、S/390 和 ThinkPad 是国际商业机器公司(IBM)在美国、其他国家或两者的商标。
IEEE、POSIX 和 802 是电气和电子工程师协会(IEEE)的注册商标,注册地点为美国。
Intel、Celeron、EtherExpress、i386、i486、Itanium、Pentium 和 Xeon 是英特尔公司或其子公司在美国和其他国家的商标或注册商标。
Sparc、Sparc64、SPARCEngine 和 UltraSPARC 是 SPARC International, Inc. 在美国及其他国家的商标。带有 SPARC 商标的产品基于 Sun Microsystems, Inc. 开发的架构。
许多制造商和销售商用来区分其产品的标识被声明为商标。在本文件中出现这些标识的地方,如果 FreeBSD 项目已知该商标声明,这些标识后将跟随“™”或“®”符号。
FreeBSD 6.0-RELEASE 的发布说明包含了对 FreeBSD 基本系统在 6-STABLE 开发线路上所做变更的总结。本文档列出了自上次发布以来发布的相关安全公告,以及对 FreeBSD 内核和用户空间的重大变更。同时,还简要说明了升级的相关事项。
1. 介绍
本文档包含了 FreeBSD 6.0-RELEASE 在 AMD64 硬件平台上的发布说明。它介绍了 FreeBSD 最近新增、修改或删除的功能。它还提供了一些关于从之前版本的 FreeBSD 升级的注意事项。
此版本的 FreeBSD 6.0-RELEASE 是发布版本,可以在 ftp://ftp.FreeBSD.org/
或任何其镜像站点找到。有关获取此版本(或其他版本)FreeBSD 发布的更多信息,请参见《FreeBSD 手册》中的“获取 FreeBSD”附录。
鼓励所有用户在安装 FreeBSD 之前查阅发布说明的附录。附录文档包含了发布周期结束或发布后发现的“最后时刻”信息。通常,它包含已知的漏洞、安全公告以及文档的修正。有关 FreeBSD 6.0-RELEASE 的更新版附录,可以在 FreeBSD 网站上找到。
2. 新特性
本节介绍了自 5.4-RELEASE 以来 FreeBSD 中最具用户可见性的新增或变更功能。一般来说,除非特别标注为[已合并]特性,否则这里描述的变更是特有于 6-STABLE 分支的。
典型的发布说明条目会列出自 5.4-RELEASE 之后发布的安全公告、新驱动程序或硬件支持、新命令或选项、重大漏洞修复或第三方软件的软件升级。它们还可能列出对主要 Port/包或发布工程实践的变更。显然,发布说明不能列出在每个版本之间对 FreeBSD 所做的每一项变更;本文件主要关注安全公告、用户可见的变更以及主要的架构改进。
2.1 安全公告
2.2 内核变更
内核崩溃转储格式已变更为 ELF,以支持更大内存(超过 4GB)环境。
sysctl security.jail.getfsstatroot_only
已被重命名为 security.jail.enforce_statfs
,并支持以下策略:
0
显示所有挂载点,没有任何限制。
1
仅显示 Jail 的 chroot 目录下的挂载点,并且只显示部分挂载点路径(例如,如果 Jail 的 chroot 目录是 /jails/foo
,挂载点是 /jails/foo/usr/home
,则只会显示 /usr/home
)。
2
仅显示 Jail 的 chroot 目录所在的挂载点。
已默认启用加载器可调参数 debug.mpsafevm
。[已合并]
struct ifnet
和网络接口 API 已被变更。由于 ABI 不兼容,FreeBSD 基本系统之外的所有驱动程序需要更新以使用新的 API,并重新编译。
ULE 调度器已修复了若干个 bug。[已合并]
新增细粒度锁定,使得 VFS 堆栈的大部分内容可以在不使用 Giant 锁的情况下运行。默认情况下,在 alpha、amd64 和 i386 架构上启用此功能,可以通过设置加载器可调参数(和 sysctl 变量)debug.mpsafevfs
为 0
来禁用。
FreeBSD 现在即使在单处理器系统上也始终使用本地 APIC 定时器。
默认的 HZ
参数(控制各种内核定时器)已从 100
增加到 1000
,在 i386 和 ia64 架构上已变更。为了减少与其他系统时钟的同步效应,在 amd64 上已从 1024
降低到 1000
。
Shell 命令的最大长度已从 128 字节变更为 PAGE_SIZE
。默认情况下,这个值是 4KB(i386、pc98、amd64 和 powerpc)或 8KB(sparc64 和 ia64)。因此,兼容性模块需要重新构建,以保持与内核中数据结构变化同步。
已新增一个新的可调参数 vm.blacklist
。该参数可以包含空格或逗号分隔的物理地址列表。包含这些物理地址的页面将不会添加到空闲列表中,因此会被 FreeBSD VM 系统忽略。被忽略页面的物理地址也会列在消息缓冲区中。
2.2.1 引导加载器变更
自动启动加载器命令现在支持参数 prompt
。
如果变量 autoboot_delay
设置为 -1
,自动启动加载器命令现在将完全禁止用户中断启动过程。[已合并]
已新增一个加载器菜单选项,用于设置 hint.atkbd.0.flags=0x1
。此设置能在没有 PS/2 键盘连接的情况下使 USB 键盘正常工作。
默认情况下已禁用“beastie”引导菜单。
2.2.2 硬件支持
已新增支持 Sony 笔记本电脑上 Sony Notebook Controller 的驱动程序 acpi_sony
。
已新增驱动程序 pcii 以支持 GPIB-PCIIA IEEE-488 卡。[已合并]
2.2.2.1 多媒体支持
2.2.2.2 网络接口支持
已移除驱动 musycc(用于 LanMedia LMC1504 T1/E1 网络接口卡),因为不再使用。
2.2.3 网络协议
当发送方写入必须进行分片的数据时,IPv6 中的 MTU 反馈已被禁用。[已合并]
正在进行的工作旨在减少网络协议栈使用 Giant 锁,并改进锁定策略。
libalias 库现在可以构建为内核模块。
网络接口的链路状态变化通知现在发送到 /dev/devctl
。
修复了一个 TCP 中的错误,该错误有时会导致当接收窗口为零字节时忽略 RST 数据包。[已合并]
改进了 FreeBSD TCP 栈的 RST 处理,以使重置攻击尽可能困难,同时保持与最广泛的 TCP 栈的兼容性。算法如下:对于 ESTABLISHED 状态中的连接,只有与 last_ack_sent
完全匹配的序列号才会导致重置;所有其他数据段将被默默丢弃。对于其他所有状态中的连接,窗口中的任何位置的重置都会导致连接重置。所有其他数据段将被默默丢弃。请注意,这种行为在技术上违反了 RFC 793 规范;可以通过将新的 sysctl net.inet.tcp.insecure_rst
设置为 1
来恢复传统的(但不太安全的)行为。[已合并]
修复了 TCP SACK 实现中的几个错误。[已合并]
已移除 RFC 1644 T/TCP 支持。这是因为该设计基于一个弱安全模型,容易导致拒绝服务攻击。这一 TCP 扩展在最近的互联网草案中被认为是有缺陷的。
集成到 FreeBSD 中的 KAME IPv4 IPsec 实现现在支持 TCP-MD5。[已合并]
随机临时端口号分配在高连接速率下导致了一些端口重用问题。现在,在高连接速率期间,此功能被禁用;每当新连接的创建速度超过 net.inet.ip.portrange.randomcps
每秒时,端口号随机化将在接下来的 net.inet.ip.portrange.randomtime
秒内被禁用。默认值为这两个 sysctl 变量分别为 10 和 45。[已合并]
对 IPX/SPX 协议栈中的许多数据结构应用了细粒度锁定。虽然此时尚未完全 MPSAFE,但通常可以在不使用 Giant 锁的情况下安全使用 IPX/SPX(换句话说,sysctl 变量 debug.mpsafenet
可以设置为 1
)。
2.2.4 磁盘与存储
默认的 SCSI 启动时探测延迟已从 15 秒减少到 5 秒。
有关新挂载的 cd9660 文件系统的信息(例如是否存在 RockRidge 扩展)现在仅在内核以详细模式启动时才会打印。此变更是为了减少(通常不必要的)内核日志消息。[已合并]
2.2.5 文件系统
2.2.6 第三方软件
ACPI-CA 已从 20040527 更新至 20041119。[已合并]
2.3 用户空间变更
工具 gvinum(8)
现在支持子命令 checkparity
、rebuildparity
和 setstate
。[已合并]
LC_CTYPE 文件的磁盘格式已变更为机器无关格式。
libkvm 现在支持在 amd64 和 i386 平台上的 ELF 崩溃转储,支持 32 位平台上的大于 4GB 的崩溃转储,以及支持 i386 平台上的 PAE 崩溃转储。
libarchive 库现在支持处理超过 4GB 压缩大小的 ZIP 文件条目(ZIP64 扩展)和 Unix 扩展。
libgpib 库已新增,提供用户空间访问 GPIB 设备(使用驱动程序 pcii),通过 ibfoo
API。[已合并]
libpthread、libthr 和 libc_r
的默认堆栈大小已增加。在 32 位平台上,主线程默认堆栈大小为 2MB,其他线程为 1MB。在 64 位平台上,默认堆栈大小分别为 4MB 和 2MB。[已合并]
已新增编译时开关 NO_NIS
。顾名思义,启用此 Makefile 变量将导致排除 NIS 支持,并使 NIS 工具不被构建。[已合并]
多年来,FreeBSD 一直使用形式为 NOFOO
和 NO_FOO
的 Makefile 变量。为了保持一致性,采用前者命名约定的变量已被转换为 NO_FOO
格式。文件 /usr/share/mk/bsd.compat.mk
列出了这些变量的完整列表;它还实现了对旧名称的临时向后兼容性。
已实现 ISO/IEC 9899:1999 标准函数:roundl()
,lroundl()
,llroundl()
,truncl()
和 floorl()
。
已删除 rune(3)
,非标准多字节和宽字符支持接口。
2.3.1 /etc/rc.d 脚本
rc.d/moused
脚本现在在作为第二个参数提供设备名称时,可以启动、停止或检查特定设备:
以下脚本已被移除,因为它们是 NetBSD 特有的,且从未在 FreeBSD 中使用:altqd、dhcpd、dhcrelay、downinterfaces、gated、ifwatchd、kdc、lkm1、lkm2、lkm3、mixerctl、mopd、mountall、ndbootd、network、poffd、postfix、ppp、racoon、raidframe、rbootd、rtsold、screenblank、swap2、sysdb、wscons、xdm 和 xfs。
2.4 第三方软件
awk 已从 2004 年 2 月 7 日版本更新至 2005 年 4 月 24 日版本。
BIND 已从版本 9.3.0 更新至版本 9.3.1。[已合并]
bsnmp 已从 1.7 更新至 1.10。
bzip2 已从 1.0.2 更新至 1.0.3。
OpenBSD dhclient 已引入 OpenBSD 3.7 的版本,取代了 FreeBSD 先前版本中使用的 ISC DHCP 客户端。
FILE 已从 4.10 更新至 4.12。
GNU GCC 已从 2004 年 7 月 28 日的 3.4.2-prerelease 更新至 3.4.4。
为 GNU grep 新增来自 Fedora 的 grep-2.5.1-48 源 RPM 的多个错误修复和性能增强补丁。
GNU readline 已从版本 4.3 更新至 5.0。
IPFilter 已从 3.4.35 更新至 4.1.18。
Heimdal 已从 0.6.1 更新至 0.6.3。[已合并]
libpcap 已从 v0.8.3 更新至 v0.9.1 (alpha 096)。
libregex 已从 GNU grep 2.5.1 的快照更新至 Fedora 的
glibc-2_3_4-21
CVS 仓库标记的快照。libz 已从 1.2.1 更新至 1.2.2。
lukemftp 已从 NetBSD 2004 年 4 月 26 日的快照更新至 2005 年 5 月 16 日的快照。
NgATM 已从 1.0 更新至 1.2。
OpenPAM 已从 Eelgrass 版本更新至 Figwort 版本。
OpenSSH 已从 3.8p1 更新至 4.1p1。
OpenSSL 已从 0.9.7d 更新至 0.9.7e。[已合并]
pf 已从 OpenBSD 3.5 版本更新至 OpenBSD 3.7 版本。
sendmail 已从版本 8.13.3 更新至版本 8.13.4,现在支持 OSTYPE(freebsd6)。
tcpdump 已从 v3.8.3 更新至 v3.9.1 (alpha 096)。
tcsh 已从 6.13.00 更新至 6.14.00。
texinfo 已从 4.6 更新至 4.8。
时区数据库已从 tzdata2004e 版本更新至 tzdata2004g 版本。[已合并]
2.5 Ports/软件包
在
ports/
树顶运行make index
,基于当前 Ports 生成索引文件。在
ports/
树顶运行make fetchindex
,通过网络获取索引文件。此文件通常会保持一天内的准确性。
2.6 发行工程与集成
在之前的 FreeBSD 版本中,disc1 CD-ROM(或 ISO 镜像)是一个可启动的安装盘,包含基本系统、Ports 和常用软件包。disc2 CD-ROM(或 ISO 镜像)是一个可启动的“修复盘”,带有实时文件系统,用于紧急修复。此布局现已变更。 除 ia64 架构外,disc1 镜像现在包含基本系统分发文件、Ports 和实时文件系统,适合初始安装和修复使用。(由于体积原因,ia64 的实时文件系统放在单独的磁盘上。)软件包被移至单独的磁盘,disc2 镜像中包括常见的软件包,如桌面环境。FreeBSD 文档项目的文档也存放在 disc2 中。[已合并]
注意:
注意:
支持的 Xorg 版本已从 6.7.0 更新至 6.8.2。[已合并]
2.7 文档
基本系统中的手册页经过了一系列清理,提升了内容和展示质量。交叉引用现在更加准确和一致,所有章节均采用标准标题格式,标记也得到了改进。
3 从旧版本 FreeBSD 升级
FreeBSD 6.0-RELEASE 的源码升级仅支持从 FreeBSD 5.3-RELEASE 或更高版本进行。 使用更早系统的用户需先升级至 FreeBSD 5.3 或更新版本,再升级到 FreeBSD 6.0-RELEASE。
重要提示:
在升级 FreeBSD 前,务必备份所有数据和配置文件。
最后更新于