FreeBSD 8.4-RELEASE 发行说明(2013 年 6 月 7 日)
原文链接:FreeBSD 8.4-RELEASE Release Notes
FreeBSD 项目
版权 © 2013 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 国际公司在美国及其他国家的商标。SPARC 国际公司拥有所有 SPARC 商标,并通过许可协议允许其成员正确使用这些商标。
许多制造商和销售商用来区分其产品的标识被声明为商标。在本文件中出现这些标识时,如果 FreeBSD 项目已知该商标声明,则标识后会附有“™”或“®”符号。
FreeBSD 8.4-RELEASE 的发行说明包含了对 FreeBSD 基本系统在 8.4-STABLE 开发线路上所做更改的总结。本文列出了自上一个版本发布以来发布的相关安全公告,并介绍了 FreeBSD 内核和用户环境的重大更改。文中还简要说明了升级的相关事项。
1 介绍
本文档包含了 FreeBSD 8.4-RELEASE 的发行说明。它介绍了 FreeBSD 中最近添加、修改或删除的特性,同时还提供了一些关于从之前版本升级的说明。
此版本的 FreeBSD 8.4-RELEASE 是一个发布版本。它可以在 ftp://ftp.FreeBSD.org/ 或其镜像站点找到。获取此版本(或其他版本)发布的更多信息,请参见 《获取 FreeBSD》附录 的 FreeBSD 手册。
强烈建议所有用户在安装 FreeBSD 前查阅发行说明中的勘误(更新说明)。该文档会在发布周期结束时或发布后进行更新,包含一些“临时”信息。通常,它会包括已知的漏洞、安全公告及文档的修正。FreeBSD 8.4-RELEASE 的最新勘误副本可以在 FreeBSD 网站上找到。
2 新特性
本节介绍了自 8.3-RELEASE 以来,FreeBSD 中最显著的新特性或变化。
典型的发行说明项目包括发布后的安全公告、新驱动或硬件支持、新命令或选项、重要的 bug 修复或第三方软件升级。它们还可能列出主要的 Port/包更新或发布工程实践的变化。显然,发行说明无法列出版本之间对 FreeBSD 所做的每一个小变化;本文档主要关注安全公告、用户可见的变化和主要的架构改进。
2.1 安全公告
以下安全公告中描述的问题已被修复。如需更多信息,请查阅各个公告,网址为 http://security.FreeBSD.org/。
2012 年 5 月 3 日
OpenSSL 多个漏洞
2012 年 5 月 30 日
错误的 crypt() 哈希处理
2012 年 6 月 12 日
在 named(8) 中对零长度 RDATA 字段的错误处理
2012 年 6 月 12 日
从内核返回时特权提升
2012 年 8 月 6 日
named(8) DNSSEC 验证拒绝服务
2012 年 11 月 22 日
named(8) 中多个拒绝服务漏洞
2012 年 11 月 22 日
EAP-TLS 消息的消息长度验证不足
2012 年 11 月 22 日
Linux 兼容层输入验证错误
2013 年 2 月 19 日
glob(3) 相关的资源耗尽问题
2013 年 4 月 2 日
OpenSSL 多个漏洞
2013 年 4 月 2 日
BIND 远程拒绝服务
2013 年 4 月 29 日
NFS 服务器输入验证不足
2.2 内核变化
已修复一个可能导致内核线程错误的 CPU 亲和力配置的 bug。r232757
loader(8) 环境变量 comconsole_port
和 comconsole_pcidev
已被添加。前者允许设置串行控制台 I/O 端口的基地址,后者允许将格式为 bus:device:function:[bar] 的字符串作为值,使用指定位置作为 PCI 设备连接的串行端口作为控制台。这两个变量都将 hw.uart.console
变量传递给 uart(4) 驱动,以正确地将控制台交给内核。r245847
已新增 loader(8) 可调变量 hw.broken_txfifo
,用于启用旧版 QEMU 和 Xen 的 UART 模拟修复。r246626
已实现 fcntl(2) 的 F_DUPFD_CLOEXEC 命令。此命令在 IEEE Std 1003.1-2008 (POSIX, Single UNIX Specification Version 4) 中被标准化。此外,还根据 F_DUP2FD 实现了 F_DUP2FD_CLOEXEC。r239860, r239861
新增了 filemon(4) 虚拟设备。此设备允许进程收集其子进程的文件操作数据。r240707
已修复 VIMAGE jail(8) 中的一个 bug,导致网络子系统在错误的 vnet 上下文中运行。r233584
已作为 sysctl(8) 变量和 loader 可调变量添加 debug.kdb.break_to_debugger
和 debug.kdb.alt_break_to_debugger
。这些变量默认禁用,BREAK_TO_DEBUGGER
和 ALT_BREAK_TO_DEBUGGER
内核选项现已启用这些功能。此更改使 GENERIC 内核支持断点调试器功能。r235121
FreeBSD sched_ule(4) 调度器在支持 SMT(对称多线程,Intel CPU 上称为超线程)系统的 CPU 选择方面有所改进。当物理 CPU 上的其他逻辑 CPU 空闲时,它现在优先选择空闲的逻辑 CPU,并且 SMT CPU 组中的空闲 CPU 优先级始终较低。负载平衡时,CPU 负载计算也得到了改进,考虑到 CPU 组中的最高和最低 CPU 负载,从而区分负载。此更改在 SMT CPU(如 Core i7)上提高了 10-15% 的性能。r241246
已添加 shm_map(9) 和 shm_unmap(9) 函数,允许内核代码将由 shm_open(2) 创建的共享内存对象部分映射到内核的地址空间。r236684
新增了 sysctl(8) 变量 kern.stop_scheduler_on_panic
。设置为 1 时,系统崩溃后仅有一个线程不受干扰地运行,其他 CPU 会被停止。默认值为 0。r235502
loader(8) 可调变量 kern.maxtsiz
、kern.dfldsiz
、kern.maxdsiz
、kern.dflssiz
、kern.maxssiz
和 kern.sgrowsiz
现在是可写的 sysctl(8) 变量。r240502
已修复一个 bug,导致在某些情况下,使用 mmap(2) 系统调用映射文件时,文件的更改没有正确刷新。当进程有一个 NFS 支持的文件并对其进行修改时,通常修改会自动写入备份存储。但 NFS 客户端会错误地认为修改已成功写入,即使写操作由于某些原因(如权限被拒绝)失败。r233765, r234094, r236150
2.2.1 启动加载器变化
[amd64, i386, pc98] 修复了 FreeBSD 启动块中的一个 bug,该 bug 导致在 boot.config(5) 配置文件中无法识别第三阶段加载器(或内核)的路径。r233377, r234563
修复了 loader(8) 中的一个 bug,可能导致大端平台上的 UFS1 文件系统无法启动。r232963
[sparc64] FreeBSD loader(8) 现在支持显示堆使用情况。r235998
gptboot 启动块现在仅在主 GPT 头和表无效时,从最后一个 LBA 读取备份 GPT 头。这解决了与一些 geom(4) 提供者(如 MIRROR)之间的兼容性问题,这些提供者使用最后一个 LBA 存储元数据。r234694
[sparc64] FreeBSD/sparc64 现在支持通过 zfsboot 启动块和 zfsloader 从 ZFS 启动。r236077
修复了 zfsboot 启动块中的一个 bug,该 bug 可能导致 -q
选项无法工作。r234680
zfsboot 启动块和 zfsloader 支持 ZFS 存储池中的文件系统。在 zfsloader 中,ZFS 设备名称格式现在是 zfs:pool/fs,完整路径格式是 zfs:pool/fs:/path/to/file。zfsboot 启动块接受的内核/加载器名称格式是 pool:fs:path/to/file,或者像以前一样,pool:path/to/file。在后一种情况下,使用默认文件系统(池根或具有 bootfs 属性的文件系统)。zfsboot 启动块将所选存储池和数据集的 GUID 传递给 zfsloader,用作其默认值。r237765
2.2.2 硬件支持
FreeBSD acpi(4) 子系统现在使用 MADT 来将 ACPI 处理器对象与 CPU 匹配,并忽略禁用的核心,尽管 MADT 和 DSDT/SSDT 可能会以不同的顺序列出 CPU。新增的启动加载器调节项 debug.acpi.cpu_unordered
适用于那些没有为 MADT 和处理器对象提供唯一 ACPI ID 的有缺陷的系统。将其设置为 1 可恢复旧的行为。r237823
[amd64] 已实现针对 AMD 处理器系列 10h 和 12h 的 Erratum 721 的解决方法。在一组高度特定且详细的内部时序条件下,处理器可能在长时间的一系列 push 和/或 near-call 指令,或长时间的一系列 pop 和/或 near-return 指令后,错误地更新堆栈指针。r233799
[amd64] 已支持本机 64 位和 32 位 ABI 的扩展 FPU 状态。AVX 指令也已在支持的 CPU 上启用。r237009
[amd64, i386, pc98] atkbdc(4) 驱动程序现在支持具有 PnP ID PNP0320 的键盘控制器。此控制器可在带有 106/109 键日本 PS/2 键盘的计算机上找到。r233795
[amd64, i386, pc98] atkbdc(4) 驱动程序现在支持 Synaptics 触摸板 v7.5 及以上版本。r244982
修复了 cpufreq(4) 中的一个 bug,该 bug 可能导致 CPU 频率调节无法正常工作。r233369
修复了 hwpmc(4) 驱动程序中的一个 bug,该 bug 可能导致 pmcstat(8) 工具出现死锁。r233825
已添加 pcf8563(4) 驱动程序,支持 NXP(飞利浦)PCF8563 RTC。r236079
[amd64] pci(4) 驱动程序现在支持在 HyperTransport 到 PCI 总线桥接器之间的 MSI(消息信号中断)和 HyperTransport 中断消息映射。此更改改善了 AMD CPU 上 MSI 的处理。r234151
puc(4) 驱动程序现在支持 Sun 1040 PCI 四串行端口、Moxa PCIe CP102E/CP102EL/CP104EL-A/CP104JU/CP114EL/CP118EL-A/CP168EL-A 多端口串行板、Advantech PCI-1602 RS-485/RS-422 串行卡,以及 Sunix SER5437A 双串行 PCI Express 卡。r236651, r238775, r243009, r248041
[amd64, i386] random(4) 驱动程序现在支持 VIA C3 Nehemiah 随机数生成器,该生成器位于 VIA Nano 处理器上。PADLOCK
内核选项已被 PADLOCK_RNG
选项取代。r240991
[amd64, i386] random(4) 驱动程序现在支持 Intel 内置数字随机数生成器(称为 Bull Mountain)上的 RDRAND 指令。RDRAND_RND
内核选项已添加到 GENERIC 内核中。r240994
已新增 Apple MacBook 上的丹麦 ISO-8859-1 键盘的 syscons(4) 键盘映射。r242338
修复了 syscons(4) 驱动程序中的一个 bug,该 bug 可能导致 USB 鼠标的按钮在断开连接后始终保持按下状态。r246787
[amd64, i386] uart(4) 驱动程序现在支持 Intel 4 系列芯片组系列上的 Intel AMT 串行端口,用于远程键盘和文本(KT)重定向(串行通过 LAN)。r233065
uart(4) 驱动程序现在支持 Wacom Tablet at FuS Lifebook T、带有 PnP ID PNP0502、PNP0510 和 PNP0511 的多端口串行设备 IrDA 设备、基于 CIR1000 Cirrus Logic 芯片的 V.34 调制解调器以及 MosChip MCS9904 四个串行端口控制器。r242883, r243357, r244140]
uftdi(4) 驱动程序现在支持 BeagleBone 和基于 FT2232 的 egnite Turtelizer 2 JTAG/RS232 适配器。r237189, r237381]
uchcom(4) 驱动程序现在支持 CH341/CH340 USB-串行桥接器。r240570]
ukbd(4) 驱动程序现在支持 Microsoft Natural Ergonomic Keyboard 4000。之前存在一个问题,即无法识别功能键。r239426]
uplcom(4) 驱动程序现在支持 Motorola 电缆。r239726]
usb(4) 驱动程序现在同步处理挂起事件。这修复了挂起和恢复的问题。r232871]
usb(4) 驱动程序现在支持多 TT 模式操作,每个面向下游的 USB 集线器端口可以有一个事务转换器。这为通过高速 USB 集线器连接的等时 FULL 速应用提供了更多带宽。r235011]
uslcom(4) 驱动程序现在支持 Silicon Laboratories CP2103/CP2104/CP2105 基于 USB 的串行适配器。r239820, r239827]
[amd64, i386] 已将虚拟化 virtio(4) 驱动程序添加到 GENERIC 内核中。它们包括 PCI 前端、网络、块、气球和 SCSI 驱动程序。模块文件分别为 virtio.ko、virtio_pci.ko、if_vtnet.ko、virtio_blk.ko、virtio_balloon.ko 和 virtio_scsi.ko。r239473, r247907, r247909]
wbwd(4) 驱动程序(支持 Winbond 超级 I/O 芯片中的看门狗定时器)已添加。r235947]
xhci(4) USB 驱动程序现在支持 Intel 7 系列芯片组(Panther Point)和 Intel 8 系列芯片组(Lynx Point)上的 XHCI 端口路由。已添加新的 loader(8) 可调项 hw.usb.xhci.xhci_port_route
,用于切换 EHCI 端口到 XHCI 控制器的路由位图。r242985]
xhci(4) USB 驱动程序现在支持 Etron EJ168 USB 3.0 主机控制器。r245736]
2.2.2.1 多媒体支持
[i386] 修复了 snd_emu10kx(4) 驱动程序中的一个错误,该错误可能会导致在使用 PAE
内核选项时无法正常工作。r238674]
snd_hda(4) 驱动程序已更新。它现在支持并提供 HDMI、新的音量控制、自动录音源选择、运行时重新配置、每个控制器支持超过 4 个 PCM 设备、多通道录音、额外的播放/录制流、更高的带宽以及更具信息性的设备名称。r236750, r236753]
snd_uaudio(4) 驱动程序现在支持 USB Audio v2.0。r242983]
snd_uaudio(4) 驱动程序现在支持 Intel 8 系列芯片组(Lynx Point)。r247121]
snd_uaudio(4) 驱动程序现在支持各种 Yamaha 键盘。r244248]
snd_uaudio(4) 驱动程序现在支持如音量加/减等按钮。r246788]
2.2.2.2 网络接口支持
age(4) 网络接口驱动程序现在支持巨型帧。r246725]
ale(4) 网络接口驱动程序中的链路状态更改处理已改进。r234127]
ale(4) 网络接口驱动程序现在支持流量控制。r234241]
修复了 bce(4) 网络接口驱动程序中的一个错误,该错误可能会阻止巨帧配置正常工作。r235424]
修复了 bce(4) 中的一个错误,该错误可能会导致 IPMI(智能平台管理接口)在接口关闭时无法正常工作。r236217]
bce(4) 网络接口驱动程序现在支持远程 PHY,使控制器能够通过 MRBE(多速率背板以太网)定义的消息页面执行对远程收发器的 MDIO 类型访问。这适用于例如 Dell PowerEdge M610 Blade 等机器。r235819]
修复了 bge(4) 网络接口驱动程序中的一个错误,该错误可能会导致在连接到 AMD 8131 PCI-X 桥接器后的 BCM5704 控制器发生看门狗超时。r233496]
bge(4) 驱动程序现在支持 BCM5717/5718/5719/5720/5761/57766 控制器。r243547, r245152]
修复了 bge(4) 驱动程序中的 if_ierrors
计数器错误,在 BCM5700、5701、5702、5703 或 5704 控制器上运行时,只报告了丢弃的包数量。r233499]
修复了 bge(4) 驱动程序中的一个错误,该错误可能会导致设备停止工作。r236219
[amd64, i386, pc98] cas(4)、gem(4) 和 hme(4) 驱动程序已添加到 GENERIC 内核中。r233744
cxgbe(4) 网络接口驱动程序已更新到固件版本 1.8.4。r247670
修复了 em(4)、lem(4) 和 igb(4) 驱动程序中的统计计数器错误。r241376
em(4) 和 lem(4) 网络接口驱动程序已更新到版本 7.3.7 和 2.3.9,现支持 Intel 82580 和 I210/I217/I218 接口。r247430
fxp(4) 网络接口驱动程序已改进。它在控制器重新配置(如混杂模式切换)时不会引起不必要的媒体更改,从而避免了额外的链路重新建立。r233502
igb(4) 网络接口驱动程序现在会尝试将尽可能多的 CPU 附加到每个队列。如果 CPU 数量大于或等于队列数量,则所有队列将绑定到不同的 CPU。r235616
ipheth(4) 驱动程序现在支持 Apple iPhone 5 的共享模式。r242279
iwn(4) 驱动程序现在支持 Intel Centrino 6150 无线 N 和 WiMAX 芯片组,以及 Intel Centrino Wireless-N 100/130 设备。r233839, r235844
ixgbe(4) 网络接口驱动程序已更新到版本 1.1.4。r247501
修复了 ixgbe(4) 网络接口驱动程序中的一个错误,该错误可能会导致在启用 TSO(TCP 分段卸载)时 TCP 通信中丢包。r235666
mxge(4) 驱动程序已更新到 Myricom 的固件版本 1.4.55。r236416
oce(4) 网络接口驱动程序已更新到版本 4.6.95.0。r248062
ral(4) 网络接口驱动程序现在支持 Ralink RT2800 和 RT3000 芯片组。r236008
修复了 re(4) 和 rl(4) 网络接口驱动程序中的一个错误,该错误可能会导致 RTL8139 系列设备出现问题。r233490
修复了 re(4) 网络接口驱动程序中的一个错误,该错误可能会导致 RTL8169 控制器出现间歇性链路上下问题。r233493]
rl(4) 网络接口驱动程序现在支持 D-Link DFE-520TX rev C1。r245858
rl(4) 驱动程序中的 WoL(Wake-on-LAN)支持现在默认已禁用。r233490
run(4) 驱动程序现在支持 Logitec LAN-W300NU2。r232594
run(4) 网络接口驱动程序现在在初始化时加载固件,而不是在附加时加载。这解决了在设备检测时根文件系统不可用的问题。r233461
run(4) 驱动程序已更新到固件版本 0.236。r234029
sf(4) 网络接口驱动程序已改进。已解决在高网络负载下系统负载波动的问题。r233487
tap(4) 虚拟网络接口驱动程序现在支持 VIMAGE jail(8)。r237145
u3g(4) 驱动程序现在支持 Qualcomm Vertex Wireless 110L 调制解调器、Qualcomm 3G 调制解调器、Qualcomm Vertex VW110L 调制解调器、SIMCom SIM5218、Huawei K4505、K3770、E3131、E392、E3131、K3765、K4505 和 ETS2055 3G 调制解调器。r232875, r235012, r243655
udav(4) 网络接口驱动程序现在支持 JP1082 USB-LAN 适配器。r242984
2.2.3 网络协议
bpf(4) 伯克利数据包过滤器的锁定性能已得到改进。r247732
if_bridge(4) 虚拟网络接口驱动程序现在支持在同一 STP 域中多个桥接器。之前它将所有桥接器使用相同的 MAC 地址作为桥接 ID。r236056
if_bridge(4) 现在支持链路状态变化通知,并与 carp(4) 协议配合使用。r236058
net.link.bridge
sysctl(8) 变量现在可以在 loader(8) 和/或 loader.conf(5) 中设置。r236072
if_bridge(4) 虚拟网络接口驱动程序的默认桥接转发缓存条目数量已从 100 增加到 2000。r233085
ipfw(4) 包过滤规则语法中的 table
参数现在支持 IP 地址、接口名称、端口号和 Jail ID。以下语法是有效的:
新增的 sysctl(8) 变量 net.inet.ip.fw.tables_max
可用于指定表的最大数量,默认值为 128。r234637
为接收 UDP/IPv4 数据包时的 cmsg 类型 IP_RECVTOS
(包含 TOS 字节)实现了 IP_RECVTOS 套接字选项。这允许访问 UDP 上协议的 ECN 位。r247944
修复了 FreeBSD IPv6 堆栈中的一个 bug。它可能导致 vlan(4) 虚拟网络接口从系统上无关的以太网接口获取自配置 IPv6 地址中的 EUI64 部分。r233112
FreeBSD IPv6 堆栈现在支持多个 FIB。可以使用 setfib(1) 来选择不同的 IPv6 路由表。r232552
修复了 IPv6 接口路由的引用计数 bug。r236609, r236611, r236827
FreeBSD IPv6 堆栈现在处理那些实际上不是片段的数据包,但其片段头中 Fragment Offset 和 M 位都设置为 0 的数据包,作为常规(非片段)数据包。更多细节请参见互联网草案 draft-gont-6man-ipv6-atomic-fragments。r238495
修复了一个可能导致在启用内核选项 VIMAGE
的内核中多播路由系统崩溃的 bug。该选项在 GENERIC 内核中被禁用。r233605
lagg(4) 虚拟网络驱动程序现在允许配置用于负载平衡哈希计算的层级。它可以通过在 ifconfig lagghash 选项中使用逗号分隔的列表进行设置。默认值为 lagghash l2,l3,l4
。详细信息请参见 ifconfig(8) 手册页。r236057
已修复 lagg(4) 虚拟网络接口驱动程序中的一个 bug,该 bug 可能导致接口重命名时意外移除成员接口。r238048
ng_netflow(4) netgraph(4) 节点和 flowctl(8) 工具现在支持 NetFlow 版本 9。为 NetFlow v9 数据添加了一个新的 export9 钩子。请注意,数据可以同时在版本 5 和版本 9 中导出。r238619, r238620
已修复 ng_patch(4) netgraph(4) 节点中的一个 bug,该 bug 可能导致系统崩溃。r234682
FreeBSD 路由表处理已得到改进。现在,即使用户应用程序正在通过 sysctl(8) 读取整个路由表,也能执行数据包转发。r235056
一个新的 loader 可调变量 net.fibs
现在支持指定路由表的数量。ROUTETABLES
内核选项仍可用于设置路由表的默认数量。r235104
FreeBSD SCTP 堆栈现在支持 ng_iface(4) 和 stf(4) 接口。r233245, r233246
FreeBSD SCTP 堆栈现在支持 net.inet.udp.checksum
sysctl(8) 变量,用于 UDP 上的 SCTP over IPv4 封装。r234805
已添加套接字选项 SO_PROTOCO
L 和 SO_PROTOTYPE
。这些是套接字级选项,用于获取 Linux 或 Solaris 中找到的协议编号。详细信息请参见 setsockopt(2) 手册页。r232819
已修复 FreeBSD tcp(4) 主机缓存中的一个问题。该问题可能导致在接收到 ICMP 不可达消息时,由于分配相应的 TCP 主机缓存失败,产生额外的 ICMP 消息交换。r235053
新增的 sysctl(8) 变量 net.inet.tcp.rexmit_drop_options
旨在防止丢弃第三次重传的 SYN 中的选项。默认值设为 1,以保证向后兼容。r247499
2.2.4 磁盘与存储](#)
ahci(4) 驱动程序现在支持 Marvell 88SE9220/9230/9235 PCIe 2.0 x2 6Gbps SATA 控制器。r237114
arcmsr(4) 驱动程序已更新至版本 1.20.00.26,现支持 ARC-1214 和 ARC-1224。r244923, r247827
已修复 amr(4) 驱动程序中的一个 bug,该 bug 可能导致数据损坏。r236319
ata(4) 驱动程序现在支持 Intel 8 系列芯片组(Lynx Point)。r247099
ata(4) 驱动程序现在在启用 ATA_CAM
内核选项时创建符号链接以保持向后兼容性。在启用 ATA_CAM
的内核中,ATA/SATA 磁盘被识别为名为 ada0 的设备节点,而不是 ad0。自动生成符号链接 /dev/ad0 以指向 /dev/ada0,以保持向后兼容性。此符号链接生成可通过 kern.cam.ada.legacy_aliases
控制(在设置 ATA_CAM
时默认启用)。r234912
ata(4) 驱动程序现在具有 loader(8) 可调选项,用于设置特定设备的初始 SATA 修订版本。可调选项名称为 hint.ata.busnum.devdevnum.sata_rev
,用于表示在 busnum 总线上的设备 devnum,或者 hint.ata.busnum.sata_rev
,用于表示总线 busnum 上的所有设备。有效值为 1、2 和 3,分别对应 1.5 Gbps、3 Gbps 和 6 Gbps。r243124
新增 sysctl(8) 变量 kern.features.ata_cam
。该变量显示是否启用了内核选项 ATA_CAM
。此选项在 GENERIC 内核中默认禁用。r233714
新增 sysctl(8) 变量 kern.cam.pmp.hide_special
。该变量控制是否显示特殊 PMP 端口,如 PMP(端口多路复用器)配置或 SEMB(SATA 外壳管理桥)。默认值为 1(隐藏)。r236766
cam(4) 驱动程序现在在可能的情况下默认使用 SCSI 命令 READ CAPACITY(16)来获取设备信息。这使得能够检测设备是否支持 SBC-3(SCSI 块命令-3)规范中的逻辑块预配(也称为 TRIM 或 UNMAP)。r232942, r236804
sysctl(8) 变量 kern.cam.da.da_send_ordered
和 kern.cam.ada.ada_send_ordered
已重命名为 kern.cam.da.send_ordered
和 kern.cam.ada.send_ordered
。r247105
da(4) 驱动程序的性能已得到改进。现在,它将随后的 BIO_DELETE
请求作为单个 TRIM 请求处理。r234914
[amd64, i386] hpt27xx(4) 驱动程序已包含在 GENERIC 内核中。r245941
hptiop(4) 驱动程序已更新至版本 1.8,现支持 HighPoint RocketRAID 4500/4311/4310/4211/4210/3560/3530。r239159, r242216
isci(4) 驱动程序现支持 Intel C600 串行附加 SCSI 控制器,支持芯片 ID 从 0x1d6c 到 0x1d6f。r232554
已修复 isci(4) 驱动程序中的一个 bug,该 bug 导致无法正确处理 SATA 设备的 READ CAPACITY(16) SCSI 命令。r233789
isci(4) 驱动程序现支持 SCSI UNMAP 到 ATA DSM 的转换。r239735
已修复 isci(4) 驱动程序中的一个 bug,该 bug 可能导致 smartctl(Ports 中的 sysutils/smartmontools)无法正常工作。r236264
mfi(4) 驱动程序现在支持 LSI MegaRAID SAS 卡,名为 Drake Skinny
和 ThunderBolt
。这包括 Dell PERC H810/H800/H710/H700 和 Intel RAID 控制器 RS25DB080/RS25NB008。r235625
已修复 mpt(4) 驱动程序中的一个 bug,该 bug 可能导致其连接 LSI MegaRAID 卡,但这些卡应由 mfi(4) 驱动程序处理。r232563
mfi(4) 驱动程序现支持 loader(8) 可调选项 hw.mfi.allow_cam_disk_passthrough
,用于控制原始磁盘连接。默认值为 0(禁用)。r243826
mps(4) 驱动程序已更新至版本 14.00.00.01-fbsd,现支持集成 RAID、WarpDrive 控制器、WRITE12 和 READ12 进行直接 I/O、SCSI 保护信息(EEDP)、磁带驱动器的传输层重试(TLR),以及 LSI 的用户空间工具。r237877
[sparc64, powerpc] mps(4) 驱动程序已添加到 GENERIC 内核中。r237944, r238074
MULTIPATH geom(4) 类别已更新。现在支持活动/活动模式、活动/读取模式(作为活动/活动和活动/被动模式的混合)、在不删除 geom 提供者的情况下保持故障路径、无磁盘元数据的手动配置,以及在 gmultipath(8) 工具中管理配置路径的子命令 add
、remove
、fail
、restore
、configure
。r234917
PART_LDM geom(4) 类别已添加。此分区方案支持逻辑磁盘管理器(LDM),也被称为 Microsoft Windows NT 中的动态卷。请注意,JBOD、RAID0 和 RAID5 卷尚不支持。r234407
RAID geom(4) 类别现在支持 DDF 元数据格式,定义在 SNIA Common RAID Disk Data Format Specification v2.0 中。它可以读取非降级的 RAID4/5/5E/5EE/5R/6/MDF 卷。可以使用 graid(8) 工具中的 -o
选项来指定 DDF 元数据的字节顺序。r235875
RAID geom(4) 类别现在部分支持 Intel Rapid Recover Technology(Intel RRT)。它类似于 RAID1,但具有专用的主磁盘和恢复磁盘,并提供手动控制同步。它允许使用恢复磁盘作为主磁盘的快照,回溯到上次同步的时间点。r246170
RAID geom(4) 类别现在支持 sysctl(8) 变量 kern.geom.raid.enable
和 kern.geom.raid.format
。kern.geom.raid.enable
用于控制系统范围内的磁盘元数据识别。设置为 1 时启用(默认值为 1)。kern.geom.raid.format
是类似的变量,用于控制启用/禁用特定的元数据或转换模块。有效的 format
关键字包括 raid0、raid1、raid1e、raid5 和 concat。r240554, r240556
RAID geom(4) 类别现在支持 BIO_DELETE 请求。r243679
tmpfs(5) 文件系统已准备好投入生产,且不再被视为实验性实现。r234512
tws(4) 驱动程序已更新至 LSI 的版本 10.80.00.005。r241763
umass(4) 驱动程序现支持 Olympus FE-210 相机、LG UP3S MP3 播放器、Laser MP3-2GA13 MP3 及 Garmin GPS 设备。r235086, r236654
已修复 xen(4) blkfront 驱动程序中的一个 bug。它无法在广告有多页环扩展的 Citrix XenServer 配置上进行连接。r233791
2.2.5 文件系统
linprocfs(5) 文件系统现在支持 /proc/filesystems
。r247808
修复了 msdosfs(5) 中的 bug,这些 bug 可能会导致 FAT32 文件系统挂载失败、在 FAT32 文件系统中创建损坏的目录项,并阻止 sync
和 async
挂载选项正常工作。r246547, r246548, r246550
修复了 FreeBSD NFS 子系统中的 bug,这些 bug 可能会导致 NFS 客户端上的名称缓存条目过期。r233286
修复了通过 FreeBSD NFS (newnfs) 服务器导出 ZFS 卷时发生的内存泄漏问题。请注意,oldnfs 被用作 GENERIC 内核中的默认 NFS 实现。r236147
FreeBSD NFS 子系统现在支持 NFS 客户端侧正向名称缓存条目的超时参数。添加了 nametimeo
挂载选项来指定超时时间。默认值为 60 秒,可以通过设置为 0 来禁用正向名称缓存。r233327
在 FreeBSD NFS 子系统中,已经实现了一个解决方法来处理某些情况下 NFS 创建 RPC 的响应未包含文件属性的问题。这改善了非 FreeBSD NFS 服务器与 FreeBSD NFS 客户端之间的互操作性。r235417
修复了 FreeBSD NFS 子系统中 exports(5) 处理的 bug,可能会导致当存在多个导出条目且具有不同的安全策略时,出现意外的安全配置。r241348
修复了 nullfs(5) 中的多个 bug,这些 bug 可能会导致系统崩溃。r232665
FreeBSD ZFS 子系统已更新,支持 ZFS 池的功能参数(SPA 版本为 5000)。实现了 ZFS 数据集的异步销毁、LZ4 压缩、ZIO NOP 写优化等新特性。添加了 loader(8) 可调变量 vfs.zfs.sync_pass_deferred_free
、vfs.zfs.sync_pass_dont_compress
、vfs.zfs.sync_pass_rewrite
和 vfs.zfs.nopwrite_enabled
。r243717, r244088, r247310
请注意,升级时可能会导致在将 FreeBSD 8.4 系统升级到 9.0 或 9.1 时出现互操作性问题。这是因为 FreeBSD 9.0 和 9.1 支持 SPA 版本 28,并且不识别版本 5000。为了解决此问题,FreeBSD 8.4 中新创建的 ZFS 池的默认 SPA 版本已设置为版本 28。要创建版本为 5000 的 ZFS 池,可以在创建后使用 zpool(8) 升级命令。
修复了 ZFS 子系统中的一个 bug,这可能会在导入 ZFS 池时导致系统崩溃。r246578
sysctl(8) 变量 vfs.zfs.txg.timeout
已从只读更改为可写。r235507
2.3 用户空间变更
atrun(8) 工具中的负载平均限制已根据 CPU 数量进行设置。r242991
chkgrp(8) 工具现在支持 -q
参数,用于在组格式正确时禁用打印文本。r244064
crontab(1) 工具现在在更新队列目录的 mtime 之前会等待一秒钟。之前可能发生的情况是,修改后的 crontab 更新了队列目录的 mtime,然后 crontab(1) 工具会在一秒钟内再次更新 mtime。在这种情况下,crontab 数据库未正确更新。r239877
cut(1) 工具现在支持 -w
参数,用于指定空格作为分隔符。r244305
csh(1) 和 tcsh(1) 的默认 dot.cshrc 文件已被更改。详情请参见 /usr/share/skel/dot.cshrc。r234979, r242642
daemon(8) 工具现在支持 -r
参数,用于在程序终止后重新启动它。r233762
守护进程 devd(8) 现在支持 devd.conf(5) 中的正则表达式匹配中的 !
字符。它反转了匹配逻辑。r247768
devfs(5) 挂载现在支持 ruleset=number
挂载选项,并可以通过在 mount(8) 工具中使用 -u
参数来更新现有挂载。这个新选项将指定的规则集编号设置为新 devfs 挂载的活动规则集,并在挂载时应用所有规则。如果指定的规则集不存在,则会创建一个新的空规则集。r233867
du(1) 工具现在支持 -g
参数,以显示以千兆字节为单位的结果。r247539
fetch(1) 工具现在支持 URL 中用户和密码组件的百分比编码字符串。r235254
fetch(1) 工具中最大 HTTP 重定向数量已从 5
增加到 20
。r242034
fetch(1) 工具现在支持 HTTP 状态码 305(使用代理)和 308(永久重定向)。r242288, r242291
ftpd(8) 守护进程已实现防止 CVE-2010-2632 中描述的可能的 DoS(拒绝服务)攻击的对策。r246357
新增环境变量 PROFIL_USE_PID
,用于生成包含进程 ID 的文件名的 gprof(1) 工具的分析数据。r235084
ifconfig(8) 现在支持 carp(4) 协议的 state
选项,用于设置 carp 集群的状态。有效的状态关键字有 master 和 backup。r243466
修复了 inetd(8) 守护进程中的 bug,可能会导致时间消耗的错误记账。r236875
inetd(8) 守护进程现在将监听队列大小设置为 kern.ipc.somaxconn
的值,而不是硬编码的 64。r246403
默认的 ip6addrctl(8) 地址选择策略已更新为 RFC 6724 中的策略。r246599
kdump(1) 工具现在支持选项 -p <pid>
,可以接受进程 ID 或线程 ID。r237790
lastcomm(1) 工具现在支持选项 +<format>
,用于指定进程启动和退出时间的 strftime(3) 格式。r235888
libedit 库已更新为 2009 年 12 月 28 日的 NetBSD 快照。r237739
libpmc 库已更新,以支持更多 Intel Core i7 和 Xeon 5500 系列的性能监控计数器(PMC),根据 2011 年 10 月的 Intel 文档。特别地,添加了 DTLB_MISSES.PDE_MISS
和 DTLB_MISSES.LARGE_WALK_COMPLETED
。r234045
libradius 现在支持 rad_bind_to(3) 函数。r234555
libusb(3) 库现在支持 libusb_get_max_iso_packet_size(3) 函数。r235017
libutil 库中的一个错误已被修复。该错误可能会导致在密码未设置的情况下,无法配置 /etc/login.conf
中的 priority
类功能(setusercontext(3) 函数中的 LOGIN_SETPRIORITY
)。r233153
make(1) 工具已更新至版本 8201210080。现在支持 -V ${VAR}
变量扩展和 :tu、:tl 变量修饰符。r241368
mktemp(1) 工具现在在未指定 -t
时,默认使用 tmp 作为前缀。r241422
mv(1) 工具现在支持 -h
参数。它强制将符号链接目录作为目标处理为符号链接,而不是目录。r241321
pam_exec(8) 模块现在支持 return_prog_exit_status
。启用此选项时,程序退出状态将作为 pam_exec(8) 的返回码。这允许程序说明步骤失败的原因(例如,用户不存在)。r234843
pam_unix(8) 模块中的一个错误已被修复。该错误可能会导致 login.conf(5) 中的 passwordtime
登录能力无法工作。r234741
pciconf(8) 工具现在支持 -e
参数,用于在列出模式中显示 PCI 错误详细信息。当指定此选项时,将显示 PCI 状态寄存器和 PCI-express 设备状态寄存器中的任何错误位的状态。它还会列出 PCI-express 高级错误报告(AER)版本 1 中指示的任何错误。r237732
ppp(8) 守护进程已实施一种解决方法,以支持一些返回错误签名的 3G 调制解调器,这些签名使得无法使用 LQR 和 ECHO。r242198
procstat(1) 工具现在在进程的二进制信息中显示 osreldate
。r233953
procstat(1) 工具现在在进程的虚拟内存映射中显示超页映射参数。r238752
procstat(1) 和 fstat(1) 工具现在显示与共享内存对象关联的路径名。r236699
ps(1) 工具现在支持关键字 cow
,显示进程中的写时复制故障数。r236306
ps(1) 工具现在支持关键字 dsiz
和 ssiz
,分别显示数据和堆栈大小。r241159
rarpd(8) 守护进程现在支持 vlan(4) 接口和 -P
选项来指定 PID 文件。当指定 -a
参数时,默认使用 /var/run/rarpd.ifname.pid 作为 PID 文件名。r245077
修复了 remquo(3) 函数中的一个错误,该错误导致当余数为 0
时商的符号不正确,另一个错误是在涉及次正规余数的某些情况下,余数和商都出现偏差。需要注意的是,这些错误影响了除了 amd64 和 i386 外的所有平台。r234534
rtld(1) 动态链接器在 TLS(线程本地存储)处理的性能上有所改进。r233067
setbuf(1) 工具和 libstdbuf 库已经添加。此库控制标准 stdio 流的默认缓冲行为。r235141
sh(1) 程序现在允许在算术扩展中使用下划线字符。r234001
sockstat(1) 工具现在支持 -j jid
选项,以限制显示的套接字列表为特定的 jail(8) ID。r237672
在 src.conf(5) 中,NO_FOO
变量现在覆盖 WITH_FOO
。r241969
syslogd(8) 守护进程现在支持在 syslog.conf(5) 中指定 IPv6 目标地址。r241472
tcpdrop(8) 工具现在允许用冒号或句点分隔地址和端口,而不是空格,从而允许直接粘贴如 netstat
和 sockstat
等命令的输出到命令行中。r247563
top(1) 工具现在显示使用 ZFS 的主机上的 ZFS ARC 内存使用情况。r239751
修复了 traceroute(8) 工具中的一个错误,该错误可能导致不接受任何传入的数据包。r235163
unzip(1) 程序现在支持 -Z
参数以启用 zipinfo 模式。r234331
usbdump(8) 工具现在支持过滤 USB 设备和 USB 端点。r235015
usbhidctl(1) 工具现在支持 -z
参数用于读取操作。它允许不从设备请求当前值,而只接收变化。r235881
zfs(8) list -t snapshot
命令的性能得到了显著提高。r233862
zfs(8) get
命令现在支持 -t datatype
选项。r233862
zfs(8) 命令 jail
和 unjail
现在支持 Jail 名称以及 Jail ID。r246750
zfs(8) send
命令现在在指定 -v
参数时报告传输的数据大小(以字节为单位)。r235952
当数据集已经挂载时,改变 zfs(8) 的 canmount
属性为 on
不再导致重新挂载 ZFS 数据集。r237457
2.3.1 /etc/rc.d
脚本
/etc/rc.d
脚本当 SIGINFO 信号发出时,rc.d 脚本现在会显示脚本文件名到标准错误。之前该消息是发送到标准输出,这可能会导致重定向失败。r232549
rc.d/jail 脚本现在支持变量 jail_parameters
,用于为每个 jail 指定额外的参数。r242083
service(8) 工具现在支持 -R
参数来重新启动 /usr/local/etc/rc.d
中的所有第三方服务。r246609
2.4 第三方软件
AWK 已更新至 20121220 版本。r246374
ISC BIND 已更新至 9.8.4-P2 版本。r248807
BZIP2 已更新至 1.0.6 版本。r247448
TENEX C shell (tcsh(1)) 已更新至 6.18.01 版本。r232635
LESS (less(1)) 已更新至 v451 版本。r240160
libexpat 已更新至 2.1.0 版本。r247514
netcat 已更新至 OpenBSD 5.2 版本。r243819
OpenSSH 已更新至 6.1 版本。r247521
OpenSSL 已更新至 0.9.8y 版本。r248057
sendmail 已更新至 8.14.7 版本。r250167
时区 数据库已更新至 tzdata2012j 版本。r243006
XZ 已更新至 5.0.4 版本。r245129
2.5 Ports/软件包基础设施
已添加 pkg(8) 命令。它用作 Ports 中 ports-mgmt/pkg 的引导工具。r239563
pkg_add(1) 工具现在可以用 PACKAGESUFFIX
来指定包文件名中的扩展名。r240674
pkg_create(1) 程序现在允许在 -p
选项中使用相对路径名。r233686
2.6 版本工程与集成
支持的 KDE 桌面环境版本(x11/kde4)已从 4.7.4 更新至 4.10.1。
3 从旧版升级 FreeBSD
[amd64, i386] 支持使用 freebsd-update(8) 工具进行版本间升级(以及各种安全分支的快照)。二进制升级过程将更新未修改的用户工具以及未修改的 GENERIC 内核,这些都是 FreeBSD 正式发布版本的一部分。freebsd-update(8) 工具要求升级的主机具有互联网连接。
通过光盘分发媒体上的 sysinstall(8) 主菜单的升级选项也支持一种较老形式的二进制升级。这种类型的二进制升级对于非 i386、非 amd64 的机器或没有互联网连接的系统可能很有用。
根据 /usr/src/UPDATING
中的说明,支持从先前版本进行基于源代码的升级(即重新编译 FreeBSD 基本系统)。
重要:
升级 FreeBSD 之前,务必备份 所有 数据和配置文件。
可以从 ftp://ftp.FreeBSD.org/ 下载此文件及其他版本相关文档。
关于 FreeBSD 的问题,请在联系 questions@FreeBSD.org 之前阅读 文档。
关于此文档的问题,请发送电子邮件至 doc@FreeBSD.org。
最后更新于