FreeBSD 12.2-RELEASE 发行说明(2020 年 10 月 27 日)
摘要
FreeBSD 12.2-RELEASE 的发行说明包含了 FreeBSD 基本系统在 12-STABLE 开发线上的变更摘要。本文档列出了自上一个版本以来发布的适用的安全公告,以及 FreeBSD 内核和用户空间的重大变更。本文档还简要介绍了升级过程。
引言
本文档包含 FreeBSD 12.2-RELEASE 的发行说明。它介绍了 FreeBSD 最近新增、修改或删除的功能。它还提供了一些关于从以前版本升级到当前版本的说明。
这些发行说明适用于自 12-STABLE 开发分支创建以来的最新版本。有关沿该分支的预编译二进制发布版本的信息,可以在 https://www.FreeBSD.org/releases/ 找到。
这些发行说明适用于 12-STABLE 开发分支的一个点,该点位于 12.1-RELEASE 和未来的 12.3-RELEASE 之间。有关沿该分支的预编译二进制发布版本的信息也可以在 https://www.FreeBSD.org/releases/ 找到。
FreeBSD 12.2-RELEASE 是一个 RELEASE 版本,可在 https://www.FreeBSD.org/releases/ 或其镜像站点获取。关于获取此(或其他)RELEASE 版本的更多信息,可参阅 FreeBSD 手册 中的 获取 FreeBSD 附录。
建议所有用户在安装 FreeBSD 之前查阅发行勘误。该勘误文档会以发布周期后期或发布后才发现的“最新”信息进行更新。通常,它包含已知的错误、安全公告和文档修正。最新的 FreeBSD 12.2-RELEASE 勘误副本可以在 FreeBSD 网站上找到。
本文档介绍了自 12.1-RELEASE 以来 FreeBSD 中最显著的新功能或变更。通常,文中描述的变更是 12-STABLE 分支特有的,除非特别标注为合并特性。
典型的发行说明条目记录了自 12.1-RELEASE 以来发布的安全公告、新驱动程序或硬件支持、新命令或选项、主要 bug 修复或第三方软件升级。它们还可能列出对主要 Ports/软件包或发布工程实践的变更。显然,发行说明无法列出各个版本之间对 FreeBSD 所做的每一项变更;本文档主要聚焦于安全公告、用户可见的变更和重要的架构改进。
从旧版 FreeBSD 升级
freebsd-update(8) 工具支持在 RELEASE 版本之间进行二进制升级(以及各安全分支的快照)。二进制升级过程将更新未修改的用户空间工具,以及作为官方 FreeBSD 发行版的一部分分发的未修改 GENERIC 内核。freebsd-update(8) 工具要求升级的主机具有互联网连接。
基于源代码的升级(即从源代码重新编译 FreeBSD 基本系统)也受支持,请按照 /usr/src/UPDATING 中的说明进行。
重要:在进行 FreeBSD 升级前,必须先备份 所有 数据和配置文件。
安全与勘误
本节列出了自 12.1-RELEASE 以来发布的各种安全公告和勘误。
安全公告
勘误通知
用户空间
本节介绍了对用户空间应用程序、第三方软件和系统实用程序的变更和新增内容。
用户空间配置变更
新增了 rc.conf(5) 变量 linux_mounts_enable,用于控制在设置 linux_enable 为 YES 时是否在 /compat/linux 中挂载 Linux 特定的文件系统。[r364883](由 FreeBSD 基金会赞助)
devd(8) 工具已更新,默认的 syslogd(8) 恢复通知已从 kern 改为 kernel。[r365540]
用户空间应用程序变更
cron(8) 工具已更新,支持在 crontab(5) 中使用两个新选项,-n 和 -q,分别用于抑制成功运行时的邮件通知和抑制命令执行的日志记录。[r353134]
dd(1) 工具已更新,包含以下新操作符:[r355520]
conv=fsyncconv=fdatasyncoflag=fsyncoflag=synciflag=fullblock
使用方法详见 dd(1)。
fsck_msdosfs(8) 工具已更新,包含多项增强功能,包括减少内存占用、新增选项 -M(该选项禁用 mmap(2) 的使用)等。[r357568]
showmount(8) 工具已更新,支持长选项。[r357078]
新增了 certctl(8) 工具。[r357082]
syslogd(8) 工具已更新,增加了基于属性的过滤器。[r359739]
mountd(8) 工具已更新,修复了在某些条件下使用 -maproot 或 -mapall 导出时,组列表不正确的问题。[r362602]
sed(1) 工具已更新,在指定 -f - 时从 stdin(4) 读取命令。[r362687]
hostapd(8) 和 wpa_supplicant(8) 工具已更新,以支持 802.11n、802.11w、802.11ac 和 802.11ax。[r363441]
sesutil(8) 工具已更新,新增子命令 show,以用户友好的方式打印输出。[r364115]
bhyve(8) 工具已更新,支持设置额外的 AHCI 控制器参数。[r364334]
jail(8) 工具已更新,允许在 Jail 环境中运行 Linux。
第三方软件
tcsh(1) 工具已更新至版本 6.21.00。[r354191](由 DARPA, AFRL 赞助)
less(1) 工具已更新至版本 v551。[r355503]
libbsdxml(3) 库已更新至版本 2.2.9。[r355603]
resolvconf(8) 工具已更新至版本 3.9.2。[r355745]
pcap(3) 库已更新至版本 1.9.1。[r356340]
tcpdump(1) 工具已更新至版本 4.9.3。[r356340]
mtree(8) 工具已更新,修复了 -f 未考虑类型变化的问题,修正了当 getlogin(2) 失败时使用 -c 的用户名逻辑问题,并修复了当发生哈希冲突时 -O 无法深入的问题。[r356532]
Elf 工具链已更新至上游版本 r3769。[r358779](由 FreeBSD 基金会赞助)
xz(1) 工具已更新至版本 5.2.5。[r359635]
OpenSSH 已更新至版本 7.9p1。[r360313](由 FreeBSD 基金会赞助)
时区数据库文件已更新至版本 2020a。[r360361]
unbound(8) 工具已更新至版本 1.10.1。[r361435]
libarchive(3) 库已更新至版本 3.4.3。[r362132]
私有的 apr 库已更新至版本 1.7.0。[r362180]
svn{,lite} 工具已更新至版本 1.14.0 LTS。[r362180]
ntpd(8) 工具套件已更新至版本 4.2.8p15。[r362716]
file(1) 工具已更新至版本 5.39。[r362842]
bc(1) 工具已更新至版本 3.1.1。[r362987]
私有的 sqlite3 工具已更新至版本 3.32.3。[r363179]
BSD make(1) 工具已更新至版本 20200719。[r363352]
Sendmail 工具已更新至版本 8.16.1。[r363465]
nc(1) 工具已更新,新增选项 --sctp。[r363474]
clang、llvm、lld、lldb、compiler-rt 工具和 libc++ 已更新至版本 10.0.1。[r363494]
OpenSSL 已更新至版本 1.1.1h。[r366177]
已弃用应用程序
amd(8) 工具已标记为弃用,并计划在 FreeBSD 13.0 中移除。[r355075]
运行时库和 API
已更新 ifconfig 库,以类似 lagg(4) 的方式报告 bridge(4) 接口的状态。[r363037]
内核
本节涉及了内核配置、系统调优和系统控制参数的变更,未在其他类别中归类的内容。
内核通用变更
read(2) 系统调用已变更,默认情况下禁用对目录的 read() 调用。新增了 sysctl(8) 变量 security.bsd.allow_read_dir,设置为 1 时,将恢复之前的行为。[r363017]
现在在 FreeBSD/powerpc64 上默认启用驱动程序 ixl(4)。[r363712]
machdep.kdb_on_nmi sysctl(8) 已移除。可调参数 machdep.panic_on_nmi sysctl(8) 已变更为直接进入调试器。[r364002]
新增了对 APEI(ACPI 平台错误接口)的支持。[r364003](由 iXsystems 赞助)
设备与驱动
本节涉及自 12.1-RELEASE 以来对设备及其驱动程序的变更和新增。
设备驱动程序
ubsec(4) 驱动程序已标记为弃用,并将在 FreeBSD 13.0 中移除。[r361044]
ufm(4) 驱动程序已标记为弃用,并将在 FreeBSD 13.0 中移除。[r364431]
apm(4) 驱动程序已标记为弃用,并将在 FreeBSD 13.0 中移除。[r365542]
ctau(4) 和 cx(4) 驱动程序已标记为弃用,并将在 FreeBSD 13.0 中移除。[r365542](由 FreeBSD 基金会赞助)
存储
本节涉及文件系统和其他存储子系统的变更和新增,包括本地存储和网络存储。
通用存储
已从 32 位 GENERIC 内核配置中移除驱动程序 mps(4)。[r352741]
virtio_blk(4) 驱动程序已更新,以支持 TRIM。[r365702](由 Klara Systems 赞助)
已更新 ZFS 文件系统,支持每个数据集的读写 kstat 输出。[r365917](由 Klara Systems 赞助)
引导加载程序变更
本节涉及引导加载程序、启动菜单以及其他与启动相关的变更。
引导加载程序变更
现在在引导加载程序中显示控制台,可以在可用的控制台设备之间切换。[r366691]
网络
本节介绍了影响 FreeBSD 网络的变更。
通用网络
tap(4) 和 tun(4) 设备已更新,以便在重命名时创建 /dev 别名。[r354060]
ipfw(4) 驱动程序已更新,支持 RFC6598/Carrier Grade NAT 子网。[r359694]
ng_nat(4) 驱动程序已更新,允许附加到以太网接口。[r359697]
ixl(4) 驱动程序已更新至版本 1.11.29。[r363876](由 Intel Corporation 赞助)
ena(4) 驱动程序已更新至版本 2.2.0。[r365381](由 Amazon, Inc. 赞助)
更新了无线网络栈和各种驱动程序,以提供更好的 802.11n 和 802.11ac 支持。[r365670](由 Rubicon Communications, LLC (Netgate) 赞助)
ice(4) 驱动程序已添加,支持 Intel 100Gb 以太网卡。[r365733](由 Intel Corporation 赞助)
cxgbe(4) 驱动程序已更新至版本 1.25.0.0。[r365961](由 Chelsio Communications 赞助)
Ports 和软件包基础设施
本节涉及 FreeBSD Ports、软件包基础设施以及软件包维护和安装工具的变更。
软件包变更
pkg(8) 工具已更新至版本 1.15.10。
关于后续 FreeBSD 版本的一般说明
默认 CPUTYPE 变更
从 FreeBSD-13.0 开始,i386 架构的默认 CPUTYPE 将从 486 变更为 686。
这意味着,默认情况下,生成的二进制文件将要求使用 686 类 CPU,包括但不限于 FreeBSD Release Engineering 团队提供的二进制文件。FreeBSD 13.0 将继续支持旧的 CPU,但需要此功能的用户需自行构建发行版以获得官方支持。
由于 i486 和 i586 CPU 主要用于嵌入式市场,因此对一般终端用户的影响预计是最小的,因为这些 CPU 类型的新硬件早已逐渐消失,而且许多此类系统的部署基础已接近退役年限,按统计数据来看。
在做出这一变更时考虑了多个因素。例如,i486 不支持 64 位原子操作,虽然它们可以在内核中模拟,但无法在用户空间中模拟。此外,32 位 amd64 库自诞生以来一直是 i686。
由于大多数 32 位测试是由开发人员在启用了内核选项 COMPAT_FREEBSD32 的 64 位硬件上使用 lib32 库进行的,因此这一变更确保了更好的覆盖范围和用户体验。这也符合大多数 Linux 发行版已经实施的做法。
这预计将是 i386 默认 CPUTYPE 的最终提升。
重要:此变更不影响 FreeBSD 12.x 或 11.x 版本系列。
最后更新于