github编辑

FreeBSD 9.3-RELEASE 发行说明(2014 年 7 月 16 日)

摘要

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


介绍

本文档包含了 FreeBSD 9.3-RELEASE 的发行说明。它介绍了 FreeBSD 最近添加、修改或删除的功能,并提供了一些关于从以前版本升级的说明。

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

所有用户都被鼓励在安装 FreeBSD 之前查看发布的勘误文档。勘误 文档会更新包含发布周期末或发布后发现的“最后时刻”信息。通常,它包含已知的错误、安全公告和文档修正。FreeBSD 9.3-RELEASE 的最新勘误副本可以在 FreeBSD 网站上找到。

新特性

本节介绍了自 9.2-RELEASE 以来 FreeBSD 中最显著的新增或更改功能。

典型的发行说明项目会记录在 9.2-RELEASE 之后发布的最新安全公告、新的驱动程序或硬件支持、新的命令或选项、主要的错误修复或第三方软件升级。它们还可能列出主要 port/包或发布工程实践的更改。显然,发行说明无法列出在发行版之间对 FreeBSD 所做的每一个更改;本文档主要关注安全公告、用户可见的更改和重大架构改进。

安全公告

以下安全公告中介绍的问题已经修复。有关更多信息,请查阅个别公告,详情见 http://security.FreeBSD.org/arrow-up-right

公告编号
日期
主题

2014 年 1 月 14 日

修复 bsnmpd(1)arrow-up-right 远程拒绝服务漏洞

2014 年 1 月 14 日

默认禁用 ntpd(8)arrow-up-right 中的“monitor”功能

2014 年 1 月 14 日

远程拒绝服务漏洞

2014 年 4 月 8 日

NFS 服务器死锁

2014 年 4 月 8 日

ECDSA 侧信道泄露

2014 年 4 月 30 日

TCP 组装漏洞

2014 年 5 月 26 日

Sendmail 错误的 close-on-exec 参数处理

2014 年 6 月 3 日

PAM 策略解析器中的错误处理

2014 年 6 月 5 日

多个漏洞

2014 年 6 月 24 日

多个漏洞

2014 年 7 月 8 日

控制消息和 SCTP 通知中的内核内存泄漏

内核更改

arcmsr(4)arrow-up-right 驱动已更新至版本 1.20.00.28。r256033arrow-up-right

isci(4)arrow-up-right 驱动现在可以通过 kldload(8)arrow-up-right 加载。r256437arrow-up-right(由 FreeBSD 基金会赞助)

现在已将系统级 sysctl(8)arrow-up-right 值公开给 ixgbe(4)arrow-up-right 设备。r256759arrow-up-right

mfi(4)arrow-up-right 驱动已更新,支持 MegaRAID Invader 控制器。r256924arrow-up-right

修复了 zfs_root() 中在回滚失败后引发的内核 panic。r257119arrow-up-right

新增 sysctl(8)arrow-up-right debug.devfs_iosize_max_clamp,用于启用或禁用 SSIZE_MAX 大小的 I/O 请求在 devfs(5)arrow-up-right 文件上。r257125arrow-up-right(由 FreeBSD 基金会赞助)

新增 sysctl(8)arrow-up-right kern.disallow_high_osrel,它禁止执行在用户空间编译的比正在运行的内核版本号更高的版本的镜像。r257126arrow-up-right(由 FreeBSD 基金会赞助)

修复了卸载繁忙 zfs(8)arrow-up-right 文件系统时引发的内核 panic。r257253arrow-up-right

修复了关机时电源关闭 USB 设备引发的死锁问题。r257373arrow-up-right

ichsmb(4)arrow-up-right 驱动已更新,支持 Intel Lynx Point PCH SMBus 设备。r258214arrow-up-right

ata(4)arrow-up-right 驱动已更新,支持 Coleto Creek 设备。r258215arrow-up-right

ahci(4)arrow-up-right 驱动已更新,支持 Apple® MacBook Air(型号 A1465)中的 PCIe 固态硬盘。r258217arrow-up-right

现在可以在运行时修改 sysctl(8)arrow-up-right vfs.zfs.arc_meta_limitr258635arrow-up-right

mmap(2)arrow-up-right 系统调用已更新,更优化地使用超级页,并提供支持调整虚拟映射对齐的功能。r258870arrow-up-right

bge(4)arrow-up-right 驱动中实现了一个解决 BCM5719 和 BCM5720 芯片组传输挂起问题的临时解决方案。r258962arrow-up-right

修复了在启用 INVARIANTS 的系统上列出 sysctl 时引发的内核 panic。r259002arrow-up-right

新增 sysctl(8)arrow-up-right kern.supported_archs,它将列出系统上可以运行的 MACHINE_ARCH 值的二进制文件。r259466arrow-up-right

修复了可能在 kldload(8)arrow-up-rightkldunload(8)arrow-up-right 过程中触发内核 panic 的几个问题。r259519arrow-up-right(由 Spectra Logic 赞助)

修复了某些多线程应用程序引发的内核 panic。r260082arrow-up-right(由 FreeBSD 基金会赞助)

runfw(4)arrow-up-right 固件已从 runfw 更名为 run.fw,以与其他固件文件保持一致。r260134arrow-up-right

新增 sysctl(8)arrow-up-right kern.panic_reboot_wait_time,该选项可调整系统在 panic(9)arrow-up-right 后重启前等待的时间。kern.panic_reboot_wait_time 默认值为内核配置选项 PANIC_REBOOT_WAIT_TIMEr260433arrow-up-right

硬件随机数生成器默认已禁用。r260644arrow-up-right

uhso(4)arrow-up-right 驱动已添加对 GPS 端口的支持。r261485arrow-up-right

修复了 l2arc_write_done() 中的压缩缓冲区内存泄漏问题。r262116arrow-up-right

netmap(4)arrow-up-right 框架已更新为与 head/ 中的版本相匹配,新增了 netmap 管道、kqueue 支持和增强的 VALE 交换机端口。r262153arrow-up-right

修复了发送挂载的 zfs(8)arrow-up-right 快照时触发的死锁问题。r262175arrow-up-right

ppc(4)arrow-up-right 驱动已添加对 SIIG X1 PCI-e 的支持。r262231arrow-up-right

已启用对 ext4 文件系统的支持,支持只读挂载。r262564arrow-up-right

修复了在启用 VIMAGE 的系统中插入 USB 以太网设备时触发的内核 panic。r262594arrow-up-right

TTM,视频驱动程序使用的内存管理器,已合并。r262988arrow-up-right(由 FreeBSD 基金会赞助)

已向 linprocfs(5)arrow-up-right 添加对 /sys/kernel/random/uuid 的支持。r263103arrow-up-right

修复了函数 zpool_in_use() 中的内存泄漏问题。r263128arrow-up-right

新增了 zpool(8)arrow-up-right extensible_dataset 功能。有关更多信息,请参见 zpool-features(7)arrow-up-rightr263391arrow-up-right

修复了 libzfs 中的内存泄漏问题。r263408arrow-up-right

vt(4)arrow-up-right 驱动已从 head/ 合并。r263817,263818arrow-up-right(由 FreeBSD 基金会赞助)

新增 mpr(4)arrow-up-right 设备,提供对 LSI Fusion-MPT 3 12Gb SCSI/SATA 控制器的支持。r265729arrow-up-right(由 LSI 和 Spectra Logic 赞助)

修复了一个内核 bug,该 bug 阻止了在启用睿频™ 的 Intel® 处理器上正常使用 dev.cpu.0.freq sysctl(8)arrow-up-rightr266167arrow-up-right

现在支持 xen(4)arrow-up-right 硬件辅助虚拟化,XENHVM 可作为加载模块 xenhvm.ko 使用。r266269arrow-up-right

硬件支持

已添加对 Apple® MacBook 产品的触控板支持。r261510arrow-up-right

已弃用 nve(4)arrow-up-right 驱动,建议改用 nfe(4)arrow-up-right 驱动。r261973arrow-up-right

mfi(4)arrow-up-right 驱动已更新,支持 MegaRAID Fury 卡。r262968arrow-up-right

已添加 Radeon KMS 驱动。r263170,263171arrow-up-right

aacraid(4)arrow-up-right 驱动已更新至版本 3.2.5。r263340arrow-up-right

网络接口支持

re(4)arrow-up-right 驱动已更新,增加对 RTL8106E 芯片组的初步支持。r257611arrow-up-right

re(4)arrow-up-right 驱动已更新,支持 RTL8168G、RTL8168GU 和 RTL8411B 芯片组。r257614,257616arrow-up-right

re(4)arrow-up-right 驱动已更新,增加对 RTL8168EP 芯片组的初步支持。r257618arrow-up-right

oce(4)arrow-up-right 驱动已更新至版本 10.0.664.0。r258586arrow-up-right

已从 head/ 导入 qlxgbe(4)arrow-up-right 驱动。r258898arrow-up-right

已从 head/ 导入 qlxge(4)arrow-up-right 驱动。r258936arrow-up-right

bge(4)arrow-up-right 驱动已更新,支持 BCM5725 芯片组。r258965arrow-up-right

bge(4)arrow-up-right 驱动已更新,支持 BCM57764、BCM57767、BCM57782、BCM57786 和 BCM57787 芯片组。r258967arrow-up-right

run(4)arrow-up-right 驱动已更新,支持 MediaTek/Ralink 芯片组 RT5370 和 RT5372。r259457arrow-up-right

已重新对齐 usb(4)arrow-up-right 无线电射频头,允许无线适配器在 arm、mips 等对齐要求较高的平台上工作。r259460arrow-up-right

run(4)arrow-up-right 固件已更新至版本 0.33。r260119arrow-up-right

已从 head/ 合并 bxe(4)arrow-up-right 驱动,提供对 Broadcom NetXtreme II 10Gb PCIe 适配器的支持。r260252arrow-up-right

run(4)arrow-up-right 驱动已更新,包含对 MediaTek/Ralink RT3593 芯片组的支持。r261865arrow-up-right

run(4)arrow-up-right 驱动已更新,包含对 DLINK DWA-127 无线适配器的支持。r261933arrow-up-right

axge(4)arrow-up-right 驱动已添加。r262153arrow-up-right

已从 OpenBSD 导入 urndis(4)arrow-up-right 驱动。r262362arrow-up-right

bxe(4)arrow-up-right 驱动已更新至版本 1.78.78。r263582arrow-up-right

文件系统

zfs(8)arrow-up-right 文件系统已更新,支持 bookmarks 功能。r263410arrow-up-right

用户空间更改

pgrep(1)arrow-up-rightpkill(1)arrow-up-right 中新增了 -c 参数,用于将进程查找限制为指定的登录类。r256054arrow-up-right

ddb(8)arrow-up-right 工具已更新,增加了命令 show ioapicshow all ioapicsr257496arrow-up-right

现在,设置 nmbcluster 值为当前值时将被忽略,而不是导致错误。r258183arrow-up-right

现在创建目录 /var/cache 时的权限为 0755,而不是 0750,因为此目录被许多第三方应用程序使用,导致无法撤销组权限。r258763arrow-up-right

uname(1)arrow-up-right 工具已更新,新增了 -U-K 参数,分别打印当前用户空间和内核的 __FreeBSD_versionr258818arrow-up-right

fetch(3)arrow-up-right 库已更新,支持 SNI(服务器名称识别),允许在 HTTPS 上使用虚拟主机。r258844arrow-up-right

修复了在 gcc(1)arrow-up-right 中触发的段错误和内部编译器错误,该错误由在解析任何令牌之前抛出警告引起。r259243arrow-up-right

从谷歌导入了多个 gcc(1)arrow-up-right 更新。r259269,259406arrow-up-right(由 Google 提供/贡献)

修复了 Heimdal gss_pseudo_random() 函数中的字节顺序错误,该错误会阻止与其他 Kerberos 实现的互操作性,特别是与 MIT 实现的互操作性。r259448arrow-up-right

hastctl(8)arrow-up-right 工具已更新,输出当前队列大小。r260007arrow-up-right

ps(1)arrow-up-right 工具将不再截断 command 输出列。r260197arrow-up-right

新增了 protect(1)arrow-up-right 命令,用于在交换空间耗尽时使进程免于被终止。r260208arrow-up-right

gmirror(8)arrow-up-right 工具现在防止停用镜像的最后一个组件。r260507arrow-up-right

新增了 gmirror(8)arrow-up-right 命令 gmirror destroy,用于销毁 geom(8)arrow-up-right 和擦除 gmirror(8)arrow-up-right 元数据。r260507arrow-up-right

已从 head/ 合并 etcupdate(8)arrow-up-right 工具,管理 /etc 目录中文件更新的工具。r260650arrow-up-right

find(1)arrow-up-right 工具已更新,修复了参数 -lname-ilname 的错误行为。r260651arrow-up-right

hw.uart.console 现在每次 comconsole 设置发生变化时都会更新。r260868,260869arrow-up-right

kldload(8)arrow-up-right 工具已更新,显示指向 dmesg(8)arrow-up-right 的消息,而不是“Exec format error”的加密消息。r260909arrow-up-right

修复了可能触发 KDE 和 X 无限循环的错误。r261674arrow-up-right

newsyslog(8)arrow-up-right 工具已更改为使用文件的大小,而不是文件在磁盘上占用的块,以匹配 newsyslog.conf(5)arrow-up-right 文档中介绍的行为。r262076arrow-up-right

修复了 zdb(8)arrow-up-right 中的一个 bug,该 bug 会导致数字参数被误认为是额外的参数。r262105arrow-up-right

pciconf(8)arrow-up-right 工具现在新增了 -V 参数,用于列出每个设备的序列号等信息。r262134arrow-up-right

修复了一个 bug,该 bug 允许创建不一致数据集的 zfs(8)arrow-up-right 快照。r262158arrow-up-right

通过 zfs recv -F 接收 zfs(8)arrow-up-right 数据集时,现在会正确销毁自增量源快照以来创建的任何快照。r262160arrow-up-right

从只读的 .OBJDIR 进行安装的 bug 已修复。r263031arrow-up-right

新增了一个共享库目录 /usr/lib/private,用于存放内部使用的共享库。r263031arrow-up-right

为 32 位应用程序添加了默认的 libmap32.confr263031arrow-up-right

已导入 libucl 库,这是一个兼容 JSON 的配置文件解析库。r263032arrow-up-right

已与 head/ 同步 pkg(7)arrow-up-right 包管理工具。这在使用 pkg bootstrap 启动系统时实现了二进制包签名验证。r263038arrow-up-right

系统时区数据文件已更新为版本 tzdata2014a。r263042arrow-up-right

已导入 NetBSD 的 make(1)arrow-up-right 工具 bmake,以与 FreeBSD Ports 兼容。它被安装为 bmake;而 make 仍然是 FreeBSD 版本。r263212arrow-up-right

fetch(3)arrow-up-right 库现在支持返回 UTC 而不是 GMT 的 Last-Modified 时间戳。r263326arrow-up-right

zfs(8)arrow-up-right 命令 list -t snapsnap 添加了别名,以匹配 Oracle® Solaris 11。r263404arrow-up-right

新增了 -p 参数,用于 zfs(8)arrow-up-rightlist 命令,以提供可解析的输出。r263406arrow-up-right

OpenPAM 已更新至 Nummularia (20130907),包含多个 bug 修复和文档改进。 openpam_ttyconv(3)arrow-up-right 库已完全重写。r263421arrow-up-right

sh(1)arrow-up-right 命令解释器已更新,以在 exportlocalreadonly 后以不同方式扩展赋值。因此,像 local v=$1 这样的变量赋值将把第一个位置参数赋值给 v,即使 $1 包含空格,而 local w=~/myfile 将展开波浪符(~)。r264423arrow-up-right

find(1)arrow-up-right 工具已更新以实现 -ignore_readdir_race。在此更改之前,-ignore_readdir_race 是 GNU find(1)arrow-up-right 兼容选项,如果指定则会被忽略。现在也有了一个计数主选项 -noignore_readdir_race,这是默认行为。r264699arrow-up-right

ps(1)arrow-up-right 工具已更新,新增了 -J 参数,用于通过匹配 ail(8)arrow-up-right ID 和名称来过滤输出。此外,可以使用参数 0-J 进行过滤,仅列出主机系统上运行的进程。r266286arrow-up-right

top(1)arrow-up-right 工具已更新,新增了通过 jail(8)arrow-up-right ID 或名称进行过滤的功能,作为对 ps(1)arrow-up-rightr265229 中更新的跟进。r266287arrow-up-right

Blowfish crypt(3)arrow-up-right 的默认格式已更改为 $2b$r266818arrow-up-right

默认的 newsyslog.conf(5)arrow-up-right 现在默认包含目录 /etc/newsyslog.conf.d//usr/local/etc/newsyslog.conf.d/ 中的文件,供 newsyslog(8)arrow-up-right 使用。r267114arrow-up-right

新增了参数 onifconsole/etc/ttys。如果设备是活动的内核控制台,系统将通过串行控制台提供登录提示,否则该参数等效于 offr267243arrow-up-right

arc4random(3)arrow-up-right 库已更新,以与 FreeBSD-CURRENT 保持一致。r267379arrow-up-right

pmcstat(8)arrow-up-right 工具已更新,新增了 -l 参数,该参数会在指定的秒数后结束事件收集。r267411arrow-up-right

FreeBSD 项目已从 GNATS bug 跟踪系统迁移到 Bugzilla。用于提交问题报告的 send-pr(1)arrow-up-right 工具已被替换为一个空壳脚本,指引用户使用 Bugzilla 网络界面。r267911arrow-up-right

已优化 periodic(8)arrow-up-right 脚本 /etc/periodic/security/800.loginfail,以捕捉更多的身份验证失败并减少误报。r263662arrow-up-right

已为 rc(8)arrow-up-right 增加对“首次启动”脚本的支持。有关实现细节,请参阅 rc(8)arrow-up-rightrc.conf(5)arrow-up-rightr256917arrow-up-right

rc(8)arrow-up-right 系统现在将在接收到 SIGALRM 后重新加载 rc.conf(5)arrow-up-rightr260432arrow-up-right

第三方的软件

readline(3)arrow-up-right 库已更新至版本 1.104。r255934arrow-up-right

Sendmail 已更新至版本 8.14.9。r266711arrow-up-right

BIND 已更新至版本 9.9.5。r262706arrow-up-right(由 DK Hostmaster A/S 赞助)

xz(1)arrow-up-right 工具已更新至 5.0.5 以后的快照版本。r263286arrow-up-right

OpenSSH 已更新至版本 6.6p1。r263970arrow-up-right

OpenSSL 已更新至版本 0.9.8za。r267285arrow-up-right

Ports 和软件包

重要信息

FreeBSD 桌面用户请注意:请在升级依赖 Xorg 的 Port 之前仔细阅读此部分。

2014 年 4 月,FreeBSD Ports 切换到了一个支持 KMS(内核模式设置)的新版本 Xorg。

从早期版本的 FreeBSD 9.x 或 FreeBSD 8.x 升级的用户应注意以下几点:

  • 当从 FreeBSD Ports 构建应用程序和从 pkg(8)arrow-up-right 仓库安装 new_xorg 时,将使用较新的、支持 KMS 的版本 Xorg。

  • KMS 版本的 Xorg 在退出 X 图形桌面环境后不会切换回文本模式,系统控制台将不可见。新的控制台驱动程序 vt(4)arrow-up-right 支持图形控制台,并在退出 X 后保持控制台可见。 vt(4)arrow-up-right 驱动程序必须编译到内核中。9.3-RELEASE 中包括了一个 VT 内核配置示例文件,但默认未编译或启用。有关更多信息,请参见 vt(4)arrow-up-rightvt(4) 维基页面arrow-up-right

  • 默认的 pkg(8) 仓库中没有 KDE4 的软件包,但可以在 new_xorg 仓库中找到。有关如何使用 new_xorg 仓库的详细信息,请参阅 公告邮件arrow-up-right。 不支持 KMS 的旧版 Xorg 仍然可以从默认的 latest 上游 pkg(8)arrow-up-right 仓库和 9.3-RELEASE DVD 上的包中安装。 然而,值得注意的是,一些较新的应用程序需要较新的 Xorg,并且无法与旧版本兼容。建议使用较新的 Xorg,除非不兼容旧显卡。 如果你在从 FreeBSD Ports 构建时继续使用旧版 Xorg,请在 make.conf(5)arrow-up-right 中设置 WITHOUT_NEW_XORG=yes

发布工程和集成

作为发布构建的一部分, etcupdate(8)arrow-up-right 工具将引导系统,从而使 etcupdate(8)arrow-up-right 在第一次系统升级后也能正常工作。r260891arrow-up-right

已更新 release.sh 脚本和发布 Makefile 为使用 pkg(7)arrow-up-right 来写入 DVD 安装介质。r262879arrow-up-right(由 FreeBSD 基金会赞助)

services.mkdb(8)arrow-up-right 工具已更新,以支持多字节序。与 cap_mkdb(1)arrow-up-right 类似,services.db 将在跨架构发布构建时使用正确的字节顺序进行创建。r263028arrow-up-right

从旧版升级 FreeBSD

使用 freebsd-update(8)arrow-up-right 或基于源代码的升级方法

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

基于源代码的升级(即基于从源代码重新编译 FreeBSD 基本系统)也支持,从先前版本开始,参照 /usr/src/UPDATING 中的说明进行。

有关更具体的升级说明,请参阅 FreeBSD 9.3-RELEASE 安装说明arrow-up-right

重要信息

升级 FreeBSD 前,请务必备份 所有 数据和配置文件。

用户可见的不兼容性

FreeBSD 9.0 及更高版本与先前版本的 FreeBSD 存在若干配置不兼容问题。理解这些差异对于升级非常重要。请在提交问题报告/在 FreeBSD 邮件列表上提问之前,仔细阅读本节和 9.0-RELEASE 版本说明中的升级部分arrow-up-right

最后更新于