FreeBSD 12.1-RELEASE 发行说明(2019 年 11 月 4 日)
摘要
FreeBSD 12.1-RELEASE 的发布说明包含了 FreeBSD 12-STABLE 开发线中对基本系统所做变更的总结。本文列出了自上次发布以来发布的相关安全公告,以及对 FreeBSD 内核和用户空间的重大变更。还提供了一些关于升级的简要说明。
目录
介绍
本文档包含 FreeBSD RELEASE.CURRENT 的发布说明。它介绍了 FreeBSD 中最近新增、变更或删除的功能,并提供了一些关于从以前版本升级的说明。
适用于这些发布说明的 RELEASE.TYPE 发行版代表自 RELEASE.BRANCH 创建以来,该开发分支上的最新点。有关沿该分支的预构建二进制 RELEASE.TYPE 发行版的信息,请参见。
适用于这些发布说明的 RELEASE.TYPE 发行版代表 RELEASE.PREV 和未来的 RELEASE.NEXT 之间的一个点。有关沿该分支的预构建二进制 RELEASE.TYPE 发行版的信息,请参见。
此版本的 FreeBSD RELEASE.CURRENT 是一个 RELEASE.TYPE 发行版。它可以在或任何镜像站点找到。关于如何获取该(或其他)RELEASE.TYPE 发行版的更多信息,请参见 FreeBSD 手册 的 获取 FreeBSD 附录。
所有用户都被鼓励在安装 FreeBSD 之前查阅发布说明中的勘误。勘误 文档会在发布周期末期或发布后更新,包含“临时性”的信息,通常涉及已知的 bug、安全公告和文档修正。FreeBSD RELEASE.CURRENT 的最新勘误版本可以在 FreeBSD 网站上找到。
本文档介绍了自 RELEASE.PREV 以来 FreeBSD 中最具用户可见性的新增或变更功能。一般来说,除非特别标明为合并特性,否则此处描述的变更是独特于 RELEASE.BRANCH 分支的。
典型的发布说明项目包括记录自 RELEASE.PREV 后发布的最新安全公告、新驱动程序或硬件支持、新命令或选项、主要 bug 修复或第三方的软件升级。它们还可能列出对主要 Port/包或发布工程实践的变更。显然,发布说明无法列出每一个在发布之间对 FreeBSD 做出的变更;本文档主要聚焦于安全公告、用户可见的变更和主要的架构改进。
从以前版本的 FreeBSD 升级
通过使用 freebsd-update(8) 工具支持在 RELEASE 版本之间(以及各个安全分支的快照)进行二进制升级。二进制升级程序将更新未修改的用户空间工具,以及作为官方 FreeBSD 发行版一部分发布的未修改的 GENERIC 内核。freebsd-update(8) 工具要求正在升级的主机具有互联网连接。
根据 /usr/src/UPDATING
中的说明,支持从以前版本进行基于源代码的升级(即通过重新编译 FreeBSD 基本系统)。
升级 FreeBSD 之前应备份 所有 数据和配置文件。
安全性和勘误
本节列出了自 RELEASE.PREV 以来的各种安全公告和勘误通知。
安全公告
2018 年 12 月 19 日
缓冲区溢出
2019 年 2 月 5 日
内核数据寄存器泄漏
2019 年 2 月 5 日
文件描述符引用计数泄漏
2019 年 5 月 14 日
多个漏洞
2019 年 5 月 14 日
2019 年 5 月 14 日
2019 年 5 月 14 日
2019 年 5 月 14 日
微架构数据采样
2019 年 6 月 19 日
非默认 RACK TCP 堆栈中的资源耗尽
2019 年 7 月 2 日
2019 年 7 月 2 日
内核栈泄露
2019 年 7 月 2 日
2019 年 7 月 24 日
多个漏洞
2019 年 7 月 24 日
写入后释放漏洞
2019 年 7 月 24 日
引用计数溢出
2019 年 7 月 24 日
2019 年 7 月 24 日
引用计数泄漏
2019 年 8 月 6 日
多个漏洞
2019 年 8 月 6 日
越界内存访问
2019 年 8 月 6 日
消息长度验证不足
2019 年 8 月 6 日
客户机提供数据验证不足
2019 年 8 月 20 日
IPv6 移除拒绝服务
2019 年 8 月 20 日
内核内存泄露
2019 年 8 月 20 日
引用计数溢出
错误通知
2019 年 1 月 9 日
使用 CUBIC 拥塞控制时连接停滞
2019 年 1 月 9 日
TCP 连接可能因数据包丢失而停滞并最终失败
2019 年 1 月 9 日
sqlite 更新
2019 年 1 月 9 日
时区数据库信息更新
2019 年 2 月 5 日
DTrace 与启用了 SMAP 的系统不兼容
2019 年 2 月 5 日
LLE 表查找代码中的竞争条件
2019 年 5 月 14 日
时区数据库信息更新
2019 年 5 月 14 日
2019 年 5 月 14 日
2019 年 6 月 19 日
网络栈中的锁定错误
2019 年 7 月 2 日
时区数据库信息更新
2019 年 7 月 24 日
来自英特尔 CPU 漏洞缓解的系统崩溃
2019 年 8 月 6 日
锁定错误
2019 年 8 月 6 日
异常处理错误
2019 年 8 月 20 日
指令仿真改进
2019 年 8 月 20 日
修复 jail
关键字问题
用户空间
本节涉及用户空间应用程序、第三方的软件以及系统工具的变更和新增功能。
用户空间配置变更
默认情况下,已关闭 gcc 的 -Werror
参数。[r352094]
用户空间应用程序变更
lockf(1) 工具已更新,在使用 -n
参数且锁定文件不存在时,返回 EX_UNAVAILABLE
。[r345569]
ktrdump(8) 工具已更新,新增了 -l
参数,指定时启用“实时”模式。[r342705]
gzip(1) 工具已更新,新增了对 xz(1) 文件的 -l
支持。[r343250]
trim(8) 工具已新增,用于删除使用磨损平衡算法的闪存存储设备上块的内容。[r344688]
sh(1) 工具已更新,新增了 pipefail
选项,启用时会将管道的退出状态变更为管道中任何命令的最后一个非零退出状态。[r345487]
mlx5tool(8) 工具已更新,支持为 ConnectX-4®、ConnectX-5® 和 ConnectX-6® 实现固件更新功能。[r347752](由 Mellanox Technologies 赞助)
已新增工具 posixshmcontrol(1) 。[r348426]
swapon(8) 工具已更新,当命令行中使用 -E
参数,或在 fstab(5) 中包含选项 trimonce
时,调用 BIO_DELETE
来修剪交换设备。[r349930]
nvmecontrol(8) 工具已更新,新增了新的子命令 resv
,用于处理 NVMe 保留。[r350952]
camcontrol(8) 工具已更新,在使用子命令 modepage
时支持块描述符。[r351530](由 iXsystems 赞助)
freebsd-update(8) 工具已更新,新增了两个命令:updatesready
和 showconfig
。[r352774]
zfs(8) 工具已更新,支持与 send
子命令一起使用的参数 -v
、-n
和 -P
,适用于书签。[r352901]
第三方的软件
已导入 BearSSL 到基本系统中。[r343281]
ntpd(8) 工具套件已更新至版本 4.2.8p13。[r344884]
tcpdump(1) 工具已更新,在使用 -E
参数时禁用 capsicum(4) 支持。[r346986]
bsnmpd(1) 工具已更新,新增了对 IPv6 传输的支持。[r346987]
libarchive(3) 库已更新至版本 3.4.0。[r349523]
clang、llvm、lld、lldb、compiler-rt 工具和 libc++ 已更新至版本 8.0.1。[r350256]
默认启用了 lld 链接器的 i386 支持。[r350297](由 FreeBSD 基金会赞助)
新增了 bzip2recover 工具。[r350634]
bzip2(1) 工具已更新至版本 1.0.8。[r351007]
已新增对 RFC8221 和 RFC8429 中已弃用的 Kerberos GSS 算法的警告。[r351243]
mandoc(1) 工具已更新至 2019-07-23 快照。[r351390]
WPA 工具已更新至版本 2.9。[r351611]
OpenSSL 已更新至版本 1.1.1d。[r352192]
时区数据库文件已更新至版本 2019c。[r352353]
弃用的应用程序
ctm(1) 工具已标记为弃用,并在 FreeBSD 13.0 中被移除。[r340444]
timed(8) 工具已标记为弃用,并在 FreeBSD 13.0 中被移除。[r343940]
运行时库和 API
已添加 libomp
库。
内核
本节涉及内核配置、系统调优和系统控制参数的变化,这些变化不属于其他类别。
一般内核变化
内核现在会在记录进程退出时记录 jail(8) ID。ID 为 0
表示没有被限制在 jail 中的进程。[r343083](由 Modirum MDPay 赞助)
pci_vendors
列表已更新至 2019.01.29 版本。[r343735]
设备和驱动程序
本节涉及自 RELEASE.PREV 以来设备和设备驱动程序的变化和新增内容。
设备驱动程序
ichwd(4) 驱动已更新,新增对 Lewisburg PCH(C620)芯片组中 TCO 看门狗定时器的支持。[r340190](由 Panzura 赞助)
amdsmn(4) 和 amdtemp(4) 驱动已更新,支持 Ryzen™ 2 主机桥。[r340446]
amdtemp(4) 驱动已更新,修正了 AMD® 2990WX 的温度报告问题。[r340447]
rtwn_pci(4) 驱动已为 RTL8188EE 芯片组新增。[r342835]
crypto(4) 驱动已更新,新增对弃用算法的警告。[r351246]
ntb_hw_amd(4) 驱动已新增,提供对 AMD® 非透明桥的支持。[r351536]
nvme(4) 驱动已更新,支持 PCI 附加的挂起/恢复功能。[r351914]
cdceem(4) 驱动已新增,支持 iLO 5 提供的虚拟 USB 网络卡,该卡出现在新的 HPE® Proliant™ 服务器中。[r351942](由 Hewlett Packard Enterprise 赞助)
fusefs(5) 驱动经过彻底重构,实现了新功能和性能改进。[r352351](由 FreeBSD 基金会赞助)
mpr(4) 和 mps(4) 驱动已更新,修复了稳定性问题。[r352761]
由于将 mps(4) 转换为使用 atomic_swap_64
,现在在 32 位 powerpc 和 mips 系统上禁用此驱动。[r352761]
存储
本节涉及本地和网络存储子系统中的文件系统及其他存储的变化和新增内容。
一般存储
camcontrol(8) 工具已更新,新增了 ATA 电源模式支持。[r347384](由 Multiplay 赞助)
在创建 geli(8) 提供者时,已为较弱的算法添加了弃用警告。[r348587]
cam(4) 子系统已更新,以改善 AHCI 外壳管理和 SES 互操作性。[r349832]
启动加载器变化
本节涉及启动加载器、启动菜单及其他与启动相关的变化。
启动加载器变化
loader(8) 已更新,允许从启用了特性参数 large_dnode
的 ZFS 数据集启动。[r342683]
loader(8) 已更新,支持 ZFS zpool-features(7) 特性参数 com.delphix:removing
。[r351384]
网络
本节介绍了影响 FreeBSD 网络的变化。
一般网络
ipfw(8) 工具已更新,修复了在执行 ipfw table list
时显示 "all" 以外的标头问题。[r344667]
已添加对 NAT64 CLAT 的支持,符合 RFC6877 的定义。[r346200](由 Yandex LLC 赞助)
已添加 net.inet.tcp.rexmit_initial
sysctl(8),用于设置 TCP 使用的 RTO.Initial
。[r347110](由奈飞赞助)
已添加对 GRE-in-UDP 封装的支持,符合 RFC8086 的定义。[r348233]
Ports 和包基础设施
本节涉及 FreeBSD Ports、包基础设施以及包维护和安装工具的变化。
软件包变化
pkg(8) 工具已更新至版本 1.12.0。
GNOME 桌面环境已更新至版本 3.28。
KDE 桌面环境已更新至版本 5.16.5.19.08.1。
关于后续 FreeBSD 版本的一般说明
默认 CPUTYPE
变更
CPUTYPE
变更从 FreeBSD-13.0 开始,i386 架构的默认 CPUTYPE
将从 486
变更为 686
。
这意味着,默认情况下,生成的二进制文件将要求使用 686 类 CPU,包括但不限于由 FreeBSD 发布工程团队提供的二进制文件。FreeBSD 13.0 将继续支持旧版 CPU,但需要此功能的用户将需要自行构建版本以获得官方支持。
由于 i486 和 i586 CPU 主要用于嵌入式市场,因此对普通用户的影响预计最小,因为这些 CPU 类型的新硬件早已过时,并且许多此类系统的已部署基础正在接近退役年龄,统计上看。
做出此变更时考虑了多个因素。例如,i486 没有 64 位原子操作,尽管可以在内核中进行模拟,但无法在用户空间中模拟。此外,32 位 amd64 库自诞生以来一直是 i686。
由于大多数 32 位测试是由开发人员在启用了内核选项 COMPAT_FREEBSD32
的 64 位硬件上使用 lib32 库进行的,因此这一变更确保了更好的覆盖率和用户体验。这也符合大多数 Linux® 发行版已经实施的做法。
预计这是 i386 默认 CPUTYPE
最后的调整。
此变更不会影响 FreeBSD 12.x 系列版本。
最后更新于