FreeBSD 8.2-RELEASE 发行说明(2011 年 2 月 24 日)
FreeBSD 项目
版权所有 © 2011 FreeBSD 文档项目
$FreeBSD: stable/8/release/doc/en_US.ISO8859-1/relnotes/article.sgml 219006 2011-02-24 19:11:27Z hrs $
FreeBSD 是 FreeBSD 基金会的注册商标。
IBM、AIX、EtherJet、Netfinity、OS/2、PowerPC、PS/2、S/390 和 ThinkPad 是国际商用机器公司(International Business Machines Corporation)在美国、其他国家或两者的商标。
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 国际公司(SPARC International, Inc)在美国和其他国家的商标。SPARC 国际公司拥有所有 SPARC 商标,并根据许可协议允许其成员正确使用这些商标。
许多制造商和销售商用来区分其产品的名称被宣称为商标。在本文档中出现这些名称时,如果 FreeBSD 项目知晓商标声明,这些名称后将附有“™”或“®”符号。
FreeBSD 8.2-RELEASE 的发布说明包含对 FreeBSD 基本系统在 8.2-STABLE 开发线中所做更改的总结。本文档列出了自上次发布以来发布的相关安全公告,以及 FreeBSD 内核和用户空间的重大变更。还简要介绍了升级的相关事项。
1 介绍
本文档包含了 FreeBSD 8.2-RELEASE 的发布说明。它介绍了 FreeBSD 中最近添加、修改或删除的功能,并提供了一些关于从旧版本 FreeBSD 升级的说明。
此版本的 FreeBSD 8.2-RELEASE 是发布版本。它可以在 ftp://ftp.FreeBSD.org/ 或其任何镜像站点上找到。有关获取此版本(或其他版本)发行版的更多信息,请参阅 FreeBSD 手册 中的 “获取 FreeBSD”附录。
建议所有用户在安装 FreeBSD 之前先查阅发布的勘误。勘误文档会更新其中包含的“突发”信息,这些信息是在发布周期结束时或发布后才发现的。通常,它包含已知的错误、安全公告以及文档修正。可以在 FreeBSD 网站上找到 FreeBSD 8.2-RELEASE 的最新勘误。
2 新特性
本节介绍了自 8.1-RELEASE 以来 FreeBSD 中最显著的新增或更改功能。
典型的发布说明项目包括在 8.1-RELEASE 后发布的安全公告、新的驱动程序或硬件支持、新的命令或选项、重要的错误修复,或第三方软件升级。它们还可能列出重大端口/包或发布工程实践的变化。显然,发布说明不能列出 FreeBSD 在发布之间所做的每一个更改;本文档主要集中在安全公告、用户可见的变化以及主要的架构改进上。
2.1 安全公告
以下安全公告中描述的问题已被修复。更多信息,请查阅各个公告,网址:http://security.FreeBSD.org/.
2010 年 9 月 20 日
bzip2 解压时的整数溢出问题
2010 年 11 月 29 日
OpenSSL 多个漏洞
2.2 内核更改
[ia64] 用于 DMA 缓冲区池的最大页面数已从 256 增加到 1024。r209326
[powerpc] kern.hz
的默认值已从 100 增加到 1000。r209765
[powerpc] SMP 内核现已支持基于 MPC7400 的 Apple 桌面机器,如 PowerMac3,3。r209767
[powerpc] FreeBSD/powerpc 现在支持 DMA 缓冲区,这是需要在 RAM 大于 4GB 的系统上使用的。r211593
[mips] FreeBSD/mips 支持已得到改善。现在支持在带有双核 Sibyte 处理器的 SWARM 上使用 SMP。r215938
[mips] FreeBSD/mips 现在支持 Netlogic Microsystems 的 XLR 和 XLS 多核处理器系列。
[sparc64] FreeBSD/sparc64 现在支持基于预留的物理内存分配,这提供了更好的性能。r215598
[amd64] FreeBSD/amd64 现在始终将 KVA 空间设置为等于或大于物理内存大小。默认大小是根据三分之一的物理内存大小计算的,源自 i386 的代码。由于 amd64 上的内存空间约束并不严格,这一更改有助于防止使用 ZFS 时常见的“kmem_map 太小” Panic 。r214620
[amd64, i386] 对 Intel CPU 的 CPU 拓扑检测已得到改善。r214621
[amd64, i386] ACPI 挂起/恢复功能的支持已得到改善。r215513
[amd64, i386] FreeBSD 内核现在支持 KPI kern_fpu_enter()
和 kern_fpu_leave()
,允许内核子系统使用 Intel SSE(流式 SIMD 扩展)中的 XMM 寄存器文件。r215513
[amd64, i386, ia64] acpi(4) 驱动程序现在仅在 FADT 中指示可用的情况下使用 ACPI 重置寄存器功能。此行为由 sysctl(8) 变量 hw.acpi.handle_reboot
控制,默认值始终设置为 0。r215006
[amd64, i386, ia64] acpi(4) 驱动程序现在支持新的加载器可调项 hw.acpi.install_interface
和 hw.acpi.remove_interface
。更多详情,请参见 acpi(4) 手册页面。r215521
alq(9) 的支持已得到改善。KPI alq_writen()
和 alq_getn()
已扩展为支持可变长度消息,该功能在创建 ALQ 时根据传递给 alq_open()
的参数启用。此外,添加了 ALQ_NOACTIVATE 和 ALQ_ORDERED 参数,分别允许 ALQ 消费者在 I/O 调度和资源获取上拥有更多控制权。这些扩展完全向后兼容。r209788
alq(9) 现在作为内核模块 alq.ko 提供。r209783
ddb(8) 内核调试器现在支持在重置和重启命令中添加可选延迟。这允许管理员在发生无人看管的 Panic 时进入调试器并触发自动文本转储。r209692
ddb(8) 内核调试器现在支持 show cdev
命令。该命令显示所有已创建的 cdev 列表,包括 devfs 节点名称和 struct cdev
地址。r212230
FreeBSD GENERIC 内核现在编译时包含了 KDB
和 KDB_TRACE
选项。从 8.2-RELEASE 起,内核可以在 panic 时通过使用 stack(9) 功能显示堆栈跟踪,而无需像 ddb(8) 这样的调试后端。需要注意的是,这不会改变 GENERIC 内核在 panic 时的默认行为。r214326
以下 sysctl(8) 变量现在也可以作为加载器可调项使用:vm.kmem_size
、vm.kmem_size_max
和 vm.kmem_size_min
、debug.kdb.stop_cpus
、debug.trace_on_panic
和 kern.sync_on_panic
。此外,新增了 sysctl(8) 变量:vm.kmem_map_size
(当前 kmem 映射大小)、vm.kmem_map_free
(kmem 映射中最大的连续空闲范围)、vfs.ncsizefactor
(namecache 的大小因子)以及 vfs.ncnegfactor
(负 namecache 条目的比率)。r213554, r213556, r213560
FreeBSD memguard(9) 框架已改进,能够在更长时间内检测已分配内存的使用后释放问题。更多细节,请参见 memguard(9) 手册页面。r212427
PT_LWPINFO 请求已改进,用于获取导致追踪进程停止的内核线程信息,在 ptrace(2) 进程追踪和调试功能中。现在它报告系统调用的进入和离开事件,以及伴随报告信号的 siginfo_t
的可用性。r214756
FreeBSD crypto(4) 框架(opencrypto)现在支持 XTS-AES(XEX-TCB-CTS,或带有密文盗用的 XEX 基于修改的代码本模式),该模式定义在 IEEE Std. 1619-2007 中。r214254
[amd64] FreeBSD/amd64 内核中的 Xen HVM 支持已得到改善。更多细节,请参见 xen(4) 手册页面。r215788
[amd64, i386] 添加了 qpi(4) 伪总线驱动程序。它支持 Intel QPI 芯片组上的额外 PCI 总线,其中连接了每个插槽的各种硬件,如内存控制器。r214784
2.2.1 启动加载器变更
FreeBSD 现在完全支持 GPT(GUID 分区表)。主头和主分区表的校验和现在得到了正确验证。r213994
[powerpc] 修复了阻止 FreeBSD OpenFirmware 加载器和网络启动正常工作的内存管理问题。r215919, r215920
pxeboot(8) 现在默认使用 NFS 版本 3,而不是版本 2。r212717
2.2.2 硬件支持
[amd64, i386] 已添加 aesni(4) 驱动程序。该驱动支持 Intel CPU 上的 AES 加速器,并加速 crypto(4) 中的 AES 操作。r215633
[amd64, i386] 已添加 aibs(4) 驱动程序。该驱动支持 ASUS 主板中的硬件传感器,并取代了 acpi_aiboost(4) 驱动。r210476
[amd64, i386] coretemp(4) 驱动程序现在支持 Xeon 5500/5600 系列处理器。r211914
[powerpc] FreeBSD/powerpc 现在支持 Apple 系统管理单元中的 I2C 总线。r215694
[powerpc] 添加了支持 PowerMac 11,2 上 CPU 温度传感器的设备驱动程序。r215695
ehci(4)、ohci(4) 和 uhci(4) 驱动程序现在支持低速 BULK 传输模式。r215482
[amd64, i386] ichwd(4) 驱动程序现在支持 Intel NM10 Express 芯片组的 watchdog 定时器。r209952
已添加 tpm(4) 驱动程序,支持受信平台模块(TPM)。r215036
已添加 xhci(4) 驱动程序,支持可扩展主控制器接口(xHCI)和 USB 3.0。r215944
2.2.2.1 多媒体支持
FreeBSD 的 Linux 模拟子系统现在支持 video4linux API。这需要本地的 video4linux 硬件驱动程序,如 multimedia/pwcbsd 和 multimedia/webcamd 提供的驱动程序。
uaudio(4) 驱动程序中的 MIDI 输入缓冲区大小已更改。这修复了输入延迟几秒钟的问题。r215483
已修复 uaudio(4) 驱动程序中的一个问题,该问题导致一些 USB 音频设备无法正常工作。r215484
2.2.2.2 网络接口支持
alc(4) 驱动程序现在支持 Atheros AR8151/AR8152 PCIe 千兆/快速以太网控制器。r212021
已修复 alc(4) 驱动程序中的一个漏洞,该漏洞可能导致在没有插入电缆的情况下启动系统时系统崩溃。此问题在 AR8132 的 EEE PC 中发现。r215003
alc(4) 驱动程序中的 TX 中断调节计时器已从 50ms 减少到 1ms。50ms 的计时器导致 UDP 性能差。r212011
axe(4) 驱动程序已改进,以提高稳定性和 TX 数据包速率的性能。r214297, r214298, r214301
bge(4) 驱动程序现在支持 BCM5718 x2 PCI Express 双端口千兆以太网控制器系列。该系列是 BCM5714/BCM5715 系列的继任者,支持 IPv4/IPv6 校验和卸载、TSO、VLAN 硬件标签、巨型帧、MSI/MSIX、IOV、RSS 和 TSS。当前版本的驱动程序支持除 IOV 和 RSS/TSS 之外的所有硬件功能。r214997
已修复 bge(4) 驱动程序中的一个漏洞,该漏洞导致 BCM57780 上的 TSO 无法正常工作。r211367
已修复 bge(4) 驱动程序中的一个漏洞,该漏洞在仅禁用 RX 校验和卸载时错误地禁用了 TX 校验和卸载功能。r214700
已对 bge(4) 驱动程序进行了可靠性改进,以增强 BCM5906 控制器的稳定性。r214714
bge(4) 驱动程序现在支持 BCM5705 或更高版本 Broadcom 控制器的硬件 MAC 统计数据,这些计数器可以通过 sysctl(8) 变量 dev.bge.N.stats.*
访问,并提供有助于诊断驱动程序问题的有用信息。r214698
默认情况下,已禁用 bge(4) 驱动程序中的 UDP 校验和卸载功能。这是因为 Broadcom 控制器存在一个漏洞,当启用 TX UDP 校验和卸载时,可能会生成校验和值为 0 的 UDP 数据报。可以通过以下加载器可调参数启用校验和卸载:
已修复 bge(4) 驱动程序中的一个漏洞,该漏洞可能导致在具有超过 4 GB RAM 的系统上性能差。问题的原因是,除 BCM5755 及更高版本外的所有 Broadcom 控制器都在 4 GB 边界 DMA 处理上存在漏洞,并且以低效的方式使用了跳跃缓冲区。r213593
已添加 bwi(4) 驱动程序,该驱动程序支持 Broadcom BCM430* 和 BCM431* 系列无线以太网控制器。由于存在一些问题,此驱动程序未编译到 GENERIC 内核中。可以通过加载内核模块 if_bwi.ko 来启用此驱动程序,无需重新编译内核。r212275
已修复 bwn(4) 驱动程序中的一个漏洞,该漏洞导致 WPA 身份验证无法正常工作。r212274
已修复 cdce(4) 驱动程序中的一个漏洞。r215499
cxgb(4) 驱动程序现在支持以下新的 sysctl(8) 变量:hw.cxgb.nfilters
设置硬件过滤表中的最大条目数,dev.cxgbc.N.pkt_timestamp
提供数据包时间戳而不是连接哈希值,dev.cxgbc.N.core_clock
提供核心时钟频率(以 kHz 为单位)。r211848
em(4) 驱动程序已更新至版本 7.1.9。
igb(4) 驱动程序已更新至版本 2.0.7。
以下是翻译:
em(4) 和 igb(4) 驱动程序现在通过 sysctl(8) MIB 对象提供统计计数器。r209309
em(4) 和 igb(4) 驱动程序现在支持通过 /dev/led/emN 和 /dev/led/igbN 接口控制标识 LED。以下命令行使 em0 上的 LED 闪烁:r211241
epair(4) 虚拟以太网接口驱动程序现在支持显式的 UP/DOWN 链接状态。这修复了与 carp(4) 协议一起使用时的问题。r212150
fxp(4) 驱动程序现在支持在 i82550 和 i82551 控制器上进行 VLAN 的 TSO。r214717
iwn(4) 驱动程序现在支持英特尔无线 WiFi Link 6000 系列。固件已更新到版本 9.221.4.1。r210673
ixgbe(4) 驱动程序现在也作为内核模块提供。r212386
ixgbe(4) 驱动程序已更新到版本 2.3.8。现在支持 82599,更好的中断处理,硬件辅助 LRO,VM SRIOV 接口等。r209308, r215970, r217593
已重写 miibus(4) ,支持 IEEE 802.3 附录 31B 完全双工流量控制。包括 alc(4)、bge(4)、bce(4)、cas(4)、fxp(4)、gem(4)、jme(4)、msk(4)、nfe(4)、re(4)、stge(4) 和 xl(4) 驱动程序以及 atphy(4)、bmtphy(4)、brgphy(4)、e1000phy(4)、gentbi(4)、inphy(4)、ip1000phy(4)、jmphy(4)、nsgphy(4)、nsphyter(4) 和 rgephy(4) 驱动程序已更新,支持通过此功能实现流量控制。r211379, r215881, r215890, r2105894, r216002, r216023, r216029, r216031, r216033
mwlfw(4) 驱动程序现在也作为内核模块提供。r212386
已修复 mxge(4) 驱动程序中的一个 bug,修复了 TSO 无法工作的情况。r216054
nfe(4) 驱动程序现在支持 WoL(局域网唤醒)。r215456
re(4) 驱动程序现在支持 RTL810xE/RTL8168/RTL8111 PCIe 控制器的 64 位 DMA 寄存器寻址。r215218
re(4) 驱动程序现在支持 RTL8169/RTL8168 控制器的硬件中断调节,用于 TX 完成中断。r215405
rl(4) 驱动程序现在支持 RTL8139B 或更新控制器上的 WoL(局域网唤醒)。r211377
rl(4) 驱动程序现在支持通过设置 sysctl(8) 变量 dev.rl.N.stats
为 1 来读取硬件统计计数器。r215222
rl(4) 驱动程序现在支持设备提示,以更改寄存器访问方式。尽管一些较新的 RTL8139 控制器支持内存映射寄存器访问,但自动检测此支持非常困难。因此,驱动程序默认使用 I/O 映射,并提供以下设备提示。如果设置为 0,则驱动程序使用内存映射方式访问寄存器。r212039
请注意,默认值为 1。
rl(4) 驱动程序的中断处理得到了改进。现在,在高 RX 负载下,TX 性能得到了提高。r214407
sk(4) 驱动程序中的一个错误已被修复。该错误导致 Yukon 控制器未编程工作站地址,且无法通过 ifconfig(8) 覆盖工作站地址。r215216
sk(4) 驱动程序现在默认禁用 TX 校验和卸载功能。这是因为某些 Yukon 控制器的版本会生成损坏的帧。可以通过在 ifconfig(8) 工具中使用 txcsum
选项手动启用校验和卸载功能。r211359
sis(4) 驱动程序现在支持所有受支持平台。也修复了一些稳定性和性能问题。r212468, r213612, r213628
sis(4) 驱动程序现在支持在 NS DP8315 控制器上使用 WoL(局域网唤醒)。r213637
添加了 sis(4) 驱动程序的可调变量 dev.sis.N.manual_pad
。该变量控制是否由 CPU 进行短帧的 0x00 填充,而不是由控制器进行填充。添加该可调变量的原因是 NS DP83815/DP83816 将填充为 0xff,而 RFC 1042 规定应填充为 0x00。此变量默认禁用,这意味着使用 0xff 填充,因为由软件填充 0x00 需要额外的 CPU 周期。通过将该 sysctl(8) 变量设置为非零值,启用 manual_pad
可以强制使用软件填充。r213626
ste(4) 驱动程序现在支持设备提示,用于更改设备寄存器访问模式。驱动程序默认使用内存映射寄存器访问,但这会导致一些老旧 IC Plus Corp(前身为 Sundace)控制器的稳定性问题。以下设备提示会使驱动程序使用 I/O 映射访问寄存器:r211357
xl(4) 驱动程序现在支持 WoL(局域网唤醒)。请注意,并非所有控制器都支持此功能,有些需要额外的远程唤醒电缆。r213120
2.2.3 网络协议
carp(4) 虚拟接口和底层接口链路状态变化的问题已被修复。这个问题发生在创建 carp(4) 接口之前,底层接口的链路状态尚未变为 UP 时。r213505
ipfw(4) 数据包过滤子系统中的一个错误已被修复。 sysctl(8) 变量 net.inet.ip.fw.one_pass
对 netgraph 动作和内核 NAT 无效。r212738, r216348
新增了一个加载器可调项 net.link.ifqmaxlen
,用于指定发送接口队列长度的默认值。此参数的默认值为 50
。r215342
ipfw(4) 数据包过滤子系统中的 ngtee 操作已发生更改,现在不再接受数据包。r212742
修复了 ipfw(4) 虚拟接口中的潜在崩溃问题,该问题与日志记录有关。r214108
IPsec 流量分发已得到改进,以支持更多的并行处理。r209691
已修复 FreeBSD IPv4 堆栈中的一个 bug,该 bug 阻止通过 netgraph(4) 接口添加代理 ARP 条目。r209277
已修复 FreeBSD IPv6 堆栈中的一个 bug,该 bug 阻止了在 net.inet6.ip6.use_defaultzone=1
设置下,ping6(8)
工具的 -I
选项正常工作。r211435
lagg(4) 接口现在支持一个 sysctl(8) 变量 net.link.lagg.failover_rx_all
,该变量控制是否在故障切换 lagg 中接受任何链路的输入数据包。r214111
ng_eiface(4) netgraph(4) 节点现在支持 VLAN 兼容的 MTU 和大于 1500 的 MTU 大小。r215869
ng_ether(4) netgraph(4) 节点现在支持通过 ifconfig(8) vnet 命令在多个虚拟网络堆栈之间进行接口传输。与网络接口相关联的 ng_ether(4) 节点在网络接口移动到另一个 vnet 时会被销毁并重新创建。r212320
新增了一个 netgraph(4) 节点 ng_patch(4),它执行通过数据包的修改操作。修改仅限于对 8、16、32 或 64 位无符号整数进行子集 C 语言操作。r209843
在启用 TSO 支持时,pf(4) 数据包过滤子系统中的 ICMP 不可达问题已被修复。r212905
由 sysctl(8) 变量 net.inet.tcp.inflight.enable
控制的 TCP 带宽延迟积窗口限制算法现在默认已禁用。发现该算法在 RTT 小于 10ms 的快速网络中效率低下。自 5.2-RELEASE 以来该算法默认启用,之后仅在 RTT 小于 10ms 时才禁用(自 7.0-RELEASE 起)。计划在未来的发布中添加可插拔的 TCP 拥塞控制算法模块。r211538
修复了 FreeBSD TCP 路径 MTU 探测中的一个 bug,该 bug 可能导致小于 256 字节的 MTU 被错误计算。需要注意的是,此 bug 不影响大于或等于 256 字节的 MTU。r211602
改进了 FreeBSD TCP 重组实现。修复了影响 SMP 系统的长期存在的会计错误,并且已废弃 sysctl(8) 变量 net.inet.tcp.reass.maxqlen
,取而代之的是基于接收套接字缓冲区大小的每连接动态限制。FreeBSD 接收端现在比以前更好地处理数据包丢失(特别是因队列溢出而导致的丢包),从而提高了连接的吞吐量。r214865, r214866
RFC 3390 中的 TCP 初始窗口增加(可通过 sysctl(8) 变量 net.inet.tcp.rfc3390
控制)现在在 TCP 连接空闲超过一个重传超时后,会将拥塞窗口减少到重启窗口。详细信息请参见 RFC 5681 第 4.1 节。r211870
新增了 siftr(4) 模块,统计信息用于 TCP 研究(SIFTR)内核模块。该功能记录活动 TCP 连接的一系列统计信息到日志文件。它提供了对 TCP 连接状态进行高度精细化测量的能力,面向系统管理员、开发者和研究人员。r214859
FreeBSD 虚拟网络堆栈(vnet)现在支持 IPv4 多播路由。r212319
2.2.4 磁盘与存储
ahci(4) 驱动程序现在在 VIA VT8251 上禁用了 NCQ 和 PMP 支持,因为在负载下它们不可靠。r211458
ahci(4) 驱动程序现在将设备重置超时设置为 15 秒,而不是 10 秒,因为某些设备需要 10 到 12 秒才能启动。r211718
arcmsr(4) 驱动程序已更新至版本 1.20.00.19。r215825
ada(4) 驱动程序现在支持新的 sysctl(8) 变量 kern.cam.ada.spindown_shutdown
,该变量控制在关闭时是否对设备进行停转操作(如果设备支持此功能)。默认值为 1。r215173
ata(4) 驱动程序现在支持通过设备提示 hint.devname.unit.devN.mode
或 hint.devname.unit.mode
来限制设备的初始 ATA 模式。有效值与 atacontrol(8) 和 camcontrol(8) 工具支持的值相同。r210164
ata(4) 驱动程序现在在加载器可调选项 hw.ata.ata_dma_check_80pin
为 0 时禁用了控制器和设备端的电缆状态检查。之前,不管此加载器可调选项的设置如何,控制器端都执行了检查。r210204
ata(4) 驱动程序现在在启用 ATA_CAM
时将 SATA 电源管理功能报告给 CAM(4) 层。这使得设备可以在控制器配置为接受时发起转换。这样,hint.ata.N.pm_level=1
模式可以工作。r215777
ata(4) 驱动程序在热插拔和连接速度报告支持方面进行了改进,特别是对于一些 Intel SATA 控制器,包括以传统模式运行的 ICH5 和 ICH8+。r214671
修复了 ata(4) 中 Serverworks K2 SATA 控制器设备检测的问题。r213291
修复了 ata(4) 驱动程序中的一个 bug,该 bug 导致某些 Silicon Image 芯片组在大端系统上无法工作。r214667
现在 GEOM 类 gconcat(8) 支持内核崩溃转储。转储会执行到组件中转储分区开始的位置。r214330
修复了 GEOM 类 geli(8) 在小端平台上的一个 bug。由于此问题,新增提供者的元数据版本已更新为 4。具有旧版本的提供者与 8.2-RELEASE 及之后版本完全兼容,自动被视为具有本地字节顺序参数。r214405
GEOM 类 geli(8) 现在支持 sysctl(8) 变量 kern.geom.eli.overwrites
。该变量指定销毁磁盘密钥时应覆盖磁盘上的密钥次数。默认值为 5
。r214405
已改进 GEOM 类 geli(8) ,防止在 2^20
块(扇区)内使用相同的加密密钥。r214405
GEOM 类 geli(8) 现在默认使用 XTS-AES 模式。r214405
现在允许 sysctl(8) 变量 kern.geom.eli.debug
值为 -1
。这意味着关闭 geli(8) GEOM 类的所有日志消息。r214405
mpt(4) 驱动程序现在支持更大的 I/O 大小,这是设备和 CAM(4) 子系统可以支持的。之前这个限制为 64KB,并且在 4K 页面平台上,散布/聚集段的数量被限制为 33。r210376
twa(4) 驱动程序已更新,版本号为 3.80.06.003。r209404
2.2.5 文件系统
linprocfs(5) Linux 进程文件系统现在支持 proc/$$/environment
。r214050
FreeBSD NFS 客户端现在支持一个内核环境变量 boot.nfsroot.nfshandlelen
。该变量使得无盘启动时根文件系统能够使用 NFS 版本 3 和指定的文件句柄长度。如果没有设置此变量,则使用 NFS 版本 2。r212716
ZFS 磁盘格式已更新为版本 15。r212668
ZFS 元数据块代码已更新。这在写入速度上带来了明显改善,尤其是在池的空闲空间少于 30% 时。相关的 OpenSolaris 错误 ID 包括 6826241、6869229、6918420 和 6917066。r212671
ZFS 现在支持下线日志设备。相关的 OpenSolaris 错误 ID 包括 6599442、6726045 和 6803605。r214013
从 OpenSolaris 导入的 ZFS 性能改进包括 ACL 权限检查的缓存、stat(2) 处理速度加快,以及互斥锁竞争的缓解。相关的 OpenSolaris 错误 ID 包括 6802734、6844861、6848431、6775100、6827779、6857433、6860318、6865875、6867395、6868276 和 6870564。r212672
vfs.zfs.vdev.max_pending
的默认值已从 35 降至 10(OpenSolaris 错误 ID 为 6891731),以提高延迟性能。r210541
ZFS 子系统中的各种错误已修复。相关的 OpenSolaris 错误 ID 包括:6328632、6396518、6501037、6504953、6542860、6551866、6572357、6572376、6582163、6586537、6595194、6596237、6604992、6621164、6623978、6633095、6635482、6664765、6674216、6696242、6696858、6702206、6710376、6713916、6717022、6722540、6722991、6737463、6739487、6739553、6740164、6745863、6747596、6747698、6748436、6755435、6757430、6758107、6759986、6759999、6761100、6761406、6764124、6765294、6767129、6769612、6770866、6774713、6774886、6775697、6776104、6776548、6780491、6784104、6784108、6785914、6788152、6788830、6789318、6790064、6790345、6790687、6791064、6791066、6791071、6791101、6792134、6792139、6792884、6793430、6794136、6794570、6794830、6797109、6797118、6798384、6798878、6799895、6800184、6800942、6801507、6801810、6803343、6803822、6804954、6807339、6807765、6809340、6809683、6809691、6810367、6815592、6815893、6816124、6818183、6821169、6821170、6822816、6824006、6824062、6824968、6826466、6826468、6826469、6826470、6826471、6826472、6827260、6830237、6830541、6833162、6833711、6833999、6834217、6836714、6836768、6838062、6838344、6841321、6843014、6843069、6843235、6844069、6844900、6847229、6848242、6856634、6857012、6861983、6862984、6863610、6870564、6880764、6882227、6892298、6898245、6906110、6906946、6939941、6950219、6951024 和 6953403。r212672
2.3 用户空间变化
arp(8) 工具已得到改进。即使单个接口有多个别名,它的运行速度也得到了提升。r209267
修复了 b64decode(1) 工具中的一个错误,该错误阻止了 -r
选项处理 base64 编码字符串中的任意换行。r214729
calendar(1) 工具现在支持跨越多年的重复事件、月相事件和太阳事件。r211723
dhclient(8) 工具现在报告退出的原因,并且 dhclient(8)
在忽略路由消息的 10 秒延迟时间已被修改为从 dhclient-script 启动后开始,而不是它完成后。这一变化修复了 dhclient(8)
在某些条件下无声退出的问题。r210915
增加了对 dtrace(1) 子系统的用户空间支持。这允许检查用户空间软件及其与内核的关联,从而提供更清晰的幕后运行情况。增加了 dtruss(1) 工具,并且 libproc 库也已更新以支持该功能。r214983
du(1) 工具现在支持选项 -t threshold
,用于显示大于指定 threshold 值的条目。如果该值为负数,则显示小于 threshold 绝对值的条目。r209362
fdisk(8) 工具现在支持由 gjournal(8) 或 geli(8) GEOM 类提供的分区。r215667
gcore(1) 工具现在支持 -f
参数,它强制完全转储所有段,除了格式错误的段。r210567
geli(8) 工具现在支持子命令 resize
,可以在扩展加密文件系统后调整其大小。r214405
geli(8) 工具现在支持子命令 suspend
和 resume
。子命令 suspend
会使 geli(8) 设备等待所有正在进行的 I/O 请求,暂停新的 I/O 请求,移除所有敏感数据(如加密密钥)并等待命令 geli resume
或 geli detach
。更多信息,请参见 geli(8) 手册页。r214405
geli(8) 工具现在严格检查元数据提供者的大小。如果检查失败,则不会附加该提供者。新的 -f
选项可以覆盖这一行为。r214405
geli(8) 工具现在支持选项 -J newpassfile
和 -j oldpassfile
,用于从文件加载密码。r214405
现在函数 gethost*()
、getnet*()
和 getproto*()
在结果缓冲区大小太小时设置 errno 为 ERANGE,并且 NSS 后端在返回 NS_RETURN 时终止。r211938
gpart(8) 工具现在支持 resize
命令,可以调整所有方案(除了 EBR)中的分区大小。r209497
gpart(8) 工具现在支持备份和恢复子命令,用于备份分区表并恢复它们。r215941
gpart(8) 工具现在处理带有和不带 /dev/
前缀的几何/提供者名称。r213661
gpart(8) 工具现在支持 -F
选项用于子命令 destroy
。此选项强制销毁分区表,即使它不为空。r213684
gpart(8) 工具现在支持 GPT 分区表的子命令 recover
。以下三种类型的损坏将标记为损坏 GPT:r213684
主 GPT 头或表损坏。
次 GPT 头或表损坏。
次 GPT 头未位于最后的 LBA。
除子命令 destroy
和 recover
外,不允许对损坏的 GPT 表进行更改。
gpart(8) 工具现在支持 GPT 中的属性 GPT_ENT_ATTR_BOOTME
、GPT_ENT_ATTR_BOOTONCE
和 GPT_ENT_ATTR_BOOTFAILED
。命令行中的属性关键字分别为 bootme、bootonce 和 bootfailed。r213994
修复了 newfs(8) 工具中的一个问题。使用 64KB 块大小创建的 UFS1 文件系统错误地被识别为具有损坏超级块的文件系统。这是因为 FreeBSD 内核首先检查分区的 64KB 偏移处是否存在 UFS2 超级块,而 UFS1 文件系统使用 64KB 块大小时,可能在相同位置有一个备用超级块。例如,使用 newfs -U -O 1 -b 65536 -f 8192
创建的文件系统可能会导致此症状。r215728
hastd(8) 工具现在支持 SIGHUP 信号重新加载配置文件。当收到 SIGTERM 或 SIGINT 时,工作进程会终止。r213049
ifconfig(8) 工具现在更加严格地检查无效的 CIDR 子网表示法。它错误地接受了 10.0.0.1/10.0.0.1
作为 10.0.0.1/10
。r212144
修复了 jn(3) 和 jnf(3) 函数中的精度问题。r215237
修复了 jot(1) 工具中的重复序列和反向范围的错误行为。r209284
libarchive 库和 tar(1) 工具现在支持 LZMA(Lempel-Ziv-Markov 链算法)压缩格式。r213667
tar(1) 工具现在支持在 -b <blocksize>
选项中设置最多 8192(4MB)的块大小。r215229
修复了 lpr(1) 工具中的一个问题,该问题导致它在 ZFS 文件系统上无法处理某些文件。r214442
mount(8) 工具中的 -p
选项现在正确显示为与 fstab(5) 格式一致的挂载选项 rw
。r213978
ncal(1) 工具已更新。-b
选项已被 -C
和 -B <number>
选项取代。新增了 -3
选项以显示前一个、当前和下一个月,和 -A <number>
选项以显示当前月后的月份。-m <N> <YYYY>
选项现在只打印月份,而不是整个年份。r213889
newsyslog(8) 工具现在支持 -S <pidfile>
选项以覆盖默认的 syslogd(8) PID 文件。r211699
newsyslog(8) 工具现在支持一个特殊的日志文件名 <include>
用于文件包含处理。文件名中的通配符和循环依赖检测得到支持。更多详细信息,请参见 newsyslog.conf(5) 手册页面。r215622
ntpd(8) 工具现在已编译为支持共享内存参考时钟驱动程序。例如,可以通过 Ports 中的 astro/gpsd 使用 GPS 设备作为精确时间源。r213980
pax(1) 实用程序在处理超长的 ustar 文件名时,已修复一个越界错误。r212848
pkill(1) 实用程序现在支持选项 -l
,类似于 kill(1) 实用程序。r209912
pmcstat(8) 实用程序现在支持文件和网络套接字作为 top 源。新增选项 -O <filename>
指定将日志输出发送到 filename,而另一个新选项 -R <filename>
指定从 filename 接收事件。对于套接字,filename 采用 ipaddr:port 形式。这使得在没有本地符号的系统上通过 TCP 进行监控成为可能。例如。r211098
pom(6) 实用程序现在支持一个 -p
参数,仅打印百分比。r210089
powerd(8) 实用程序现在支持 -m <freq>
和 -M <freq>
来分别控制最小和最大频率。r212472
ruptime(1) 实用程序现在能够显示超过 12 个字符的主机名。r213825
当指定 -u
选项时,sh(1) 程序的行为已更改。当没有位置参数时,特殊参数 $@
和 $*
不再导致错误。r215066
sh(1) 程序中的一个错误已修复。如果 shell 是交互式的并且启用了作业控制,现在 SIGINT 信号将通过子进程传递。例如,通过 Ctrl-C
中止 sleep(1) 命令时,不再在命令行中显示 ok
[r210616]
sh(1) 程序现在支持仅由重定向组成的 bg
命令。例如:[r210732]
sleep(1) 实用程序现在支持 SIGINFO 信号,并报告指定的睡眠时间和剩余时间。r211536
tftp(1) 和 tftpd(8) 实用程序已改进,以提高互操作性,并且现在支持 RFC 1350, 2347, 2348, 2349 和 3617。r213036, r213038
tr(1) 实用程序中的一个错误已修复,解决了等效类处理中的 [=]
问题。之前,紧随 [=
后的右括号被错误地视为特殊字符。r213899
uname(1) 实用程序现在支持参数 -o
,作为 -s
参数的同义词,以与其他系统兼容。r210566
vi(1) 实用程序中的一些错误已修复,包括在插入模式下处理 ^@
和 ^C
时的错误——当读取 ex
命令时。r211060
watchdogd(8) 程序现在使用内存参数 MADV_PROTECT
来保护自己,以防在可用内存不足时被 FreeBSD 内核终止。这种进程终止通常发生在交换密集型工作负载中。r214345
zfs(8) 实用程序中的命令 set sharenfs
现在支持 sec
选项。r209870
2.3.1 /etc/periodic
脚本
/etc/periodic
脚本已添加用于 zfs scrub
的定期脚本。有关详细信息,请参阅 periodic.conf(5) 手册页。
已添加一个定期脚本,可以用来查找安装的 Port 文件与其校验和不匹配的情况。有关详细信息,请参阅 periodic.conf(5) 手册页。
2.4 第三方的软件
ACPI-CA 已更新至 20101013。
ISC BIND 已更新至版本 9.6-ESV-R3。
netcat 已更新至版本 4.8。
OpenSSL 已更新至版本 0.9.8q。
timezone 数据库已更新至 tzdata2010o 版本。
xz 已从 2010 年 4 月 12 日的快照更新至 5.0.0 版本。
2.5 Ports/软件包基础设施
pkg_create(1) 实用程序现在支持 LZMA (xz) 压缩。请注意,默认仍然是 bzip2。r215738
2.6 发布工程与集成
sysinstall(8) 实用程序现在使用以下数字作为默认和最小分区大小:/
为 1GB,/var
为 4GB,/tmp
为 1GB。r211007
sysinstall(8) 实用程序现在尝试在未检测到 VGA 卡时在串行端口上启用 getty(8)。r211009
支持的 GNOME 桌面环境版本(x11/gnome2)已更新至 2.32.1。
支持的 KDE 桌面环境版本(x11/kde4)已更新至 4.5.5。
3 从旧版 FreeBSD 升级
[amd64, i386] 通过使用 freebsd-update(8) 实用程序,能在不同的 RELEASE 版本之间(以及各种安全分支的快照)进行升级。二进制升级过程将更新未修改的用户空间工具以及未修改的 GENERIC 内核,这些内核作为 FreeBSD 官方发布的一部分进行分发。 freebsd-update(8) 实用程序要求被升级的主机具有互联网连接。
通过光盘分发介质上的 sysinstall(8) 主菜单中的“Upgrade”选项,支持一种较旧形式的二进制升级。这种类型的二进制升级在非 i386、非 amd64 机器或没有互联网连接的系统上可能会很有用。
也支持基于源代码的升级(即从源代码重新编译 FreeBSD 基本系统的升级),具体请根据 /usr/src/UPDATING
中的说明进行操作。
重要:
在升级 FreeBSD 之前,务必先备份 所有 数据和配置文件。
可以从 ftp://ftp.FreeBSD.org/ 下载此文件和其他与版本相关的文档。
关于 FreeBSD 的问题,请在联系 questions@FreeBSD.org 之前,先阅读 文档。
关于本文件的任何问题,请发送邮件至 doc@FreeBSD.org。
最后更新于