# FreeBSD 14.3-RELEASE 发行说明（2025 年 6 月 10 日）

* 原文：[FreeBSD 14.3-RELEASE Release Notes](https://www.freebsd.org/releases/14.3R/relnotes/)

## 概述

FreeBSD 14.3-RELEASE 的发行说明概述了在 14-STABLE 开发分支中对 FreeBSD 基本系统所做的更改。本文档列出了自上一个发行版本以来发布的适用安全公告，以及对 FreeBSD 内核和用户态的重要修改。此外，还简要说明了升级过程中的一些事项。

## 介绍

本文档是 FreeBSD 14.3-RELEASE 的发行说明，说明了 FreeBSD 最近新增、变更和移除的功能，也提供了从旧版本升级的一些说明。

本文档所对应的“release”发行版代表了自 14-STABLE 创建以来，该开发分支上的最新状态。关于该分支上预构建的二进制“release”发行版的信息，可以在 [https://www.FreeBSD.org/releases/](https://www.freebsd.org/releases/) 找到。

本文档所对应的“release”发行版，处于 14-STABLE 开发分支上的一个时间点，介于 14.2-RELEASE 与后续的 15.0-RELEASE 之间。关于该分支上预构建的二进制“release”发行版的信息，可参考 [https://www.FreeBSD.org/releases/](https://www.freebsd.org/releases/)。

FreeBSD 14.3-RELEASE 是一款“release”发行版，可在 [https://www.FreeBSD.org/releases/](https://www.freebsd.org/releases/) 及其镜像站点获取。关于获取本发行版（或其他）FreeBSD“release”版本的更多信息，请参阅 [FreeBSD 手册](https://docs.freebsd.org/en/books/handbook//) 中的 [获取 FreeBSD 附录](https://docs.freebsd.org/en/books/handbook//mirrors)。

在安装 FreeBSD 之前，建议所有用户都查阅下发行勘误文档。该勘误文档会在发行周期后期或发行完成后，更新“最新发现”的信息。通常包括已知漏洞、安全公告，以及文档修正。可在 FreeBSD 网站上获取 FreeBSD 14.3-RELEASE 的最新勘误文档。

本文档介绍了自 14.2-RELEASE 以来，FreeBSD 中对用户最为突出的新特性或更改。一般而言，除非特别注明为已合并（MERGED）的功能，否则此处所述的更改仅适用于 14-STABLE 分支。

典型的发行说明内容包括在 14.2-RELEASE 之后发布的安全公告、新增驱动和硬件支持、新命令和命令选项、重大漏洞修复，或第三方软件的升级。有时也会列出对重要 Port/包或发行工程实践的变更。显然，发行说明无法列出两个发行版本之间 FreeBSD 所做的所有更改；本文档主要聚焦于安全公告、用户可见的更改，以及重大的架构改进。

## 从旧版本的 FreeBSD 升级

可以使用 [freebsd-update(8)](https://man.freebsd.org/cgi/man.cgi?query=freebsd-update\&sektion=8\&format=html) 工具完成不同 RELEASE 版本之间（二进制形式）的升级（以及各安全分支的快照）。有关特定版本升级的详细信息，请参阅 [FreeBSD 14.3-RELEASE 升级信息](https://www.freebsd.org/releases/14.3R/installation/#upgrade-binary)，更多内容也可见于 FreeBSD 手册中的 [二进制升级过程](https://docs.freebsd.org/en/books/handbook/cutting-edge/#freebsdupdate-upgrade)。此工具将更新未被修改的用户态工具，以及作为官方 FreeBSD 发行版一部分的未修改 GENERIC 内核。该工具要求升级主机可以连接互联网。

也可以从源代码升级（即通过重新编译 FreeBSD 基本系统实现的升级），操作方法详见 **/usr/src/UPDATING** 文件中的说明。

> 在升级 FreeBSD 之前必须先备份 *所有* 数据和配置文件。

## 安全与勘误

本节列出了自 14.2-RELEASE 以来发布的各种安全公告与勘误通知。

### 安全公告

| 公告                                                                                                       | 日期               | 主题                                                                                                   |
| -------------------------------------------------------------------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------- |
| [FreeBSD-SA-25:01.openssh](https://www.freebsd.org/security/advisories/FreeBSD-SA-25:01.openssh.asc)     | 2025 年 01 月 29 日 | OpenSSH 击键模糊绕过漏洞                                                                                     |
| [FreeBSD-SA-25:02.fs](https://www.freebsd.org/security/advisories/FreeBSD-SA-25:02.fs.asc)               | 2025 年 01 月 29 日 | 某些文件系统通过 NFS 触发缓冲区溢出                                                                                 |
| [FreeBSD-SA-25:03.etcupdate](https://www.freebsd.org/security/advisories/FreeBSD-SA-25:03.etcupdate.asc) | 2025 年 01 月 29 日 | 非特权用户可访问系统文件                                                                                         |
| [FreeBSD-SA-25:04.ktrace](https://www.freebsd.org/security/advisories/FreeBSD-SA-25:04.ktrace.asc)       | 2025 年 01 月 29 日 | 通过 [ktrace(2)](https://man.freebsd.org/cgi/man.cgi?query=ktrace\&sektion=2\&format=html) 泄露未初始化的内核内存 |
| [FreeBSD-SA-25:05.openssh](https://www.freebsd.org/security/advisories/FreeBSD-SA-25:05.openssh.asc)     | 2025 年 02 月 21 日 | 多个 OpenSSH 漏洞                                                                                        |

### 勘误通知

| 勘误                                                                                                   | 日期               | 主题                                                                                           |
| ---------------------------------------------------------------------------------------------------- | ---------------- | -------------------------------------------------------------------------------------------- |
| [FreeBSD-EN-25:01.rpc](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:01.rpc.asc)         | 2025 年 01 月 29 日 | NFSv4 客户端中 NULL 指针解引用                                                                        |
| [FreeBSD-EN-25:02.audit](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:02.audit.asc)     | 2025 年 01 月 29 日 | DTrace 导致系统调用审计功能被禁用                                                                         |
| [FreeBSD-EN-25:03.tzdata](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:03.tzdata.asc)   | 2025 年 01 月 29 日 | 时区数据库信息更新                                                                                    |
| [FreeBSD-EN-25:04.tzdata](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:04.tzdata.asc)   | 2025 年 04 月 10 日 | 时区数据库信息更新                                                                                    |
| [FreeBSD-EN-25:05.expat](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:05.expat.asc)     | 2025 年 04 月 10 日 | 将 expat 升级到 2.7.1                                                                            |
| [FreeBSD-EN-25:06.daemon](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:06.daemon.asc)   | 2025 年 04 月 10 日 | [daemon(8)](https://man.freebsd.org/cgi/man.cgi?query=daemon\&sektion=8\&format=html) 缺失信号支持 |
| [FreeBSD-EN-25:07.openssl](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:07.openssl.asc) | 2025 年 04 月 10 日 | 将 OpenSSL 升级到 3.0.16                                                                         |
| [FreeBSD-EN-25:08.caroot](https://www.freebsd.org/security/advisories/FreeBSD-EN-25:08.caroot.asc)   | 2025 年 04 月 10 日 | 根证书集更新                                                                                       |

## 用户空间

本节包括用户空间应用、外部贡献软件和系统工具的更动与新增内容。

### 用户空间配置变更

### 用户空间应用变更

修复了 [ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html) 的标志 `-U`，使其按真实用户 ID 选择进程。这是 POSIX 对选项 `-U` 的强制要求，也可以说是大多数用户在多数情境下所需要的行为。此前，`-U` 会按有效用户 ID 选择进程（而 POSIX 要求选项 `-u` 才应使用这种行为）。[a2132d91739d](https://cgit.freebsd.org/src/commit/?id=a2132d91739d)。（由 FreeBSD 基金会赞助）

使 [ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html) 的 `-O` 更加灵活且行为可预期。[ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html) 的显示列列表现在首先在不考虑 `-O` 选项的情况下构建；第二步中，所有通过 `-O` 传入的列会按其在 `-O` 参数中的出现顺序插入到显示列表中第一列 PID 后（若 PID 存在；否则插入最前），形成最终输出。[1fc8cb547cd4](https://cgit.freebsd.org/src/commit/?id=1fc8cb547cd4)。（由 FreeBSD 基金会赞助）

去除 [ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html) 中未显式请求的重复列。此前在命令行中堆叠更多显示列时，如果用户请求添加某些“预设”显示（如 `-j`、`-l`、`-u` 或 `-v`），其中与其他已请求列存在重复（即使用了相同关键字，不论标题是否定制化）的字段最终会被省略。[7aa2f4826717](https://cgit.freebsd.org/src/commit/?id=7aa2f4826717)。（由 FreeBSD 基金会赞助）

为 [sysctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&format=html) 添加标志以在输出中过滤 jail 和 vnet 变量。这样用户就不必查阅源码来判断某个变量是否为 jail/vnet 变量。[615c9ce250ee](https://cgit.freebsd.org/src/commit/?id=615c9ce250ee)

现在 [grep(1)](https://man.freebsd.org/cgi/man.cgi?query=grep\&sektion=1\&format=html) 在递归搜索时默认不再跟随符号链接。这一行为与手册页中所记录的行为一致。[3a2ec5957ea9](https://cgit.freebsd.org/src/commit/?id=3a2ec5957ea9)

### 第三方软件

llvm、clang、compiler-rt、libc++、libunwind、lld、lldb 和 openmp 已更新至 llvm-project llvmorg-19.1.7-0-gcd708029e0b2（[dc3f24ea8a25](https://cgit.freebsd.org/src/commit/?id=dc3f24ea8a25)）。

[zfs(8)](https://man.freebsd.org/cgi/man.cgi?query=zfs\&sektion=8\&format=html)：OpenZFS 已更新至 zfs-2.2-release（2.2.7）（[2ec8b6948070](https://cgit.freebsd.org/src/commit/?id=2ec8b6948070)）。

[xz(1)](https://man.freebsd.org/cgi/man.cgi?query=xz\&sektion=1\&format=html) 已更新至 5.8.1（[9679eedea94c](https://cgit.freebsd.org/src/commit/?id=9679eedea94c)）。

[less(1)](https://man.freebsd.org/cgi/man.cgi?query=less\&sektion=1\&format=html) 已更新至 v668（[0bb4c188d363](https://cgit.freebsd.org/src/commit/?id=0bb4c188d363)）。

[file(1)](https://man.freebsd.org/cgi/man.cgi?query=file\&sektion=1\&format=html) 已更新至 5.46（[71c92e6b94f0](https://cgit.freebsd.org/src/commit/?id=71c92e6b94f0)）。

[expat(3)](https://man.freebsd.org/cgi/man.cgi?query=expat\&sektion=3\&format=html) 已更新至 2.7.1（[6f7ee9ac036e](https://cgit.freebsd.org/src/commit/?id=6f7ee9ac036e)）。

`tzdata` 已更新至 2025b（[475082194ac8](https://cgit.freebsd.org/src/commit/?id=475082194ac8)）。

OpenSSH 已更新至 9.9p2（[059b786b7db5](https://cgit.freebsd.org/src/commit/?id=059b786b7db5)）。（由 FreeBSD 基金会赞助）

OpenSSL 已更新至 3.0.16（[cb29db243bd0](https://cgit.freebsd.org/src/commit/?id=cb29db243bd0)）。

`googletest` 从 1.14.0 更新为 1.15.2（[1d67cec52542](https://cgit.freebsd.org/src/commit/?id=1d67cec52542)）。一项值得注意的变更是：GoogleTest 1.15.x 现在正式要求 C++14（1.14.x 仍要求 C++11）。

`spleen` 已更新至 Spleen 2.1.0（[26336203d32c](https://cgit.freebsd.org/src/commit/?id=26336203d32c)）。

### 已弃用的应用程序

更新了弃用警告，说明已在 FreeBSD 15.0 中移除 [gvinum(8)](https://man.freebsd.org/cgi/man.cgi?query=gvinum\&sektion=8\&format=html)（[dec497a9fcbf](https://cgit.freebsd.org/src/commit/?id=dec497a9fcbf)）。

新增了对 [syscons(4)](https://man.freebsd.org/cgi/man.cgi?query=syscons\&sektion=4\&format=html) 的弃用声明。 [syscons(4)](https://man.freebsd.org/cgi/man.cgi?query=syscons\&sektion=4\&format=html) 不兼容 UEFI，不支持 UTF-8，且被 Giant 锁保护。目前尚无明确的移除时间表，但预计将在未来一到两个主版本周期内移除对 Giant 锁的支持。（[8c922db4f3d9](https://cgit.freebsd.org/src/commit/?id=8c922db4f3d9)）（由 FreeBSD 基金会赞助）。

OpenSSH 计划于 2025 年初移除对 DSA 签名算法的支持。

[publickey(5)](https://man.freebsd.org/cgi/man.cgi?query=publickey\&sektion=5\&format=html) 功能已被弃用。该功能依赖 DES，加之 2025 年几乎没有人使用它，因而被移除。（[9197c04a251b](https://cgit.freebsd.org/src/commit/?id=9197c04a251b)）

### 运行时库与 API

`libcxxrt` 已更新至上游的提交版本 6f2fdfebcd62（[d9901a23bd2f](https://cgit.freebsd.org/src/commit/?id=d9901a23bd2f)）。

## 内核

本节覆盖了未归入其他分类的内核配置、系统调优及系统控制参数的变更。

### 内核常规变更

为 arm64 架构添加对旧式 PCI 热插拔的支持。[355f02cddbf0](https://cgit.freebsd.org/src/commit/?id=355f02cddbf0)（由 Arm Ltd 赞助）。

为 [mac(3)](https://man.freebsd.org/cgi/man.cgi?query=mac\&sektion=3\&format=html) 中的 jail 参数定义了一个通用的 `mac` 节点，供 [mac\_do(4)](https://man.freebsd.org/cgi/man.cgi?query=mac_do\&sektion=4\&format=html) 使用。[66fb52a27279](https://cgit.freebsd.org/src/commit/?id=66fb52a27279)（由 FreeBSD 基金会赞助）。

新增系统调 `setcred()` 用及相关 MAC 钩子。该系统调用允许一次性设置进程的所有必要凭据：有效、实际与保存的 UID，GID，附加组及 MAC 标签。与传统的 `setuid()`、`seteuid()` 等调用相比，它的优势在于能使 [mac\_do(4)](https://man.freebsd.org/cgi/man.cgi?query=mac_do\&sektion=4\&format=html) 等 MAC 模块以更细粒度限制进程可获取的凭据集合。[c1d7552dddb5](https://cgit.freebsd.org/src/commit/?id=c1d7552dddb5)（由 FreeBSD 基金会赞助）。

[mac\_do(4)](https://man.freebsd.org/cgi/man.cgi?query=mac_do\&sektion=4\&format=html) 现在支持将多个用户和用户组设为单一规则的目标。支持组目标是让 [mac\_do(4)](https://man.freebsd.org/cgi/man.cgi?query=mac_do\&sektion=4\&format=html) 能够限制 `setgroups()` 所允许的新组集合的前提。此外，这组目标还可依赖于目标 UID，因为在 UNIX 中用户与组密切相关（用户会自动归入 `/etc/passwd` 中指定的主组和 `/etc/group` 中指定的附加组）。[83ffc412b2e9](https://cgit.freebsd.org/src/commit/?id=83ffc412b2e9)（由 FreeBSD 基金会赞助）。

现在 [sysctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&format=html) 自身可以附着并运行于 jail 中。这使得父 jail 能够在子 jail 中未安装 [sysctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&format=html)（例如轻量的 OCI 容器或瘦 jail）时获取或设置内核状态。这在操作 jail 的内部或 sysctl vnet 时尤其有用。例如可以运行 `sysctl -j foo -Ja` 或 `sysctl -j foo net.fibs=2`。[8d5d7e2ba3a6](https://cgit.freebsd.org/src/commit/?id=8d5d7e2ba3a6)

允许 [sysctl(9)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=9\&format=html) vnet 变量被引导可调参数初始化。在提交 [3da1cf1e88f8](https://cgit.freebsd.org/src/commit/?id=3da1cf1e88f8) 中，`CTLFLAG_TUN` 标志的含义被扩展，可在早期启动期间自动检查是否存在可用于初始化 `SYSCTL` 的内核环境变量。此机制适用于所有静态或动态创建的 `SYSCTL` 类型，但 VNET 所属的 `SYSCTL` 除外。请注意，当前实现存在限制：行为与非 vnet 引导可调参数相同，即内核或模块初始化之后，通过 `kenv` 修改环境变量不会影响后续创建的 VNET 中对应变量的值。为解决此问题，可使用 `TUNABLE_XXX_FETCH` 将环境变量在构造 VNET 时读入到相关变量中。[894efae09de4](https://cgit.freebsd.org/src/commit/?id=894efae09de4)

[sound(4)](https://man.freebsd.org/cgi/man.cgi?query=sound\&sektion=4\&format=html)：按需分配 vchan。重构了 `pcm_chnalloc()` 并与 `vchan_setnew()`（现已移除）及 `dsp_open()` 中的通道创建部分合并为新的 `dsp_chn_alloc()` 函数。该函数负责在禁用 `vchans` 时使用空闲硬件通道，或在启用时分配新的 vchan。`hw.snd.vchans_enable`（之前是 `hw.snd.maxautovchans`）与 `dev.pcm.X.{play|rec}.vchans` 现在作为可调参数使用，仅用于启用或禁用 `vchans`，而非设定数量或进行（反）分配。由于这些 sysctl 不再触发（反）分配，其效果是即时的；而在过去，若将其设为极大值可能导致系统冻结（例如分配大量 vchan 时）。[960ee8094913](https://cgit.freebsd.org/src/commit/?id=960ee8094913)（由 FreeBSD 基金会赞助）

LinuxKPI：`linux_alloc_pages()` 现可识别 `__GFP_NORETRY` 标志。此变更修复了由于物理内存碎片化等因素引起的 drm-kmod 性能持续下降问题。[831e6fb0baf6](https://cgit.freebsd.org/src/commit/?id=831e6fb0baf6)（由 FreeBSD 基金会赞助）

## 设备与驱动程序

本节介绍自 14.2-RELEASE 以来对设备及其驱动程序的变更与新增内容。

### 设备驱动程序

[mpi3mr(4)](https://man.freebsd.org/cgi/man.cgi?query=mpi3mr\&sektion=4\&format=html) 驱动程序版本已更新至 8.14.0.2.0（[e6d4b221ba7c](https://cgit.freebsd.org/src/commit/?id=e6d4b221ba7c)）。

[mpi3mr(4)](https://man.freebsd.org/cgi/man.cgi?query=mpi3mr\&sektion=4\&format=html) 的 MPI 头文件已更新至版本 36，对应最新 MPI 规范。这包括更新的结构体、字段定义以及与更新后的固件兼容所需的常量（[60cf1576501d](https://cgit.freebsd.org/src/commit/?id=60cf1576501d)）。

[mpi3mr(4)](https://man.freebsd.org/cgi/man.cgi?query=mpi3mr\&sektion=4\&format=html) 驱动程序现在已内置于 GENERIC 内核中（[e2b8fb2202c2](https://cgit.freebsd.org/src/commit/?id=e2b8fb2202c2)）。

[rtw88(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw88\&sektion=4\&format=html)：合并了基于 Linux v6.14 的 Realtek rtw88 驱动（[8ef442451791](https://cgit.freebsd.org/src/commit/?id=8ef442451791)）。（由 FreeBSD 基金会赞助）

[rtw89(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw89\&sektion=4\&format=html)：合并了基于 Linux v6.14 的 Realtek rtw89 驱动（[b6e8b845aeab](https://cgit.freebsd.org/src/commit/?id=b6e8b845aeab)）。（由 FreeBSD 基金会赞助）

[iwmbtfw(4)](https://man.freebsd.org/cgi/man.cgi?query=iwmbtfw\&sektion=4\&format=html)：新增了对 9260/9560 蓝牙适配器的支持（[8e62ae9693bd](https://cgit.freebsd.org/src/commit/?id=8e62ae9693bd)）。所需固件文件已包含在 [comms/iwmbt-firmware](https://cgit.freebsd.org/ports/tree/comms/iwmbt-firmware/) Port 中。

[ena(4)](https://man.freebsd.org/cgi/man.cgi?query=ena\&sektion=4\&format=html) 驱动程序版本已更新至 v2.8.1（[a1685d25601e](https://cgit.freebsd.org/src/commit/?id=a1685d25601e)）。（由亚马逊公司赞助）

[ix(4)](https://man.freebsd.org/cgi/man.cgi?query=ix\&sektion=4\&format=html)：新增了对 x550 上 1000BASE-BX SFP 模块的支持（[24491b4acce5](https://cgit.freebsd.org/src/commit/?id=24491b4acce5)）。

[bnxt(4)](https://man.freebsd.org/cgi/man.cgi?query=bnxt\&sektion=4\&format=html)：在 BCM57504 10/25GbE NIC 上启用 NPAR 支持（[54f842ed8897](https://cgit.freebsd.org/src/commit/?id=54f842ed8897)）。

[bnxt(4)](https://man.freebsd.org/cgi/man.cgi?query=bnxt\&sektion=4\&format=html)：新增了对 5760X（Thor2）PCI ID 的支持，添加了 Thor2 的 PCI ID（[45e161020c2d](https://cgit.freebsd.org/src/commit/?id=45e161020c2d)）。

[bnxt(4)](https://man.freebsd.org/cgi/man.cgi?query=bnxt\&sektion=4\&format=html)：新增了对 400G 速率模块的支持（[32fdad17f060](https://cgit.freebsd.org/src/commit/?id=32fdad17f060)）。

[ix(4)](https://man.freebsd.org/cgi/man.cgi?query=ix\&sektion=4\&format=html)：新增了对 1000BASE-BX SFP 模块及 1Gbit BiDi 模块的支持（[c34817d9aef7](https://cgit.freebsd.org/src/commit/?id=c34817d9aef7)）。

[igc(4)](https://man.freebsd.org/cgi/man.cgi?query=igc\&sektion=4\&format=html)：修复了 I226-K 与 LMVP 设备的附加（attach）问题。这些设备的 ID 已在驱动的 PCI ID 列表中，但 `igc_set_mac_type()` 函数并未设置这些设备的正确 MAC 类型。此次修复将这些 ID 加入到 switch 分支结构中，从而使驱动能识别这些设备而非返回错误。此修复使 ASRock Z790 PG-ITX/TB4 主板上的 I226-K LOM 能够被识别与使用（[f034ddd2fa38](https://cgit.freebsd.org/src/commit/?id=f034ddd2fa38)）。

从 [em(4)](https://man.freebsd.org/cgi/man.cgi?query=em\&sektion=4\&format=html) 驱动中移除了旧的 sysctl itr 处理程序。此前实现存在多个错误，如单位转换/缩放错误，以及未能正确处理 82574L 或 [igb(4)](https://man.freebsd.org/cgi/man.cgi?query=igb\&sektion=4\&format=html) 设备。由于引入了新的 AIM 代码，预计大多数用户无需手动调节此参数（[edf50670e215](https://cgit.freebsd.org/src/commit/?id=edf50670e215)）。（由 BBOX.io 赞助）

在 [uftdi(4)](https://man.freebsd.org/cgi/man.cgi?query=uftdi\&sektion=4\&format=html) 中新增了对 Brainboxes USB 转串口适配器的支持（[47db906375b5](https://cgit.freebsd.org/src/commit/?id=47db906375b5)）。

### 已废弃与移除的驱动程序

## 存储

本节包括自 14.2-RELEASE 以来，文件系统及其他本地与网络存储子系统的变更与新增内容。

### 通用存储

为 [mountd(8)](https://man.freebsd.org/cgi/man.cgi?query=mountd\&sektion=8\&format=html) 定义了一个新的命令行选项 `-a`。当文件系统使用 `-alldirs` 标志导出时，即使路径并非服务器的文件系统挂载点，导出操作也会成功。 [ead3cd3ef628](https://cgit.freebsd.org/src/commit/?id=ead3cd3ef628)

记录了近期文件句柄布局的更改。 [ca22082c01a7](https://cgit.freebsd.org/src/commit/?id=ca22082c01a7)

可在 [mountd(8)](https://man.freebsd.org/cgi/man.cgi?query=mountd\&sektion=8\&format=html) 中传递 `{NGROUPS_MAX} + 1` 个组。`NGROUPS_MAX` 只是允许的附加组数的最小最大值，实际运行时值可能更大。相应地允许指定更多组（在几次提交之前，[nmount(2)](https://man.freebsd.org/cgi/man.cgi?query=nmount\&sektion=2\&format=html) 也已做出类似更改）。 [ca9614d8f64a](https://cgit.freebsd.org/src/commit/?id=ca9614d8f64a)（由 FreeBSD 基金会赞助）

## 引导加载器变更

本节覆盖了引导加载器、启动菜单及其他引导相关的变更。

[loader.efi(8)](https://man.freebsd.org/cgi/man.cgi?query=loader.efi\&sektion=8\&format=html)：在 [smbios(4)](https://man.freebsd.org/cgi/man.cgi?query=smbios\&sektion=4\&format=html) 中优先使用 v3（64 位）入口点。与非 EFI 引导情况下保持一致（但不同之处在于，EFI 在 64 位平台上以 64 位模式运行，因此对 v3 入口点不强制要求位于 4GB 以下）。 [807d51be8040](https://cgit.freebsd.org/src/commit/?id=807d51be8040)（由 FreeBSD 基金会赞助）

[libsa(3)](https://man.freebsd.org/cgi/man.cgi?query=libsa\&sektion=3\&format=html)：在非 EFI 引导中，在 [smbios(4)](https://man.freebsd.org/cgi/man.cgi?query=smbios\&sektion=4\&format=html) 中优先使用 v3（64 位）入口点。当同时存在 32 位与 64 位入口点时，SMBIOS 规范指出，64 位入口点始终至少包含 32 位入口点所引用的所有结构。换言之，32 位入口点仅为兼容而设，因此假设 64 位版本更有可能包含完整有效值。 [93af0db0d529](https://cgit.freebsd.org/src/commit/?id=93af0db0d529)（由 FreeBSD 基金会赞助）

[libsa(3)](https://man.freebsd.org/cgi/man.cgi?query=libsa\&sektion=3\&format=html)：在非 EFI 引导中，如果表位于 4GB 以下，则使用 64 位入口点。在 amd64 平台上，引导块与非 EFI 加载器是作为 BTX 客户端以 32 位编译的，因此无法访问超过 4GB 的地址。然而，64 位入口点可能引用位于 4GB 以下的结构表，此类情况在 BIOS 未提供 32 位入口点时亦可使用。对于 powerpc64 情况也类似。 [7b0350b376c0](https://cgit.freebsd.org/src/commit/?id=7b0350b376c0)（由 FreeBSD 基金会赞助）

在 BIOS 引导中优先搜索 v3（64 位）入口点（[smbios(4)](https://man.freebsd.org/cgi/man.cgi?query=smbios\&sektion=4\&format=html)）。当从 BIOS（即非 EFI）引导时，也会搜索 SMBIOS 的 64 位入口点版本。这允许在仅提供 v3 表的 BIOS（例如 Hetzner 虚拟机）上正确检测和报告 SMBIOS 版本。对于同时提供两者的系统，优先使用 v3 表，与 EFI 情况保持一致。 [145ef4af15f0](https://cgit.freebsd.org/src/commit/?id=145ef4af15f0)（由 FreeBSD 基金会赞助）

## 网络

本节说明了影响 FreeBSD 网络功能的变更。

### 一般网络

对 [ip6addrctl(8)](https://man.freebsd.org/cgi/man.cgi?query=ip6addrctl\&sektion=8\&format=html) 进行改进，使其能够附加并在 jail 中运行。这将简化对 vnet jail 地址选择策略的管理，尤其适用于那些轻量级的 OCI 容器或瘦 jail。 [b709f7b38cc4](https://cgit.freebsd.org/src/commit/?id=b709f7b38cc4)

将 `PF_DEFAULT_TO_DROP` 转换为适用于 [pf(4)](https://man.freebsd.org/cgi/man.cgi?query=pf\&sektion=4\&format=html) 的 vnet 引导可调参数 `net.pf.default_to_drop`。 [7f7ef494f11d](https://cgit.freebsd.org/src/commit/?id=7f7ef494f11d) 引入了一个编译时选项 `PF_DEFAULT_TO_DROP`，使 [pf(4)](https://man.freebsd.org/cgi/man.cgi?query=pf\&sektion=4\&format=html) 的默认规则为丢弃。而本次更改通过引入一个名为 `net.pf.default_to_drop` 的 vnet loader 可调参数，使用户无需重新编译 \[pf(4)] 模块即可更改默认规则。 [3965be101c43](https://cgit.freebsd.org/src/commit/?id=3965be101c43)

### 无线网络

增强了 LinuxKPI 尤其是针对 802.11 的部分，以支持加密卸载以及 802.11n 与 802.11ac 标准。 [iwlwifi(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwifi\&sektion=4\&format=html) 无线驱动是首款利用这些新功能的驱动，它支持部分 Intel Wi-Fi 5 硬件及所有 Intel Wi-Fi 6 与 Wi-Fi 7 硬件。 （由 FreeBSD 基金会赞助）

[rtw88(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw88\&sektion=4\&format=html) 驱动得以再次正常工作（完成关联），同时修复了一个内存泄漏问题。 （由 FreeBSD 基金会赞助）

仿照其他驱动，已从基本系统中移除固件 [iwlwififw(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwififw\&sektion=4\&format=html)，转而采用基于 Ports 的解决方案与 [fwget(8)](https://man.freebsd.org/cgi/man.cgi?query=fwget\&sektion=8\&format=html) 支持。 （由 FreeBSD 基金会赞助）

## 硬件支持

本节包含针对物理机器、虚拟机监控器及虚拟化环境的通用硬件支持，以及不适合归入其他章节的硬件变更与更新。

请参见 [14.3-RELEASE 支持的硬件列表](https://www.freebsd.org/releases/14.3R/hardware) 以及 [平台支持页面](https://www.freebsd.org/platforms/)，获取受支持的 CPU 架构完整列表。

### 虚拟化支持

多个修复与配置更改综合实现了对 x86 与 arm64（“Graviton”）EC2 实例的设备热插拔支持。从 FreeBSD 旧版本升级的 EC2 实例用户应在 `/boot/loader.conf` 中设置：

```ini
hw.pci.intx_reroute=0
debug.acpi.quirks="56"
```

### 文档

本节涵盖随基本系统发布的手册（[man(1)](https://man.freebsd.org/cgi/man.cgi?query=man\&sektion=1\&format=html)）页面及其他文档的更改。

#### 手册页

在 [ccdconfig(8)](https://man.freebsd.org/cgi/man.cgi?query=ccdconfig\&sektion=8\&format=html) 中不再推荐使用 [gvinum(8)](https://man.freebsd.org/cgi/man.cgi?query=gvinum\&sektion=8\&format=html)，转而推荐参考 [graid(8)](https://man.freebsd.org/cgi/man.cgi?query=graid\&sektion=8\&format=html) 和 [zfs(8)](https://man.freebsd.org/cgi/man.cgi?query=zfs\&sektion=8\&format=html)。（[55cb3a33d920](https://cgit.freebsd.org/src/commit/?id=55cb3a33d920)）

[ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html)：记录 `-a`/`-A` 行为的变更。记录 [93a94ce731a8](https://cgit.freebsd.org/src/commit/?id=93a94ce731a8) 所引入的行为变更：指定 `-a`/`-A` 会导致列出所有进程，而不考虑是否指定了其他进程选择选项（除了 `-x`/`-X`，它们指令使用筛选器）。（[eed005b57895](https://cgit.freebsd.org/src/commit/?id=eed005b57895)，由 FreeBSD 基金会赞助）

[ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html)：选项 `-U` 的行为变更。[4e4739dd0745](https://cgit.freebsd.org/src/commit/?id=4e4739dd0745)（由 FreeBSD 基金会赞助）

[ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html)：更改当前用户进程的匹配方式。[7219648f60d1](https://cgit.freebsd.org/src/commit/?id=7219648f60d1)（由 FreeBSD 基金会赞助）

[ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html)：使用有效 UID 匹配当前用户进程，使 FreeBSD 的 [ps(1)](https://man.freebsd.org/cgi/man.cgi?query=ps\&sektion=1\&format=html) 行为符合 POSIX 标准。[1e8dc267ca91](https://cgit.freebsd.org/src/commit/?id=1e8dc267ca91)（由 FreeBSD 基金会赞助）

[mac\_do(4)](https://man.freebsd.org/cgi/man.cgi?query=mac_do\&sektion=4\&format=html)：更改规则语法；提供提示和指引。[0c3357dfa18f](https://cgit.freebsd.org/src/commit/?id=0c3357dfa18f)（由 FreeBSD 基金会赞助）

[firewire(4)](https://man.freebsd.org/cgi/man.cgi?query=firewire\&sektion=4\&format=html)：添加弃用声明。最初作为 FreeBSD 15 计划的一部分讨论，但未能及时实现。现在添加弃用声明，预期将在 FreeBSD 16 发布前移除。[fc889167c319](https://cgit.freebsd.org/src/commit/?id=fc889167c319)（由 FreeBSD 基金会赞助）

以太网交换机控制器 [mtkswitch(4)](https://man.freebsd.org/cgi/man.cgi?query=mtkswitch\&sektion=4\&format=html)、[ip17x(4)](https://man.freebsd.org/cgi/man.cgi?query=ip17x\&sektion=4\&format=html)、[ar40xx(4)](https://man.freebsd.org/cgi/man.cgi?query=ar40xx\&sektion=4\&format=html) 和 [e6000sw(4)](https://man.freebsd.org/cgi/man.cgi?query=e6000sw\&sektion=4\&format=html) 已新增了初步的手册页。

[mount(8)](https://man.freebsd.org/cgi/man.cgi?query=mount\&sektion=8\&format=html) 现在新增了一个示例，说明如何在单用户模式下将所有文件系统重新挂载为可读写状态。

Lua 版 [loader(8)](https://man.freebsd.org/cgi/man.cgi?query=loader\&sektion=8\&format=html) 模块的手册页已重新措辞其说明，以优化 [apropos(1)](https://man.freebsd.org/cgi/man.cgi?query=apropos\&sektion=1\&format=html) 的搜索结果。

手册页样式指南 [style.mdoc(5)](https://man.freebsd.org/cgi/man.cgi?query=style.mdoc\&sektion=5\&format=html) 新增了一节，用于列出受支持的硬件。通过这种方式列出的硬件将会被纳入 [受支持硬件说明](https://www.freebsd.org/releases/14.3R/hardware)。在本次发行中，许多手册页新增或重写了这一部分内容。

大量工作已投入到将 [sysctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&format=html) 和环境变量的信息添加到手册中。你可以使用 `apropos Va=here.is.the.sysctl` 和 `apropos Ev=here_is_the_environment_variable` 进行搜索。

文件格式手册的 [intro(5)](https://man.freebsd.org/cgi/man.cgi?query=intro\&sektion=5\&format=html) 已进行了修订，融合了来自 OpenBSD 的改进内容。

### Ports 和软件包基础架构

本节涵盖 FreeBSD Ports、软件包基础架构，以及包维护和安装工具的变更。

[pkg(8)](https://man.freebsd.org/cgi/man.cgi?query=pkg\&sektion=8\&format=html) 默认的配置文件 `/etc/pkg/FreeBSD.conf` 的中新增了 `FreeBSD-kmods` 仓库。此仓库中包含专为 14.3-RELEASE 编译的内核模块，而非为 14-STABLE 分支构建的模块。从该仓库安装内核模块，可使内核接口不稳定的驱动（尤其是图形驱动）在主仓库尚基于旧版本构建包时仍可使用。[a47542f71511](https://cgit.freebsd.org/src/commit/?id=a47542f71511)

### 打包变更

### 关于后续 FreeBSD 发布版的一般说明

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

FreeBSD 项目预计将继续在 FreeBSD 15.0 和 stable/15 中将 armv7 作为二级架构架构支持。但也预计可能会在 FreeBSD 16.0 中移除 armv7。FreeBSD 项目将在 15.0 发布时更新关于 armv7 在 15.x 与 16.x 中的支持状态。

通过 `COMPAT_FREEBSD32` 选项在 64 位平台上运行 32 位二进制文件的支持，将至少持续至 stable/15 与 stable/16 分支。同时，通过 `cc -m32` 编译单个 32 位应用的支持，也将在 stable/15 中继续，并包含必要的头文件（位于 **/usr/include**）与库（位于 **/usr/lib32**）。

从 FreeBSD 15.0 起，Ports 将不再支持已弃用的 32 位平台。这些版本将不再为弃用的 32 位平台提供二进制包，也不支持从 Ports 构建包。

FreeBSD stable/14 及更早分支将继续保留对 32 位内核和 world 的支持。在这些分支受到 Ports 支持的期间，Ports 仍支持为 32 位系统构建包和程序。然而，所有 32 位平台均为 Tier-2 或 Tier-3，对个别 Port 的支持将随着上游放弃对 32 位的支持而逐步退化。

根据当前的支持计划，stable/14 将在 FreeBSD 14.0-RELEASE 发布后约 5 年终止支持（EOL）。stable/14 的 EOL 标志着对弃用的 32 位平台的支持终结，包括源代码发布、预编译包和从 Ports 构建应用的支持。由于 14.0-RELEASE 发布于 2023 年 11 月，弃用平台的支持将于 2028 年 11 月终止。

FreeBSD 项目可能会在 15.0 发布时改变这一策略，例如为某些弃用平台在 15.0 或更高版本中延长某种支持。任何更改都将由社区反馈及对这些平台的持续支持承诺所推动。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/release/14.3.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
