FreeBSD 8.4-RELEASE 详细发行说明(2013 年 6 月 7 日)
原文链接:FreeBSD 8.4-RELEASE Release Notes
FreeBSD 项目
版权 © 2013 FreeBSD 文档项目
$FreeBSD: releng/8.4/release/doc/en_US.ISO8859-1/relnotes/article.xml 251258 2013-06-02 16:21:02Z hrs $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 是 Intel Corporation 或其子公司在美国及其他国家的商标或注册商标。
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 网站上找到 FreeBSD 8.4-RELEASE 的最新勘误。
2 新特性
本节介绍了自 8.3-RELEASE 以来,FreeBSD 中最显著的新特性或变化。
典型的发行说明条目包括发布后的安全公告、新驱动或硬件支持、新命令或选项、重要的 bug 修复或第三方软件升级。它们还可能列出主要的 Port/软件包更新或发布工程实践的变化。显然,发行说明无法列出版本之间对 FreeBSD 所做的每一项小变化;本文档主要关注安全公告、用户可见的变化和主要的架构改进。
2.1 安全公告
以下安全公告中描述的问题已被修复。如需更多信息,请查阅各个公告,网址为 http://security.FreeBSD.org/。
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_PROTOCOL 和 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 脚本
当 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。
最后更新于