FreeBSD 12.3-RELEASE 发行说明(2021 年 12 月 7 日)
最后更新于
最后更新于
原文链接:
FreeBSD 12.3-RELEASE 的发行说明总结了 12-STABLE 开发分支上对 FreeBSD 基本系统所做的变更。本文档列出了自上一个版本以来发布的适用安全公告,以及对 FreeBSD 内核和用户态的重大变更。同时,还提供了关于升级的一些简要说明。
本文档包含 FreeBSD 12.3-RELEASE 的发行说明,介绍了 FreeBSD 最近新增、修改或删除的功能,并提供了从 FreeBSD 之前版本升级的一些注意事项。
本文档适用于 12-STABLE 开发分支自创建以来的最新阶段的发布版本。有关此分支上的预构建二进制发布版本的信息,可访问 。
本文档适用于介于 12.2-RELEASE 和未来的 12.4-RELEASE 之间的 12-STABLE 开发分支的某一版本。有关此分支上的预构建二进制发布版本的信息,也可访问 。
FreeBSD 12.3-RELEASE 的发行版本可通过 或其镜像站点获取。有关获取该版本(及其他版本)发行版的更多信息,请参阅 的。
建议所有用户在安装 FreeBSD 前查阅发行勘误文档(勘误)。该文档包含在发布周期后期或发布之后发现的最新信息,通常包括已知的错误、安全公告和文档修正。可在 FreeBSD 网站上找到 FreeBSD 12.3-RELEASE 的最新勘误文档。
本文档介绍了自 12.2-RELEASE 以来 FreeBSD 中新增或变更的最直观的用户功能。通常,这些变更是 12-STABLE 分支特有的,除非特别标注为 MERGED 特性。
发行说明通常记录自 12.2-RELEASE 之后发布的安全公告、新增的驱动程序或硬件支持、新的命令或选项、重大错误修复或第三方软件的升级。它们还可能列出主要的 Port/软件包变更或发布工程实践的更新。不过,发行说明不可能涉及 FreeBSD 两个版本之间的所有变更,本文档主要集中于安全公告、用户可见的变更和主要的架构改进。
可以使用 工具在 RELEASE 版本之间(以及各种安全分支的快照版本)进行二进制升级。二进制升级过程将更新未修改的用户态工具以及作为 FreeBSD 官方发行版一部分的未修改 GENERIC 内核。 工具要求被升级的主机具备互联网连接。
基于源代码的升级(通过重新编译 FreeBSD 基本系统源码进行的升级)也得到支持,具体步骤请参见 /usr/src/UPDATING
文件中的说明。
升级 FreeBSD 前,必须备份 所有 数据和配置文件。
本部分列出了自 FreeBSD 12.2-RELEASE 以来的各种安全公告和勘误通知。
2020 年 12 月 1 日
错误消息处理中的“使用后释放”问题
2020 年 12 月 1 日
多个漏洞
2020 年 12 月 8 日
空指针解引用
2021 年 1 月 29 日
内核栈信息泄露
2021 年 1 月 29 日
内核崩溃
2021 年 2 月 24 日
权限提升
2021 年 2 月 24 日
权限提升
2021 年 2 月 24 日
权限提升
2021 年 2 月 24 日
资源泄漏
2021 年 3 月 25 日
多个漏洞
2021 年 4 月 6 日
内核内存泄露
2021 年 4 月 6 日
权限提升或内存泄露
2021 年 4 月 6 日
权限提升
2021 年 5 月 26 日
缓解措施绕过
2021 年 5 月 26 日
拒绝服务攻击
2021 年 8 月 24 日
bhyve(8) 设备模型中的错误处理缺失
2021 年 8 月 24 日
ggatec(8) 中的远程代码执行
2021 年 8 月 24 日
libfetch 越界读取
2021 年 8 月 24 日
OpenSSL 的多个漏洞
2021 年 8 月 24 日
OpenSSL 的多个漏洞
2020 年 12 月 1 日
execve/fexecve 系统调用审计
2020 年 12 月 1 日
时区数据库信息更新
2020 年 12 月 1 日
未初始化的变量
2020 年 12 月 1 日
callout CPU 迁移中的竞争条件
2021 年 1 月 29 日
时区数据库信息更新
2021 年 1 月 29 日
同时销毁 VNET 和 epair 时引发崩溃
2021 年 1 月 29 日
zfs recv
未能正确传播快照删除信息
2021 年 2 月 24 日
启动时加载微码导致启动挂起
2021 年 2 月 24 日
根证书包更新
2021 年 2 月 24 日
freebsd-update
密码生成问题
2021 年 4 月 6 日
无法通过 loader.conf(5)
设置 net.pf.request_maxcount
2021 年 4 月 6 日
使用 lldb 执行 print 命令时崩溃
2021 年 5 月 26 日
aesni(4) 加密 - 认证操作中的竞争条件
2021 年 5 月 26 日
在 divert 套接字上发送数据时内核双重释放
2021 年 5 月 26 日
pms(4) 数据损坏
2021 年 5 月 26 日
dc 更新
2021 年 6 月 1 日
rad_get_attr(3)
中的验证错误
2021 年 6 月 30 日
libcasper 断言失败
2021 年 6 月 30 日
Linux 兼容层 futex(2) 系统调用漏洞
2021 年 8 月 24 日
OpenSSL 1.1.1e 的 API 函数未导出
2021 年 8 月 24 日
修复 NVMe 大型 IO 的 iovec 构造
2021 年 11 月 4 日
根证书包更新
2021 年 11 月 4 日
修复 vmci 驱动初始化中的内核崩溃
2021 年 11 月 4 日
时区数据库信息更新
本节介绍了用户空间应用程序、第三方软件和系统工具的变更和新增内容。
caroot
CA 捆绑处理器更新,以支持带有 DISTRUST_AFTER
条目的证书。
SHA256
的修复已从上游合并到 apr (Apache Portable Runtime)(参见上游 r1889604 和 r1807975)。
Libarchive 已导入版本 3.5.1。
OpenPAM 已升级到 OpenPAM Tabebuia。
OpenSSL 1.1.1l 已导入至代码树中。
SQLite3 3.35.5 已导入至代码树中。
TCSH 已导入版本 6.22.04。
Subversion 已更新至版本 1.14.1 LTS。
contrib/tzdata
信息已更新以修正约旦和萨摩亚的夏令时(DST)。
tzdata 2021a 已导入至代码树中。
已更新 krpc 和 nfsd 模块间的内部 KAPI(参见 UPDATING
)。
本节涉及未分类的内核配置、系统调优和系统控制参数的变更。
OID
kern.timecounter.hardware
已转换为可调项。
新增了 ASMedia® ASM116x PCIe 3.0 AHCI 控制器和 Intel® Gemini Lake I2C 控制器的 PCI
ID
信息。
本节涉及自 12.2-RELEASE 以来设备和设备驱动程序的变更和新增内容。
本节涉及文件系统和其他存储子系统的变更和新增内容,包括本地和网络存储。
合并了对 UFS/FFS
中嵌入式符号链接的处理修复。
合并了修复,解决了 NFSv4.1 Linux 客户端挂载卡在 CLOSE_WAIT
状态的问题。
合并了对 NFSv4.1/4.2 挂载从过期租约中恢复的修复。
本节涉及启动加载器、启动菜单和其他与启动相关的变更。
启动加载器现在支持从内存磁盘启动操作系统。
启动加载器现在支持没有特性的池。
启动加载器现在接受 zfs 特性 com.delphix:bookmark_written
和 com.datto:bookmark_v2
。
新增了 OID,hint.dev.X.disabled
,该 OID 可在启动过程中防止设备附加。
本节介绍了影响 FreeBSD 网络的变更。
合并了多个针对 NFSv4 的修复。
修复了在 wpa
EAP/PEAP MSCHAPv2 身份验证过程中发生的段错误。
已向 release/Makefile.ec2
添加对记录 EC2 AMI Ids 的支持,以允许 SSM 参数名称采用类似 /aws/service/freebsd/amd64/base/ufs/12.3/RELEASE
的格式,使用公共前缀 /aws/service/freebsd
。
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® 发行版的做法,Linux® 发行版已经采用这种做法有一段时间了。
预计这是 i386 默认 CPUTYPE
最后的提升。
此变更不会影响 FreeBSD 12.x 系列的发布。
在所有用户进程终止后,将运行 脚本 /etc/rc.final
。
实用程序 现在将在执行自动挂载前明确将根路径设置为 /
。
实用程序 现在会抛出错误以防止创建包含空格的引导环境。
实用程序 修复了 模拟中的大规模 IO 支持。
实用程序 增加了参数 -b
和 --print-bytes
,以与 GNU 保持兼容。
实用程序 增加了参数 -i
和 --ignore-initial
,作为 skip1/skip2 的替代。
实用程序 现在支持 skip1/skip2 的 SI 后缀。
实用程序 增加了参数 -n
和 --bytes
,用于限制比较的字节数。
实用程序 现在允许 jail 使用它来修改子 jail 的根。
实用程序 现在会引入用户或登录类的环境变量。
实用程序 增加了一个参数 -H
,允许它捕获 SIGHUP
信号并重新打开输出文件。此功能用于支持 操作。
实用程序 现在在指定 -q
时会尊重其他,例如 -w
。
实用程序 增加了一个参数 -l
,可以忽略未知变量,从而允许其在不同版本的 FreeBSD 间工作,并忽略未实现的功能。
实用程序 现在支持恢复模式,可用于还原一个或多个文件。
实用程序 新增了 -D
参数,用于指定目标目录。
现在始终提取到临时目录,并能优雅地处理 SIGINT
信号。
实用程序 增加了参数 -j
,以支持 jail。
实用程序 增加了参数 -j
,以支持 jail。
现在实用程序 可以使用参数 -l
检测并显示 exFAT 文件系统。
实用程序 在对相同大小执行 resize
时将不再报告错误。
实用程序 现在在指定 -x
时会禁用 -w
。
现在实用程序 可以运行在 RW
挂载的文件系统上。
实用程序 如果使用参数 -d
指定的目录不是实际目录,则不再报错。
实用程序 现在在更新过程中可以处理符号链接。
实用程序 修复了导致 Panic: snapacct_ufs2: bad block
的崩溃问题。
实用程序 现在在启用配额时将正确显示 with quotas
。
实用程序 在 /etc/exports
文件缺少 V4:
行时,现在会生成 消息。
实用程序 新增了参数 E
,用于防止旋转空日志文件。
实用程序 新增了参数 -r
,用于在引导和 add
操作中指定 reponame
。
实用程序 现在会使用 pkg.conf
中指定的环境变量。
脚本 rc.d/jail 变更了一个关键字,以修复对嵌套 jail 的支持。
守护进程 现在可以在 if_vlan
接口(参见:)上工作。
实用程序 现在在调用之前会设置 daemon
类的环境变量。
实用程序 现在可以解码 pfsync 接口上的数据包。
命令 新增了过滤器选项 /
,用于显示与指定字符串匹配的进程或参数(从 OpenBSD 引入)。
修复了 在目标归档文件包含损坏的名称时引发的段错误。
实用程序 现在支持密码保护的归档文件。
实用程序 在指定参数 --version
时现在可以正确打印版本信息。
实用程序 新增了事件文件操作,可以将事件传递给文件。
已合并 的 metamode
修复,同时代码与上游同步到版本 20210221。
第三方软件 已更新至 5.0.0。
实用程序 更新至版本 v581.2。
库修复了符号链接处理的一个错误。
实用程序更新至 nvi 2.2.0-3bbdfe4。
实用程序与上游 NetBSD 版本同步。
库修复了当 x
接近 1
且 |y|
远大于 1
时可能出现的错误结果,并从 NetBSD 导入了一套测试工具。
防火墙 新增了 用于管理 配置。
新增了 opencrypto 的 kern.crypto
节点。
新增了新的 项:debug.uma_reclaim
。
amd64
的 GENERIC
内核现在包含 options COMPAT_LINUXKPI
和设备驱动程序 。
设备驱动程序 现支持 Mikrotik® 10/25G 网络设备。
设备驱动程序 新增对以下家族 17h 型号的支持:M20h (Dali, Zen1)、M60H (Renoir, Zen2) 和 M90H (Van Gogh, Zen2)。
设备驱动程序 新增对 Zen 3 "Vermeer" 和 Ryzen® 4000 APU (Zen 2, "Renoir") 的支持。
设备驱动程序 新增对 Zen 3 "Vermeer" 和 Ryzen® 4000 APU (Zen 2, "Renoir") 的支持。
驱动程序 修复了 SCSI 快速拔插的问题。
设备驱动程序 现在会报告硬件是否支持 WOL
(网络唤醒)功能,并在系统初始化时应用过滤器后显示启用状态。
设备驱动程序 现支持无闪存的 i211 PBA。
设备驱动程序 进行了多项共享代码更新。
设备驱动程序 更新至版本 2.4.1。
设备驱动程序 更新至版本 0.28.1-k,同时更新了 ice_ddp
包文件至版本 1.3.19.0。
新增驱动程序 ,用于支持 Intel® I225 以太网控制器,支持 2.5G/1G/100MB/10MB 网络速度。
设备驱动程序 进行了共享代码更新。
设备驱动程序 修复了 x550em 10G NIC 的链接状态问题,其中自动协商功能未正确报告。
设备驱动程序 新增了可调参数 hw.ix.flow_control
。
设备驱动程序 更新了共享代码,并修复了 2.5G 和 5G 网络速度问题。
设备驱动程序 现支持 Intel® Killer® Wireless-AC 1550i。
文件系统驱动程序 修复了 msdosfs 挂起问题。
netgraph 节点 现已支持 SMP
。
netgraph 节点 新增对 RFC
6598 和运营商级 NAT
的支持。
netgraph 节点 现在可以注入任意 netgraph 网络。
ACPI
驱动程序 现可通过 导出健康信息。
设备驱动程序 新增对 MSI 和单 MSI-X 的支持。
设备驱动程序 合并了多个错误修复。
防火墙 已收到多项错误修复和更新。
资源限制驱动程序 现在支持将速率限制资源的使用量节流至 0
(对支持节流的资源)。这些资源会遵循 kern.racct.rctl.throttle_max
设置的持续时间。
设备驱动程序 现支持 ASUS® WL-167G V3 设备。
设备驱动程序 现支持 Mercusys® MW150US (N150 Nano)、TP-Link® Archer T2U v3 和 D-Link® DWA-121 (N150 Nano) 设备。
设备驱动程序 现支持 D-Link® DWA-130 rev F1 无线适配器和 ASUS® USB-N14 无线适配器。
协议现在可以通过启用 net.inet.tcp.tolerate_missing_ts
容忍丢失的时间戳(RFC 1323/RFC 7323)。
设备驱动程序 现支持 Intel® 100 Series/C230 Series AMT。
接口现支持 ALTQ
。
库现在支持通过 HTTPS
代理 FTP
。