github编辑

FreeBSD 9.1-RELEASE 发行说明(2012 年 12 月 30 日)

FreeBSD 9.1-RELEASE 发布说明包含了在 9.1-STABLE 开发线中对 FreeBSD 基本系统所做更改的总结。本文档列出了自上次发布以来发布的适用安全公告,以及 FreeBSD 内核和用户空间的重要更改。同时,还提供了一些关于升级的简要说明。

引言

本文档包含 FreeBSD 9.1-RELEASE 的发布说明。它涉及了最近新增、修改或删除的 FreeBSD 功能,并提供了一些关于从之前版本升级的说明。

此版本的 FreeBSD 9.1-RELEASE 是一个发布版本。可以在 http://www.FreeBSD.org/releases/arrow-up-right 或其镜像站点找到。有关获取此版本(或其他)发布版本的更多信息,可以参阅 FreeBSD 手册arrow-up-right 中的“获取 FreeBSD”附录 “Obtaining FreeBSD”arrow-up-right

我们建议所有用户在安装 FreeBSD 之前先查看发布的勘误文档。勘误 文档会在发布周期结束或发布后更新,包含一些“突发”信息。通常,它包括已知的错误、与安全相关的公告以及文档修正。FreeBSD 9.1-RELEASE 的勘误最新版本可以在 FreeBSD 网站上找到。

新特性

本节涉及自 9.0-RELEASE 以来,FreeBSD 中最显著的新特性或变更。

通常,发布说明会记录自 9.0-RELEASE 以来发布的最新安全公告、新的驱动程序或硬件支持、新命令或选项、主要的 bug 修复或第三方软件升级。它们还可能列出对主要 Port/包或发布工程实践的更改。显然,发布说明无法列出每一个在版本间对 FreeBSD 所做的更改;本文件主要聚焦于安全公告、用户可见的更改以及主要的架构改进。

安全公告

以下安全公告所涉及的问题已被修复。有关更多信息,请查阅各个公告,详情请访问 http://security.FreeBSD.org/arrow-up-right

| 公告 | 日期 | 主题 | | | - | | | SA-12:01.opensslarrow-up-right | 2012 年 5 月 3 日 | OpenSSL 多个漏洞 | | SA-12:02.cryptarrow-up-right | 2012 年 5 月 30 日 | 错误的 crypt() 哈希处理 | | SA-12:03.bindarrow-up-right | 2012 年 6 月 12 日 | named(8)arrow-up-right 中零长度 RDATA 字段的错误处理 | | SA-12:04.sysretarrow-up-right | 2012 年 6 月 12 日 | 从内核返回时的特权提升漏洞 | | SA-12:05.bindarrow-up-right | 2012 年 8 月 6 日 | named(8)arrow-up-right DNSSEC 验证拒绝服务漏洞 | | SA-12:06.bindarrow-up-right | 2012 年 11 月 22 日 | 多个 named(8)arrow-up-right 拒绝服务漏洞 | | SA-12:07.hostapdarrow-up-right | 2012 年 11 月 22 日 | EAP-TLS 消息的消息长度验证不足 | | SA-12:08.linuxarrow-up-right | 2012 年 11 月 22 日 | Linux 兼容层的输入验证错误 |

内核变更

FreeBSD Jail 子系统现在支持在 Jail 内挂载 devfs(5)arrow-up-rightnullfs(5)arrow-up-right 和 ZFS 文件系统。新增的 jail(8)arrow-up-right 参数 allow.mount.devfsallow.mount.nullfsallow.mount.zfs 用于控制每个 Jail 的挂载权限。默认情况下,所有这些参数都被禁用。r232728arrow-up-right

新增了一个 loader(8)arrow-up-right 可调参数 kern.eventtimer.activetick。此参数指定是否每个硬时钟滴答都在每个活跃 CPU 上运行,还是仅在一个 CPU 上运行。将其设置为 0 可以减少 SMP 机器上的总中断次数。默认值为 1r234167arrow-up-right

实现了 posix_fadvise(2)arrow-up-right 系统调用。它是类似于 madvise(2)arrow-up-right 的功能,但它作用于文件涉及符,而不是内存区域。r229723arrow-up-right

新增了 filemon(4)arrow-up-right 伪设备。它允许进程收集其子进程的文件操作数据。r237795arrow-up-right

sysctl(8)arrow-up-right 变量 kern.stop_scheduler_on_panic 现在默认设置为 1r235413arrow-up-right

FreeBSD Linux ABI 兼容层现在支持系统调用 linux_fadvise64()linux_fadvise64_64()r231145arrow-up-right

当 FreeBSD 在虚拟机中运行时,默认情况下 loader(8)arrow-up-right 可调参数 hw.memtest.tests 会自动设置为 0r230266arrow-up-right

新增了 loader(8)arrow-up-right 可调参数 kern.msgbuf_show_timestamp。启用时,会在系统消息缓冲区的每一行添加时间戳。默认值为 0(禁用)。r234075arrow-up-right

null(4)arrow-up-rightzero(4)arrow-up-right 伪设备驱动现在通过 fcntl(2)arrow-up-right 系统调用支持非阻塞模式。r230320arrow-up-right

FreeBSD sched_ule(4)arrow-up-right 调度器在 SMT(Simultaneous MultiThreading)CPU 上的 CPU 负载均衡方面进行了改进。当线程数量小于逻辑 CPU 数量时,性能提高了 10-15%。r233599arrow-up-right

新增了 sysctl(8)arrow-up-right 变量 security.bsd.unprivileged_idprio。此变量控制非 root 用户是否可以设置空闲优先级。默认情况下此功能禁用。r230039arrow-up-right

splash(4)arrow-up-right 屏幕接口现在支持 TheDraw 格式的 ASCII 艺术。r228445arrow-up-right

启动加载器更改

boot0cfg(8)arrow-up-right 工具现在支持通过启动块 boot0 在下次启动时临时配置 PXE 启动。可以通过 -s 选项指定分区号 6 或关键字 PXE 来启用 PXE 启动。r230065arrow-up-right

FreeBSD 的 boot(8)arrow-up-right 启动块现在支持 /boot/config 作为启动块参数文件,除 /boot.config 外。当这两个文件都存在时,将使用前者。r231287arrow-up-right

现在 gptboot 启动块仅在主 GPT 头和表无效时,才从最后一个 LBA 读取备份 GPT 头。这解决了与一些 geom(4)arrow-up-right 提供者(如 MIRROR,其使用最后一个 LBA 存储元数据)之间的兼容性问题。r234693arrow-up-right

zfsboot 启动块和 zfsloader 现在支持 ZFS 存储池中的文件系统。在 zfsloader 中,ZFS 设备名称格式现在为 zfs:pool/fs,完整的文件路径格式为 zfs:pool/fs:/path/to/filezfsboot 启动块接受的内核/加载器名称格式为 pool:/fs:/path/to/file;或者,如之前一样,pool:/path/to/file。在后一种情况下,使用默认文件系统(池根或具有 bootfs 属性的文件系统)。zfsboot 启动块将所选存储池和数据集的 GUID 传递给 zfsloader 作为其默认值。r237766arrow-up-right

硬件支持

acpi_wmi(4)arrow-up-right 驱动程序现在支持附加多个实例。r229858arrow-up-right

hwpmc(4)arrow-up-right 驱动程序现在支持软件事件。允许同时使用软件 PMC 和硬件 PMC。r236238arrow-up-right

为 NXP(飞利浦)PCF8563 RTC 添加了 pcf8563(4)arrow-up-right 驱动程序。r236078arrow-up-right

添加了以下 sysctl(8)arrow-up-right 变量:kern.proc.env 用于环境字符串,kern.proc.auxv 用于进程栈中的 ELF 辅助向量,kern.proc.groups 用于进程组,kern.proc.rlimit 用于进程资源限制,kern.proc.ps_strings 用于 ps_strings 位置,kern.proc.osrel 用于进程二进制的 osreldate。r230754arrow-up-right, r233950arrow-up-right

usb(4)arrow-up-right 驱动程序现在正确处理挂起和恢复,无需重新加载内核模块。r229100arrow-up-right, r229369arrow-up-right

修复了 xhci(4)arrow-up-right(USB 3.0)驱动程序中的一个错误,该错误导致其无法与 USB 3.0 集线器一起使用。r230302arrow-up-right

添加了 viawd(4)arrow-up-right 驱动程序,支持 VIA 南桥(VT8251、CX700、VX800、VX855、VX900)中的看门狗定时器。r229927arrow-up-right

添加了 wbwd(4)arrow-up-right 驱动程序,支持 Winbond Super I/O 芯片中的看门狗定时器。r235926arrow-up-right

多媒体支持

Intel GPU 驱动程序 drm2(4) 支持 GEM 和 KMS,并适用于新一代 GPU,如 IronLake、SandyBridge 和 IvyBridge。r236926arrow-up-right, r236927arrow-up-right, r239965arrow-up-right

agp(4)arrow-up-right 驱动程序现在支持 SandyBridge 和 IvyBridge CPU 的北桥。r236926arrow-up-right, r236927arrow-up-right, r239965arrow-up-right

snd_hda(4)arrow-up-right 驱动程序已经更新。现在它支持并提供 HDMI、新的音量控制、自动录音源选择、运行时重新配置、一个控制器上的多个 PCM 设备、多声道录音、额外的播放/录制流、更高带宽和更具信息性的设备名称。r232798arrow-up-right

添加了 snd_hdspe(4)arrow-up-right 驱动程序,支持 RME HDSPe AIO 和 RayDAT 声卡。r233165arrow-up-right

snd_emu10kx(4)arrow-up-rightsnd_maestro3(4)arrow-up-rightsnd_csa(4)arrow-up-right 驱动程序中,已将 GPL 许可证的头文件替换为 BSD 许可证的文件。现在这些驱动程序完全采用 BSD 许可证,并已包含在 FreeBSD/amd64 和 FreeBSD/i386 的 GENERIC 内核中。r230964arrow-up-right, r230985arrow-up-right, r231047arrow-up-right, r235769arrow-up-right

网络接口支持

修复了 ae(4)arrow-up-right 驱动程序中的一个错误,该错误可能会导致在某些条件下无法正常工作。r229520arrow-up-right

axe(4)arrow-up-right 驱动程序现在支持 ASIX AX88772B 控制器的 TX/RX 校验和卸载支持。r229106arrow-up-right

bce(4)arrow-up-right 驱动程序已改进:

  • 消除了不必要的链路上下波动。r229864arrow-up-right

  • 修复了一个错误,该错误可能导致当接口标记为关闭时,IPMI 无法正常工作。r236216arrow-up-right

  • 现在支持远程 PHY,可以通过 MRBE(MultiRate Backplane Ethernet)定义的消息页面执行 MDIO 类型的访问,允许控制器访问远程收发器。这在如 Dell PowerEdge M610 Blade 等机器上可见。r235818arrow-up-right

已改进 bge(4)arrow-up-right 和 brgphy(4) 驱动程序:

cxgbe(4)arrow-up-rightcxgb(4)arrow-up-right 驱动程序已更新至固件版本 1.5.2.0。现在它们支持通过纯文本配置文件进行设备配置、IPv6 硬件校验和、IPv6 TSO 和 LRO、cxgbetool(8) 工具中的 loadfw 命令(能将固件安装到卡中),以及在 dev.t4nex.N.misc 下的 sysctl(8)arrow-up-right 变量,用于获取各种信息。r231093arrow-up-right, r237925arrow-up-right

dc(4)arrow-up-right 驱动程序现在支持 NVIDIA(ULi)M5261/M5263 PCI FastEthernet 控制器,这些控制器位于 ULi M1563 南桥和 M1689 桥上。r229334arrow-up-right

et(4)arrow-up-right 驱动程序现在可以在所有平台上工作。修复了一个可能导致 altq(4)arrow-up-right 支持无法正常工作的错误。已新增一个 sysctl(8)arrow-up-right 变量,在 dev.et.N.stats 下用于硬件 MAC 统计。r229711arrow-up-right, r229717arrow-up-right, r229720arrow-up-right

igb(4)arrow-up-right 驱动程序已更新至版本 2.3.4。现在它支持更新的 i210/i211 设备。r238262arrow-up-right

iwn(4)arrow-up-right 驱动程序现在支持 Intel Centrino Wireless-N + WiMAX 6150 和 Wireless-N 100/130 系列。r233838arrow-up-right, r235843arrow-up-right

miibus(4)arrow-up-right 总线驱动程序现在支持设备提示 hint.miibus.N.phymask,用于探测 PHY 地址。这对于手动探测不实现 IEEE 802.3 基本寄存器集的 PHY 非常有用。另外, miibus(4)arrow-up-right 驱动程序已更改为提示总线,能通过提示添加子设备,并设置其附加参数,除了自动探测的 PHY。r230709arrow-up-right

现在 msk(4)arrow-up-right 驱动程序在 64 位平台上使用 64 位 DMA 地址。r229524arrow-up-right

mxge(4)arrow-up-right 驱动程序已更新至 Myricom 的固件版本 1.4.55。r236413arrow-up-right

nsphyter(4) 驱动程序现在支持 National DP83849。r232137arrow-up-right

oce(4)arrow-up-right 驱动程序,支持 Emulex OneConnect 10Gbit 以太网卡,已被添加。r231663arrow-up-right

ral(4)arrow-up-right 驱动程序现在支持 Ralink RT2800 和 RT3000 芯片组。r236004arrow-up-right

re(4)arrow-up-right 驱动程序现在支持 RTL8411 PCIe 千兆以太网控制器。修复了一个可能导致 WoL(唤醒以太网)在 RTL8168E 上无法正常工作的错误。r229529arrow-up-right, r231731arrow-up-right

runfw(4)arrow-up-right 固件已更新至版本 0.236。r234028arrow-up-right

sfxge(4)arrow-up-right 驱动程序,支持基于 Solarflare SFC9000 系列控制器的 10Gb 以太网适配器,已被添加。r228100arrow-up-right

smcphy(4) 驱动程序现在支持 Seeq Technology 80220 PHY。这种 PHY 出现在 Adaptec AIC-6915 Starfire 以太网控制器中,并由 sf(4)arrow-up-right 驱动程序支持。r233485arrow-up-right

ti(4)arrow-up-right 驱动程序现在支持 altq(4)arrow-up-right 框架,报告链路状态变化,以及在 dev.ti.N 下的 sysctl(8)arrow-up-right 变量,用于中断调节参数。r229417arrow-up-right, r229438arrow-up-right

修复了 ti(4)arrow-up-right 驱动程序中的一个错误,该错误可能导致其在使用内核选项 PAE 时无法正常工作。r229441arrow-up-right

vge(4)arrow-up-right 驱动程序已更新,以改进链路建立和链路状态检测。r229540arrow-up-right

vr(4)arrow-up-right 驱动程序现在启用了 PHY 驱动程序中的流量控制功能。r229641arrow-up-right

xnb(4)arrow-up-right Xen Paravirtualized Backend 以太网驱动程序(netback)已更新。此驱动程序通过新的总线框架连接,并在 HVM 和 PVM 模式下都能正常工作。r231697arrow-up-right

网络协议

if_bridge(4)arrow-up-right 虚拟接口现在支持根据成员接口的状态报告链路状态变化。r236051arrow-up-right

ipfw(4)arrow-up-right 数据包过滤规则语法中的 table 参数现在支持 IP 地址、接口名称、端口号和 Jail ID。以下语法是有效的:r234597arrow-up-right

FreeBSD ip6(4)arrow-up-right 协议栈在性能方面有所改进。基准测试可以在 http://people.freebsd.org/~bz/bench/arrow-up-right 查看。

FreeBSD ip6(4)arrow-up-right 协议栈现在支持多个 FIBs。r232292arrow-up-right

通过路由器广告消息配置的 IPv6 默认路由现在在默认路由被手动删除并接收到同一路由的另一个 RA 消息时,能够正确重新安装。r230604arrow-up-right

修复了一个可能导致 IPV6_MULTICASE_HOPS 套接字选项返回不正确值的错误。r227885arrow-up-right

添加了一个新的 sysctl(3)arrow-up-right 变量 NET_RT_IFLISTL。此选项查询地址列表,并在不破坏 ABI 的情况下作用于扩展和可扩展的结构 if_msghdrlifa_msghdrlr231768arrow-up-right

添加了 netmap(4)arrow-up-right 快速数据包 I/O 框架。 em(4)arrow-up-right、man:lem(4)、igb(4)arrow-up-rightre(4)arrow-up-right 驱动程序现在支持此框架。技术细节可以在 http://svn.freebsd.org/viewvc/base?view=revision&revision=231650arrow-up-right 查看。r231650arrow-up-right, r235527arrow-up-right

FreeBSD sctp(4)arrow-up-right 协议栈现在支持一个新的 sysctl(8)arrow-up-right 变量 net.inet.sctp.blackhole。如果设置为 1,则不会在接收到 INIT 后发送 ABORT。如果设置为 2,则不会在接收到意外数据包后发送 ABORT。如果设置为 0(默认值),则会发送 ABORTr231045arrow-up-right

修复了一个错误,该错误可能在指定 SCTP_RECVINFOSCTP_NXTINFO 给系统调用 getsockopt(2)arrow-up-right 时引发系统崩溃。r231049arrow-up-right

FreeBSD sctp(4)arrow-up-right 协议栈现在支持套接字选项 SCTP_REMOTE_UDP_ENCAPS_PORTr231070arrow-up-right, r231140arrow-up-right

添加了套接字选项 SO_PROTOCOLSO_PROTOTYPE。这些选项返回套接字协议号。r232805arrow-up-right

添加了套接字选项 TCP_KEEPINITTCP_KEEPIDLETCP_KEEPINTVLTCP_KEEPCNT。这些选项允许按套接字控制初始超时、空闲时间、空闲重发间隔和空闲发送次数。r232945arrow-up-right

磁盘和存储

arcmsr(4)arrow-up-right 驱动程序已更新至版本 1.20.00.25。r240758arrow-up-right

ahci(4)arrow-up-right 驱动程序现在支持新的 loader(8)arrow-up-right 可调参数 hw.ahci.force。此参数控制是否尝试连接 AHCI 能力设备,即使它被配置为使用传统仿真模式。默认启用。r229291arrow-up-right

新的基于 cam(4)arrow-up-rightata(4)arrow-up-right 驱动程序现在支持旧版 loader(8)arrow-up-right 可调参数 hw.ata.ata_dmahw.ata.atapi_dma,以便与旧版兼容。r231251arrow-up-right

cam(4)arrow-up-right 驱动程序现在支持 SEMB(SATA 外壳管理桥)设备,相当于 SCSI SES/SAF-TE 设备。r236778arrow-up-right

添加了一个新的 sysctl(8)arrow-up-right 变量 kern.cam.pmp.hide_special。此变量控制是否暴露或隐藏特殊的 PMP 端口,如 PMP(端口多路复用器)配置或 SEMB(SATA 外壳管理桥)。默认值为 1(隐藏)。r236765arrow-up-right

新增了 ctl(4) 驱动程序,支持 cam(4)arrow-up-right 目标层和 ctladm(8)arrow-up-right,一个用户空间控制工具。ctl(4) 是一个磁盘和处理器设备仿真子系统,支持标记队列、SCSI 任务属性、SCSI 隐式命令排序、完整任务管理、多个端口、多个同时启动器、多个同时备份存储、模式感知/选择和错误注入支持。r231772arrow-up-right

cd(4)arrow-up-right 驱动程序现在以与 acd(4)arrow-up-right 相同的方式支持音频 CD。它将向 geom(4)arrow-up-right 子系统报告一个 2352 字节的扇区大小,并使用命令 READ CD 读取数据。这解决了与 multimedia/vlcarrow-up-right 的互操作性问题。r230014arrow-up-right

da(4)arrow-up-right 驱动程序现在支持 BIO_DELETE。为了选择方法,已为每个设备实例添加了新的 sysctl(8)arrow-up-right 变量 kern.cam.da.N.delete_method。支持以下值:r236677arrow-up-right

| 值 | 方法 | | -- | | | NONE | 设备未报告逻辑块配置支持 | | DISABLE | 由于错误,已禁用配置支持 | | ZERO | 使用 WRITE SAME (10) 命令写零 | | WS10 | 使用 WRITE SAME (10) 命令并设置 UNMAP 位 | | WS16 | 使用 WRITE SAME (16) 命令并设置 UNMAP 位 | | UNMAP | 使用 UNMAP 命令(相当于 ATA DSM TRIM 命令) |

当值为 NONE 时,设备未通过相应的 VPD 页面报告逻辑块配置支持。可以为测试设置特定方法,并且在设备不支持时会自动禁用。

MIRROR geom(4)arrow-up-right 类现在支持 BIO_DELETE。这意味着在删除数据时,支持的设备将发出 TRIM 命令。r238500arrow-up-right

MULTIPATH geom(4)arrow-up-right 类已更新。现在支持主动/主动模式、主动/读取模式(作为主动/主动和主动/被动的混合模式)、保持失败路径而不移除 geom 提供者、无磁盘元数据的手动配置,以及在 gmultipath(8)arrow-up-right 工具中使用 addremovefailrestoreconfigure 子命令来管理已配置的路径。r229303arrow-up-right, r234916arrow-up-right

PART_LDM geom(4)arrow-up-right 类已添加。此分区方案支持逻辑磁盘管理器(LDM),也称为微软 Windows NT 中的动态卷。请注意,JBOD、RAID0 和 RAID5 卷目前不受支持。r234406arrow-up-right

PART_MBR geom(4)arrow-up-right 类现在允许将 Linux 主分区或扩展分区用作系统转储设备。r230763arrow-up-right

RAID geom(4)arrow-up-right 类现在支持大于 2TB 容量的磁盘,适用于英特尔元数据格式。r230244arrow-up-right

RAID geom(4)arrow-up-right 类现在支持 DDF 元数据格式,该格式定义在 SNIA 通用 RAID 磁盘数据格式规范 v2.0 中。r235874arrow-up-right

UNCOMPRESS geom(4)arrow-up-right 类和 mkulzma(8)arrow-up-right 工具已添加。此类支持 lzma 压缩图像,类似于 UZIP geom(4)arrow-up-right 类和 mkuzip(8)arrow-up-right 工具。r235483arrow-up-right

已修复 isp(4)arrow-up-right 目标模式中的错误。r230019arrow-up-right

ixgbe(4)arrow-up-right 驱动程序现在支持 Intel X540 适配器。r230775arrow-up-right

已修复 mfi(4)arrow-up-right 驱动程序中的一个错误。该错误可能导致由于中断确认丢失而出现一些不一致,并输出以下日志消息:r227533arrow-up-right

mfi(4)arrow-up-right 驱动程序现在支持单消息 MSI,以及 Drake Skinny 和 Thunderbolt 卡。已添加 loader(8)arrow-up-right 可调参数 hw.mfi.msi,默认启用。r229611arrow-up-right, r234429arrow-up-right

mps(4)arrow-up-right 驱动程序已更新至版本 14.00.00.01-fbsd。现在支持集成 RAID、WarpDrive 控制器、WRITE12 和 READ12 直接 I/O、SCSI 保护信息(EEDP)、磁带驱动的传输级重试(TLR),以及 LSI 的用户空间工具。r230920arrow-up-right, r231679arrow-up-right, r237876arrow-up-right

已修复 mpt(4)arrow-up-right 驱动程序中的一个错误。该错误可能尝试连接应由 mfi(4)arrow-up-right 驱动程序处理的 MegaRAID 卡。r232562arrow-up-right

现在存储设备驱动程序 usb(4)arrow-up-right 默认启用省电模式。r229107arrow-up-right

文件系统

FreeBSD 的 NFS 文件系统得到了改进:

  • 现在支持客户端端正向名称缓存条目的超时。新增了挂载选项 nametimeo,默认值为 60(秒)。[r233326arrow-up-right]

  • 修复了通过 FreeBSD NFS 服务器导出 ZFS 卷时发生的内存泄漏问题。r234740arrow-up-right

  • 修复了一个错误。当进程在 NFS 文件系统上写入 mmap 支持的文件时,某些情况下(例如由于权限不匹配的错误),数据刷新可能会失败,而且此失败无法被检测为错误。现在新增了一个 sysctl(8)arrow-up-right 变量 vfs.nfs.nfs_keep_dirty_on_error 来控制客户端端的相关行为。当设置为 1 时,写操作失败的页面将保持为脏数据。默认值为 0r233730arrow-up-right

  • nfsv4(4)arrow-up-right 文件系统现在支持一个 sysctl(8)arrow-up-right 变量 vfs.nfsd.disable_checkutf8,该选项禁用了对文件名的 UTF-8 合规性检查。默认情况下,此选项是禁用的。请注意,启用此选项可能有助于解决某些互操作性问题,但会导致 NFSv4 服务器不符合 RFC 3530 标准。r229799arrow-up-right

tmpfs(5)arrow-up-right 文件系统不再是实验性实现。r234511arrow-up-right

tmpfs(5)arrow-up-right 文件系统现在支持 sysctl(8)arrow-up-right 变量 vfs.tmpfs.memory_reserved,用于设置当 tmpfs(5)arrow-up-right 尝试分配新节点时所需的空闲页面数量。r234849arrow-up-right

FreeBSD 的 ZFS 文件系统通过合并 illumos 项目的改进进行了更新。以下是所做的更改:r229578arrow-up-right, r232328arrow-up-right

一个简单的脚本 zfsboottest.sh 已添加到源代码树中。该脚本用于检查在使用 ZFS 作为根文件系统时系统是否配置正确。脚本位于 /usr/src/tools/tools/zfsboottest.sh,并使用同目录下的二进制程序 zfsboottestr227705arrow-up-right

可以通过以下命令构建并安装该二进制程序:

然后,可以使用以下命令检查系统。poolname 是要启动的 ZFS 存储池名称:

sysctl(8)arrow-up-right 变量 vfs.zfs.txg.timeout 已从只读变更为可写。

用户空间变更

已移除 auth.conf(5)arrow-up-right ,因为它多年前已被弃用。r238481arrow-up-right

camcontrol(8)arrow-up-right 工具现在支持子命令 fwdownload,用于更新来自 Hitachi、HP、IBM、Plextor、Quantum 和 Seagate 的 SCSI 设备的固件。此子命令将重新编程通过 ATA/SATA 传输连接的设备上的固件。r237740arrow-up-right

dhclient(8)arrow-up-right 工具现在支持 domain-search(选项编号 119,在 RFC 3397 中所述)。这允许 DHCP 服务器发布在名称查找过程中使用的隐式域后缀列表。如果指定此选项,将向 /etc/resolv.conf 中添加关键字 searchr230597arrow-up-right

dump(8)arrow-up-right 工具现在在 /etc/dumpdates 中使用 53 个字符来表示设备名称,而之前此长度为 32 个字符。r230047arrow-up-right

fetch(1)arrow-up-right 工具现在能正确支持 URL 中的百分比编码的用户和密码部分。r235253arrow-up-right

已实现函数 fdlopen(3)arrow-up-right。这是个用于 rtld(1)arrow-up-right 通过文件涉及符加载共享对象的接口。r230410arrow-up-right

fopen(3)arrow-up-right 函数现在支持 ISO/IEC 9899:2011 和 C11 标准中的 x(独占创建并打开模式)选项。r229845arrow-up-right

修复了 gcc(1)arrow-up-right 编译器中的一个错误。它可能在指定 -ffast-math 时导致不正确的计算。r234023arrow-up-right

守护进程 hastd(8)arrow-up-right 现在支持在 hast.conf(5)arrow-up-right 中指定其进程 ID 文件的文件名。r229509arrow-up-right

ifconfig(8)arrow-up-right 工具现在支持参数 vlanhwcsum,用于设置或重置 VLAN 上的校验和卸载能力。r231221arrow-up-right

修复了 ifconfig(8)arrow-up-right 工具中的一个错误,该错误可能在没有 IPv6 支持的 jail 中显示错误信息。r238872arrow-up-right

ifconfig(8)arrow-up-right 工具现在支持参数 carp state state,用于强制设置状态为 backupmasterr232486arrow-up-right

jail(8)arrow-up-right 工具现在支持配置文件 (jail.conf(5)arrow-up-right) 来进行复杂的配置。r235839arrow-up-right

kdump(1)arrow-up-right 工具现在支持选项 -p pid,以接受进程 ID 或线程 ID。r237789arrow-up-right

kenv(1)arrow-up-right 工具现在支持参数 -v 来以 name=value 格式显示条目,以及 -N 参数来仅显示名称。r236118arrow-up-right

kldload(8)arrow-up-right 工具现在支持 -n 参数,用于忽略在指定模块已加载时的错误状态。r233560arrow-up-right

libedit 已更新为 2009 年 12 月 28 日的 NetBSD 快照。r237738arrow-up-right

libmap.conf(5)arrow-up-right 现在支持 includeincludedir 指令。它们允许将指定的文件包含到配置中。r236523arrow-up-right

libthr pthread 库中的锁处理性能已得到改进,尤其是在互斥锁竞争激烈的情况下,现在速度提高了 10 倍。r234372arrow-up-right

引入了新的 C++ 栈。该栈包括 libcxxrt(最初由 FreeBSD 开发人员在 PathScale 的合同下开发,并由 FreeBSD 和 NetBSD 基金会开源)以及来自 LLVM 项目的 libc*libcxxrt 是 GNU libsupc 的替代品,后者实现了 C++ 运行时支持功能,如运行时类型信息、动态转换、线程安全的静态初始化器和异常处理。libc* 实现了 C++11 标准库,将在未来的版本中替代 GNU libstdc。在 9.1-RELEASE 中,libstdc 仍作为标准安装,并且现在动态链接到 libsupc。这使得同时链接 libstdclibc 的库可以在同一程序中使用,以帮助迁移。r235798arrow-up-right

limits(1)arrow-up-right 工具现在支持 -P pid 选项,用于控制指定进程的限制。r230919arrow-up-right

pciconf(8)arrow-up-right 工具现在支持 -e 参数,用于在列出模式下显示 PCI 错误详细信息。当指定该选项时,将显示 PCI 状态寄存器和 PCI-express 设备状态寄存器中任何错误位的状态。还会列出 PCI-express 高级错误报告(AER)版本 1 指示的任何错误。[r237731arrow-up-right]

procstat(1)arrow-up-right 工具现在在显示进程虚拟内存映射时显示超级页映射参数。[r229710arrow-up-right]

procstat(1)arrow-up-right 工具现在支持 -e 参数以显示进程环境变量,-x 参数以显示 ELF 辅助向量,以及 -l 参数以显示资源限制。[r230917arrow-up-right, r230918arrow-up-right]

remquo(3)arrow-up-right 函数中的一个错误已被修复,该错误会导致当余数为 0 时商的符号不正确,另一个错误是当涉及到子正常余数时,余数和商在某些情况下偏差。请注意,这些错误影响了所有平台,除了 amd64 和 i386。[r234535arrow-up-right]

rtld(1)arrow-up-right 运行时链接器现在支持 GCC 的 RELRO(只读重定位)。这防止了 GOT(全局偏移表)被覆盖。[r231579arrow-up-right]

rtld(1)arrow-up-right 运行时链接器现在支持 GNU 哈希段(DT_GNU_HASH),它是可选 ELF 哈希段的替代品。[r235396arrow-up-right]

已添加 setbuf(1)arrow-up-right 工具和 libstdbuf 库。它控制标准 stdio 流的默认缓冲行为。[r235139arrow-up-right]

top(1)arrow-up-right 工具现在正确支持 -m io 选项下 ZFS 的每线程 I/O 统计信息。[r227702arrow-up-right]

unzip(1)arrow-up-right 工具现在支持 -Z 选项用于 zipinfo。[r234330arrow-up-right]

xlocale(3)arrow-up-right API 已实现。它包含各种标准库函数的 _l 后缀版本,这些函数使用全局区域设置,允许它们接收显式区域设置参数,并提供线程安全的扩展区域设置支持。这些 API 是 IEEE Std 1003.1-2008(POSIX.1-2008 或 ISO/IEC 9945:2009)兼容性所必需的,也是 libc++GNOME 的最新版本所需的。此实现还支持与 Apple Darwin 兼容的多个扩展。[r235785arrow-up-right]

新增变量 daily_status_zfs_zpool_list_enable。它控制是否列出 periodic/daily/404.status-zfs 中的所有 ZFS 池。默认值为 YESr231721arrow-up-right

periodic/daily/800.scrub-zfs 中使用的 daily_scrub_zfs_default_threshold 默认值现已设置为 35 天。r229381arrow-up-right

rc.d/nfsd 脚本现在在 nfsv4_server_enable 设置为 YES 时,将 vfs.nfsd.server_max_nfsvers sysctl(8)arrow-up-right 变量设置为 4r227607arrow-up-right

已修复同时定义 ipv6_enable=YESipv6_gateway_enable=YES 时的向后兼容性问题。r242189arrow-up-right

第三方软件

ISC BIND 已更新到版本 9.8.3-P4。r241417arrow-up-right

提供低级目标特定接口的 compiler-rt 库(例如 libgcc 中的函数)已更新到修订版 147467。r236018arrow-up-right

file (file(1)arrow-up-right) 已更新到版本 5.11。r237983arrow-up-right

GNU gperf(1)arrow-up-right 已更新到版本 3.0.3(最新的 GPLv2 许可版本)。r230237arrow-up-right

libarchivebsdtar(1)arrow-up-rightcpio(1)arrow-up-right 已更新到版本 2.8.5。r229588arrow-up-right

libpcap 库已更新到 1.2.1。r236167arrow-up-right

libstdc++ 已更新到 gcc-4_2-branch 的修订版 135556(最后一个 LGPLv2 许可版本)。r229551arrow-up-right

已导入 LLVM 编译器基础设施和 clang(C 语言家族前端)版本 3.1。请注意,默认情况下不会使用它来构建 FreeBSD 基本系统。r236144arrow-up-right

netcat 工具已更新到版本 5.1。r235971arrow-up-right

OpenSSL 已更新到版本 0.9.8x。r237998arrow-up-right

tcpdump (tcpdump(1)arrow-up-right) 工具已更新到版本 4.2.1。r236192arrow-up-right

TENEX C shell (tcsh(1)arrow-up-right) 已更新到版本 6.18.01。r232633arrow-up-right

timezone 数据库已更新到 tzdata2012a 版本。r233447arrow-up-right

zlib 库已更新到版本 1.2.7。r237691arrow-up-right

2.5 发布工程与集成

支持的 KDE 桌面环境版本(x11/kde4arrow-up-right)已更新至 4.8.4。

从旧版 FreeBSD 升级

使用 freebsd-update(8)arrow-up-right 或基于源代码的升级程序进行升级

[amd64, i386] 从 FreeBSD 6.2-RELEASE 开始,支持使用 freebsd-update(8)arrow-up-right 工具进行版本之间的二进制升级(以及各安全分支的快照)。二进制升级程序将更新未修改的用户空间工具,以及未修改的 GENERIC 内核,这些都作为官方 FreeBSD 发行版的一部分进行分发。freebsd-update(8)arrow-up-right 工具要求升级的主机必须具备互联网连接。

可以根据 /usr/src/UPDATING 中的说明进行基于源代码的升级(通过重新编译 FreeBSD 基本系统的源代码进行升级)。

有关升级说明的更详细信息,请参阅 http://www.FreeBSD.org/releases/9.1R/installation/arrow-up-right

重要:

在升级 FreeBSD 之前,必须备份 所有 数据和配置文件。

用户可见的不兼容性

FreeBSD 9.0 及以后的版本在系统配置方面存在一些不兼容性,你可能需要在升级系统之前了解这些问题。在提交问题报告/向 FreeBSD 邮件列表提问之前,请务必阅读本节内容以及 9.0-RELEASE 发行说明中的升级部分arrow-up-right

最后更新于