FreeBSD/amd64 5.5-RELEASE 发行说明

The FreeBSD Project

$FreeBSD: src/release/doc/zh_CN.GB2312/relnotes/common/new.sgml,v 1.1.2.7.2.1 2006/05/13 05:24:18 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 5.5-RELEASE 的发行说明, 概括了 FreeBSD 基本系统自 5.4-RELEASE 以来所做的改动。 本文档同时列举了自前一发行版发布以来所有适用的安全公告, 以及对于 FreeBSD 内核以及系统附带的应用程序所做的重要修改。 在升级时所需要注意的一些问题, 也进行了简略的介绍。


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

1 简介

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

  这是一份 FreeBSD 5.5-RELEASE 的 release 发布包。 您可以从 ftp://ftp.FreeBSD.org/ 或其他镜像那里得到它的副本。 关于这个 (或其他) release 发布包的更多信息,可以在 FreeBSD 手册 中的 ``Obtaining FreeBSD''附录 中找到。

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


2 最新变动

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

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


2.1 安全公告

  由于在使用超线程技术 (HTT) 的处理器上存在信息泄露漏洞, 增加了 machdep.hyperthreading_allowed sysctl 变量。 在 FreeBSD CURRENT 上, 其值默认设为 1 (启用 HTT), 而在 4-STABLE 和 5-STABLE 这两个开发分支, 以及受支持的安全修正分支上则是 0 (禁用 HTT)。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:09.htt

  发现并修正了 tcpdump(1) 工具中一处使恶意的远程用户, 能够通过发出特制的数据包来引发拒绝服务的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:10.tcpdump

  发现并修正了 gzip(1) 工具中的两处问题。 这些问题使得本地用户能够在解压缩文件时修改任意文件的属性, 并覆盖任意本地文件。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:11.gzip

  发现并修正了 ipfw(4) 中的一处可能导致包在查询表中无法正确匹配的问题。 这一问题只影响 SMP 和启用了 PREEMPTION(抢占) 内核选项的 UP 机器。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:13.ipfw

  发现并修正了 bzip2(1) 的两处安全问题。 这包括一处拒绝服务攻击问题, 以及非授权的文件权限修改问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:14.bzip2

  修正了 FreeBSD 的 TCP 协议栈中的两处问题。 这些问题会使得攻击者能够让暨存的 TCP 连接挂起, 从而导致拒绝服务。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:15.tcp

  发现并修正了 zlib 库中的两处缓冲区溢出问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:16.zlibFreeBSD-SA-05:18.zlib

  发现并修正了可能导致在 jail(2) 中运行的进程攫取隐藏的 devfs(5) 文件节点访问权的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:17.devfs

  发现并修正了在 ipsec(4) 实现中的一处程序设计失误, 这个失误会导致 AES-XCBC-MAC 验证采用不变的密钥。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:19.ipsec

  发现并修正了一个 cvsbug(8) 在处理临时文件时的问题。 这一问题使得攻击者能够以执行 cvsbug(8) 工具的用户身份修改或覆盖文件。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:20.cvsbug

  发现并修正了 OpenSSL 中一处导致允许攻击者强制使用较早版本 SSL (包含已知的弱点) 的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-05:21.openssl

  在 texindex(1) 中发现并修正了一处临时文件漏洞, 这一漏洞可能导致本地的攻击者以运行 texindex(1) 工具的用户身份覆盖文件。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:01.texindex

  在 ee(1) 中发现并修正了一处临时文件漏洞, 这一漏洞可能导致本地的攻击者以运行 ee(1) 的用户身份覆盖文件。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:02.ee

  发现并修正了 cpio(1) 工具中的一系列漏洞。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:03.cpio

  发现并修正了两个可能导致一部分内核内存被泄露给用户的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:06.kmem

  发现并修正了 pf(4) 中 IP 分片处理过程中一个可能导致在特定情况下崩溃的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:07.pf

  发现并修正了 TCP/IP 协议栈中 选择性确认 (SACK) 支持中的一个问题, 这个问题会导致内核在接收到特定的包序列时陷入死循环。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:08.sack

  发现并修正了 OpenSSH 内部记帐机制中的一处问题, 这一问题会导致主进程误认为系统过载, 并停止接收客户端的请求。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:09.openssh

  发现并修正了 NFS 服务器代码中一处可能导致在服务器收到长度为零的消息时崩溃的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:10.nfs

  发现并修正了 fast_ipsec(4) 实现中的一处可能导致安全关联序号无法更新, 进而导致数据包无条件地通过序号验证检查的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:11.ipsec

  发现并修正了 opiepasswd(1) 中的一处可能导致非特权用户, 能够在某些情况下为 root 用户配置 OPIE 身份验证的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:12.opie

  发现并修正了 sendmail(8) 中的一项可能导致远程攻击者以执行 sendmail 的用户, 通常是 root 身份执行任意代码的问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:13.sendmail

  发现并修正了在 AMD 第7和第8代处理器上运行的 FreeBSD 内核的一处信息泄露问题。 要了解进一步详情, 请参阅安全公告 FreeBSD-SA-06:14.fpu


2.2 对于内核的改动

  

  


2.2.1 引导区和 loader 的变化

  autoboot 命令现在能够在当 autoboot_delay 变量设置为 -1 时完全阻止用户打断启动进程了。


2.2.2 硬件支持

  默认情况下双核处理器 (例如 Intel Core Duo) 在运行启用了 SMP 的内核时, 会同时使用可用的两个核了。

  


2.2.2.1 多媒体支持

   uaudio(4) 驱动新增了一些功能, 其中包括多输入音量控制, 以及某些设备上的录音能力。

  


2.2.2.2 网络接口设备支持

   bge(4) 驱动能够支持 BCM5714 和 5789 芯片了。

   ixgb(4) 驱动是 MPSAFE 的了。

  使用 ndis(4) 驱动封装机制的设备驱动, 采用了与之前不同的构建和加载机制。 ndis(4) 驱动现在可以作为模块预编译, 也可以静态联编导内核中了。 驱动程序可以使用 ndisgen(8) 工具来构建, 其结果是生成能够使用 kldload(8) 直接加载的内核模块。

  从 HEAD 合并了许多 (但并非全部) 对 ndis(4) 系统所做的改进。

  xl(4) 驱动支持 polling(4) 了。


2.2.3 网络协议

  加入了始创于 NetBSD 的网桥实现 if_bridge(4)。 它支持 IEEE 802.1D 生成树协议、 为每个网桥分配独立的接口设备、 过滤网桥数据包、 镜像口 (将传送网桥收到的所有包的副本) 等功能。 此外, ifconfig(8) 工具也能够配置 if_bridge(4) 了。


2.2.4 磁盘及存储

   twa(4) 驱动已升级至 3ware 网站上发布的 9.3.0.1 版。


2.3 应用程序变动

   gethostbyname(3) gethostbyname2(3), 以及 gethostbyaddr(3) 这些函数是线程-安全的了。

   getnetent(3) getnetbyname(3), 以及 getnetbyaddr(3) 这些函数是线程-安全的了。

   getprotoent(3) getprotobyname(3), 以及 getprotobynumber(3) 这些函数是线程-安全的了。

  加入了 bsdiff(1) bspatch(1) 工具。 这些工具可以用来针对二进制的文件建立和应用补丁。

   cmp(1) 工具新增了 -h 选项表示比较符号连接本身, 而非连接所指的文件。

   getservent(3) getservbyname(3), 以及 getservbyport(3) 这些函数是线程-安全的了。

   kldstat(8) 工具新增了用于返回特定内核模块状态的 -m 选项。

   getprotoent(3) getprotobyname(3), 以及 getprotobynumber(3) 函数是线程安全的了。

   getservent(3) getservbyname(3), 以及 getservbyport(3) 函数是线程安全的了。

   kdump(1) 程序新增了用以省略 I/O 数据显示的 -s 参数。

   kldstat(8) 工具新增了用以返回特定内核模块状态的 -m 选项。

  在 libpthreadlibthr, 以及 libc_r 中的默认线程本地堆栈尺寸得以增加。 在 32-位 平台上, 主线程默认使用 2MB 的堆栈, 而其他线程则是 1MB 的堆栈。 在 64-位 平台上, 默认的堆栈尺寸则相应是 4MB 和 2MB。

   netstat(1) 工具新增了用于显示接口统计模式的 -h 参数, 它表示以便于人类阅读的方式显示接口的全部统计数据。

   ping(8) 工具新增了 ``扫荡式 ping'', 表示每步增加 icmp(4) 包的尺寸。 这对于测试存在问题的信道、 MTU 问题, 以及网络中的流量策略功能都非常有用。

  加入了用于管理电源消耗的 powerd(8) 程序。

   rfcomm_sppd(1) 能够支持在指定服务名的同时指定 -c 选项和通道号了。 支持的名字包括: DUN (拨号网络)、 FAX (传真)、 LAN (使用 PPP 访问 LAN), 以及 SP (串口)。

  rm(1) 工具新增了 -I 选项, 表示在递归删除目录或一次删除超过 3 个文件时进行提示 (一次)。

   sed(1) 新增了用于启用输出行缓冲的 -l 选项。

  sh(1) 新增了 times 内建命令。

  加入了用以显示 UFS 文件系统中快照位置的 snapinfo(8) 工具。


2.3.1 /etc/rc.d 脚本

  新增了 bluetooth 脚本。 这个脚本会在设备连上/断开时, 由 devd(8) 调用并启动/停止对应的设备, 而无须管理员手工干预。 这个脚本的默认配置参数在 /etc/defaults/bluetooth.device.conf, 这些默认值可以用 /etc/bluetooth/$device.conf 来覆盖 (这里的 $deviceubt0btcc0, 等等。) 要了解进一步详情, 请参阅 bluetooth.conf(5)

  rc.d/jail 启动脚本新增了 jail_name_flags 变量, 用于对应的设置 jail(8) 的命令行参数。


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

  BIND 从 9.3.1 更新到了 9.3.2。

  sendmail 从 8.13.3 更新到了 8.13.6。

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


2.5 Ports/Packages Collection 基础结构

   pkg_add(1) 命令新增了 -P 参数, 它与 -p 参数类似, 区别在于给定的前缀也会用于依赖的其他包。

   pkg_add(1) pkg_create(1) 这两个工具新增了 -K 参数, 表示将 package 默认保存至当前目录 (如果有定义 PKGDIR 则保存在那个目录)。

   pkg_create(1) 程序新增了 -x 参数, 用以使用基本正则表达式来表示 package 的名字, -E 标志表示使用扩展正则表达式, 而 -G 则表示精确匹配。

   pkg_version(1) 新增了 -I 参数, 表示使用 INDEX 作为判断预编译包是否过时的唯一依据。

   pkg_version(1) 工具新增了 -o 参数, 用于显示在 package 生成时所记录的来源 (origin) 目录而不是其本身的名字, 以及 -O 参数表示只列出所有注册来源为指定来源的 package。

  新增了 portsnap(8) 工具 (sysutils/portsnap) 到 FreeBSD 基本系统中。 这是一个安全、 便于使用、 快速、 轻量级的工具, 能够很好地帮助用户保持他们的 ports tree 与官方版本同步。

  删去了从 Ports 套件安装的启动脚本的后缀。 这意味着 foo.sh 都将改名为 foo, 并且名为 foo.ORG 的脚本也会被执行。 您应重新安装所有安装了启动脚本的 package, 并清理 local_startup 目录中多余的文件。

  新增了两个 rc.conf 变量, ldconfig_local_dirsldconfig_local32_dirs。 这两个变量用于指定本地的 ldconfig(8) 目录列表。

  pkg-plist 中的 @cwd 命令支持不指定目录参数了。 如果没有指定目录参数, 则它将把当前工作目录设置为 @cwd 命令给出的第一个前缀。


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

  支持的 GNOME 桌面环境 (x11/gnome2) 的版本, 从 2.10.2 升级到了 2.12.3。

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

  支持的 Perl 解释器 (lang/perl5.8) 的版本, 从 5.8.7 升级到了 5.8.8。

  支持的 Xorg 视窗系统 (x11/xorg) 的版本, 从 6.8.2 升级到了 6.9.0。


2.7 文档

  


3 从先前版本的 FreeBSD 升级

  如果您正从先前版本的 FreeBSD 升级, 一般可以选择下述方法之一:



  请参阅 INSTALL.TXT 文件以获得更进一步的信息, 特别是在开始安装 之前。 如果您正从源代码升级, 也请务必阅读 /usr/src/UPDATING

  最后, 如果您想随 FreeBSD 的 -STABLE 或 -CURRENT 开发分支升级, 则一定要先阅读 FreeBSD 使用手册 中的 ``-CURRENT 和 -STABLE 的对比'' 一节。

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


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

在遇到关于FreeBSD的技术问题时,请首先阅读 文档 之后再考虑联系 <[email protected]>。

关于这份文档的任何问题,请致信 <[email protected]>。