|
FreeBSD 7.2-RELEASE 发行说明 The FreeBSD Project
版权 © 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 The FreeBSD Documentation Project
$FreeBSD$ 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 及其分支机构在美国和其他国家的商标或注册商标。
Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media, 和 Windows NT 是 Microsoft Corporation 在美国和/或其他国家的商标或注册商标。
Sparc, Sparc64, SPARCEngine, 以及 UltraSPARC 是 SPARC International, Inc 在美国和其他国家的商标。 包含 SPARC 商标的产品基于 Sun Microsystems, Inc. 开发的架构。
许多制造商和经销商使用一些称为商标的图案或文字设计来彰显自己的产品。 本文档中出现的,为 FreeBSD Project 所知晓的商标,后面将以 '™' 或 '®' 符号来标注。
这份 FreeBSD 7.2-RELEASE 的发行说明, 概括了 FreeBSD 基本系统在 7.2-STABLE 开发线上所做的改动。 本文档列举了自前一发行版本以来所有适用的安全公告, 以及对于 FreeBSD 内核以及系统附带的应用程序所做的重要修改。 对在升级时需要注意的一些问题,也进行了简略的介绍。
目录
1 Introduction
2 最新变动
2.1 安全公告
2.2 对内核的改动
2.2.1 引导加载器变动
2.2.2 硬件支持
2.2.3 网络协议
2.2.4 磁盘和存储
2.2.5 文件系统
2.3 用户态环境变动
2.4 基本系统中的第三方软件
2.5 Ports/Packages 套件基础设施
2.6 交付工程与系统集成
3 从先前版本的 FreeBSD 升级
1 Introduction
这篇文档是 FreeBSD 7.2-RELEASE 的发行版说明。 它介绍了 FreeBSD 上最近新增、变化或删除的功能。 此外, 它也对从较早版本的 FreeBSD 进行升级时需要注意的问题进行了说明。
这是一份 FreeBSD 7.2-RELEASE 的 release 发布包。 您可以从 ftp://ftp.FreeBSD.org/ 或其他镜像那里得到它的副本。 关于这个 (或其他) release 发布包的更多信息,可以在 FreeBSD 手册 中的 “如何获得 FreeBSD”附录 中找到。
我们建议所有的用户在开始安装 FreeBSD 之前首先参考与这一版本对应的勘误信息。勘误文档将随时更新,以便为用户提供在发布工程后期或该版本发布之后 “新发现的” 问题和相关信息。 通常,这包括已知的 bug,安全公告,以及对于文档的修订内容。 最新的 FreeBSD 7.2-RELEASE 勘误信息可以从 FreeBSD 网站获得。
2 最新变动
这一节描述了 FreeBSD 自 7.1-RELEASE 以来最明显的新功能和变化。
通常情况下, 发行版说明文档中会介绍自 7.1-RELEASE 以来所发布的安全公告、新增的驱动或硬件支持、 新增的命令或选项、 重要的错误修补,以及基本系统中来自第三方的软件升级。 重要的 ports 和 packages 变动,或关于交付工程的变动也会在这份文档中体现。 显而易见地, 发行说明不可能涵盖 FreeBSD 版本之间的每一个微小变动; 这篇文档主要关注的,仍然是安全公告,用户可以察觉的修改,以及重要的架构改良。
2.1 安全公告
这一版本中修正了下列安全公告所指明的问题。 如欲了解进一步的信息, 请参阅位于 http://security.FreeBSD.org/ 的完整安全公告内容。
公告 日期 主题
SA-09:01.lukemftpd 2009 年 01 月 07 日
lukemftpd( 中的跨站请求伪造问题SA-09:02.openssl 2009 年 01 月 07 日
OpenSSL 对格式不正确的签名检查存在问题SA-09:03.ntpd 2009 年 01 月 13 日
ntpd 密码学签名绕过问题SA-09:04.bind 2009 年 01 月 13 日
BIND DNSSEC 对格式不对的签名检查存在问题SA-09:05.telnetd 2009 年 01 月 13 日
telnetd 任意代码执行问题SA-09:06.ktimer 2009 年 03 月 23 日
本地特权提升问题SA-09:07.libc 2009 年 04 月 04 日
db(3) 中的信息泄露问题SA-09:08.openssl 2009 年 04 月 22 日
OpenSSL 远程可触发的崩溃问题
2.2 对内核的改动
内核调试器 ddb( 新增了 show mount 子命令。
FreeBSD DTrace 子系统新增了对于进程执行的探测点 (probe) 支持。
[amd64] FreeBSD 内核虚拟地址空间增加到了 6GB。这使得内核子系统能够用到更大的虚拟内存地址空间。 例如, zfs( 自适应替换快取缓存 (ARC) 需要使用大量的内核内存来缓存文件系统数据,因而会受益于可用地址空间的增加。 请注意, 内核内存映射的尺寸上限是总量的 60% 而不是其全部。
对 jail( 子系统进行了更新。 变动包括:
* 支持在一个 jail 上指定多个 IPv4 及 IPv6 地址了。 此外, 还支持不在 jail 上配置任何 IP 地址, 这种配置基本上相当于可见进程受限且没有网络的 chroot 环境。
* 支持在 jail 中使用 SCTP ( sctp(4)) 和 IPv6 了。
* 实现了使用 cpuset(1) 来指定 CPU 绑定。 请注意目前的实现允许 jail 中的超级用户改变 CPU 绑定,这一行为将在未来的版本中予以修正。
* 可以按指定的路由 FIB 启动 jail( 了。
* 为 ddb( 新增了 show jails 子命令。
*新增了在 64-位 系统中使用 32-位 jail 工具管理 jail 的支持。
*jail( 中 jail 和 prison 的版本均进行了更新以支持这些新特性。
kld(4) 支持从内核模块为 FreeBSD 系统调用翻译层安装 32-位 系统调用了。
ktr(4) 新增了 KTR_CALLOUT class 的 KTR 跟踪点, 用以描述 callout 回调完成执行。
用以对已经分配的 System V 共享内存进行记账的变量由 int 改为了 size_t。 这使得在 64-位 硬件架构上使用超过 2 GB 的共享内存段成为可能。 请留意 shmctl(2) 中的 BUGS 部分, 以及 /usr/src/UPDATING 中的相关描述以了解这一临时解决方案的限制。
sysctl(3) 叶节点新增了一个表示其为 MPSAFE 的标志。
FreeBSD 32-位 系统调用翻译层新增了为 VFS_AIO 安装 32-位系统调用的支持。
[amd64, i386] FreeBSD 虚拟内存子系统新增了对于 Superpages 的支持。 Superpages 是一项旨在现代处理器上令 TLB (translation lookaside buffer, 快速页表转换缓冲) 能够将大块物理内存区域映射到虚拟地址空间中的技术。这可以帮助使用大量共享内存的应用节省内存开销, 并且由于减少了 TLB 缓冲未命中现象从而改善性能。 默认情况下这一特性并不开启, 您可以通过将引导加载器变量 vm.pmap.pg_ps_enabled 设为 1 来启用它。
2.2.1 引导加载器变动
boot( 新增了对某些版本 Windows® 放入 MBR 的 4-字节 卷 ID,以及在一些支持的 BIOS 上通过按 F6 来启动 PXE 的支持。
[i386] 对 boot( BTX 加载器进行了改进。 这修正了一些较新的机器上 7.1-RELEASE 和较早版本 FreeBSD 会遇到的一些引导方面的问题。
loader( 可以在网络引导的过程通过 kenv(2) 变量来获得 DHCP 选项了。
修正了 loader(8) 的一个程序错误。 类似下面的配置可以正确工作了:
loader_conf_files="foo bar ${variable}"
2.2.2 硬件支持
[sparc64] FreeBSD 新增了对 Ultra SPARC III (Cheetah) 系列处理器的支持。
acpi(4) 子系统新增了一组 sysctl(8) 变量 debug.batt.batt_sleep_ms。 在使用智能电池的笔记本上,启用电池监控软件会导致来自 atkbd(4) 的按键失灵。 这个 sysctl 变量在状态检查代码中增加了若干毫秒的延时, 以绕过这个问题。
acpi_asus(4) 驱动程序支持 Asus A8Sr 笔记本了。
[powerpc] 新增了对于 AltiVec, 一种浮点及整数 SIMD 指令集的支持。
新增了 cpuctl(4) 驱动程序, 它提供了与系统 CPU 之间的设备 /dev/cpuctl 作为接口。新增的 cpuctl(4) 功能包括获取 CPUID 信息、 读写机器专用寄存器 (machine specific registers, MSR), 以及更新 CPU 固件等。
cpufreq(4) 驱动新增了加载器变量 hw.est.msr_info。 当此变量设为 1 时, 驱动会尝试创建只包含最高和最低时钟频率的简单列表, 如果无法从 ACPI 或静态表中获得的话。 默认情况下不启用。
[amd64, i386] 当 TSC 是 P-状态 无关不变量时, CPU 频率变化通知会被禁止。 另外,还增加了引导加载器变量 kern.timecounter.invariant_tsc,当设为非零数值时, 表示强制这一行为。
atkbd(4) 驱动程序在轮询模式启用, 并调用键盘回调函数时, 会禁用中断处理程序。 这修正了在多 CPU 系统中, 当启用了 kbdmux(4) 时,在 mountroot 提示符处出现重复或遗失击键的问题。
在 pci(4) 子系统中, 当启用 MSI/MSIX 时会禁用 INTx。 这一变动修正了一系列与中断风暴有关的问题。
[sparc64] 新增了用于支持 Schizo Fireplane/Safari to PCI 2.1 和 Tomatillo JBus to PCI 2.2 桥的 schizo(4) 驱动程序。
新增了用于采用 USB 接口的 3G 卡和软件狗的 u3g(4) 驱动程序, 它支持包括 Vodafone Mobile Connect Card 3G、 Qualcomm CDMA MSM、 华为 E220、 Novatel U740、 Sierra MC875U 等在内的一系列设备。 这提供了对多种由 3G USB/PC Card 调制解调器提供的 USB-到-串口 接口卡的支持, 这些设备可以通过 ucom(4) 驱动程序来驱动, 其接口类似于 tty(4)。
sched_ule(4) 调度器新增了引导加载器变量 machdep.hyperthreading_enabled,类似 sched_4bsd(4) 对应的变量。 需要注意的是, 这个变量在系统运行过程中不能改变。
2.2.2.1 多媒体支持
agp(4) 驱动程序新增了对 Intel G4X 系列图形芯片组的支持。
对 DRM, 直接渲染管理器内核模块进行了更新, 这个模块能够向 DRI 客户提供直接访问硬件的能力。 这次更新改进了对 AMD/ATI r500、 r600、 r700、 以及基于 IGP 的芯片、 XGI V3XE/V5/V8 和 Intel i915 芯片组的支持。
新增了引导加载器变量 hw.drm.msi, 用于控制 DRM 是否使用 MSI。 默认配置是 1 (启用)。
删除了用于 Aureal Vortex 1/2/Advantage PCI 的 snd_au88x0(4) 驱动程序,后者已经很长时间不能使用了。
更新了 snd_hda(4) 驱动程序。 这些更新包含了对 HDA 总线上多个编码解码器、 同一编码解码器上多个功能组、同一功能组上多个音频设备、 数字 (SPDIF/HDMI) 音频输入输出、 挂起/恢复,以及部分多轨音频的支持。
请注意, 由于新增的 HDMI 音频和逻辑音频设备支持, 更新后的驱动程序通常会提供多个 PCM 设备。 这意味着某些情况下默认的音频设备可能不再对应于用户习惯的音频端子。 这种情况下,可以使用音频应用程序的配置, 或通过设置 hw.snd.default_unit sysctl 来全局地加以改变, 具体细节详见联机手册 sound(4)。
2.2.2.2 网络接口支持
ae(4) 驱动程序支持 WoL (Wake on LAN) 了。
[amd64, i386] ale(4) 驱动程序加入到了 GENERIC 内核。
ath_hal(4), Atheros 硬件访问层, 更新到了开放源代码的版本。
对 axe(4) 驱动程序的性能进行了改善, 消除了不必要的上下文切换, 并对 Apple USB 以太网适配器提供了支持。
将 bce(4) 驱动程序的固件更新到了最新版本 (4.6.X)。
ciphy(4) 驱动程序能够支持 Vitesse VSC8211 PHY 了。
cxgb(4) 驱动程序更新到了固件版本 4.7, 并支持硬件 MAC 统计了。
fxp(4) 驱动程序进行了改进。 具体变化包括:
* 可以使用 ifconfig(8) 来控制校验和 offload 功能了。
* 新增了对 82559 及更新型号网卡的 Rx 校验和 offload 的支持。
* 加入了 82550 和 82551 控制器的 TSO (TCP 分片 Offload) 支持。
* 加入了对基于 82550、 82551、 82558、 以及 82559 控制器网卡的 WoL (Wake on LAN) 支持。请注意基于 ICH 的控制器会作为 82559 处理, 而 82557、 较早版本的 82558 以及 82559ER 并不具备 WoL 能力。
* 新增了 VLAN 硬件标签 插入/消除 支持, 以及用于 VLAN 帧的 Tx/Rx 校验和 offload 支持。请注意硬件辅助的 VLAN 只有在基于 82550 或 82551 的控制器上才可以使用。
修正了导致引导加载器变量 hw.igb.ave_latency 无法正常工作的 igb(4) 驱动程序的问题。
ixgbe(4) 驱动程序更新到了 1.7.4 版本。
jme(4) 驱动程序新增了对较新的 JMicron JMC250/JMC260 版本的支持。
对 msk(4) 驱动程序进行了改进。 修正了导致其在某些情况下断线的问题。 新增了硬件 MAC 统计支持,用户可以通过 sysctl 变量 dev.msk.N.stats 来获得这些数据。
mxge(4) 驱动程序支持一些新的硬件, 以及 10GBASE-LRM 和 10GBASE-Twinax 介质类型了。
nfe(4) 驱动程序新增了硬件 MAC 统计支持。
对 re(4) 驱动程序进行了改进。 它能够检测链路状态了。 新增的引导加载器变量 hw.re.prefer_iomap 能够控制内存寄存器映射是否禁用。 这个变量在除了 RTL8169SC 系列之外的其他控制器上的预设值都是 0。
对 rl(4) 驱动程序进行了改进。 它能够检测链路状态了。 此外, 导致它在内存超过 4GB 的系统上无法正常工作的问题也得到了修正。
修正了 sis(4) 关于带 VLAN 标签帧处理方面的问题。
txp(4) 驱动程序能够在所有受支持的平台上运行了。 此外还加入了对 altq(4)、 WoL、启用 VLAN 时的校验和 offload 的支持, 并改进了链路变化处理。 新增了用于访问 MAC 统计的 sysctl 变量 dev.txp.N.stats。 新增了用于控制 Rx 处理程序每次处理帧数量的 sysctl 变量 dev.txp.N.process_limit (预设值为 64, 可以在 16 到 128 之间调整, 单位为帧)。 固件更新到了最新版本。
2.2.3 网络协议 |
|