For the complete documentation index, see llms.txt. This page is also available as Markdown.

FreeBSD 14.1-RELEASE 发行说明(2024 年 6 月 4 日)

摘要

FreeBSD 14.1-RELEASE 发行说明概述了由 14-STABLE 开发线衍生的 FreeBSD 基本系统之变更。本文列出了自上次发行以来发布的适用安全公告,以及 FreeBSD 内核和用户空间发生的重大变更。本文还概述了某些升级注意事宜。

引言

本文档是 FreeBSD 14.1-RELEASE 的发行说明。它说明了最近增加、变更、删除的 FreeBSD 特性。它还提供了从旧版本 FreeBSD 升级的相关说明。

这些发行说明所适用的“RELEASE”发行版,代表了自 14-STABLE 分支创建以来的最新状态。有关基于此分支的预构建二进制“RELEASE”的发行信息,请访问 https://www.FreeBSD.org/releases/

这些发行说明所适用的“RELEASE”发行版本,代表了 14-STABLE 开发分支中的一个节点,位于 14.0-RELEASE 和后续的 14.2-RELEASE 之间。有关基于此分支的预构建二进制“RELEASE”的发行信息,请访问 https://www.FreeBSD.org/releases/

该 FreeBSD 14.1-RELEASE 版本是个“RELEASE”版本。可以在 https://www.FreeBSD.org/releases/ 和镜像站中找到它。下载该(及其他)FreeBSD“RELEASE”版本的信息,请参阅 FreeBSD 手册附录《获取 FreeBSD》

在安装 FreeBSD 前,建议所有用户查阅发行勘误。勘误文档会在发行周期后期,随发行后发现的“最新”信息更新。它通常涉及已知错误、安全公告和文档更正的相关信息。可以在 FreeBSD 网站上找到 FreeBSD 14.1-RELEASE 的最新勘误信息。

本文档说明了自 14.0-RELEASE 以来,在 FreeBSD 中最具用户可见性的新特性和变更。一般来说,此处所述的变更为 14-STABLE 分支所独有,除非明确标记为 MERGED 特性。

标准的发行说明条目记载了在 14.0-RELEASE 后发布的最新安全公告,新的驱动程序或硬件支持,新的命令或选项,重大错误修复,或第三方软件升级。它们可能还列出了对主要 Ports/软件包或发行工程实践的变更。显然,发行说明无法枚举在不同版本之间对 FreeBSD 所做的所有变更;该文档主要关注安全公告,用户可见的变更及重大架构改进。

从旧版 FreeBSD 升级

RELEASE 版本之间(以及各种安全分支的快照)的二进制升级,可使用工具 freebsd-update(8) 进行。请参阅特定于版本的升级过程——FreeBSD 14.1-RELEASE 升级信息,在 FreeBSD 手册的二进制升级过程 中有更多详情。该工具可更新未修改的用户空间工具,以及随 FreeBSD 官方发行版发行的未修改的 GENERIC 内核。freebsd-update(8) 工具要求升级的主机拥有互联网连接。

/usr/src/UPDATING 所述,基于源代码的升级(即重新编译 FreeBSD 基本系统的源代码)也受支持。

重要:仅在备份所有数据和配置文件后,才能尝试升级 FreeBSD。

安全与勘误

此部分列出了自 14.0-RELEASE 以来的所有安全公告和勘误通知。

安全公告

公告
日期
主题

FreeBSD-SA-23:15.stdio

2023 年 11 月 7 日

libc stdio 缓冲区溢出

FreeBSD-SA-23:16.cap_net

2023 年 11 月 8 日

libcap_net 限制列表操作错误

FreeBSD-SA-23:17.pf

2023 年 12 月 5 日

pf(4) 中的 TCP 欺骗漏洞

2023 年 12 月 12 日

NFS 客户端数据损坏和内核内存泄露

FreeBSD-SA-23:19.openssh

2023 年 12 月 19 日

SSH 协议中的前缀截断攻击

2024 年 2 月 14 日

bhyveload(8) 宿主文件访问

FreeBSD-SA-24:02.tty

2024 年 2 月 14 日

jail(2) 信息泄露

FreeBSD-SA-24:03.unbound

2024 年 3 月 28 日

Unbound 中的多个漏洞

勘误通知

勘误
日期
主题

2023 年 11 月 8 日

freebsd-update(8) 无法处理深层启动环境

FreeBSD-EN-23:14.regcomp

2023 年 11 月 8 日

正则表达式转义处理错误

2023 年 12 月 1 日

启用 ASLR 时 Clang 清理器失败

FreeBSD-EN-23:16.openzfs

2023 年 12 月 1 日

OpenZFS 数据损坏

FreeBSD-EN-23:17.ossl

2023 年 12 月 5 日

ossl(4) 的 AES-GCM 实现可能给出错误结果

FreeBSD-EN-23:18.openzfs

2023 年 12 月 5 日

ZFS 内核线程 CPU 占用率过高

FreeBSD-EN-23:19.pkgbase

2023 年 12 月 5 日

FreeBSD 14.0 的 pkgbase 版本号不正确

FreeBSD-EN-23:20.vm

2023 年 12 月 5 日

内核物理内存分配器返回错误结果

FreeBSD-EN-23:21.tty

2023 年 11 月 24 日

tty(4) IUTF8 导致内核恐慌

FreeBSD-EN-23:22.vfs

2023 年 12 月 5 日

ZFS 快照目录无法通过 NFS 访问

FreeBSD-EN-24:01.tzdata

2024 年 2 月 14 日

时区数据库信息更新

FreeBSD-EN-24:02.libutil

2024 年 2 月 14 日

登录类别资源限制和 CPU 掩码绕过

FreeBSD-EN-24:03.kqueue

2024 年 2 月 14 日

使用 rfork(2) 退出时 kqueue_close(2) 页面错误

FreeBSD-EN-24:04.ip

2024 年 2 月 14 日

bind(2) 触发内核恐慌

FreeBSD-EN-24:05.tty

2024 年 3 月 28 日

TTY 内核崩溃

2024 年 3 月 28 日

WireGuard if_wg(4) 屏障不足

FreeBSD-EN-24:07.clang

2024 年 3 月 28 日

启用某些优化时 Clang 崩溃

FreeBSD-EN-24:08.kerberos

2024 年 3 月 28 日

使用弱加密时 Kerberos 发生段错误

用户空间

此部分涉及了对用户空间应用程序、第三方软件和系统工具的变更和增补。

用户空间配置变更

新增的变量 kdc_restart 能用来管理 daemon(8) 下的 kdc(8)krb5kdc)。在 rc.conf(5) 中设置 kdc_restart="YES",可在 kdc 异常终止时自动重启。kdc_restart_delay="N" 可设定在重启 kdc 前的延迟(秒)。abc4b3088941

在默认情况下,由 periodic(8) 工具通过 daily 脚本在电子邮件中展示的变更信息,其上下文输出比以前更少,以减小输出大小。此行为由 periodic.conf(5) 中的变量 daily_diff_flags 所控制。同样地,安全脚本显示的变更亦比以前少,由 periodic.conf(5) 中的变量 security_status_diff_flags 控制。538994626b9f37dc394170a5128e78ffb084

用户空间应用程序变更

bsdinstall(8) 调用的工具 adduser(8),如果父目录位于 ZFS 数据集上,现在会为新用户的家目录创建一个 ZFS 数据集。命令行选项可禁用此独立数据集。亦支持 ZFS 加密。516009ce8d38

工具 date(1) 现在支持纳秒。例如:date -Ins 打印为“2024-04-22T12:20:28,763742224+02:00”,date +%N 打印为“415050400”。eeb04a736cb9

工具 dtrace(1) 现在支持使用 libxo(3) 生成机器可读的输出格式:JSON、XML 和 HTML。aef4504139a4(由 Innovate UK 赞助)

工具 lastcomm(1) 现在以秒为精度显示时间戳。692c0a2e80c1(由 DSS Gmbh 赞助)

工具 ldconfig(8) 现在支持任一字节序的 hints 文件。默认格式是主机的本地字节序。fa7b31166ddb

OpenSSH 升级至版本 9.7p1。完整的发行说明请参见 https://www.openssh.com/txt/release-9.7https://www.openssh.com/txt/release-9.6a25789646d71464fa66f639b(由 FreeBSD 基金会赞助)

工具 usbconfig(8) 现在在可用时,从 /usr/share/misc/usb_vendors 读取 usb 的 vendor 和 products 描述,类似于 pciconf(8) 的行为。7b9a772f9f64

第三方软件

One True Awk(awk(1))更新至第二版,新增了 -csv 和 UTF-8 支持。daf917daba9c

Clang/LLVM 升级至版本 18.1.5。90a5e985e5f4

libarchive(3) 库升级至版本 3.7.4。8774c92e32b2

sendmail(8) 套件升级至版本 8.18.1,修复了漏洞 CVE-2023-51765。58ae50f31e95

解析器 unbound(8) 升级至版本 1.20.0,并修复了“DNSBomb”漏洞(CVE-2024-33655)。dcde37c4170b

运行时库和 API

libutil 中的 setusercontext(3) 例程可依据一定的条件从家目录下的 .login.conf 文件以及系统 login.conf(5) 设置进程优先级(nice)。优先级可以取值 inherit,意味着优先级会保持与父进程相同。umask 亦可以取值 inherit6f6186e19fe5a8c273b3c97fd2d66fedc418(由 Kumacom SAS 赞助)

在 amd64 系统上可用时,C 库中的许多字符串和内存操作现在使用 SIMD(单指令多数据)扩展来提高性能;请参阅 simd(7)。(由 FreeBSD 基金会赞助)

对于受支持的平台,math(3) 库中的 128 位 tgammal 函数现在有更好的实现。8df6c930c151

云支持

本节涉及了对云环境支持的变更。

14.1-RELEASE 支持 cloudinit,包括启动脚本 nuageinit 以及对 config-drive 分区的支持。该支持能兼容 OpenStack 和许多托管设施。请参阅 cloud-init 网站和提交信息,16a6da44e28d 227e7a205edf。(由 OVHcloud 赞助)

内核

本节涉及了对内核配置、系统调优和系统控制参数的变更,这些变更未分类。

内核通用变更

为 powerpc 实现了例程 fpu_kern_enterfpu_kern_leave,允许在内核中调用使用浮点和矢量寄存器的 ossl(4) 加密函数。91e53779b4fc

设备与驱动

本节内容涉及自 14.0-RELEASE 以来的设备和设备驱动程序的变更和增加。

设备驱动程序

Intel E800 系列(ice(4) 以太网网络控制器)有可用的驱动程序,该系列控制器可支持 100 Gb/s 速率。该驱动程序升级至版本 1.39.13-k。71d104536b51 f6de0a7c94e9(由 Intel Corporation 赞助)。

Intel Wi-Fi 设备的 iwlwifi(4) 驱动程序进行了许多稳定性改进。(由 FreeBSD 基金会赞助)

现在在 amd64 和 i386 上支持多个 PCI MCFG 区域,允许对除 0 之外的域(段)进行 PCI 配置空间访问。4b5f64408804

以太网驱动程序 smsc(4) 现在能获取某些树莓派型号传递的 smsc95xx.macaddr 值,并将其用于 MAC 地址。即使在 EEPROM 中没有 MAC 地址,它也将始终使用稳定的 MAC 地址。028e4c6548e4

从声音子系统中移除了 snd_clone 框架(及相关 sysctl),从而简化了系统:不再创建各通道节点(/dev/dspX.Y),仅创建主设备(/dev/dspX)。e6c51f6db8d7(由 FreeBSD 基金会赞助)

音频现在支持异步设备分离(asynchronous device detach)。这极大地简化了诸如 USB 耳机之类的热插拔行为,且在操作系统需要休眠和唤醒(挂起和恢复)时,使用 PulseAudio 会更为轻松。d692c314d29a(由 FreeBSD 基金会赞助)

存储

此部分涉及了对文件系统和其他存储子系统(包括本地和网络存储)的变更和增补。

NFS

修改了 mountd(8) 服务器,以便使用 strunvis(3) 来解码 exports(5) 文件中的目录名。故现可在目录名中使用特殊字符(如空格)。可使用 vis -M 对此类目录名进行编码;请参阅 vis(1)2c83f1ada435

新增的 sysctl(8) 变量位于 kern.rpc.unenckern.rpc.tls 之下,能让 NFS 服务器管理员了解 NFS-over-TLS 的使用情况。大量失败的握手可能意味着 NFS 配置有问题。b8e137d8d32d

UFS

在使用 newfs(8) 创建新的 UFS 文件系统时,现在默认启用软更新。6b2af2d88ffd

ZFS

OpenZFS 升级至版本 2.2.4。78c9d8f1ce65

引导加载程序变更

本节涉及了引导加载程序、引导菜单和其他与引导相关的变更。

引导加载程序变更

现在 loader(8) 会在读取其他配置文件后,读取变量 local_loader_conf_files 中列出的本地配置文件,默认为 /boot/loader.conf.locala25531db0fc2

现在可以配置 loader(8),以便根据 SMBIOS 中的变量 planar makerplanar productsystem productuboot m_product 读取特定的配置文件。目前,最好的文档是 git 提交信息,3eb3a802a31b

对于 EFI 系统,loader(8) 中的控制台检测得到了改进。如果没有变量 ConOut,会检查变量 ConIn。如果找到多个设备,则首选串行。20a6f4779ac6(由 Netflix 赞助)

loader(8) 中的帧缓冲区现在支持使用仅文本的视频驱动程序,从而节省空间。57ca2848c0aa(由 Netflix 赞助)

arm64 系统上的 loader.efi(8),会更早地完成 ACPI 检测。对于基于 ACPI 的 arm64 系统,应更新 EFI 分区上的 loader.efi 文件。05cf4dda599a 16c09de80135

引导加载程序 LinuxBoot 可用于在 aarch64 和 amd64 系统上从 Linux 引导 FreeBSD。46010641267(由 Netflix 赞助)

网络

本节概述了影响 FreeBSD 网络的变更。

通用网络

恢复了 ARP(arp(4))对 802 标准网络的支持;该支持曾随 FDDI 支持被意外移除(这与以太网标准封装不同)。d776dd5fbd48

现在可以构建仅支持 IPv6(INET6)而不支持 IPv4(INET)的内核。6df9fa1c6b83 和其他

netgraph 模块 ng_ipfw(4) 不再将 cookie 截断为 16 位,可使用完整的 32 位。dadf64c5586e

硬件支持

本节涉及了对物理机、hypervisors 和虚拟化环境的一般硬件支持,以及不适合归入本文档其他部分的硬件变更和更新。

请查看 14.1-RELEASE 支持的硬件列表,以及 平台页面 获取受支持 CPU 架构的完整列表。

文档

本节涉及了与基本系统一起提供的手册(man(1))页和其他文档的变更。

手册页

新的手册页 networking(7) 提供了连接系统到网络(含 Wi-Fi)的快速入门指南,并链接到其他手册页和手册。39f92a4c4c49

关于后续 FreeBSD 版本的一般说明

预计 FreeBSD 15.0 不会支持除 armv7 以外的 32 位平台。armv6、i386 和 powerpc 平台已弃用并将被移除。64 位系统仍可运行旧款 32 位二进制文件。

预计我们将在 FreeBSD 15.0 及 stable/15 中,把 armv7 作为 Tier 2 架构。然而,我们也预计可能会在 FreeBSD 16.0 中移除 armv7。我们将在发行 15.0 时提供 armv7 在 15.x 和 16.x 中状态的相关更新。

对于在 64 位平台上执行 32 位二进制文件的支持(选项 COMPAT_FREEBSD32)将至少在 stable/15stable/16 分支上延续。至少在 stable/15 分支上,还将继续支持使用 cc -m32 编译单个 32 位应用程序,其中包括 /usr/include 中的相应头文件和 /usr/lib32 中的库。

对于 FreeBSD 15.0 及后续版本,Ports 将不再支持已弃用的 32 位平台。这些后续版本将不包含二进制软件包,也不支持从 Ports 为已弃用的 32 位平台构建软件包。

FreeBSD stable/14 和更早分支将保留对现有的 32 位内核和 world 支持。只要这些分支仍受 Ports 支持,Ports 将保留对在 stable/14 和更早分支上构建 Ports 和软件包的支持。但是,所有 32 位平台都是 Tier-2 或 Tier-3,对个别 Port 的支持预计将随着上游弃用 32 位平台而降级。

根据当前的生命周期,stable/14 将在 FreeBSD 14.0-RELEASE 发行 5 年后结束生命周期(EOL)。stable/14 的生命周期终点标志着对已弃用 32 位平台支持的结束,包括源代码发行、预构建软件包以及从 Ports 构建应用程序的支持。随着 2023 年 11 月 14.0-RELEASE 的发行,对已弃用的 32 位平台支持将在 2028 年 11 月结束。

FreeBSD 项目可能会在 FreeBSD 15.0 发行时改变这种方法,在 15.0(或更高版本)中延长对一个(或多个)已弃用平台的支持。任何改变都将根据社区的反馈和支持这些平台的努力来决定。使用 FreeBSD 14.0-RELEASE 和后续的次发行版本,或 stable/14 分支,从 32 位平台迁移。

最后更新于