FreeBSD/amd64 6.2-RELEASE 发行说明

The FreeBSD Project

$FreeBSD: src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml,v 1.5.2.12.2.7 2007/01/11 20:30:32 delphij Exp $

FreeBSD 是 FreeBSD基金会的注册商标

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, 和 ThinkPad 是 国际商用机器公司在美国和其他国家的注册商标或商标。

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 商标的产品基于 Sun Microsystems, Inc. 开发的架构。

许多制造商和经销商使用一些称为商标的图案或文字设计来彰显自己的产品。 本文档中出现的, 为 FreeBSD Project 所知晓的商标,后面将以 '™' 或 '®' 符号来标注。

  这份 FreeBSD 6.2-RELEASE 的发行说明, 概括了 FreeBSD 基本系统在 6.2-STABLE 开发线上所做的改动。 本文档列举了自前一发行版本以来所有适用的安全公告, 以及对于 FreeBSD 内核以及系统附带的应用程序所做的重要修改。 对在升级时需要注意的一些问题, 也进行了简略的介绍。


目录
1 简介
2 最新变动
2.1 安全公告
2.2 对内核的改动
2.2.1 引导区和 loader 的变化
2.2.2 硬件支持
2.2.3 网络协议
2.2.4 磁盘及存储
2.2.5 文件系统
2.3 应用程序变动
2.3.1 /etc/rc.d 脚本
2.4 基本系统包含的第三方软件
2.5 Ports/Packages Collection 基础结构
2.6 发行版建造工程和功能集成
2.7 文档
3 从先前版本的 FreeBSD 升级

1 简介

  这篇文档包括了在 AMD64 硬件平台上 FreeBSD 6.2-RELEASE 的发行说明。 它描述了最近刚刚加入、修改或删除了的 FreeBSD 特性的说明。 同时,它也将给出如何从先前的 FreeBSD 版本完成升级的说明。

  这是一份 FreeBSD 6.2-RELEASE 的 release 发布包。 您可以从 http://www.FreeBSD.org/snapshots/ 或其他镜像那里得到它的副本。 关于这个 (或其他) release 发布包的更多信息,可以在 FreeBSD 手册 中的 “如何获得 FreeBSD”附录 中找到。

  我们鼓励所有的用户在开始安装 FreeBSD 之前首先参考这一版本所对应的勘误信息。 勘误文档将随时更新,以便为用户提供在发布工程后期或该版本发布之后 “新发现的” 问题和相关信息。 通常,这包括已知的 bug,安全公告,以及对于文档的修订内容。 最新的 FreeBSD 6.2-RELEASE 勘误信息可以从 FreeBSD 网站获得。


2 最新变动

  这一节描述了 FreeBSD 自 6.1-RELEASE 以来最明显的新功能和变化。

  发行说明中的绝大多数条目是在说明自从 6.1-RELEASE 以来的安全公告、新的驱动程序或硬件支持、新的命令或是选项、 重要的错误修补,以及基本系统中来自第三方的软件升级。 重要的 ports 和 packages 变动,或关于交付工程的变动也会在这份文档中体现。 显而易见地,发行说明不可能涵盖 FreeBSD 版本之间的每一个微小变动; 这篇文档主要关注的,仍然是安全公告,用户可以察觉的修改, 以及重要的架构改良。


2.1 安全公告

  发现并修正了在 ypserv(8) 中一处会导致事实上禁用 /var/yp/securenets 访问控制机制的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:15.ypserv

  发现并修正了可能导致攻击者在挂载了 smbfs 的系统中越出 chroot(2) 环境的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:16.smbfs

  发现并修正了 sendmail(8) 中的一处在传递不正确格式的 MIME 消息时, 可能导致过度迭代耗竭堆栈的潜在拒绝服务攻击问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:17.sendmail

  发现并修正了 sppp(4) 中的一处潜在的缓冲区溢出问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:18.ppp

  发现并修正了 OpenSSL 中与 PKCS#1 v1.5 签名验证有关的一个问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:19.openssl

  发现并修正了一个潜在的针对 named(8) 的拒绝服务攻击问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:20.bind

  修正了 gzip(1) 中的多处程序设计错误。 这些错误的后果是可能导致在解压缩文件时发生死循环或崩溃。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:21.gzip

  修正了 OpenSSH 中的多处漏洞。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:22.openssh

  修正了 OpenSSL crypto(3) 库中的多处问题。 这些问题产生的影响是多方面的, 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:23.openssl

  修正了一处使受损的压缩包导致 libarchive(3) tar(1) 陷入死循环的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:24.libarchive

  发现并修正了一处使属于 operator 组的用户, 能够读取某些本应无权内核内存内容的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:25.kmem

  发现并修正了一个可以经由针对符号链接进行攻击, 并通过 jail 启动脚本完成特权提升的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-07:01.jail


2.2 对内核的改动

  在 FreeBSD 内核中增加了安全事件审计功能, 该功能可以通过内核配置选项 AUDIT 来启用。 关于它的更多信息可以在 audit(4) 联机手册中找到。

  与过去转存操作将整个物理内存转存不同, 内核现在默认只转存映射至内核虚拟内存空间的内存页了。 将新增的 sysctl 变量 debug.minidump 设置为 1 可以启用这一特性。

  加入了一系列绕过 tty(4) 层中的问题的措施; 这些变动有助于防止出现一些内核崩溃的情形。

  修正了内核的 UMA 内存分配器中与统计有关的部分代码中的问题。 这个问题会导致内存分配失败的计数 (可以通过 netstat -m 查看) 错误地增加。

  FreeBSD 可以在 Xbox 上运行了, 这一架构与 i386 几乎完全相同。 关于开发的最新进展, 请访问 http://www.FreeBSD.org/platforms/xbox.html


2.2.2 硬件支持

  新增了 amdsmb(4) 驱动。 它提供了对 AMD-8111 SMBus 2.0 控制器的支持。

  新增了 OpenIPMI 兼容驱动 ipmi(4)。 OpenIPMI (智能平台管理接口) 是一个设计用来实现远程监视和控制服务器、 网络和电信平台的开放标准。

  在 crypto(9) 子系统中加入了对于 VIA C3、 Eden 和 C7 处理器中 PadLock 安全协处理器的支持。 更多信息可以在 padlock(4) 联机手册中找到。

  新增了 nfsmb(4) 驱动, 用于支持 NVIDIA nForce 2/3/4 SMBus 2.0 控制器。


2.2.2.2 网络接口设备支持

   ath(4) 驱动更新到了HAL 版本 0.9.17.2。

   ath(4) ath_hal(4) 以及 ath_rate_sample 驱动, 已加入默认的 GENERIC 内核。

  对 bce(4) 驱动进行了一系列改善其稳定性的改进。 对用户可见的一项变动是禁用了发送方的校验和减负, 这样做的原因是硬件无法正常完成这项工作。

  em(4) 驱动更新到了来自 Intel 的 6.2.9 版。 除了其它变动之外, 它提供了对一系列新网卡的支持。 当定义了预编译符 EM_FAST_INTR 时, 会启用可选的 “快速中断” 处理。 在这版驱动中实现的 “快速中断” 处理, 会显著改善某些情况下的性能, 但在另一些情况下, 则可能带来一些稳定性方面的问题。

  对 iwi(4) 驱动进行了一系列改进和修复。 这个驱动现在需要 net/iwi-firmware-kmod port/package 提供的固件; 而较早的版本则使用 net/iwi-firmware port/package。

  my(4) 驱动是 MPSAFE 的了。

   nve(4) 驱动更新到了 1.0-0310 版 (2005 年 11 月 23 日)。 它也提供了 altq(4) 支持。

  sk(4) 驱动是 MPSAFE 的了。

  新增了 stge(4) 驱动。 它支持 Sundance/Tamarack TC9021 千兆以太网控制器, 移植自 NetBSD。


2.2.3 网络协议

  从不同的 bpf(4) 上获取的包的时间戳均为一致的了。

  新增了 enc(4) IPsec 过滤伪设备。 它使得使用 pfil(9) 框架的防火墙能够在发出包加密前和进入包解密后检测 (并过滤) IPsec 流量。

  sysctl 变量 net.inet.ip.portrange.reservedhighnet.inet.ip.portrange.reservedlow 对 IPv6 也起作用了。

  删去了内核选项 IPFIREWALL_FORWARD_EXTENDED。 这个选项的作用是允许 ipfw(4) 将包转移到本机的目的地址。 这现在是在启用了 IPFIREWALL_FORWARD 选项的内核的默认行为。

   ipfw(4) 包过滤器新增了对规则关键字 taguntag 的支持。 当包匹配了包含 tag 关键字的规则时, 就会在其上关联一个指定的、 范围为 0 至 65535 的数字。 tag 的作用是作为一个内部的标记 (它并不会作为包的一部分发出), 以便后续的规则能够识别这些包, 例如, 通过使用 tagged 规则选项。 要了解进一步的细节, 请参见 ipfw(8)

   ng_ether(4) Netgraph 节点默认不再覆盖发出的以太网帧中的 MAC 地址了。

  新增了用于支持管理在内核中与数据相关的 mbuf tag 的 Netgraph 节点 ng_tag(4)

  为 tun(4) 驱动增加了 kqueue(2) 操作支持。

  FreeBSD 6.1-RELEASE 的 IPv6 实现有一个会导致点对点接口显示奇怪的错误消息的问题。 该问题已被修正。

  IPv6 link-local 地址现在只有在 rc.conf(5) 中配置了 ipv6_enable 时才会启用了。

  修正了导致在某些 IPv6 环境中 carp(4) 工作不正常的问题。


2.2.4 磁盘及存储

   arcmsr(4) 驱动已升级至 1.20.00.13 版本。

   ata(4) 驱动能够支持 USB 大容量存储 (mass storage) 类的设备了。 您可以通过在内核编译配置文件中加入一行 device atausb 或加载内核模块 atausb 来启用它。 注意这个功能不能与 umass(4) 驱动并存。

   ata(4) 驱动更新到了与 FreeBSD CURRENT 相同的版本。

   geli(8) 提供了对磁盘上的加密数据进行完整性检查 (数据验证) 的能力。 注意加密算法目前是通过 geli(8) 控制程序的 -e 选项来指定的了; 而 -a 选项则用于指定验证算法。

   isp(4) 驱动更新到了与 FreeBSD CURRENT 相同的版本。


2.2.5 文件系统

  修正了一系列与 devfs(5) 有关的上锁问题。 这些变动会阻止死锁的出现。

  新增了 linsysfs(5) 伪文件系统驱动。 它提供了 Linux sys 文件系统的一个子集, 并为某些 Linux 执行文件 (例如 LSI MegaRAID SAS 工具) 所必需。

  修正了 FreeBSD 6.1-RELEASE 上同时使用空间配额和快照时发生的死锁问题。

  修正了 FreeBSD 6.1-RELEASE 中由于全局锁 (Giant) 泄漏导致的 NFS 服务器性能下降的问题。


2.3 应用程序变动

  修订并扩展了 asf(8) 工具。 它能够使用包括 kvm(3) 在内的许多接口进行操作, 因而不仅能支持运行中的系统, 也能分析内核崩溃转存了。

  新增了 OpenBSM 的用户态工具 audit(8) auditd(8) auditreduce(1) 以及 praudit(1)

  cp(1) 工具新增了 -l 选项, 表示建立源文件的硬连接, 而非复制它们。

  引入了 csup(1) 工具。 这是一个与 CVSup 兼容的, 使用 C 语言撰写的客户端程序。 请注意它目前只支持检出模式。

   dhclient(8) 程序在执行 DHCP 请求时会发出本机配置的主机名了。

  du(1) 程序新增了 -n 标志, 表示忽略设置了 nodump 标志的文件和目录。

   find(1) 程序新增了 -Btime 和一些相关的其它参数, 可以用于书写与文件创建时间有关的表达式。

  新增了用于对 FreeBSD 基本系统进行二进制更新的 freebsd-update(8) 工具。

   fsdb(8) 工具新增了用于修改 UFS2 文件系统创建时间的 btime 命令。

   fsdb(8) 工具新增了用于查找持有特定磁盘块的 inode 的 findblk 命令。

  从 NetBSD 汇入了 getent(1) 工具。 它能够以 nsswitch.conf(5) 指定的顺序提取并显示来自管理数据库 (如 hosts) 的信息。

  id(1) 工具新增了 -A 参数, 用于显示审计属性, 包括审计用户 id。

   iostat(8) 工具新增了 -x 参数 (灵感源自 Solaris) 用于显示磁盘的扩展统计信息。 如果同时指定另一个新增的 -z 参数, 则对于没有活动的磁盘, 就不输出统计信息了。

   jail(8) 程序新增了 -s 选项, 该选项用于指定 jail 的 securelevel。

   jexec(8) 工具新增了 -u-U 参数, 用于指定执行命令的用户名信任状。

   logger(1) 工具新增了 -P 选项, 用于指定向哪个端口发出 syslog 消息。

  ls(1) 工具新增了 -U 参数, 表示按文件的创建时间排序。

   mount(8) 工具新增了对 fstab(5) 关键字 late 的支持。 通过在命令行指定对应的 -l 就可以挂载这些 “late (延后挂载)” 的文件系统了。

   ping(8) 命令新增了用于指定等待回应超时时间的 -W 选项。

   pkill(1) 工具 (也称为 pgrep(1)) 从 /usr/bin 转移到了 /bin, 以便为启动脚本所利用。 为了保持向前兼容性, 在原先的位置建立了符号连接。

  在 libc 中加入了与 GLIBC 兼容的可扩展 printf(3) 实现。 只有定义了环境变量 USE_XPRINTF, 或将全局变量 __use_xprintf 设为大于 0 的数字时才会使用它。 目前对五个扩展提供了支持: %H (转显为十六进制)、 %T (time_t 和其它与时间有关的数据结构)、 %M (errno 对应的消息)、 %Q (用双引号括起来, 并做转义的字符串)、 %V ( strvis(3) 格式的字符串)。

  在 FreeBSD 的 libc 中的 DNS 解析库, 已更新为 BIND 9.3.3 的版本。

   tail(1) 工具新增了用于禁止在追踪多个文件时显示标题的 -q 选项。

   traceroute(8) 新增了用以显示发送和接收包之间差异的 -D 选项。

   traceroute(8) 工具新增了用于设置探测包的固定目的端口的 -e 选项。 这对在进行包过滤的防火墙后面追踪时很有用。

   traceroute(8) 能够对 ICMP 不可达消息进行完整解码了。

  编译器工具套件能够为使用 ARM 处理器的系统生成可执行文件了。


2.3.1 /etc/rc.d 脚本

  新增了用于 OpenBSM auditd(8)auditd 脚本。

  修正了 FreeBSD 6.1-RELEASE 中 rc.d/jail 启动脚本中的一处许多使用 jail 的用户遇到的问题。


2.4 基本系统包含的第三方软件

  BIND 从 9.3.1 更新到了 9.3.3。

  GCC 从 3.4.4 更新到了 3.4.6。

  IPFilter 从 4.1.8 更新到了 4.1.13。

  less 从 v381 更新到了 v394。

  libpcap 从 0.9.1 更新到了 0.9.4。

  lukemftpd 从 NetBSD 2004 年 8 月 9 日的快照版本更新到了 NetBSD 2006 年 8 月 31 日的快照版本。

  netcat 从 2005 年 2 月 4 日的 OpenBSD 快照版本, 更新到了 OpenBSD 3.9 中附带的版本。

  OpenSSH 由 4.2p1 更新到了 4.5p1。

  sendmail 由 8.13.6 更新到了 8.13.8。

  tcpdump 由 3.9.1 更新到了 3.9.4。

  时区数据库从 tzdata2005r 版升级到了 tzdata2006g 版。

  引入了 TrustedBSD OpenBSM 版本 1.0 alpha 12。 这是对 Sun 基础安全模块 (Basic Security Module, BSM) 审计 API 及文件格式, 以及用以支持 Mac OS X 和 FreeBSD 操作系统的一些本地扩展的实现。 这也包含了一系列用于提取审计记帐信息并转换为文本的命令行工具, 以及关于这些命令、 文件格式和 API 的文档。 为实现此功能, 新增了内核选项 AUDIT/var/audit 目录, 以及 audit 用户组。

  zlib 由 1.2.2 版升级到了 1.2.3 版。


2.5 Ports/Packages Collection 基础结构

   pkg_add(1) 新增了 -F 参数用以禁用关于同一 package 是否已安装的检查。


2.6 发行版建造工程和功能集成

  对现有的 sysinstall(8) 工具的分区算法进行了修改。

  先前的 sysinstall(8) 程序中存在一个导致在没有明确选择任何软件包时, 不安装内核的问题。 这一问题已经修正。

  修正了导致 sysinstall(8) 有时无法从多个 CDROM 卷上安装预编译包的问题。

  新增了 /media 目录, 用于作为可移动介质, 如 CDROM、 软盘、 USB 驱动器等的挂载点。

  支持的 GNOME 桌面环境 (x11/gnome2) 的版本, 从 2.12.3 升级到了 2.16.1。 作为更新的一部分, 默认的 GNOME (及其相关程序) 前缀从 /usr/X11R6 挪到了 /usr/local。 这个版本的 GNOME 中也加入了对于硬件抽象层 (HAL) 的支持, 这使得它能够自动挂接可移动介质、 自动播放 CD, 并提供集成度更好的电源控制能力。

  支持的 KDE 桌面环境 (x11/kde3) 的版本, 从 3.5.1 升级到了 3.5.4。

  受支持的 Linux 模拟环境现在已更新为使用 emulators/linux_base-fc4 包提供的库了。


2.7 文档

  将 NTP 的联机手册更新到了 4.2.0, 以便与 FreeBSD 中包含的版本相适应。

  对现有功能的文档进行了增补, 并增加了下列联机手册: nanobsd(8) sysctl(9)


3 从先前版本的 FreeBSD 升级

  通过源代码升级到 FreeBSD 6.2-RELEASE, 则应使用 FreeBSD 5.3-RELEASE 或更高版本。 使用旧版的系统的用户, 如果想要升级到 6.2-RELEASE, 则需要首先升级到 FreeBSD 5.3 或更新的版本, 然后再升级到 FreeBSD 6.2-RELEASE。

重要: 很显然,升级 FreeBSD 时,应该首先备份 所有 数据和配置文件。


这份文档,以及其他与FreeBSD发行版本有关的文档,都可以在 http://www.FreeBSD.org/snapshots/下载。

在遇到关于FreeBSD的技术问题时,请首先阅读 文档 之后再考虑联系 <questions@FreeBSD.org>。

所有 FreeBSD 6.2-STABLE 的用户都应该订阅 <stable@FreeBSD.org> 邮件列表。

关于这份文档的任何问题,请致信 <doc@FreeBSD.org>。