FreeBSD 9.3-RELEASE 的发行说明包含了 9.3-STABLE 开发线中对 FreeBSD 基本系统所做的更改的摘要。本文列出了自上次发行以来发布的适用安全公告,以及对 FreeBSD 内核和用户空间的重要更改。同时,还提供了一些关于升级的简要说明。
本文档包含了 FreeBSD 9.3-RELEASE 的发行说明。它介绍了 FreeBSD 最近添加、修改或删除的功能,并提供了一些关于从以前版本升级的说明。
这个版本的 FreeBSD 9.3-RELEASE 是一个发布版。可以在 http://www.FreeBSD.org/releases/
或其镜像站点找到。有关如何获取这个版本(或其他版本)的更多信息,可以参见 FreeBSD 手册 中的“获取 FreeBSD”附录。
所有用户都被鼓励在安装 FreeBSD 之前查看发布的勘误文档。勘误 文档会更新包含发布周期末或发布后发现的“最后时刻”信息。通常,它包含已知的错误、安全公告和文档修正。FreeBSD 9.3-RELEASE 的最新勘误副本可以在 FreeBSD 网站上找到。
本节介绍了自 9.2-RELEASE 以来 FreeBSD 中最显著的新增或更改功能。
典型的发行说明项目会记录在 9.2-RELEASE 之后发布的最新安全公告、新的驱动程序或硬件支持、新的命令或选项、主要的错误修复或第三方软件升级。它们还可能列出主要 port/包或发布工程实践的更改。显然,发行说明无法列出在发行版之间对 FreeBSD 所做的每一个更改;本文档主要关注安全公告、用户可见的更改和重大架构改进。
以下安全公告中介绍的问题已经修复。有关更多信息,请查阅个别公告,详情见 http://security.FreeBSD.org/
。
2014 年 1 月 14 日
2014 年 1 月 14 日
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 日
2014 年 6 月 3 日
PAM 策略解析器中的错误处理
2014 年 6 月 5 日
多个漏洞
2014 年 6 月 24 日
多个漏洞
2014 年 7 月 8 日
控制消息和 SCTP 通知中的内核内存泄漏
arcmsr(4) 驱动已更新至版本 1.20.00.28。r256033
isci(4) 驱动现在可以通过 kldload(8) 加载。r256437(由 FreeBSD 基金会赞助)
现在已将系统级 sysctl(8) 值公开给 ixgbe(4) 设备。r256759
mfi(4) 驱动已更新,支持 MegaRAID Invader 控制器。r256924
修复了 zfs_root()
中在回滚失败后引发的内核 panic 。r257119
新增 sysctl(8) debug.devfs_iosize_max_clamp
,用于启用或禁用 SSIZE_MAX
大小的 I/O 请求在 devfs(5) 文件上。r257125(由 FreeBSD 基金会赞助)
新增 sysctl(8) kern.disallow_high_osrel
,它禁止执行在用户空间编译的比正在运行的内核版本号更高的版本的镜像。r257126(由 FreeBSD 基金会赞助)
修复了卸载繁忙 zfs(8) 文件系统时引发的内核 panic 。r257253
修复了关机时电源关闭 USB 设备引发的死锁问题。r257373
ichsmb(4) 驱动已更新,支持 Intel Lynx Point PCH SMBus 设备。r258214
ata(4) 驱动已更新,支持 Coleto Creek 设备。r258215
ahci(4) 驱动已更新,支持 Apple® MacBook Air(型号 A1465)中的 PCIe 固态硬盘。r258217
现在可以在运行时修改 sysctl(8) vfs.zfs.arc_meta_limit
。r258635
mmap(2) 系统调用已更新,更优化地使用超级页,并提供支持调整虚拟映射对齐的功能。r258870
在 bge(4) 驱动中实现了一个解决 BCM5719 和 BCM5720 芯片组传输挂起问题的临时解决方案。r258962
修复了在启用 INVARIANTS
的系统上列出 sysctl 时引发的内核 panic 。r259002
新增 sysctl(8) kern.supported_archs
,它将列出系统上可以运行的 MACHINE_ARCH
值的二进制文件。r259466
修复了可能在 kldload(8) 和 kldunload(8) 过程中触发内核 panic 的几个问题。r259519(由 Spectra Logic 赞助)
修复了某些多线程应用程序引发的内核 panic 。r260082(由 FreeBSD 基金会赞助)
runfw(4) 固件已从 runfw
更名为 run.fw
,以与其他固件文件保持一致。r260134
新增 sysctl(8) kern.panic_reboot_wait_time
,该选项可调整系统在 panic(9) 后重启前等待的时间。kern.panic_reboot_wait_time
默认值为内核配置选项 PANIC_REBOOT_WAIT_TIME
。r260433
硬件随机数生成器默认已禁用。r260644
uhso(4) 驱动已添加对 GPS 端口的支持。r261485
修复了 l2arc_write_done()
中的压缩缓冲区内存泄漏问题。r262116
netmap(4) 框架已更新为与 head/
中的版本相匹配,新增了 netmap 管道、kqueue 支持和增强的 VALE 交换机端口。r262153
修复了发送挂载的 zfs(8) 快照时触发的死锁问题。r262175
ppc(4) 驱动已添加对 SIIG X1 PCI-e 的支持。r262231
已启用对 ext4 文件系统的支持,支持只读挂载。r262564
修复了在启用 VIMAGE 的系统中插入 USB 以太网设备时触发的内核 panic 。r262594
TTM,视频驱动程序使用的内存管理器,已合并。r262988(由 FreeBSD 基金会赞助)
已向 linprocfs(5) 添加对 /sys/kernel/random/uuid
的支持。r263103
修复了函数 zpool_in_use()
中的内存泄漏问题。r263128
新增了 zpool(8) extensible_dataset
功能。有关更多信息,请参见 zpool-features(7)。r263391
修复了 libzfs
中的内存泄漏问题。r263408
vt(4) 驱动已从 head/
合并。r263817,263818(由 FreeBSD 基金会赞助)
新增 mpr(4) 设备,提供对 LSI Fusion-MPT 3 12Gb SCSI/SATA 控制器的支持。r265729(由 LSI 和 Spectra Logic 赞助)
修复了一个内核 bug,该 bug 阻止了在启用睿频™ 的 Intel® 处理器上正常使用 dev.cpu.0.freq
sysctl(8)。r266167
现在支持 xen(4) 硬件辅助虚拟化,XENHVM
可作为加载模块 xenhvm.ko
使用。r266269
已添加对 Apple® MacBook 产品的触控板支持。r261510
已弃用 nve(4) 驱动,建议改用 nfe(4) 驱动。r261973
mfi(4) 驱动已更新,支持 MegaRAID Fury 卡。r262968
已添加 Radeon KMS 驱动。r263170,263171
aacraid(4) 驱动已更新至版本 3.2.5。r263340
re(4) 驱动已更新,增加对 RTL8106E 芯片组的初步支持。r257611
re(4) 驱动已更新,支持 RTL8168G、RTL8168GU 和 RTL8411B 芯片组。r257614,257616
re(4) 驱动已更新,增加对 RTL8168EP 芯片组的初步支持。r257618
oce(4) 驱动已更新至版本 10.0.664.0。r258586
已从 head/
导入 qlxgbe(4) 驱动。r258898
已从 head/
导入 qlxge(4) 驱动。r258936
bge(4) 驱动已更新,支持 BCM5725 芯片组。r258965
bge(4) 驱动已更新,支持 BCM57764、BCM57767、BCM57782、BCM57786 和 BCM57787 芯片组。r258967
run(4) 驱动已更新,支持 MediaTek/Ralink 芯片组 RT5370 和 RT5372。r259457
已重新对齐 usb(4) 无线电射频头,允许无线适配器在 arm、mips 等对齐要求较高的平台上工作。r259460
已从 head/
合并 bxe(4) 驱动,提供对 Broadcom NetXtreme II 10Gb PCIe 适配器的支持。r260252
run(4) 驱动已更新,包含对 MediaTek/Ralink RT3593 芯片组的支持。r261865
run(4) 驱动已更新,包含对 DLINK DWA-127 无线适配器的支持。r261933
已从 OpenBSD 导入 urndis(4) 驱动。r262362
bxe(4) 驱动已更新至版本 1.78.78。r263582
zfs(8) 文件系统已更新,支持 bookmarks
功能。r263410
在 pgrep(1) 和 pkill(1) 中新增了 -c
参数,用于将进程查找限制为指定的登录类。r256054
ddb(8) 工具已更新,增加了命令 show ioapic
和 show all ioapics
。r257496
现在,设置 nmbcluster
值为当前值时将被忽略,而不是导致错误。r258183
现在创建目录 /var/cache
时的权限为 0755
,而不是 0750
,因为此目录被许多第三方应用程序使用,导致无法撤销组权限。r258763
uname(1) 工具已更新,新增了 -U
和 -K
参数,分别打印当前用户空间和内核的 __FreeBSD_version
。r258818
fetch(3) 库已更新,支持 SNI(服务器名称识别),允许在 HTTPS 上使用虚拟主机。r258844
修复了在 gcc(1) 中触发的段错误和内部编译器错误,该错误由在解析任何令牌之前抛出警告引起。r259243
从谷歌导入了多个 gcc(1) 更新。r259269,259406(由 Google 提供/贡献)
修复了 Heimdal gss_pseudo_random()
函数中的字节顺序错误,该错误会阻止与其他 Kerberos 实现的互操作性,特别是与 MIT 实现的互操作性。r259448
hastctl(8) 工具已更新,输出当前队列大小。r260007
ps(1) 工具将不再截断 command
输出列。r260197
新增了 protect(1) 命令,用于在交换空间耗尽时使进程免于被终止。r260208
gmirror(8) 工具现在防止停用镜像的最后一个组件。r260507
新增了 gmirror(8) 命令 gmirror destroy
,用于销毁 geom(8) 和擦除 gmirror(8) 元数据。r260507
已从 head/
合并 etcupdate(8) 工具,管理 /etc
目录中文件更新的工具。r260650
find(1) 工具已更新,修复了参数 -lname
和 -ilname
的错误行为。r260651
hw.uart.console
现在每次 comconsole 设置发生变化时都会更新。r260868,260869
kldload(8) 工具已更新,显示指向 dmesg(8) 的消息,而不是“Exec format error”的加密消息。r260909
修复了可能触发 KDE 和 X 无限循环的错误。r261674
newsyslog(8) 工具已更改为使用文件的大小,而不是文件在磁盘上占用的块,以匹配 newsyslog.conf(5) 文档中介绍的行为。r262076
修复了 zdb(8) 中的一个 bug,该 bug 会导致数字参数被误认为是额外的参数。r262105
pciconf(8) 工具现在新增了 -V
参数,用于列出每个设备的序列号等信息。r262134
修复了一个 bug,该 bug 允许创建不一致数据集的 zfs(8) 快照。r262158
通过 zfs recv -F
接收 zfs(8) 数据集时,现在会正确销毁自增量源快照以来创建的任何快照。r262160
从只读的 .OBJDIR
进行安装的 bug 已修复。r263031
新增了一个共享库目录 /usr/lib/private
,用于存放内部使用的共享库。r263031
为 32 位应用程序添加了默认的 libmap32.conf
。r263031
已导入 libucl
库,这是一个兼容 JSON 的配置文件解析库。r263032
已与 head/
同步 pkg(7) 包管理工具。这在使用 pkg bootstrap
启动系统时实现了二进制包签名验证。r263038
系统时区数据文件已更新为版本 tzdata2014a。r263042
已导入 NetBSD 的 make(1) 工具 bmake
,以与 FreeBSD Ports 兼容。它被安装为 bmake
;而 make
仍然是 FreeBSD 版本。r263212
fetch(3) 库现在支持返回 UTC 而不是 GMT 的 Last-Modified
时间戳。r263326
为 zfs(8) 命令 list -t snap
和 snap
添加了别名,以匹配 Oracle® Solaris 11。r263404
新增了 -p
参数,用于 zfs(8) 的 list
命令,以提供可解析的输出。r263406
OpenPAM 已更新至 Nummularia (20130907),包含多个 bug 修复和文档改进。 openpam_ttyconv(3) 库已完全重写。r263421
sh(1) 命令解释器已更新,以在 export
、local
和 readonly
后以不同方式扩展赋值。因此,像 local v=$1
这样的变量赋值将把第一个位置参数赋值给 v
,即使 $1
包含空格,而 local w=~/myfile
将展开波浪符(~
)。r264423
find(1) 工具已更新以实现 -ignore_readdir_race
。在此更改之前,-ignore_readdir_race
是 GNU find(1) 兼容选项,如果指定则会被忽略。现在也有了一个计数主选项 -noignore_readdir_race
,这是默认行为。r264699
ps(1) 工具已更新,新增了 -J
参数,用于通过匹配 ail(8) ID 和名称来过滤输出。此外,可以使用参数 0
对 -J
进行过滤,仅列出主机系统上运行的进程。r266286
top(1) 工具已更新,新增了通过 jail(8) ID 或名称进行过滤的功能,作为对 ps(1) 在 r265229
中更新的跟进。r266287
Blowfish crypt(3) 的默认格式已更改为 $2b$
。r266818
默认的 newsyslog.conf(5) 现在默认包含目录 /etc/newsyslog.conf.d/
和 /usr/local/etc/newsyslog.conf.d/
中的文件,供 newsyslog(8) 使用。r267114
新增了参数 onifconsole
到 /etc/ttys
。如果设备是活动的内核控制台,系统将通过串行控制台提供登录提示,否则该参数等效于 off
。r267243
arc4random(3) 库已更新,以与 FreeBSD-CURRENT 保持一致。r267379
pmcstat(8) 工具已更新,新增了 -l
参数,该参数会在指定的秒数后结束事件收集。r267411
FreeBSD 项目已从 GNATS bug 跟踪系统迁移到 Bugzilla。用于提交问题报告的 send-pr(1) 工具已被替换为一个空壳脚本,指引用户使用 Bugzilla 网络界面。r267911
已优化 periodic(8) 脚本 /etc/periodic/security/800.loginfail
,以捕捉更多的身份验证失败并减少误报。r263662
已为 rc(8) 增加对“首次启动”脚本的支持。有关实现细节,请参阅 rc(8) 和 rc.conf(5) 。r256917
rc(8) 系统现在将在接收到 SIGALRM
后重新加载 rc.conf(5)。r260432
readline(3) 库已更新至版本 1.104。r255934
Sendmail 已更新至版本 8.14.9。r266711
BIND 已更新至版本 9.9.5。r262706(由 DK Hostmaster A/S 赞助)
xz(1) 工具已更新至 5.0.5 以后的快照版本。r263286
OpenSSH 已更新至版本 6.6p1。r263970
OpenSSL 已更新至版本 0.9.8za。r267285
FreeBSD 桌面用户请注意:请在升级依赖 Xorg 的 Port 之前仔细阅读此部分。
2014 年 4 月,FreeBSD Ports 切换到了一个支持 KMS(内核模式设置)的新版本 Xorg。
从早期版本的 FreeBSD 9.x 或 FreeBSD 8.x 升级的用户应注意以下几点:
当从 FreeBSD Ports 构建应用程序和从 pkg(8) 仓库安装 new_xorg
时,将使用较新的、支持 KMS 的版本 Xorg。
KMS 版本的 Xorg 在退出 X 图形桌面环境后不会切换回文本模式,系统控制台将不可见。新的控制台驱动程序 vt(4) 支持图形控制台,并在退出 X 后保持控制台可见。 vt(4) 驱动程序必须编译到内核中。9.3-RELEASE 中包括了一个 VT
内核配置示例文件,但默认未编译或启用。有关更多信息,请参见 vt(4) 和 vt(4) 维基页面。
默认的 pkg(8)
仓库中没有 KDE4 的软件包,但可以在 new_xorg
仓库中找到。有关如何使用 new_xorg
仓库的详细信息,请参阅 公告邮件。 不支持 KMS 的旧版 Xorg 仍然可以从默认的 latest
上游 pkg(8) 仓库和 9.3-RELEASE DVD 上的包中安装。 然而,值得注意的是,一些较新的应用程序需要较新的 Xorg,并且无法与旧版本兼容。建议使用较新的 Xorg,除非不兼容旧显卡。 如果你在从 FreeBSD Ports 构建时继续使用旧版 Xorg,请在 make.conf(5) 中设置 WITHOUT_NEW_XORG=yes
。
作为发布构建的一部分, etcupdate(8) 工具将引导系统,从而使 etcupdate(8) 在第一次系统升级后也能正常工作。r260891
已更新 release.sh
脚本和发布 Makefile
为使用 pkg(7) 来写入 DVD 安装介质。r262879(由 FreeBSD 基金会赞助)
services.mkdb(8) 工具已更新,以支持多字节序。与 cap_mkdb(1) 类似,services.db
将在跨架构发布构建时使用正确的字节顺序进行创建。r263028
[amd64, i386] 版本之间的二进制升级(以及各种安全分支的快照)支持使用 freebsd-update(8) 工具。二进制升级过程将更新未修改的用户空间工具和未修改的 GENERIC
内核,这些内容作为官方 FreeBSD 版本的一部分进行分发。 freebsd-update(8) 工具要求被升级的主机具有互联网连接。
基于源代码的升级(即基于从源代码重新编译 FreeBSD 基本系统)也支持,从先前版本开始,参照 /usr/src/UPDATING
中的说明进行。
有关更具体的升级说明,请参阅 FreeBSD 9.3-RELEASE 安装说明。
升级 FreeBSD 前,请务必备份 所有 数据和配置文件。
FreeBSD 9.0 及更高版本与先前版本的 FreeBSD 存在若干配置不兼容问题。理解这些差异对于升级非常重要。请在提交问题报告/在 FreeBSD 邮件列表上提问之前,仔细阅读本节和 9.0-RELEASE 版本说明中的升级部分。
修复 远程拒绝服务漏洞
默认禁用 中的“monitor”功能
内核内存泄漏