# FreeBSD 2026 年第一季度状态报告

* 原文：[FreeBSD Status Report First Quarter 2026](https://www.freebsd.org/status/report-2026-01-2026-03/)
* 版本：2026 年 4 月 17 日
* 最后作者：Lorenzo Salvadore

这是 2026 年首份状态报告，包含 45 份条目。

这是自我们更改时间表并开始执行以来的第一份状态报告。如你所见，我们确实按时完成了！正如预期的那样，它在本季度结束后一个月内发布！

尽管我们等待的时间少得多，但它有非常多的条目（作为参考，2025Q4 有 28 个）。

祝阅读愉快！

Lorenzo Salvadore，代表状态团队

## FreeBSD 团队报告

来自各个官方和半官方团队的条目，详见[管理页面](https://www.freebsd.org/administration/)。

### FreeBSD 基金会

链接：

[FreeBSD 基金会](https://freebsdfoundation.org/) URL: <https://freebsdfoundation.org/>

[技术路线图](https://freebsdfoundation.org/blog/technology-roadmap/) URL: <https://freebsdfoundation.org/blog/technology-roadmap/>

[捐赠](https://freebsdfoundation.org/donate/) URL: <https://freebsdfoundation.org/donate/>

[基金会合作伙伴](https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/) URL: <https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/>

[FreeBSD 期刊](https://freebsdfoundation.org/journal/) URL: <https://freebsdfoundation.org/journal/>

[基金会事件](https://freebsdfoundation.org/our-work/events/) URL: <https://freebsdfoundation.org/our-work/events/>

联系方式：Deb Goodkin \[<deb@FreeBSDFoundation.org>]

FreeBSD 基金会是一家 501(c)(3) 非营利组织，致力于通过技术或非技术支持推进 FreeBSD 的发展。基金会完全由捐赠资助，支持软件开发、基础设施、安全和协作工作；组织活动和开发者峰会；提供教育资源；并在法律事务中代表 FreeBSD 项目。

#### 操作系统改进

在 2026 年第一季度，FreeBSD 基金会赞助了 555 次 `src`、83 次 `ports` 和 16 次 `doc` 提交。

请参阅以下描述了大部分赞助开发工作的报告条目：

* [Alpha-Omega 沙滩清理项目](https://www.freebsd.org/status/report-2026-01-2026-03/#_alpha_omega_beach_cleaning_project)
* [amd64 FRED 支持](https://www.freebsd.org/status/report-2026-01-2026-03/#_amd64_fred_support)
* [改进音频栈](https://www.freebsd.org/status/report-2026-01-2026-03/#_audio_stack_improvements)
* [BSDInstall 桌面脚本](https://www.freebsd.org/status/report-2026-01-2026-03/#_desktop_script_for_bsdinstall)
* [FreeBSD 软件物料清单](https://www.freebsd.org/status/report-2026-01-2026-03/#_freebsd_software_bill_of_materials)
* [bhyve 的完整 CPUID 控制](https://www.freebsd.org/status/report-2026-01-2026-03/#_full_cpuid_control_for_bhyve)
* [休眠（即挂起到磁盘）](https://www.freebsd.org/status/report-2026-01-2026-03/#_hibernate_aka_suspend_to_disk)
* [改进 bhyve 虚拟机监控器的 libvirt 支持](https://www.freebsd.org/status/report-2026-01-2026-03/#_improve_libvirt_support_for_bhyve_hypervisor)
* [改进 FreeBSD 上的 OpenJDK](https://www.freebsd.org/status/report-2026-01-2026-03/#_improve_openjdk_on_freebsd)
* [内核基准测试、MAINTAINERS 和 pkgdist](https://www.freebsd.org/status/report-2026-01-2026-03/#_kernel_benchmark_maintainers_and_pkgdist)
* [笔记本电脑测试与集成项目](https://www.freebsd.org/status/report-2026-01-2026-03/#_laptop_testing_and_integration_project)
* [LinuxKPI 802.11 和原生无线更新](https://www.freebsd.org/status/report-2026-01-2026-03/#_linuxkpi_802_11_and_native_wireless_update)
* [改进 FreeBSD 上 LLDB](https://www.freebsd.org/status/report-2026-01-2026-03/#_lldb_improvement_on_freebsd)
* [更健壮的 pkgbase 转换](https://www.freebsd.org/status/report-2026-01-2026-03/#_more_robust_pkgbase_conversion)
* [进程描述符 API 完成](https://www.freebsd.org/status/report-2026-01-2026-03/#_process_descriptor_api_completion)
* [移除 RFC 2675 支持](https://www.freebsd.org/status/report-2026-01-2026-03/#_removal_of_rfc_2675_support)
* [全志 H616 SOC 系列支持](https://www.freebsd.org/status/report-2026-01-2026-03/#_support_for_the_allwinner_h616_soc_family)
* [挂起/恢复改进](https://www.freebsd.org/status/report-2026-01-2026-03/#_suspendresume_improvements)
* [Sylve——FreeBSD 统一系统管理平台](https://www.freebsd.org/status/report-2026-01-2026-03/#_sylvea_unified_system_management_platform_for_freebsd)

其他亮点：

* 基金会正在支持两个项目：笔记本电脑支持与可用性项目（与 [Quantum Leap Research](https://www.ql-research.com/) 合作），以及[网络韧性法案就绪项目](https://www.freebsd.org/status/report-2026-01-2026-03/#_cra_readiness_project)。
* 有关笔记本电脑支持与可用性项目的背景信息，请参阅 [2025Q1 季度状态报告](https://www.freebsd.org/status/report-2025-01-2025-03/#_freebsd_foundation)。
* FreeBSD 已同意参与 [谷歌编程之夏 (GSoC)](https://summerofcode.withgoogle.com/)。潜在贡献者已向谷歌提交了申请，我们将于 4 月 30 日了解有多少 FreeBSD 项目将获得资助。

#### 宣传

在 2026 年第一季度，我们的宣传工作侧重于扩展教育视频内容，触达了比以往更多的观众，将社区聚集在一起参加富有成效的供应商峰会，并回顾了有助于维持和增长 FreeBSD 关注度的工作。以下是基金会在 2026 年第一季度为 FreeBSD 宣传的几种方式：

* 协助代表 FreeBSD 参加 FOSDEM 2026、SCALE 23X、AsiaBSDCon 和 CHERI Blossoms 会议
* 开始规划 [2026 年 6 月 FreeBSD 开发者峰会](https://wiki.freebsd.org/DevSummit/202606)，将于 2026 年 6 月 17-18 日与 BSDCan 2026 同地举行；[注册现已开放](https://www.bsdcan.org/2026/registration.html)
* 完成了 BSDCan 的白银赞助，并开放了 [BSDCan 2026 旅行资助申请](https://freebsdfoundation.org/what-we-do/grants/travel-grants/)
* 签署了 [AsiaBSDCon26](https://freebsdfoundation.org/news-and-events/event-calendar/asiabsdcon-2026/) 的白银级赞助，该会议于 2026 年 3 月 19-22 日在台湾台北举行。
* FreeBSD 基金会执行董事 Deb Goodkin 将在 Linux 基金会于 2026 年 5 月 19 日主办的[开源峰会北美站](https://osselcna2026.sched.com/event/2JQsf/what-running-freebsd-on-a-modern-laptop-taught-me-deb-goodkin-the-freebsd-foundation?iframe=no\&w=\&sidebar=yes\&bg=no)上发表演讲
* 发布了以下博客和视频，以帮助告知和教育社区：
  * [为网络韧性法案做好准备](https://freebsdfoundation.org/blog/getting-ready-for-the-cyber-resilience-act/)
  * [在树莓派上使用 FreeBSD 构建 NAS](https://freebsdfoundation.org/blog/build-a-nas-using-freebsd-on-a-raspberry-pi/)（[视频](https://www.youtube.com/watch?v=xqFiTRYo1fk\&t=1s)）
  * [FreeBSD 入门：初学者资源指南](https://freebsdfoundation.org/resource/getting-started-with-freebsd/)
* 发布了 [2026 年 1 月](https://freebsdfoundation.org/news-and-events/newsletter/january-newsletter/)、[2026 年 2 月](https://freebsdfoundation.org/news-and-events/newsletter/february-newsletter/)和 [2026 年 3 月](https://freebsdfoundation.org/news-and-events/newsletter/march-newsletter/) FreeBSD 基金会通讯
* 发布了 FreeBSD 期刊 [十月/十一月/十二月](https://freebsdfoundation.org/our-work/journal/browser-based-edition/freebsd-15-0/)刊，另有 HTML 版本的文章

#### 改进持续集成与工作流

基金会支持一名全职工作人员，专门负责改进项目的持续集成系统和测试基础设施。

#### 法律/FreeBSD 知识产权

基金会持有 FreeBSD 商标，保护商标是我们的责任。我们还为核心团队提供法律支持，以调查出现的问题。

访问 [https://freebsdfoundation.org](https://freebsdfoundation.org/) 了解更多关于我们如何支持 FreeBSD 以及如何帮助你的信息！

### FreeBSD 发行工程团队

链接：

[FreeBSD 14.4-RELEASE 公告](https://www.freebsd.org/releases/14.4R/announce/) URL: <https://www.freebsd.org/releases/14.4R/announce/>

[FreeBSD 15.1-RELEASE 日程](https://www.freebsd.org/releases/15.1R/schedule/) URL: <https://www.freebsd.org/releases/15.1R/schedule/>

[FreeBSD 发行版](https://download.freebsd.org/releases/ISO-IMAGES/) URL: <https://download.freebsd.org/releases/ISO-IMAGES/>

[FreeBSD 开发快照](https://download.freebsd.org/snapshots/ISO-IMAGES/) URL: <https://download.freebsd.org/snapshots/ISO-IMAGES/>

联系方式：FreeBSD 发行工程团队 \[<re@FreeBSD.org>]

FreeBSD 发行工程团队负责制定和发布 FreeBSD 官方项目发行版的发行日程，宣布代码冻结并维护相应分支等工作。

该团队管理了 14.4-RELEASE，最终在 3 月完成了正式 RELEASE 构建和公告。即将到来的 15.1-RELEASE 的规划已经开始，预计将于 6 月发布。

该团队新增了四名成员：[Sergio Carlavilla Delgado](mailto:carlavilla@FreeBSD.org)、[Craig Leres](mailto:leres@FreeBSD.org)、[Vladlen Popolitov](mailto:vladlen@FreeBSD.org) 和 [Alexander Ziaee](mailto:ziaee@FreeBSD.org)，两名成员离任：[Jake Freeland](mailto:jfree@FreeBSD.org) 和 [Mahdi Mokhtari](mailto:mmokhi@FreeBSD.org)。我们感谢他们的贡献。

发行工程团队继续为 **main**、**stable/15**、**stable/14** 和 **stable/13** 分支提供每周开发快照构建。请注意，**stable/13** 的每周快照构建将在该分支于 4 月底到达生命周期终点时结束。

### Ports

链接：

[关于 FreeBSD Ports](https://www.freebsd.org/ports/) URL:[https://www.FreeBSD.org/ports/](https://www.freebsd.org/ports/)

[为 Ports 做贡献](https://docs.freebsd.org/en/articles/contributing/#ports-contributing) URL: <https://docs.freebsd.org/en/articles/contributing/#ports-contributing>

[Ports 管理团队](https://www.freebsd.org/portmgr/) URL: <https://www.freebsd.org/portmgr/>

[Ports 压缩包](http://ftp.freebsd.org/pub/FreeBSD/ports/ports/) URL: <http://ftp.freebsd.org/pub/FreeBSD/ports/ports/>

联系方式：FreeBSD Ports 管理团队 \[<portmgr@FreeBSD.org>]

Ports 管理团队负责监督 Ports 树的整体方向、构建软件包以及人事事务。以下是上季度的情况。

在上季度，我们欢迎 Yusuf Yaman（nxjoseph）、Kousuke Kannagi（mce）、Piotr Smyrak（smyru）、Laurent Chardon（laurent）和 Kenneth Raplee（kenrap）成为新的 Port 提交者，并告别了一名提交者。

根据 INDEX，Ports 中目前有 37,958 个（从 37,163 增加）Port。目前大约有 2,710 个（从 3,428 减少）未解决的 Port PR，其中 798 个（从 821 减少）未分配。上季度在 main 分支上有 8,970 次（从 8,738 增加）提交，由 166 名（从 156 增加）提交者完成，在 2026Q1 分支上有 697 次（从 898 减少）提交，由 59 名（从 61 减少）提交者完成。

main 分支上最活跃的提交者是：

* 2135 <sunpoet@FreeBSD.org>
* 800 <yuri@FreeBSD.org>
* 528 <vvd@FreeBSD.org>
* 312 <bofh@FreeBSD.org>
* 294 <tagattie@FreeBSD.org>
* 182 <nivit@FreeBSD.org>
* 177 <arrowd@FreeBSD.org>
* 175 <eduardo@FreeBSD.org>
* 153 <fuz@FreeBSD.org>
* 132 <mfechner@FreeBSD.org>

过去三个月 Ports 中发生了很多变化，主要软件升级摘录如下：

* pkg 2.6.2
* 新增 USES：inotify
* Go 默认版本切换为 1.25
* Java 默认版本切换为 21（armv\* 上为 11）
* Lazarus 默认版本切换为 4.6（aarch64 和 powerpc\* 上为 4.99）
* MySQL 默认版本切换为 8.4
* PostgreSQL 默认版本切换为 18
* Chromium 146.0.7680.177
* 新增 Electron 40.8.3
* Firefox 149.0
* Firefox-esr 140.9.0
* KDE Plasma 6.6.3
* KDE Frameworks 6.24.0
* KDE Applications 25.12.3
* Qt6 6.10.2
* Ruby 3.2.10、3.4.8、4.0.1
* Rust 1.94.0
* SDL 3.2.30
* 新增 wlroots 0.20.0
* Wine 11.0

在上季度，pkgmgr@ 运行了 29 次实验性构建，以测试各种基本系统更改和 Port 升级。

### 集群管理团队

链接：

[集群管理团队成员](https://www.freebsd.org/administration/#t-clusteradm) URL: <https://www.freebsd.org/administration/#t-clusteradm>

联系方式：集群管理团队 \[<clusteradm@FreeBSD.org>]

联系方式：Philip Paeps \[<philip@FreeBSD.org>]

FreeBSD 集群管理团队成员负责管理项目依赖的机器，以同步其分布式工作和通信。

本季度，团队完成了以下工作：

* FreeBSD.org 用户账户的常规支持。
* 所有物理主机和镜像的常规磁盘和部件支持（及更换）。
* 集群软件刷新。
* 协调社区镜像。

#### 集群刷新

stable/13 分支将于 2026 年 4 月底停止由 FreeBSD security-officer@ 团队提供支持。几项关键的 FreeBSD 项目基础设施已从 FreeBSD stable/13 升级到 FreeBSD stable/14 和 FreeBSD stable/15。此项工作在本月底仍在进行中。

clusteradm 团队以大约六到八周的周期刷新生产软件包构建器（约 35 台物理机器）。这些机器运行 FreeBSD current 快照。

其他机器根据需要升级，根据其暴露程度跟进安全修复。

截至撰写本文时，集群中有 146 台物理机器。其中 42 台运行 current，17 台运行 stable/15，80 台运行 stable/14。

剩余的 stable/13 jail 大部分将升级到 stable/15。

```
 12.x: Regular   0, Jails   7
 13.x: Regular   7, Jails  33
 14.x: Regular  80, Jails 263
 15.x: Regular  17, Jails   4
>16.x: Regular  42, Jails   6
Total: Regular 146, Jails 313
Total installations: 459
Running -RELEASE|{-p*}: 0
Total geographic sites: 13
```

#### FreeBSD 官方镜像

当前位置为澳大利亚、巴西、日本（两个完整镜像站点）、马来西亚、南非、瑞典、台湾和美国——加利福尼亚、芝加哥、新泽西和华盛顿。

我们在台湾的镜像站点经历了长时间的宕机。

我们在日本的一个镜像站点将在 2026Q2 进行彻底的硬件更新。

硬件和网络连接由以下机构慷慨提供：

* [BroadBand Tower, Inc](https://www.bbtower.co.jp/en/corporate/) 的云和 SDN 实验室
* [台湾阳明交通大学资讯工程系](https://www.cs.nycu.edu.tw/)
* [澳大利亚互联网协会](https://internet.asn.au/)
* [Internet Systems Consortium](https://www.isc.org/)
* [INX-ZA](https://www.inx.net.za/)
* [KDDI Web Communications Inc](https://www.kddi-webcommunications.co.jp/english/)
* [马来西亚研究与教育网络](https://www.mohe.gov.my/en/services/research/myren)
* [MetaPeer](https://www.metapeer.com/)
* [New York Internet](https://www.nyi.net/)
* [NIC.br](https://nic.br/)
* [Sonic](https://sonic.net/)
* [Teleservice Skåne AB](https://www.teleservice.net/)
* [Your.Org](https://your.org/)

始终欢迎新的官方镜像。我们注意到在全球互联网交换点托管单个镜像的好处，正如我们在澳大利亚、巴西和南非的现有镜像所证明的那样。如果你隶属于或知道任何愿意赞助单个镜像服务器的组织，请联系我们。我们对欧洲的地点特别感兴趣。

完整镜像站点规格请参阅[通用镜像布局](https://wiki.freebsd.org/Teams/clusteradm/generic-mirror-layout)，单个镜像站点请参阅[tiny-mirror](https://wiki.freebsd.org/Teams/clusteradm/tiny-mirror)。

FreeBSD 基金会不为 FreeBSD.org 集群的工作提供资金。

赞助者：若干匿名个人和公司

赞助者：<https://github.com/sponsors/ppaeps>

### Bugmeister 团队

链接：

[FreeBSD Bugzilla](https://www.freebsd.org/status/report-2026-01-2026-03/bugs.freebsd.org/) URL: [bugs.freebsd.org/](https://www.freebsd.org/status/report-2026-01-2026-03/bugs.freebsd.org/)

联系方式：Bugmeister \[<bugmeister@FreeBSD.org>]

Bugmeister 团队负责确保问题报告软件正常工作，条目正确分类，且没有无效条目。

本季度结束时我们有 9548 个未解决的 PR，与去年同期相比每个类别都略有上升。本季度我们大部分时间用于接待新贡献者，然后为他们提供账户。我们认为这进展顺利，并提高了参与度和提交质量，但我们确实认为团队需要更多的人手。

我们欢迎了分类团队的新成员 Simon Wollwage，他一直在认真地梳理数据库、变基补丁，并对贡献者友善。许多报告因他的努力而被关闭或其潜在问题得到修复，我们感谢他。

我们完成了文档更新，要求将建议的更改以 git format 补丁的形式发送。这将节省时间、提高安全性，并正确传达作者元数据。如果我们遗漏了某个地方，请告诉我们。

另请参阅：<https://wiki.freebsd.org/Bugzilla/SearchQueries>

## 项目

跨越多个类别的项目，从内核和用户空间到 Ports 或外部项目。

### 网络韧性法案（CRA）就绪项目

链接：

[网络韧性法案就绪](https://github.com/FreeBSDFoundation/all-projects/tree/main/Cyber%20Resilience%20Act%20Readiness) URL: <https://github.com/FreeBSDFoundation/all-projects/tree/main/Cyber%20Resilience%20Act%20Readiness>

基金会正在运行一个贯穿 2026 年的项目，积极为 FreeBSD 基金会、项目和社区应对欧盟网络韧性法案做准备。有六个主要关注领域：安全与漏洞处理、SBOM 工具链、公开文档、社区立法参与、公开项目仓库和通信。

在 2 月和 3 月期间，项目已从规划阶段进入积极交付阶段。内部每周协调会议现已到位，基金会签约的安全负责人 Pierre Pronchery 加入了 FreeBSD 安全团队，以使项目工作更紧密地与 FreeBSD 项目现有的安全流程对齐。

在监管参与方面，基金会共同签署了开源促进会给欧盟委员会的一封信，支持自愿安全认证，为 Eclipse 基金会对 CRA 指导草案的反馈做出了贡献，并参加了 FOSDEM 和 FOSS Backstage，与正在应对 CRA 的其他开源社区进行合作。

SBOM 工具链的技术工作进展顺利，早期自动 SBOM 生成现已进入测试阶段。已创建公开项目仓库以透明地跟踪进度，已发布社区常见问题解答，并提供了专用联系地址用于提问。对下游制造商的外联也已开始。

### 更健壮的 pkgbase 转换

链接：

[pkgbasify](https://github.com/FreeBSDFoundation/pkgbasify) URL: <https://github.com/FreeBSDFoundation/pkgbasify>

联系方式：Isaac Freund \[<ifreund@freebsdfoundation.org>]

[pkgbasify](https://github.com/FreeBSDFoundation/pkgbasify) 脚本用于将非 pkgbase 的 FreeBSD 系统转换为 pkgbase 系统。

在上季度，我在上游 pkg 中落地了[若干改进](https://github.com/freebsd/pkg/pull/2627)，使 pkgbasify 变得更简单、更健壮。同时，pkgbasify 对 `/var/db/etcupdate/current` 中 etcupdate 数据库的依赖现在可以被消除，使 pkgbasify 更加灵活。

这些改进将在 pkg 2.7 发布后对最终用户可用。

赞助者：FreeBSD 基金会

### Alpha-Omega 沙滩清理项目

链接：

[Alpha-Omega——Linux 基金会项目](https://alpha-omega.dev/) URL: [https://alpha-omega.dev](https://alpha-omega.dev/)

[Alpha-Omega GitHub](https://github.com/ossf/alpha-omega) URL: <https://github.com/ossf/alpha-omega>

[FreeBSD 基金会](https://freebsdfoundation.org/) URL: [https://freebsdfoundation.org](https://freebsdfoundation.org/)

[FreeBSD 基金会的项目仓库](https://github.com/FreeBSDFoundation/alpha-omega-beach-cleaning) URL: <https://github.com/FreeBSDFoundation/alpha-omega-beach-cleaning>

联系方式：Pierre Pronchery \[<pierre@freebsdfoundation.org>]

Alpha-Omega 的使命是催化对关键开源项目和生态系统的可持续安全改进。在 2024 年与 FreeBSD 基金会成功合作——审计 bhyve 虚拟机监控器和 Capsicum 沙箱框架——之后，Alpha-Omega 再次选择了 FreeBSD，这次是 Alpha Omega 沙滩清理项目。这项新资助旨在总体上改进 FreeBSD 基本系统中第三方软件的安全性和可维护性。FreeBSD 基金会接受了资助，并管理和执行了该项目。该项目已于 2026 年 3 月 30 日正式完成。

在 2025Q4 的上一份报告之后，确定了两个主要目标：

* 将 pkgconf 导入基本系统（参见 GitHub 上的[草案 PR #1994](https://github.com/freebsd/freebsd-src/pull/1994)）
* 将 pkg 导入基本系统（参见 GitHub 上的 [khorben/pkg-2.6.2 分支](https://github.com/khorben/freebsd-src/tree/khorben/pkg-2.6.2)）

两个目标都接近完成，并在台湾的 AsiaBSDCon 2026 期间的 [FreeBSD 开发者峰会](https://wiki.freebsd.org/DevSummit/202603)以及会议的[进展中工作环节](https://2026.asiabsdcon.org/entry/talk/MSBLUR/)上进行了公开演示。

月度报告已提交给 alpha-omega，并像以前一样在 GitHub 上提供[2025 年](https://github.com/ossf/alpha-omega/tree/main/alpha/engagements/2025/FreeBSD)和[2026 年](https://github.com/ossf/alpha-omega/tree/main/alpha/engagements/2026/FreeBSD)的报告。

赞助者：Alpha-Omega、FreeBSD 基金会

### FreeBSD 软件物料清单

链接：

[spdxtool：添加使用 URI 作为 SPDX id 的参数](https://github.com/pkgconf/pkgconf/pull/484) URL: <https://github.com/pkgconf/pkgconf/pull/484>

[spdxtool：添加更改 SPDX id 的命令行参数](https://github.com/pkgconf/pkgconf/pull/483) URL: <https://github.com/pkgconf/pkgconf/pull/483>

[spdxtool：添加主页处理](https://github.com/pkgconf/pkgconf/pull/475) URL: <https://github.com/pkgconf/pkgconf/pull/475>

[spdxtool：向 SBOM 添加源代码处理](https://github.com/pkgconf/pkgconf/pull/474) URL: <https://github.com/pkgconf/pkgconf/pull/474>

[spdxtool：添加版权文本支持](https://github.com/pkgconf/pkgconf/pull/473) URL: <https://github.com/pkgconf/pkgconf/pull/473>

[spdxtool：许可证标签 SDPX 表达式求值的重构](https://github.com/pkgconf/pkgconf/pull/461) URL: <https://github.com/pkgconf/pkgconf/pull/461>

[添加更严格的编译器警告并解决新警告](https://github.com/pkgconf/pkgconf/pull/450) URL: <https://github.com/pkgconf/pkgconf/pull/450>

[libpkgconf/libpkgconf.h：为函数添加 printf 类属性](https://github.com/pkgconf/pkgconf/pull/447) URL: <https://github.com/pkgconf/pkgconf/pull/447>

[spdxtool：将 const 变量更新为 const](https://github.com/pkgconf/pkgconf/pull/446) URL: <https://github.com/pkgconf/pkgconf/pull/446>

[man/spdxtool.1：添加 spdxtool 手册页](https://github.com/pkgconf/pkgconf/pull/445) URL: <https://github.com/pkgconf/pkgconf/pull/445>

[已添加 SPDX-License-Identifiers](https://cgit.freebsd.org/src/log/?qt=author\&q=Tuukka+Pasanen) URL: <https://cgit.freebsd.org/src/log/?qt=author&q=Tuukka+Pasanen>

[SPDX-License-Identifiers 待审查并等待上游合并](https://github.com/freebsd/freebsd-src/compare/main...illuusio:freebsd-src:update-spdx-licenses) URL: [https://github.com/freebsd/freebsd-src/compare/main%2E%2E%2Eilluusio:freebsd-src:update-spdx-licenses](https://github.com/freebsd/freebsd-src/compare/main...illuusio:freebsd-src:update-spdx-licenses)

[开放评论和审查的问题：caesar：添加 SPDX-License-Identifier 标签](https://reviews.freebsd.org/D55461) URL: <https://reviews.freebsd.org/D55461>

[用于 SBOM 元数据的 .pc 文件（进行中）](https://github.com/illuusio/freebsd-src/tree/sbom-pkgconfig/release/sbom) URL: <https://github.com/illuusio/freebsd-src/tree/sbom-pkgconfig/release/sbom>

联系方式：Tuukka Pasanen \[<tuukka.pasanen@ilmi.fi>]

FreeBSD 软件物料清单（SBOM）项目始于 2025 年，并在 2026 年继续。2026 年的工作更加侧重于欧盟网络韧性法案（CRA），工作重心转向为 FreeBSD 源代码交付一个框架。

在 2026 年第一季度，SBOM 工作在三个类别中交付：

* Pkgconf 上游工作，特别是 spdxtool 工具，用于从 .pc 文件创建 SPDX Lite 3.0.1 JSON-LD SBOM。 已添加若干缺失的功能，并由 pkgconf 贡献者积极开发。 该工具现在几乎兼容 SPDX Lite 3.0.1 要求，已准备好供一般使用。 此外，还有一项由 Pierre Pronchery 领导的将 pkgconf 作为 FreeBSD 源代码一部分导入的工作。
* 在 FreeBSD 源代码的 bin、sbin、usr.bin 和 usr.sbin 目录下的文件中添加缺失的 SPDX-License-Identifier。
* 创建用于 SBOM 的 .pc 文件。第一个补丁预计将在 2026Q2 落地，从 bin 中的文件开始。

如果你想帮助这项工作：

* 验证 SPDX-License-Identifier 许可证是否正确，并协助上游合并文件。
* 验证 .pc 文件是否包含准确信息，并帮助将其上游合并到 git。
* 协助审查 pkgconf 到 FreeBSD 源代码的导入。

赞助者：FreeBSD 基金会

### 笔记本电脑测试与集成项目

链接：

[项目 URL](https://freebsdfoundation.github.io/freebsd-laptop-testing/) URL: <https://freebsdfoundation.github.io/freebsd-laptop-testing/>

[GitHub 仓库](https://github.com/FreeBSDFoundation/freebsd-laptop-testing) URL: <https://github.com/FreeBSDFoundation/freebsd-laptop-testing>

联系方式：Shreeney Ajmeri \[<shreeney@freebsdfoundation.org>]

该项目的目标是为 FreeBSD 用户创建一个社区工作流，以便轻松测试他们的笔记本电脑，将所有测试过的笔记本电脑放在一个表格中，并配有排名系统来自动推断哪些笔记本电脑目前最适合运行 FreeBSD。

作为 FreeBSD 基金会[笔记本电脑支持与可用性项目](https://github.com/FreeBSDFoundation/proj-laptop)的一部分，此工作流将对想要测试笔记本电脑以了解其支持程度的 FreeBSD 潜在用户非常有用。它也帮助想要购买已知被 FreeBSD 良好支持的笔记本电脑的买家。

主要目标是将所有 FreeBSD 笔记本电脑兼容性信息整合到一个供社区参考的中央知识库中。

本季度完成了以下事项，

* 创建了一个基于 Python 的[应用程序](https://github.com/FreeBSDFoundation/freebsd-laptop-testing/blob/main/main.py)，它基于实用程序 [`hw-probe`](https://github.com/linuxhw/hw-probe/blob/master/INSTALL.BSD.md) 构建，用于收集和聚合笔记本电脑开发者和最终用户查看的相关数据子集。
* 开发了一个[静态站点生成](https://github.com/FreeBSDFoundation/freebsd-laptop-testing/blob/main/parse.py)系统，可将 Python 应用程序创建的文件解析为 HTML 片段，供网站使用
* 设置了 [GitHub Actions](https://github.com/FreeBSDFoundation/freebsd-laptop-testing/pull/23/files#diff-28802fbf11c83a2eee09623fb192785e7ca92a3f40602a517c011b947a1822d3) 工作流，在用户的新合并或 git 操作时自动运行解析器并生成网站
* 概述了由 `hw-probe` 创建的相关信息子集，用于 FreeBSD 笔记本电脑测试工作流
* 创建了[拉取请求](https://github.com/FreeBSDFoundation/freebsd-laptop-testing/pull/27/changes)模板，供用户遵循，概述了笔记本电脑的重要功能是否正常工作。
* 开发了一个评分系统，用于在应用程序中根据笔记本电脑上多少设备正常运行来自动评分。添加了一个工作流，使维护者更容易手动调整标准和分数。
* 创建了 Makefile 和 shell 脚本，帮助用户在终端中使用简单的 `make` 命令运行测试，并在未安装所需应用程序时提供用户友好的提示。
* 使用仓库中的测试套件测试了基奇纳办公室的所有笔记本电脑和台式机，以验证其是否在笔记本电脑和台式机上都能正常工作

此外，本季度进行了大量测试，

* 在 FreeBSD 16-CURRENT 上对照 [FreeBSD 笔记本电脑集成测试指南](https://github.com/FreeBSDFoundation/freebsd-laptop-testing/blob/main/testing_checklist.md)测试了 Framework Laptop 13（AMD 7040 系列）和 Lenovo Yoga 11e（Kaby Lake）
* 在 Framework Desktop（Ryzen AI MAX）上测试了 `drm-kmod` 支持，以及在 Framework Laptop 上测试了 s2idle（suspend-2-idle）支持。
* 创建了关于 Wayland 的 FreeBSD 手册文档，包括正确设置 Niri、Labwc、Hyprland 和 RiverWM 窗口管理器。在[已提交的测试目标](https://github.com/FreeBSDFoundation/proj-laptop/tree/main/supported)上测试和调试了 Wayland 支持，并向相关开发者报告了错误。
* 将 [Ly](https://codeberg.org/fairyglade/ly) 显示管理器集成到即将推出的 FreeBSD 15.1 [KDE 安装程序](https://gitlab.com/alfix/kde-installer-dialogs/-/merge_requests/10)中，允许用户在 SDDM 和 Ly 之间选择。
* 在使用 NVIDIA GPU 的 Dell OptiPlex 7010 系统上评估了 GPU 直通的可行性

其他说明：

* 开始测试其他机器上的 GPU 直通；它们尚未到达基奇纳办公室
* 继续迭代 `freebsd-laptop-testing` 仓库，并在其上线后倾听用户反馈。
* 正在将笔记本电脑测试项目迭代到 `freebsd.org` 域名

赞助者：FreeBSD 基金会

### BSDInstall 桌面脚本

链接：

[笔记本电脑支持与可用性项目任务](https://github.com/FreeBSDFoundation/proj-laptop/issues/25) URL: <https://github.com/FreeBSDFoundation/proj-laptop/issues/25>

[项目仓库](https://gitlab.com/alfix/kde-installer-dialogs) URL: <https://gitlab.com/alfix/kde-installer-dialogs>

联系方式：Alfonso Sabato Siciliano \[<asiciliano@FreeBSD.org>]

过去，我开发了几个带有图形界面的 shell 脚本，用于在我的笔记本电脑上安装和配置完整的桌面环境。这些界面能让用户选择他们偏好的方案。其中一个脚本特别包含了 GPU 驱动程序、桌面环境以及适用于笔记本电脑和台式机系统的工具。这些项目仍然可以在公共在线仓库中找到，但它们现在可能已经过时，因为它们已经几年没有被使用或维护了。

最近，FreeBSD 基金会启动了笔记本电脑支持与可用性项目。该项目的短期目标之一是在 [bsdinstall(8)](https://man.freebsd.org/cgi/man.cgi?query=bsdinstall\&sektion=8\&format=html)（FreeBSD 系统安装程序）中提供简单的功能，用于安装和配置图形环境。安装程序应询问用户是否要安装桌面环境，如果是，则自动安装和配置所需的一切，只需最少或无需用户干预。重启后，用户应看到 KDE Plasma 图形登录界面。

为了实现此功能，我复用了之前的一个脚本作为概念验证。它已被更新、简化，并重命名为 *desktop*。该脚本安装和配置 GPU 驱动程序、Xorg、KDE Plasma 和 SDDM。根据收到的反馈，我在原版基础上引入了若干改进：

* 自动 GPU 检测并建议视频驱动程序，因为一些用户在测试期间选择了错误的 GPU。这特别重要，因为该脚本面向经验较少的用户。
* 添加了基于对话框的消息，以提供信息、文档和错误报告。
* 额外的功能和菜单，允许用户选择某些配置。

后续，根据用户兴趣和反馈，可以将其扩展到其他桌面环境和工具。

主要挑战之一是支持的 GPU 种类繁多。因此，我发起了测试征集，通过一个在已安装系统上执行的脚本让社区参与。收到的反馈和建议非常积极和有价值。仍然欢迎贡献，特别是以下方面：

* 配有近期 GPU 的 NVIDIA Optimus。
* 非 amd64 架构的系统。

该脚本的一个版本后来被适配以集成到 bsdinstall 和安装 ISO 中。在 CURRENT 和 STABLE 上成功测试后，已提交审查以将 *desktop* 脚本添加到 bsdinstall：[D56167](https://reviews.freebsd.org/D56167)。

赞助者：FreeBSD 基金会

### 用 Freepascal/Lazarus 编写的 bhyve 管理 GUI

链接：

[Bhyvemgr](https://github.com/alonsobsd/bhyvemgr) URL: <https://github.com/alonsobsd/bhyvemgr/>

联系方式：José Alonso Cárdenas Márquez \[<acm@FreeBSD.org>]

Bhyvemgr 是一款用 Freepascal/Lazarus 在 FreeBSD 上编写的 bhyve 管理 GUI。它需要一组工具，大部分安装在基本系统上，一些从 Port/软件包安装。主要目标是成为一个面向桌面用户的应用程序，使桌面用户能够在 FreeBSD 主机上轻松快速地设置和运行虚拟机。

本季度，Bhyvemgr 有许多错误修复和改进。

以下是添加的一些亮点：

* 添加 PF/NAT 支持
* 在 sudo/doas 命令中添加 -n 参数。如果缺少运行某些应用程序的权限，它们将把错误保存到日志文件
* 为 bhyvemgr [wiki](https://github.com/alonsobsd/bhyvemgr/wiki) 添加了一些操作指南
* 更改 RDP 参数：/log-level:off 改为 /log-level:ERROR
* 改进 aarch64 支持
* 改进设置窗口
* 改进 IPv6 支持
* 改进日志功能
* 更新翻译

Bhyvemgr 支持从 15.x 到 16-CURRENT 的 aarch64，以及从 FreeBSD 14.x 到 16-CURRENT 的 amd64。它可以从 [Port](https://www.freshports.org/sysutils/bhyvemgr) 或软件包编译或安装，支持 gtk2、qt5 或 qt6 界面。

欢迎有兴趣帮助或支持该项目的人。

当前版本：1.13.1

赞助者：<https://paypal.me/alonsocbsd>

### bhyve 的完整 CPUID 控制

联系方式：Hans Rosenfeld \[<rosenfeld@grumpf.hope-2000.org>]

#### 项目概述

此项目正在进行的工作旨在将现有的概念验证工作集成到 FreeBSD 中，并添加以下可用性功能：

* 一种用户友好的配置方法，用于按需覆盖单个位、部分甚至整个 CPUID 功能，同时保留其余主机 CPUID 信息或预定义的 CPUID 配置
* 一种用户友好的配置方法，用于配置 bhyve 报告的虚拟机监控器签名
* 一组基于常见 x86 架构级别的预定义 CPUID 配置，可能还包括一些真实 CPU 型号的 CPUID 数据，以及一种用户友好的配置方法来为虚拟机选择其中一个

#### 上季度的变更

**bhyvectl 的扩展**

CPUID 配置原型已经为 bhyvectl 实现了一个新命令 `--get-cpuid-cfg`，用于查询 vCPU 的 CPUID 配置。

现在已为 bhyvectl 实现了另一个新命令 `--get-cpuid`，用于获取为 vCPU 模拟的 CPUID 值。

`--get-cpuid` 有几种操作模式：

`bhyvectl --get-cpuid=<leaf>[,<index>]` 获取单个 CPUID 叶和可选索引的模拟 CPUID 值。

`bhyvectl --get-cpuid[=all]` 获取所有支持叶和所有支持索引的完整模拟 CPUID 值集合。

`bhyvectl --get-cpuid=all,p` 与上述相同，但输出可作为 bhyve 的 CPUID 配置选项集解析。

`bhyvectl --get-cpuid=all,s` 与上述相同，但输出是“稀疏的”，即仅当给定 vCPU（使用 `--cpu` 开关）上的值与 vCPU 0 上相同叶和索引的值不同时，才打印该 CPUID 叶和索引。

后两种模式可用于基于 bhyve 的 CPUID 模拟构建基线 CPUID 配置，然后根据需要进行修改。

**更灵活的 CPUID 配置**

作为原型一部分实现的 CPUID 配置机制已经过重构，以允许更灵活和细粒度的配置，无需指定整个 CPUID 信息集。以下是一个示例配置：

```sh
cpuid.0x00000001=edx|=0x00040000
cpuid.0x00000003=ecx=0x01234567,edx=0x89abcdef
vcpu.1.cpuid.0x00000003=ecx|=0x10000000
vcpu.2.cpuid.0x00000003=ecx|=0x20000000
vcpu.3.cpuid.0x00000003=ecx|=0x30000000
vcpu.4.cpuid.0x00000003=ecx|=0x40000000
vcpu.5.cpuid.0x00000003=ecx|=0x50000000
vcpu.6.cpuid.0x00000003=ecx|=0x60000000
vcpu.7.cpuid.0x00000003=ecx|=0x70000000
vcpu.8.cpuid.0x00000003=ecx|=0x80000000
vcpu.9.cpuid.0x00000003=ecx|=0x90000000
vcpu.10.cpuid.0x00000003=ecx|=0xa0000000
vcpu.11.cpuid.0x00000003=ecx|=0xb0000000
vcpu.12.cpuid.0x00000003=ecx|=0xc0000000
vcpu.13.cpuid.0x00000003=ecx|=0xd0000000
vcpu.14.cpuid.0x00000003=ecx|=0xe0000000
vcpu.15.cpuid.0x00000003=ecx|=0xf0000000
cpuid.0x0000000b,0=edx=0xffffffff
cpuid.0x0000000b,1=edx=0xeeeeeeee
cpuid.0x0000000b,2=edx=0xdddddddd
```

上述 CPUID 配置在所有 vCPU 上启用处理器序列号（0x00000001，EDX 位 18）功能，并设置默认序列号为 0x01234567、0x89abcef。

在每个非 vCPU 0 的 vCPU 上，它用 vCPU ID 覆盖序列号的一位，使每个 vCPU 拥有唯一的序列号。

最后三个赋值没有任何意义。叶 0x0000000b 在所有索引中包含拓扑信息，寄存器 EDX 始终包含 vCPU 的 x2APIC ID。因此，最后三个赋值将被静默忽略。

**使用 x86 架构级别**

现在可以指定 x86 架构级别：

```ini
cpuid.archlevel=v1
```

这将禁用 x86 架构级别 v2 到 v3 的所有功能，将 CPU 功能集限制为 x86 架构级别 v1。

#### 下季度计划

* x86 架构级别支持应该更健壮。虽然直接配置 CPUID 信息应该能更改几乎所有内容，但对于 x86 架构级别，我们应该检查架构级别中定义的所有功能是否实际受硬件支持。应禁止设置 CPU 不支持的架构级别，或至少发出警告。
* 类似于设置 x86 架构级别，将实现一种机制来覆盖虚拟机监控器标识，而无需手动更改 CPUID 位。
* 让整个代码集接受审查并提交到 FreeBSD。

赞助者：FreeBSD 基金会

### Sylve——FreeBSD 统一系统管理平台

链接：

[网站](https://sylve.io/) URL: [https://sylve.io](https://sylve.io/)

[GitHub](https://github.com/AlchemillaHQ/Sylve) URL: <https://github.com/AlchemillaHQ/Sylve>

[CI](https://sylve-ci.alchemilla.io/) URL: [https://sylve-ci.alchemilla.io](https://sylve-ci.alchemilla.io/)

[Discord](https://discord.gg/bJB826JvXK) URL: <https://discord.gg/bJB826JvXK>

联系方式：Hayzam Sherif \[<hayzam@alchemilla.io>]

Sylve 是一款面向 FreeBSD 的现代化统一系统管理平台。它提供集成的 Web 界面，用于管理虚拟机（通过 Bhyve）、jail、其周围的网络以及 ZFS 存储。

后端使用 Go 实现，前端使用 Svelte 构建。该项目强调最小的系统占用。默认情况下，它不需要基本系统之外的任何软件包。

在本季度末，我们发布了 Sylve 的第一个 v0.1.0 版本，截至撰写本文时，我们已处于 v0.2.3。

可选的运行时依赖项，仅在使用其各自功能时才需要，包括：

* [devel/libvirt](https://cgit.freebsd.org/ports/tree/devel/libvirt/) 用于虚拟化
* [devel/qemu-tools](https://cgit.freebsd.org/ports/tree/devel/qemu/) 用于磁盘镜像管理
* [net/samba419](https://cgit.freebsd.org/ports/tree/net/samba419/) 用于 SMB 文件共享
* [sysutils/swtpm](https://cgit.freebsd.org/ports/tree/sysutils/swtpm/) 用于 TPM 仿真支持
* [dns/dnsmasq](https://cgit.freebsd.org/ports/tree/dns/dnsmasq/) 用于 DHCP 和 DNS 服务

该 Port 为方便用户引入了这些依赖项，但 Sylve 本身不需要任何依赖项即可运行。

#### Q1 进度亮点

**数据中心/集群**

* 改进了集群的创建和管理方式，使设置更快捷、更不容易出错。
* 实现了使用 [sysutils/zelta](https://cgit.freebsd.org/ports/tree/sysutils/zelta/) 的备份解决方案，支持按计划备份虚拟机、jail 和自定义数据集，无需在目标主机上运行自定义软件（SSH 和 ZFS 除外）。

**jail**

* 现在直接从 jail 专用 UI 支持 jail 的快照（包括其配置）。
* 为带有 VNET 的 jail 添加了局域网唤醒支持。
* 通过允许用户指定各种受支持的选项（钩子、DevFS 规则集、元数据等），改进了 jail 的可定制性。
* 添加了对基于 Ghostty（Zig/WASM）的 Web 终端的支持。
* Linux jail 现在支持静态 IP 配置。
* 现在为 jail 实现了模板功能；jail 可以转换为模板，然后克隆任意次数。
* 显著了改进启动/停止生命周期及关联的 UI，以利用我们内置的队列系统，提供更快、更流畅的用户体验。

**虚拟机**

* 现在直接从虚拟机专用 UI 支持虚拟机的快照（包括其配置）。
* 实现了 9P 文件系统支持，用于在客户机和主机之间快速共享文件夹。
* 添加了 QEMU 客户机代理支持，用于检索基本系统和网络信息。
* 明显改进了重启/启动/停止生命周期及关联的 UI，以利用我们内置的队列系统，提供更快、更流畅的用户体验。
* 为串行控制台添加了基于 Ghostty（Zig/WASM）的 Web 终端支持。
* 现在为虚拟机实现了模板功能；虚拟机可以转换为模板，然后克隆任意次数。
* CPU 绑定已大幅重构，特别是添加了对多插槽系统的支持。

**身份验证**

* 添加了密钥支持，用于无需输入密码即可轻松登录。

**实用工具**

* 下载器现在也支持上传。
* 明显改进了下载器的队列处理，以提高性能。

**通用**

我们还对平台进行了大量 UI/UX 改进、性能优化和错误修复。其中一些包括：

* 明显改进了 PCI 直通支持，现在包含一个”准备直通“按钮，该按钮为直通准备 PCI 设备，使其在系统重启后可用于虚拟机。
* 移除了若干 NPM 库，转而使用自定义构建的替代方案或内嵌依赖项，以降低供应链攻击的风险。
* 进行了大量性能优化，以减少前端的 RAM 和 CPU 使用。
* 将 CI 系统从 Jenkins 迁移到 GitHub Action，现在使用 sysroot 进行构建，使我们能够实现更快的构建时间。
* 大部分遥测数据已从主 SQLite 数据库移动到新的遥测数据库。这降低了主数据库上锁的风险，从而提高了性能。
* 编写了初始文档和部署指南，供用户入门。

#### 路线图更新

* 处理用户反馈。
* 致力于集成更多功能（NFS 共享、NAT/流量规则 UI 等）。

赞助者：FreeBSD 基金会、Alchemilla Ventures（开发）、IPTechnics LLC（基础设施与测试）

### AppJail、AppScripts 和沙箱化 X11 应用程序

链接：

[AppJail GitHub](https://github.com/DtxdF/AppJail) URL: <https://github.com/DtxdF/AppJail>

[AppScript GitHub](https://github.com/DtxdF/appscript) URL: <https://github.com/DtxdF/appscript>

[x11appjail GitHub](https://github.com/DtxdF/x11appjail) URL: <https://github.com/DtxdF/x11appjail>

联系方式：Jesús Daniel Colmenares Oviedo \[<dtxdf@FreeBSD.org>]

**AppJail** 是一个开源的 BSD-3 许可框架，完全用 POSIX shell 和 C 编写，用于使用 FreeBSD jail 创建隔离的、可移植的且易于部署的环境，其行为类似于应用程序。

**AppScript** 是一个非常轻量级且易于使用的工具，用于创建自解压可执行文件。

操作系统级虚拟化不如硬件级虚拟化完美：jail 中未隐藏设备中的漏洞可能对主机构成风险，但如果做得正确，它比直接从主机运行应用程序要好得多。

jail 是 FreeBSD 操作系统级虚拟化的实现。使用 jail，许多事情可以很容易地被限制：[限制资源](https://appjail.readthedocs.io/en/latest/limits/)、[限制对 /dev 设备的访问](https://appjail.readthedocs.io/en/latest/DEVFS/)、限制文件系统、[限制网络](https://github.com/DtxdF/AppJail/wiki/filter)以及许多其他方面。所有这些对在 jail 中运行的应用程序都是透明的。然而，一个具体问题，特别是对于 X11 应用程序，是缺乏隔离。用户经常滥用 `xhost +` 技巧在 jail 内运行 X11 应用程序并在主机的 X 服务器上显示该应用程序。这构成了安全风险，因为即使 X11 应用程序在 jail 内运行，即使它以非特权进程运行，它也可以从主机获取大量信息。因此，一个被入侵的应用程序、一个带有后门的应用程序，或者仅仅是出于“遥测目的”收集大量信息的应用程序，在这种设置下可能是噩梦，最坏的情况下，可能会危及主机。

最近在 AppJail 中实现了一个新命令来解决这个问题：[appjail-x11(1)](https://man.freebsd.org/cgi/man.cgi?query=appjail-x11\&sektion=1\&format=html)。此命令在 jail 内运行应用程序，但在由 Xephyr 创建的新 X 服务器上显示它，该服务器已通过 **MIT-MAGIC-COOKIE-1** 认证。这比在 jail 内设置 SSH 服务器、为此目的创建密钥对、连接到 jail 等要简单和轻量得多。然而，此命令不仅限于此：你可以调整 Xephyr 窗口的大小，你的桌面环境/窗口管理器将相应刷新，因为此命令能够检测此类变化。

然而，尽管此命令取得了很大成就，用户仍必须在 jail 内安装桌面环境/窗口管理器和应用程序，并且可能需要在主机上安装自定义的 `.desktop` 文件。这可以使用 Makejail 自动化，高级用户对此没问题，因为他们喜欢自定义一切，但对于普通用户（甚至是我），我想要的是分发应用程序，使用户只需运行应用程序而无需做任何其他事情，这就是 x11appjail 旨在解决的问题。

[x11appjail](https://github.com/DtxdF/x11appjail) 是一个包含预制脚本的仓库，用于使用 appjail-x11 部署某些 X11 应用程序，它自动安装 .desktop 文件、图标、通过 Makejail 创建 jail，以及一些可以在运行时轻松修改的合理默认环境变量。然而，该仓库实际上加剧了可用性问题：现在用户必须克隆和拉取更新，这对某些用户来说可能够了，但我想要的是应用程序的合理良好可用性以及能够在 jail 中轻松隔离它的能力。因此，我编写了 [appscript](https://github.com/DtxdF/appscript)，它创建 ELF 格式的 SFX 文件，这些文件在该仓库的每次新发布时通过 GitHub 工作流自动创建。

赞助者：<https://www.patreon.com/appjail>

### daemonless：原生 FreeBSD OCI 容器

链接：

[Daemonless](https://daemonless.io/) URL: [https://daemonless.io](https://daemonless.io/)

联系方式：Michael Johnson \[<ahze@ahze.net>]

联系方式：Jesús Daniel Colmenares Oviedo \[<dtxdf@FreeBSD.org>]

Daemonless 是一组直接在 FreeBSD 内核上运行的 FreeBSD 原生 OCI 镜像。它结合了 jail 的强大功能和安全性与现代容器生态系统——兼容 Podman、AppJail 或任何符合 OCI 标准的运行时。无需 Linux 虚拟机或额外开销。

功能：

* s6 进程监督——正确的信号处理，无僵尸进程
* PUID/PGID 支持——ZFS 数据集和绑定挂载的无缝权限映射
* 多标签——在上游二进制文件（:latest）、季度软件包（:pkg）或滚动软件包（:pkg-latest）之间选择
* 自动化 CI/CD——每个镜像自动构建和测试

我们的镜像舰队包含 60 多个镜像，从媒体管理器（如 Radarr、Sonarr、Prowlarr、Lidarr、Readarr、Bazarr 和 Jellyfin），到下载器（如 SABnzbd 和 Transmission），甚至基础设施软件（如 nginx、Vaultwarden、Smokeping 和 OpenSpeedTest）。我们甚至有 Immich 的完整技术栈！

所有这些镜像都是使用 <https://daemonless.io/guides/dbuild/> 创建的，这是 Daemonless 项目的主要构建引擎，最近已被[移植](https://cgit.freebsd.org/ports/tree/sysutils/py-dbuild)。它提供了用于构建、测试和发布 FreeBSD OCI 容器镜像的统一接口，确保本地开发和 CI/CD 环境之间的一致性。

除了使用 Podman 和 Podman-Compose 部署 OCI 容器外，最近还可以使用 <https://github.com/DtxdF/AppJail> 和 <https://github.com/DtxdF/director> 作为替代方案，这得益于它们的 OCI 兼容性。

### 内核基准测试、MAINTAINERS 和 pkgdist

链接：

[内核基准测试文章](https://github.com/Humanoid-Human/fbsd-work/blob/main/kernel-benchmark.md) URL: <https://github.com/Humanoid-Human/fbsd-work/blob/main/kernel-benchmark.md>

[MAINTAINERS srcmgr 讨论](https://github.com/freebsd/srcmgr/issues/21) URL: <https://github.com/freebsd/srcmgr/issues/21>

[MAINTAINERS 拉取请求](https://github.com/freebsd/freebsd-src/pull/2107) URL: <https://github.com/freebsd/freebsd-src/pull/2107>

[pkg 到发行集转换器](https://github.com/Humanoid-Human/fbsd-work/pull/1) URL: <https://github.com/Humanoid-Human/fbsd-work/pull/1>

联系方式：Trevor Xu \[<trevorxu5@gmail.com>]

本学期我的工作分为三个项目。

#### 内核基准测试

我对 FreeBSD 15.0-RELEASE、FreeBSD 16.0-CURRENT（默认安装）和禁用内核调试的 FreeBSD 16.0-CURRENT 进行了几项基准测试。此项工作的目的是提供内核调试工具对性能影响的适当测量。我发现 16.0-CURRENT 的默认安装（即带调试）比 15.0-RELEASE 显著慢，特别是在内存分配等方面。另一方面，正确配置的 16.0-CURRENT 在我运行的每项测试中性能都与 15.0-RELEASE 相当。[完整文章](https://github.com/Humanoid-Human/fbsd-work/blob/main/kernel-benchmark.md)可供查阅。

#### MAINTAINERS 现代化

基于 [srcmgr 讨论](https://github.com/freebsd/srcmgr/issues/21)中的信息，我设计了一个 UCL 文件的布局，用于存储维护者和要监视的路径，以替代当前的 MAINTAINERS 文件。然后我编写了一个 flua 脚本，该脚本读取此文件并可以为 GitHub 或 Forgejo 输出 CODEOWNERS、获取特定路径的维护者、获取特定维护者的路径等。拉取请求可以在[这里](https://github.com/freebsd/freebsd-src/pull/2107)找到。

#### pkg 到发行集转换器

目前正在编写一个 shell 脚本，可以将 pkgbase 软件包集转换为发行集。这将有助于促进向 pkgbase 的过渡。

赞助者：FreeBSD 基金会

### 改进 FreeBSD 上 LLDB

链接：

[LLVM 元问题](https://github.com/llvm/llvm-project/issues/180061) URL: <https://github.com/llvm/llvm-project/issues/180061>

联系方式：Minsoo Choo \[<minsoochoo0122@proton.me>]

由于 GDB 的许可证问题（GPLv3），FreeBSD 自 10.0 起在其基本系统中采用了 LLVM，包括 LLDB。然而，大多数内核开发者仍然依赖 KGDB（近期 GDB 的补丁版本）来调试内核。这部分是个人偏好问题（有些人觉得 GDB 的命令语法更舒适），但也有实际原因：LLDB 缺少 KGDB 提供的若干功能（详见下文），即使在基本系统中支持也不足。我的工作目标是在 4 月底之前实现与 KGDB 的功能对等。

我迄今为止所做的改进列在上面的链接中。请注意，小的错误修复不包括在该列表中。

以下不受支持：i386、arm、powerpc32、powerpc64be 和 mips\*。FreeBSD 13 及更早版本也不受支持。目标 LLVM 版本为 23，尽管此工作可能在 [Dimitry Andric](mailto:dim@FreeBSD.org) 完成其 LLVM 21 MFV 后被回移到 FreeBSD 树内 LLVM 并 MFC 到 stable/14 和 stable/15。

我在 1 月下旬开始此项工作，预计在 4 月完成。除了功能对等之外，还有进一步可能的改进，例如 minidump2elf 支持和在内核和核心转储 ELF 头中添加 UUID。

此项目最大的阻碍是缺乏同时了解 FreeBSD 内部机制和 KGDB 内部机制的审查者。如果你有时间，请对我的拉取请求（PR）提供反馈。非 x86 和非 arm64 机器上的测试者也非常欢迎。如果你发现任何问题，请提交错误并在 llvm/llvm-project 上提醒我。

赞助者：FreeBSD 基金会

## 用户空间

影响基本系统及其程序的变更。

### 完成进程描述符 API

联系方式：Konstantin Belousov \[<kib@FreeBSD.org>]

FreeBSD 很早就提供了进程描述符功能。其主要用途是在 Capsicum 沙箱中，操作对象需要句柄，而进程描述符提供了这样的句柄。其他操作系统以相同的名称提供类似的功能。所提供的 API 并不完整，主要缺失的部分是 [pdwait(2)](https://man.freebsd.org/cgi/man.cgi?query=pdwait\&sektion=2\&format=html) 系统调用，即 [wait(2)](https://man.freebsd.org/cgi/man.cgi?query=wait\&sektion=2\&format=html) 系列的模拟，它在进程描述符而非进程 ID 上操作。

所述项目添加了 [pdwait(2)](https://man.freebsd.org/cgi/man.cgi?query=pdwait\&sektion=2\&format=html) 调用。另一个重要的添加是 [pdrfork(2)](https://man.freebsd.org/cgi/man.cgi?query=pdrfork\&sektion=2\&format=html) 调用，它提供了与 [rfork(2)](https://man.freebsd.org/cgi/man.cgi?query=rfork\&sektion=2\&format=html) 相同的细粒度进程复制构造支持，但也像 [pdfork(2)](https://man.freebsd.org/cgi/man.cgi?query=pdfork\&sektion=2\&format=html) 一样返回进程描述符作为句柄。

在添加 pdwait 和 pdrfork 之后，[posix\_spawn(3)](https://man.freebsd.org/cgi/man.cgi?query=posix_spawn\&sektion=3\&format=html) 功能的自然扩展成为可能。现在 [posix\_spawnattr\_setprocdescp\_np(3)](https://man.freebsd.org/cgi/man.cgi?query=posix_spawnattr_setprocdescp_np\&sektion=3\&format=html) 属性请求 [posix\_spawn(3)](https://man.freebsd.org/cgi/man.cgi?query=posix_spawn\&sektion=3\&format=html) 返回进程描述符。另一个自然的添加是 [posix\_spawnattr\_setexecfd\_np(3)](https://man.freebsd.org/cgi/man.cgi?query=posix_spawnattr_setexecfd_np\&sektion=3\&format=html)，它通过文件描述符而非名称指定可执行映像。

这些新增功能共同使进程描述符完整，并允许在沙箱中使用 posix\_spawn。

赞助者：FreeBSD 基金会

## 内核

内核子系统/功能、驱动程序支持、文件系统等方面的更新。

### System76 笔记本电脑的 ACPI 驱动程序

联系方式：Pouria Mousavizadeh Tehrani \[<pouria@FreeBSD.org>]

我一直在为 System76 笔记本电脑开发专用驱动程序，它现在已在 CURRENT 上可用。

到目前为止，我添加了以下支持：

* 电池充电阈值。[(提交)](https://cgit.freebsd.org/src/commit/?id=f87ba4522ec9e7b2227b8f20f3a4d7c6a129da1c)
* 键盘亮度，支持 [backlight(8)](https://man.freebsd.org/cgi/man.cgi?query=backlight\&sektion=8\&format=html)。[(提交)](https://cgit.freebsd.org/src/commit/?id=105869a2c78d21f310a8f271eaa510acea045805)
* 键盘 RGB 颜色处理。[(提交)](https://cgit.freebsd.org/src/commit/?id=cdad55809ef59239c3bbdc841ed307db68bb3971)

唯一剩下的是通过驱动程序在独立 GPU 和集成 GPU 之间切换。然而，没有驱动程序协助也可以切换。

### 改进挂起/恢复

链接：

[博客](https://obiw.ac/s0ix/) URL: <https://obiw.ac/s0ix/>

[BSDCan 上关于 s2idle/S0ix 的演讲](https://youtu.be/RCjPc4X2Edc) URL: <https://youtu.be/RCjPc4X2Edc>

[睡眠测试镜像](https://people.freebsd.org/~obiwac/s0ix/) URL: <https://people.freebsd.org/~obiwac/s0ix/>

[工作分支](https://github.com/obiwac/freebsd-s0ix/pull/15) URL: <https://github.com/obiwac/freebsd-s0ix/pull/15>

联系方式：obiwac \[<obiwac@FreeBSD.org>]

挂起到空闲和 S0ix 睡眠支持正在添加到 FreeBSD 中。

现代 Intel 和 AMD 笔记本电脑（其中一些不支持 ACPI S3 睡眠）将能够进入低功耗状态以延长电池寿命。

大多数修订现已提交，包括新的 acpi\_spmc 驱动程序和 s2idle 支持。唯一剩下的是 USB4 挂起支持和 s2idle 循环（但这需要更多讨论和调查）。分别参见修订 [D52861](https://reviews.freebsd.org/D52861) 和 [D54410](https://reviews.freebsd.org/D54410)。

许多错误已修复，但仍然存在一个问题，即系统有时会在恢复后几秒钟锁定。这被缩小到 NVMe 驱动器在挂起后未正确唤醒——仍需进一步调查。

Intel PMC 驱动程序的工作已开始：[D54881](https://reviews.freebsd.org/D54881) 这已经允许在 Intel CPU 上读取最深可能的 S0ix 状态的驻留时间。

新的通用电源管理接口的工作已开始：[D55508](https://reviews.freebsd.org/D55508) 这是必需的，因为 s2idle 不是 ACPI 电源状态，而唯一（现代的）电源转换请求机制是 ACPI ioctl 接口。它尚未落地，因为我们可能最终会更改甚至移除睡眠类型和睡眠状态转换之间的区别。

赞助者：FreeBSD 基金会

### 休眠（即挂起到磁盘）

链接：

[保存系统映像的初始原型代码](https://github.com/OlCe2/freebsd-src/tree/oc-hibernate) URL: <https://github.com/OlCe2/freebsd-src/tree/oc-hibernate>

[恢复过程加载器部分的设计文档](https://hackmd.io/50ygFG3qSmqMOKytJMuOGw?both=) URL: <https://hackmd.io/50ygFG3qSmqMOKytJMuOGw?both=>

联系方式：Olivier Certner \[<olce@FreeBSD.org>]

联系方式：Konstantin Belousov \[<kib@FreeBSD.org>]

正在进行的工作是让 FreeBSD 支持休眠（挂起到磁盘），无需 BIOS/固件协助即可保存当前机器状态，适用于 `amd64` UEFI 引导的机器。

第一阶段是制作一个保存系统映像的原型，暂时搁置一致性问题，以便可以并行开始开发用于恢复和引导保存映像的 EFI 应用程序（Konstantin Belousov 正在负责此部分）。此阶段已于 3 月完成。在实验性代码可以提交之前，需要进行重大重构，特别是底层转储基础设施的重构。

下一个主要阶段是确保保存的系统映像的一致性，以便系统在恢复后是可用的。简而言之，最大的约束是我们必须确保没有更多的 I/O 正在进行，原因有几个，这包括首先确保不能再创建 I/O 请求，然后排空现有请求。特别是，正在进行的 DMA 访问可能在保存内存时更改内存，导致保存映像中的缓存过期。此外，如果恢复失败（例如，由于某些硬件一致性问题），未到达稳定存储的 I/O 将丢失，而应用程序或文件系统代码会期望它们已被提交（一致性丢失）。我们已开始识别需要关注的子系统，并分析其中需要进行的更改（例如，总线、GEOM、磁盘驱动程序）。

之后的阶段是确定如何在不损害一致性的情况下最终保存系统映像，因为此操作本身会修改内核内存。一种高级可能性是在确保稳定性后对内存进行快照，然后恢复正常操作以按快照时的状态保存页面。有几种可能的改进，如优先复制或延迟复制，具有不同的实现策略，因此具有不同的特征和要求。快照的优点包括能够使用常规内核代码保存映像，支持所有可用的转换。缺点是更高的内存消耗，尽管这在很大程度上取决于所选的实现策略，并且似乎在很大程度上是可缓解的，以及在内核非常低的层次上可能出现一些复杂性。正在研究的替代方案是不进行快照，而是确保将映像发送到磁盘仅修改在恢复时将被有效重置的状态。此替代方案需要实现选择性挂起，但除此之外，我们预计大部分现有的崩溃转储代码可以重用。我们目前正在深入研究不同的选项，以更好地了解其可行性和涉及的权衡。

赞助者：FreeBSD 基金会

### 协同处理器性能控制（CPPC）

联系方式：ShengYi Hung \[<aokblast@FreeBSD.org>]

联系方式：Olivier Certner \[<olce@FreeBSD.org>]

协同处理器性能控制（CPPC）是 ACPI 引入的一项标准，能让操作系统管理 CPU 的性能水平，反之亦然，通过抽象性能尺度管理效率水平，该尺度通常与单纯的频率水平不相关且更细粒度。Intel 和 AMD 多年来一直在提供支持 ACPI CPPC 的 CPU 实现。

FreeBSD 一直支持启用 CPPC，但仅限于 Intel 处理器，并且仅允许管理其功能中一个有用但非常有限的子集，这得益于 2020 年添加的 [hwpstate\_intel(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_intel\&sektion=4\&format=html) 驱动程序。硬件根据工作负载自主选择性能目标被强制启用，仅将相应的主要硬件可调参数（称为效率/性能偏好，EPP）通过 [sysctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&format=html) 旋钮导出给管理员。

我们在现有的 [hwpstate\_amd(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_amd\&sektion=4\&format=html) 驱动程序中添加了对 AMD CPPC 实现的支持，与 [hwpstate\_intel(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_intel\&sektion=4\&format=html) 不同，该驱动程序到目前为止仅管理”常规“P 状态。该驱动程序导出 4 个 [sysctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&format=html) 旋钮：最低性能、最高性能、期望性能和 EPP。最低、最高和期望性能是 0 到 255 之间的值，但根据硬件，可能只有某个子范围有效。最低和最高性能的初始值设置为平台指示的有效子范围边界（如果可用）。EPP 控制用于表达对效率或性能的偏好，是 0（最大性能偏好）到 255（最大效率偏好）之间的值。期望性能可以设置为最低和最高性能之间的任何值，或特殊值 0 以启用硬件根据当前工作负载自主选择目标性能。最低性能、最高性能和 EPP 控制无论是否启用了自主选择或指定了特定期望性能都适用。请注意，这些值的每种组合的效果取决于 CPU 型号，我们已经能够在少数型号上观察到截然不同的行为。因此，你应该预期需要在给定机器上实验以找到适合你用例的值。

[hwpstate\_amd(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_amd\&sektion=4\&format=html) 包含在 `GENERIC` 内核中（通过 [cpufreq(4)](https://man.freebsd.org/cgi/man.cgi?query=cpufreq\&sektion=4\&format=html)），并在 CPU 支持时使用 CPPC，除非另有明确指示（通过 `machdep.hwpstate_amd_cppc_enable` 可调参数）。因此，为了避免性能回归，我们暂时决定将上述控制设置为最大性能，因为这是传统 P 状态支持的默认行为，也是除 [hwpstate\_intel(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_intel\&sektion=4\&format=html) 之外的任何其他 [cpufreq(4)](https://man.freebsd.org/cgi/man.cgi?query=cpufreq\&sektion=4\&format=html) 驱动程序的默认行为（后者目前强制硬件自主选择并默认将 EPP 设置为 `0x80`（50%））。这可能会在以后根据我们是否能可靠地确定运行中的计算机是否为笔记本电脑而进行修订。

下一步是：

1. 修改 [hwpstate\_intel(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_intel\&sektion=4\&format=html) 使其在功能和默认行为方面与 [hwpstate\_amd(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_amd\&sektion=4\&format=html) 的 CPPC 支持对等。这包括：
   * 更好的错误处理和调试输出
   * 导出上述所有控制的旋钮
   * 更改 EPP 的尺度（从百分比到 8 位值）
   * 更改默认值
2. 为 [hwpstate\_amd(4)](https://man.freebsd.org/cgi/man.cgi?query=hwpstate_amd\&sektion=4\&format=html) 编写手册页（在此期间，此处的说明和嵌入的 [sysctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sysctl\&sektion=8\&format=html) 旋钮文档应该足够）。
3. 让 [powerd(8)](https://man.freebsd.org/cgi/man.cgi?query=powerd\&sektion=8\&format=html) 了解 CPPC 控制旋钮以及设置它们的简单策略。
4. 让 [cpufreq(4)](https://man.freebsd.org/cgi/man.cgi?query=cpufreq\&sektion=4\&format=html) 了解抽象性能值，以提供统一的接口来检索或设置它们。
5. 让 [cpufreq(4)](https://man.freebsd.org/cgi/man.cgi?query=cpufreq\&sektion=4\&format=html) 支持每 CPU 设置。
6. 根据平台类型选择默认控制值（可能来自 ACPI 的 `FADT` 的 `Preferred_PM_Profile` 字段）。
7. 可能将 [powerd(8)](https://man.freebsd.org/cgi/man.cgi?query=powerd\&sektion=8\&format=html) 策略移至内核空间。

赞助者：FreeBSD 基金会

### 改进音频栈

联系方式：Christos Margiolis \[<christos@FreeBSD.org>]

我自 2024Q1 起一直在从事音频栈的工作。以下是之前的状态报告列表：

[2024Q1](https://www.freebsd.org/status/report-2024-01-2024-03/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2024-01-2024-03/#_audio_stack_improvements>

[2024Q2](https://www.freebsd.org/status/report-2024-04-2024-06/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2024-04-2024-06/#_audio_stack_improvements>

[2024Q3](https://www.freebsd.org/status/report-2024-07-2024-09/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2024-07-2024-09/#_audio_stack_improvements>

[2024Q4](https://www.freebsd.org/status/report-2024-10-2024-12/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2024-10-2024-12/#_audio_stack_improvements>

[2025Q1](https://www.freebsd.org/status/report-2025-01-2025-03/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2025-01-2025-03/#_audio_stack_improvements>

[2025Q2](https://www.freebsd.org/status/report-2025-04-2025-06/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2025-04-2025-06/#_audio_stack_improvements>

[2025Q3](https://www.freebsd.org/status/report-2025-07-2025-09/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2025-07-2025-09/#_audio_stack_improvements>

[2025Q4](https://www.freebsd.org/status/report-2025-10-2025-12/#_audio_stack_improvements) URL: <https://www.freebsd.org/status/report-2025-10-2025-12/#_audio_stack_improvements>

自[上次报告](https://www.freebsd.org/status/report-2025-10-2025-12/#_audio_stack_improvements)以来的重要工作：

* FreeBSD 期刊文章[已发布](https://freebsdfoundation.org/wp-content/uploads/2026/01/margolis_vox.pdf)。
* [sound(4)](https://man.freebsd.org/cgi/man.cgi?query=sound\&sektion=4\&format=html) 和 [virtual\_oss(8)](https://man.freebsd.org/cgi/man.cgi?query=virtual_oss\&sektion=8\&format=html) 的清理、修复和改进。
* 为 [sndctl(8)](https://man.freebsd.org/cgi/man.cgi?query=sndctl\&sektion=8\&format=html) 添加 libxo 支持。
* 开始实现 [DSD 格式](https://en.wikipedia.org/wiki/Direct_Stream_Digital)和 [DoP](https://dsd-guide.com/dop-open-standard) 支持。
* 开始实现蓝牙设备管理实用程序。

你也可以在 FreeBSD 基金会的[状态更新仓库](https://github.com/FreeBSDFoundation/status-updates/tree/main/Christos_Margiolis)上关注开发过程，我在那里发布每周报告。

赞助者：FreeBSD 基金会

### LinuxKPI 802.11 和原生无线更新

链接：

[支持 MediaTek 无线网卡](https://github.com/FreeBSDFoundation/proj-laptop/issues/66) URL: <https://github.com/FreeBSDFoundation/proj-laptop/issues/66>

[支持 Realtek 无线网卡](https://github.com/FreeBSDFoundation/proj-laptop/issues/99) URL: <https://github.com/FreeBSDFoundation/proj-laptop/issues/99>

联系方式：Bjoern A. Zeeb \[<bz@FreeBSD.org>]

联系方式：FreeBSD 无线邮件列表 \[<wireless@FreeBSD.org>]

本报告侧重于在 FreeBSD 上使用宽松许可的 Linux 无线驱动程序（大部分未修改）的工作，以及为支持更新标准而准备原生 net80211 协议栈。

#### 更新驱动程序

所有基于 LinuxKPI 的无线驱动程序已更新至 main 和 stable/15 中的 Linux v6.19。

这包括

* 已发布的驱动程序 Intel [iwlwifi(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwifi\&sektion=4\&format=html) mvm/mld、Realtek [rtw88(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw88\&sektion=4\&format=html) 和 [rtw89(4)](https://man.freebsd.org/cgi/man.cgi?query=rtw89\&sektion=4\&format=html)，
* MediaTek mt76 驱动程序（正在进行中），
* 三种 Qualcomm Atheros 驱动程序 ath10k、ath11k 和 ath12k（待办），
* 以及 Broadcom brcmfmac，它可以编译和加载固件，但缺少 cfg80211 兼容垫片和一些 netdev 工作。

#### Intel iwlwifi 支持

为了应用 [iwlwifi(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwifi\&sektion=4\&format=html) 驱动程序更新，进行了一些 FreeBSD 特定的调整，以允许 mld 子驱动程序正确加载。还解决了多个错误。

#### Realtek rtw88 和 rtw89 支持

驱动程序更新后发现我们的 chandef 仿真需要更加精细。在后续工作中发现了与某些 rtw88 驱动程序可能无法进行硬件扫描而需要回退到软件扫描相关的进一步问题。最后，8821c 和 8822b 两个 rtw88 芯片组在我们准备认证时似乎经常有 6 秒延迟。目前尚不清楚固件在这些情况下为何失败，但最终我决定暂时搁置此问题，尝试在下次（希望在 15.1-R 之前）将 802.11n 和 802.11ac 更新纳入，然后再回到这些芯片组看看我们能做什么。

#### MediaTek mt76 支持

MT7921/7922 和 MT7925 是目前主要工作的芯片组。驱动程序更新后，一些 DMA32 问题以及 page\_pool 已得到解决。drm-kmod 为从原生 vm\_page 切换到 Linux struct page 所做的更改已令人感激地提交。这将使我更容易向人们提供测试版本。MT7925 还揭示了我们的 LinuxKPI IDR 实现中的不足，这或多或少从第一天起就被记录在那里。这将需要完全重写，以避免访问已销毁条目的问题，这在 Linux 中可能发生。我也开始积累更多芯片组进行测试。802.11n 和 802.11ac 支持将主要随 Realtek 工作一起推进。

#### Broadcom brcmfmac

Broadcom brcmfmac 驱动程序可以为 PCIe 编译并加载固件（对 arm64 有一个小的变通方法）。我们现在缺少一些 cfg80211 和 netdev LinuxKPI 兼容工作，以创建接口并驱动无线。

#### QCA 支持

虽然 ath10k 在站点模式下基本已解决，但 ath11k 和 ath12k 需要更多工作才能再次编译，以及 MHI 和其他所需部分的实现。

#### LinuxKPI USB 支持

LinuxKPI USB 实现已经存在了十多年。我去年已经发出了寻找用户的呼吁，今年再次发出但没有收到任何回复。我确实有一个改进版本，允许 Realtek、MediaTek QCA ath10k 和 Broadcom brcmfmac USB 芯片组编译。后两者基本无关紧要，只有旧的、很少的实际 USB 适配器可用。Realtek 和 MediaTek 可以附加并传递数据包，但在稳定性和干净拆卸方面还需要一些工作。

这方面有一个阻碍，即（旧的和新的）LinuxKPI USB 实现与我们的原生 USB 栈交织在一起，导致冲突。正在解决此问题的工作中，已确定两种可能的方式，但首先需要理解和清理 15 年前的一次更改。

#### LinuxKPI SDIO 支持

LinuxKPI SDIO 支持在我的开发树中已经存在了大约一年，主要是为 Realtek rtw88 做的。Broadcom 需要填充更多占位符，但这应该不会太难。中断需要最终确定，速度升级支持需要从其他人的进行中工作中拉取。我的计划是在 USB 不再碍事后尽快将其按原样加入树中，以便人们帮助测试和最终确定。

#### 原生 net80211

感谢 Ports 管理团队运行实验性构建。我准备了一个补丁，以识别所有使用 net80211 ioctl 接口的 Port。这是为了尽量减少即将到来的 ioctl 接口更改的前期破坏。

详情请查看 [PR 293016](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293016)。

#### 其他

我在 3 月的 LDWG（笔记本电脑桌面工作组）电话会议上提供了大部分内容的更新。更多信息请参阅 [LDWG Wiki 页面](https://wiki.freebsd.org/LaptopDesktopWorkingGroup)。

赞助者：FreeBSD 基金会

### 移除 RFC 2675 支持

联系方式：Tom Jones \[<thj@FreeBSD.org>]

巨型有效载荷选项是 IPv6 扩展头，旨在支持超过 65,735 八位字节的数据包大小。FreeBSD 从 KAME 项目获得了巨型有效载荷支持，但从未有真实网络承载过此支持。

作为 IPv6 协议栈现代化的一部分，巨型支持已被移除。据我们所知，此支持无法在 FreeBSD 主机上真实使用。

赞助者：FreeBSD 基金会

### GENEVE 隧道

链接：

[添加 Geneve 支持（RFC8926）](https://reviews.freebsd.org/D54172) URL: <https://reviews.freebsd.org/D54172>

联系方式：Pouria Mousavizadeh Tehrani \[<pouria@FreeBSD.org>]

自上次报告以来，我已将 GENEVE 实现分解为许多较小的修订，以使其更容易审查：

* 实现 geneve 内核模块 [D54172](https://reviews.freebsd.org/D54172)
* 在 [ifconfig(8)](https://man.freebsd.org/cgi/man.cgi?query=ifconfig\&sektion=8\&format=html) 中通过 netlink 集成 geneve 支持 [D55184](https://reviews.freebsd.org/D55184)
* 在 ifconfig 中包含 geneve 参数 [D55181](https://reviews.freebsd.org/D55181)
* 创建 [geneve(4)](https://man.freebsd.org/cgi/man.cgi?query=geneve\&sektion=4\&format=html) 手册 [D55182](https://reviews.freebsd.org/D55182)
* 添加 geneve 测试 [D55183](https://reviews.freebsd.org/D55183)
* 更新 [ECN(9)](https://man.freebsd.org/cgi/man.cgi?query=ECN\&sektion=9\&format=html) 隧道函数以遵循 RFC 6040 [D53516](https://reviews.freebsd.org/D53516)
* 更新 geneve 以符合 RFC 6040 [D55186](https://reviews.freebsd.org/D55186)

你可以通过在 phabricator 上审查和提供反馈来帮助加快此过程。

## 架构

更新平台特定功能并引入对新硬件平台的支持。

### drm-kmod：在 ARM64 上使用 16.0-CURRENT 构建和运行

链接：

[drm-kmod：在 ARM64 上使用 16.0-CURRENT 构建和运行](https://github.com/freebsd/drm-kmod/pull/402) URL: <https://github.com/freebsd/drm-kmod/pull/402>

联系方式：Dmitry Salychev \[<dsl@FreeBSD.org>]

我已经在我的 Honeycomb LX2 上使用 Radeon RX 460 成功构建并运行了带有这些补丁的 [graphics/drm-66-kmod](https://cgit.freebsd.org/ports/tree/graphics/drm-66-kmod/)。有了这些补丁，6.6-lts 可以作为任何依赖已退役的 [graphics/drm-510-kmod](https://cgit.freebsd.org/ports/tree/graphics/drm-510-kmod/) 的人的替代品。

### FreeBSD BananaPi-R64/R2-PRO 驱动程序开发

链接：

[Wiki](https://wiki.freebsd.org/arm/Bananapi) URL: <https://wiki.freebsd.org/arm/Bananapi>

联系方式：Martin Filla \[<freebsd@sysctl.cz>]

#### R64 简介

Banana Pi R64 是一款基于 MediaTek MT7622 的开发板（ARM Cortex-A53，双核约 1.35 GHz），具有 4 个千兆 LAN、1 个千兆 WAN、Wi-Fi（4×4n）、蓝牙 5.0 和多种外设接口（UART、SPI、I²C、GPIO、SATA、mini-PCIe、eMMC 等）。

#### R64 FreeBSD 支持现状

目前已实现：

* **UART 驱动程序**
* **时钟管理（clocks）**
* **Pinctrl**
* **存储控制器（eMMC/SD/MMC）驱动程序**
* **以太网交换机 mt7531 驱动程序**
* **以太网 mt7622 驱动程序**
* **XHCI 驱动程序**
* **看门狗驱动程序**
* **RTC 驱动程序**
* **RNG 驱动程序**
* **Pciecfg 驱动程序**
* **SysIRQ 驱动程序**

#### R64 开发路线图

实现缺失的驱动程序：

* USB3 / T-PHY
* SATA / AHCI / T-PHY
* Wi-Fi（可能是 MediaTek MT7615）
* GPIO 子系统
* I2C
* SPI
* PWM
* PCIE

进行中的驱动程序：- T-PHY

#### R2-PRO 简介

Banana Pi BPI-R2 Pro 是下一代智能路由器开发板。它由 Rockchip RK 3568 处理器驱动。板载 2GB LPDDR4 内存和 16GB eMMC 存储，支持 2 个 USB 3.0 接口、5 个千兆网络端口。M.2 key-E 和 mini PCIe 接口、2 个 mipi DSI 接口（其中一个可通过软件更改为 LVDS）、1 个 CSI 摄像头接口、1 个 HDMI 输出。

#### R2-PRO FreeBSD 支持现状

目前已实现：

* **UART 驱动程序**
* **时钟管理（clocks）**
* **Pinctrl**
* **GPIO**
* **存储控制器（eMMC/SD/MMC）驱动程序**
* **XHCI 驱动程序**
* **看门狗驱动程序**
* **PCIE 驱动程序**

#### R2-PRO 开发路线图

实现缺失的驱动程序：- HDMI - MIPI - USB3

进行中的驱动程序：- AHCI/SATA - PCIE

### NXP DPAA2 支持

链接：

[错误 292006 - dpni 在网桥中行为异常](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292006) URL: <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292006>

[dpaa2：在附加时设置接口能力](https://reviews.freebsd.org/D53436) URL: <https://reviews.freebsd.org/D53436>

[dpaa2：宣布发送校验和支持](https://reviews.freebsd.org/D54809) URL: <https://reviews.freebsd.org/D54809>

[dpaa2：在入队操作前执行 bus\_dma 预写同步](https://reviews.freebsd.org/D56144) URL: <https://reviews.freebsd.org/D56144>

[dpaa2：dpaa2\_ni\_rx() L3/4 的 RX 校验和 EN/ERR 信息](https://reviews.freebsd.org/D55320) URL: <https://reviews.freebsd.org/D55320>

[dpaa2：将帧特定例程提取到 dpaa2\_frame.\[h,c\]](https://reviews.freebsd.org/D56315) URL: <https://reviews.freebsd.org/D56315>

[dpaa2：在入口提取校验和状态](https://reviews.freebsd.org/D56383) URL: <https://reviews.freebsd.org/D56383>

[dpaa2：ni：添加更多统计信息和链路信息](https://reviews.freebsd.org/D55321) URL: <https://reviews.freebsd.org/D55321>

联系方式：Michael Tuexen \[<tuexen@FreeBSD.org>]

联系方式：Bjoern A. Zeeb \[<bz@FreeBSD.org>]

联系方式：Dmitry Salychev \[<dsl@FreeBSD.org>]

#### 什么是 DPAA2？

DPAA2（数据路径加速架构第二代）是某些 NXP SoC 中的硬件级网络架构，包含硬件块，包括管理复合体（MC，用于操纵 DPAA2 对象的命令接口）、线速 I/O 处理器（WRIOP，数据包分发、排队、丢弃决策）、队列和缓冲区管理器（QBMan，Rx/Tx 队列控制、Rx 缓冲池）等。管理复合体运行 NXP 提供的固件，该固件提供 DPAA2 对象作为这些块上的抽象层，以简化对底层硬件的访问。

#### 已完成

[39d4094173f9](https://cgit.freebsd.org/src/commit/?id=39d4094173f9)（“epair：添加校验和卸载支持”）揭示了 DPAA2 驱动程序中的几个问题，引发了 tuexen@ 和 dsl@ 进行的调查，最终导致了在错误 [292006](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292006) 下积累的更改：

* 硬件校验和卸载在 dpaa2\_ni 驱动程序附加时未正确启用，尽管已在 dpni 接口上声明和启用（已在 [a731cb93a662](https://cgit.freebsd.org/src/commit/?id=a731cb93a662) 中修复）
* dpni（DPAA2 网络接口）未正确宣布 TX 校验和卸载（已在 [f31336b3e314](https://cgit.freebsd.org/src/commit/?id=f31336b3e314) 中修复）
* 没有适当的同步，出口 TCP 段的有效载荷可能被损坏，如 tuexen@ 在 [292006#c31](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292006#c31) 中所述（已在 [5812415bee55](https://cgit.freebsd.org/src/commit/?id=5812415bee55) 中修复）

#### 进行中的工作

* bz@ 准备了代码，用于从入口帧的硬件注释中提取有关已计算校验和信息，在 [D55320](https://reviews.freebsd.org/D55320) 中，但 dsl@ 要求正确定义帧注释所需的结构，这导致了在 [D56315](https://reviews.freebsd.org/D56315) 中引入并在 [D56383](https://reviews.freebsd.org/D56383) 中完善的 dpaa2\_frame.\[h,c]
* bz@ 显著扩展了 dpni sysctl(9)，包括 [D55321](https://reviews.freebsd.org/D55321) 中新的接口计数器和链路状态信息

赞助者：Traverse Technologies（提供 Ten64 硬件用于测试）

### amd64 FRED 支持

链接：

[SDM 之前的 Intel FRED 规范](https://www.intel.com/content/www/us/en/content-details/819481/flexible-return-and-event-delivery-fred-specification.html) URL: <https://www.intel.com/content/www/us/en/content-details/819481/flexible-return-and-event-delivery-fred-specification.html>

[D55829 amd64：FRED 支持](https://reviews.freebsd.org/D55829) URL: <https://reviews.freebsd.org/D55829>

联系方式：Konstantin Belousov \[<kib@FreeBSD.org>]

实现了对 FRED 即灵活返回和事件交付功能的支持，这是非常现代的 amd64 平台的功能。FRED 是向操作系统报告异常、中断和系统调用的硬件接口以及操作系统从处理程序返回到被中断代码的方式的全面改造。设计 FRED 的目标是摆脱现有方式（我们称之为基于 IDT 的事件交付）中积累的兼容性功能和错误的层次。

FRED 规范现在已包含在 Intel SDM 修订版 90 中。AMD 似乎承诺在未来的某些实现中提供 FRED。

因此，FRED 支持需要事件处理程序的新代码路径。FRED 的良好结构允许在那里使用最小的汇编跳板，将大部分分派移至 C 代码。

FRED 处理程序的实现相对简单，所需时间比我最初预期的少得多。这表明所提议的接口是多么良好和自然。

到目前为止的测试仅在 Simics 仿真器上完成。FRED 应该受新发布的 Intel Panther Lake CPU 支持，但我没有访问真实硬件的权限。

赞助者：FreeBSD 基金会

### 支持全志 H616 SOC 系列

联系方式：Tom Jones \[<thj@FreeBSD.org>]

全志 H616 系列设备（H616、H616 和 H700）是一系列小型但功能强大的 SOC，具有强大的媒体支持。这些设备存在于许多电视盒子、手持设备和单板计算机中。

FreeBSD 现在支持大多数外设，并已在 Orange Pi 2 上进行了测试。以太网控制器存在一个尚未查明的问题，但正在调查中。图形支持需要 drm，这尚未探索。视频设备在 u-boot 或 Linux 上不支持作为帧缓冲控制台。

赞助者：FreeBSD 基金会

## 云

更新云特定功能并引入对新云平台的支持。

### EC2 上的 FreeBSD

链接：

[FreeBSD 15.0-RELEASE AMI](https://www.freebsd.org/releases/15.0R/ec2-ami-ids/release/) URL: <https://www.freebsd.org/releases/15.0R/ec2-ami-ids/release/>

联系方式：Colin Percival \[<cperciva@FreeBSD.org>]

FreeBSD 在 amd64（Intel 和 AMD）和 arm64（Graviton）EC2 实例上均可用。

FreeBSD 15.0-RELEASE 的 EC2 AMI 列表已添加到 FreeBSD 网站。此页面包含 javascript，允许按区域、架构、类型和根文件系统筛选列表。

现在已建立流程，在安全公告发布后发布更新的 EC2 AMI；我们现在有 FreeBSD 15.0-RELEASE-p5 AMI，预计通常在公告发布后几小时内提供更新的 AMI。这些 AMI ID 通过 SSM 参数存储和 FreeBSD 网站发布。目前没有为 14.x 发行版构建更新 AMI 的机制。

导致 [ena(4)](https://man.freebsd.org/cgi/man.cgi?query=ena\&sektion=4\&format=html) 驱动程序的 I/O 中断在 arm64 系统上全部落在 CPU 0 上的问题已在 main 中修复。该修复应出现在 15.1-RELEASE（6 月）和 14.5-RELEASE（9 月）中。

导致 [ena(4)](https://man.freebsd.org/cgi/man.cgi?query=ena\&sektion=4\&format=html) 驱动程序在 FreeBSD 在 r8i.96xlarge 实例上引导时不附加的问题已在 main 中修复。该修复预计出现在 15.1-RELEASE（6 月）和 14.5-RELEASE（9 月）中。

赞助者：亚马逊

赞助者：<https://www.patreon.com/cperciva>

### STACKIT 云平台与 FreeBSD 集成

链接：

[STACKIT](https://stackit.com/) URL: <https://stackit.com/>

[STACKIT CLI](https://github.com/stackitcloud/stackit-cli) URL: <https://github.com/stackitcloud/stackit-cli>

联系方式：Robert Gogolok \[<gogolok@gmail.com>]

我正在努力确保 FreeBSD 成为在 STACKIT（欧洲主权云）上管理资源的一等平台。目标是为 BSD 社区提供对 STACKIT IaaS 和 PaaS 工具的原生、可靠访问。

原生二进制文件：除了现有的 [sysutils/stackit](https://github.com/stackitcloud/stackit-cli) Port 外，每个[官方上游发布](https://github.com/stackitcloud/stackit-cli/releases)现在都包含原生 FreeBSD 二进制文件（amd64/arm64）。

上游贡献：

* [PR #1048](https://github.com/stackitcloud/stackit-cli/pull/1048)：添加了通过 goreleaser 发布原生 FreeBSD 二进制文件的逻辑。
* [PR #1243](https://github.com/stackitcloud/stackit-cli/pull/1243)：添加了在 FreeBSD 上打开身份验证 URL 的支持。

后续工作：

* 确保官方 [STACKIT Terraform Provider](https://github.com/stackitcloud/terraform-provider-stackit) 在 FreeBSD 上正常工作。

### 容器与 FreeBSD：云原生 Buildpack

链接：

[云原生 Buildpack（CNB）](https://buildpacks.io/) URL: <https://buildpacks.io/>

[GitHub Buildpack 仓库](https://github.com/buildpacks/pack) URL: <https://github.com/buildpacks/pack>

联系方式：Robert Gogolok \[<gogolok@gmail.com>]

[云原生 Buildpack（CNB）](https://buildpacks.io/)将应用程序源代码转换为容器镜像。这些镜像可以在任何云上运行。使用 buildpack，组织可以将容器构建最佳实践的知识集中在专业团队中，而不是让整个组织的应用程序开发人员各自维护自己的 Dockerfile。

自 2025Q1 的上次报告以来，项目已从实验性支持过渡到官方二进制文件可用性：

* 主要 CLI 工具 `pack` 和核心 `lifecycle` 组件现在每次新的上游发布都附带 FreeBSD 二进制文件。
* CLI 的新 Port `sysutils/pack` 已提交（[PR 292952](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292952)）。一旦提交，这将允许用户通过 `pkg install pack` 安装该工具。
* 官方 [buildpacks/samples 仓库](https://github.com/buildpacks/samples)现在包含一个针对 FreeBSD 的进行中拉取请求（[PR #201](https://github.com/buildpacks/samples/pull/201)）。

下一步侧重于降低开发者的入门门槛和改进 FreeBSD 构建路径的自动化：

* 寻找 FreeBSD Port 提交者来审查并将[新 Port sysutils/pack](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292952)落地到 Ports 树。
* 解决 `pack builder create` 中的[已知问题](https://github.com/buildpacks/pack/issues/2546)，该工具错误地尝试使用非 FreeBSD URL 进行某些二进制下载。
* 研究创建专门针对 FreeBSD 的 [Paketo 风格 buildpack](https://paketo.io/)。这将为流行语言（如 Go）提供”零配置“构建，在容器内生成 FreeBSD 原生二进制文件。

## 文档

文档树、手册页或新的外部书籍/文档中的显著变更。

### FreeBSD 俄语文档项目

链接：

[FreeBSD 官方俄语网站](https://www.freebsd.org/ru/) URL: <https://www.freebsd.org/ru/>

[FAQ](https://docs.freebsd.org/ru/books/faq/) URL: <https://docs.freebsd.org/ru/books/faq/>

[FreeBSD 俄语文档项目站点](https://github.com/freebsd-doc-ru/freebsd-doc/discussions) URL: <https://github.com/freebsd-doc-ru/freebsd-doc/discussions>

联系方式：Andrey Zakhvatov \[<andy@FreeBSD.org>]

联系方式：Vladlen Popolitov \[<vladlen@FreeBSD.org>]

FreeBSD 俄语文档项目的当前目标是为 FreeBSD 文档最重要的部分（FAQ、手册、网站内容）提供最新的俄语翻译。为俄语用户提供高质量官方技术材料至关重要，有助于提高该操作系统在全球的采用率。我们希望这一倡议能在俄语 FreeBSD 社区获得支持，并带来翻译材料的增加。

上季度：

* Weblate 中 100% 的文本已翻译完成，包括新的“FreeBSD 无障碍手册”。
* 文章[在台式 PC 上实现 UFS 日志记录](https://docs.freebsd.org/en/articles/gjournal-desktop/)已重写并扩展了附加信息，包括带日志记录的软更新的更新。
* [www.FreeBSD.org/ru](https://www.freebsd.org/ru)的俄语部分已完全翻译，其页面现在 100% 可用俄语访问。
* 对于 FreeBSD 14.4 发行版，完整的发行文档集（发行说明、勘误表等）已与英文原文同步及时翻译成俄语。
* FreeBSD 手册页的翻译项目已启动，处于非常早期的阶段。初步示例可在 [GitHub](https://github.com/freebsd-doc-ru/freebsd-man-ru)找到。

下季度计划：

* 继续进行中的 FreeBSD 手册页翻译项目。

如果你想提供帮助，请查看[官方翻译指南](https://docs.freebsd.org/ru/books/fdp-primer/translations/)。

我们将感谢你协助翻译以下材料：

* 网页
* 手册页

## Ports

影响 Ports 的变更，无论是涉及树的大部分的大规模变更，还是单个 Port 本身。

### FreeBSD 上的 KDE

链接：

[KDE/FreeBSD 倡议](https://freebsd.kde.org/) URL: <https://freebsd.kde.org/>

[FreeBSD——KDE 社区 Wiki](https://community.kde.org/FreeBSD) URL: <https://community.kde.org/FreeBSD>

联系方式：KDE on FreeBSD 邮件列表 \[<kde@FreeBSD.org>]

KDE on FreeBSD 项目为 FreeBSD Ports 树打包 CMake、Qt 和 KDE 社区的软件。软件包括一个名为 KDE Plasma（支持 X11 和 Wayland）的完整桌面环境，以及数百个可用于任何 FreeBSD 机器的应用程序。[KDE 团队](mailto:kde@FreeBSD.org) 是 [desktop@](mailto:desktop@FreeBSD.org) 和 [multimedia@](mailto:multimedia@FreeBSD.org) 团队的一部分，构建软件栈以使 FreeBSD 成为一个美观且可用的日常图形桌面工作站。

#### 基础设施

Qt6、PyQt6 和 PySide6 已更新至 6.10.2。Qt 6.11.0 的 Port 可在[开发分支](https://github.com/freebsd/freebsd-ports-kde/tree/qt6-6.11.0-merged)中进行测试。

#### KDE 栈

KDE Frameworks、Plasma 和 Gear 的发布非常规律。[KDE 团队](mailto:kde@FreeBSD.org) 在上游发布后不久就会落地这些更新。

* KDE Frameworks Port 已更新至 6.24。
* KDE Plasma 桌面已更新至 6.6.3。
* KDE Gear 已更新至 25.12.3。

最近的 Plasma 更新揭示了 FreeBSD 实现中 [timerfd(2)](https://man.freebsd.org/cgi/man.cgi?query=timerfd\&sektion=2\&format=html)的一个[错误](https://bugs.freebsd.org/293368)，该错误导致 plasmashell CPU 使用率过高。该错误已在 FreeBSD-CURRENT 中修复并合并到受影响的 stable 分支。

#### 相关 Port

[KDE 团队](mailto:kde@FreeBSD.org)维护 730 个 Port 并根据需要进行更新。根据 [portscout](https://portscout.freebsd.org/kde@freebsd.org.html)，4% 的 Port 已过时。

### FreeBSD 上的 GCC

链接：

[GCC 项目](https://gcc.gnu.org/) URL: <https://gcc.gnu.org/>

[GCC 13 发布系列](https://gcc.gnu.org/gcc-13/) URL: <https://gcc.gnu.org/gcc-13/>

[GCC 14 发布系列](https://gcc.gnu.org/gcc-14/) URL: <https://gcc.gnu.org/gcc-14/>

[GCC 15 发布系列](https://gcc.gnu.org/gcc-15/) URL: <https://gcc.gnu.org/gcc-15/>

[GCC 16 发布系列](https://gcc.gnu.org/gcc-16/) URL: <https://gcc.gnu.org/gcc-16/>

联系方式：Lorenzo Salvadore \[<salvadore@FreeBSD.org>]

本季度我们有三个主要新闻。

1 月，我们调查了为什么 GCC 16 每周快照自去年 11 月的上次快照以来停止编译。需要很多人才能理解发生了什么，但最终问题被理解并在 2 月向上游提交了修复。详细信息可以在[上游错误报告](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123366)中找到。感谢所有帮助的人，特别是 Mark Millard 和 [Dimitry Andric](mailto:dim@FreeBSD.org)。

目前 [lang/gcc16-devel](https://cgit.freebsd.org/ports/tree/lang/gcc16-devel/) 无法在 arm64 上构建。遗憾的是我还没有时间真正深入研究这个问题，但我希望能很快做到。[PR 294062](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294062)是跟踪此问题的错误报告。

使 GCC\_DEFAULT=15 的[流程](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292692)已经开始。GCC\_DEFAULT=14 的更新仍然是近期的，GCC 14 仍受到积极支持，因此不急于完成此事；但由于这些更新往往很长，我已经开始了。因此这目前不是我的最高优先级：它是我有空闲周期时投入精力的地方，目前如此。

### Valgrind：趋于稳定、FreeBSD 16 修复和新增功能

链接：

[Valgrind 主页](https://www.valgrind.org/) URL: <https://www.valgrind.org/>

[Valgrind 新闻](https://www.valgrind.org/docs/manual/dist.news.html) URL: <https://www.valgrind.org/docs/manual/dist.news.html>

联系方式：Paul Floyd \[<pjfloyd@wanadoo.fr>]

当 FreeBSD 14.4-RELEASE 发布且一切顺利时，我以为这份季度状态报告没什么好说的。然后我开始使用几台属于 GCC 服务器群的 16.0-CURRENT 机器。在那里我看到了几个问题。起初失败次数比我通常预期的多得多。稍后服务器更新后，Valgrind 崩溃得很严重，在启动早期就断言失败。其中一些问题是使用 Valgrind 时预期的高维护工作。`pthread_create` 使用的内部锁需要一个新的 Helgrind 抑制规则。服务器是从源代码构建和安装的，这偶尔会影响错误调用栈。Valgrind 回归测试对此类更改非常敏感，需要额外的过滤。断言是由 Valgrind 中读取自身二进制文件时的错误假设引起的，主要用于在崩溃时打印自己的调用栈。最后一个问题是库拆分调试文件的生成方式发生变化导致的。

总体而言，这是一个更多是稳定化的发布。相对较少的新功能。

Valgrind 3.27 预计于 2026 年 4 月底发布，[devel/valgrind](https://cgit.freebsd.org/ports/tree/devel/valgrind/) 将在此后不久更新。

以下是我上次报告（2025Q3）以来的错误修复列表：

* 系统调用参数处理的内部清理。
* 客户端栈创建期间的更多检查。
* 对默认抑制规则的若干调整。
* 为 `kexec_load`、`pdwait`、`renameat2` 添加系统调用包装器
* 添加了带有“未实现”标志的系统调用 `pdrfork`（`rfork` 类系统调用在 Valgrind 中非常难以实现）。

### 改进 FreeBSD 上的 OpenJDK

链接：

[项目描述](https://freebsdfoundation.org/project/improving-openjdk-on-freebsd/) URL: <https://freebsdfoundation.org/project/improving-openjdk-on-freebsd/>

[项目仓库](https://github.com/freebsd/openjdk) URL: <https://github.com/freebsd/openjdk>

[上游 BSD 移植仓库](https://github.com/openjdk/bsd-port) URL: <https://github.com/openjdk/bsd-port>

联系方式：

Harald Eilertsen \[<haraldei@FreeBSD.org>]

FreeBSD Java 邮件列表 \[<freebsd-java@lists.freebsd.org>]

本项目的目标是改进对 FreeBSD/amd64 和 FreeBSD/arm64 的 OpenJDK 支持。

Java 是许多高性能、关键企业系统的重要运行时环境。确保基于 Java 的应用程序在 FreeBSD 上正确高效运行对于确保 FreeBSD 继续成为企业和各种规模企业及组织的可行且有吸引力的平台非常重要。

本季度达成了以下问题/里程碑：

* 将 OpenJDK 25 Port 更新至[版本 25.0.2](https://reviews.freebsd.org/D55529)。
* 修复了在没有 xorg 库的情况下构建无头 OpenJDK 25 变体的问题[当不存在 xorg 库时](https://reviews.freebsd.org/D55589)。
* 重构了 OpenJDK Port 在 FreeBSD 上的[引导方式](https://kodeknekkeriet.net/en/blog/bootstrapping-openjdk-freebsd-ports/)：
  * [D54683](https://reviews.freebsd.org/D54683)：OpenJDK 8-20
  * [D54731](https://reviews.freebsd.org/D54731)：OpenJDK 21-25
* 修复和改进了主线 BSD 移植中用于 FreeBSD 的 Serviceability Agent：
  * [撤消破坏](https://github.com/battleblow/jdk/pull/38)由上游 macOS 移植引起的问题
  * 修复了从正在跟踪的进程中的线程[获取堆栈跟踪](https://github.com/battleblow/jdk/pull/38/changes/c1c498392ee10b0c35e8078f11cc975b9f1df5fb)
  * 修复了[虚假问题](https://github.com/battleblow/jdk/pull/42)，即从共享对象查找原生符号有时会失败
  * [简化函数](https://github.com/battleblow/jdk/pull/38/changes/39130dd99897437101169bddc032431ecf259461)，用于从跟踪进程读取任意内存
* 启用了为 FreeBSD [构建/安装 Hotspot 反汇编器](https://github.com/battleblow/jdk/pull/41)（HSDIS）。这是 Aarch64 进行某些测试所需的，用于检查 Hotspot 在各种环境中是否生成正确的指令序列。目前仅支持 llvm 后端，尽管没有理由认为其他后端不起作用。
* [将 ThreadWXEnable 实现与 macOS 同步](https://github.com/battleblow/jdk/pull/40)。这使得 Hotspot 能够切换内存段的写/执行访问权限，以便能够在 Aarch 上生成稍后执行的代码。只是一个小调整，以便与我们使用的 API 与 macOS 代码对齐，即使我们的实现不同。
* 将主线中与 BSD 相关的更改回移到 [OpenJDK 25](https://github.com/battleblow/jdk25u/pull/11) 和 [OpenJDK 26](https://github.com/battleblow/jdk26u/pull/3) Port。
* 添加了 [OpenJDK 26 的新 Port](https://reviews.freebsd.org/D55938)。感谢 Greg Lewis 和 Kurt Miller 的帮助。
* 将[第一个 PR](https://github.com/openjdk/bsd-port/pull/4)合并到上游 BSD 移植仓库！

其他说明：

* 开始将 OpenJDK 25 更新到版本 25.0.3 的工作，计划于 4 月中旬发布。
* 我将于 4 月 28 日在瑞典哥德堡的 [foss-north](https://foss-north.se/2026/speakers-and-talks.html#heilertsen)会议上谈论该项目和我在其中的工作经验。

赞助者：FreeBSD 基金会

### 将 openjdk21 设为默认 JAVA\_VERSION

链接：

[问题 272855](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272855) URL: <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272855>

[跟踪进行中工作的电子表格](https://docs.google.com/spreadsheets/d/17hmRQ0ShY4SHHVEkQBVxqK2G88fPZLriTzO26zXdjC4/edit?usp=sharing) URL: <https://docs.google.com/spreadsheets/d/17hmRQ0ShY4SHHVEkQBVxqK2G88fPZLriTzO26zXdjC4/edit?usp=sharing>

联系方式：Ronald Klop \[<ronald@FreeBSD.org>]

拥有活跃的 Java 环境对 FreeBSD 的各种应用程序都很有用。

FreeBSD Ports 中的默认 JAVA\_VERSION 已于 2 月 26 日从 8 更改为 21。这是一个版本上的重大步骤。因此涉及了大量工作。现在这一切都已完成。

所有已知会出问题的 Port 都已修复，此后未报告任何回归。2026Q2 Ports 分支将是第一个以 OpenJDK 21 作为默认 Java 版本的稳定 Ports 分支。

* 非常感谢所有参与的人员
* 已开始工作，在 Q2 期间将 25 作为 main 中的新 JAVA\_DEFAULT

### 将 openjdk25 设为默认 JAVA\_VERSION

链接：

[问题 293559](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293559) URL: <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=293559>

联系方式：Ronald Klop \[<ronald@FreeBSD.org>]

Java 是在 FreeBSD 上运行某些应用程序的重要环境。OpenJDK Port 得到积极维护且保持最新。自 2025 年 10 月起，OpenJDK 25 LTS 已在 Ports 树中可用。

建立在将 Port 迁移到 OpenJDK 21 的基础上，将 JAVA\_DEFAULT 切换到 25 是一个更小的步骤。大多数 Java Port 可以无需修改即可编译和运行。只有少数 Port 需要一些修复，目前正在处理中。

该工作在 PR 293559 中进行跟踪。

我认为在 2026 年第二季度让 Port 处于适合 JAVA\_VERSION=25 设置的状态是合理的。

计划：

* 请求实验性构建
* 检查最后的 Port 并创建 PR 或提交
* 提交维护者反馈超时的 PR
* 可能请求另一次实验性构建
* 如果完成，增加 JAVA\_VERSION

### FreeBSD 上的 Wazuh

链接：

[Wazuh](https://wazuh.com/) URL: [https://wazuh.com](https://wazuh.com/)

联系方式：José Alonso Cárdenas Márquez \[<acm@FreeBSD.org>]

联系方式：Jesús Daniel Colmenares Oviedo \[<dtxdf@FreeBSD.org>]

Wazuh 是一个免费的开源平台，用于威胁预防、检测和响应。它能够保护本地、虚拟化、容器化和云环境中的工作负载。

Wazuh 解决方案由部署到受监控系统的端点安全代理和收集分析代理数据的管理服务器组成。此外，Wazuh 已与 Elastic Stack 或 OpenSearch Stack 完全集成，提供搜索引擎和数据可视化工具，允许用户浏览其安全警报。

本季度发生了很多事情。许多改进和错误修复增强了 FreeBSD 对这一优秀 XDR/SIEM 安全平台的支持。

* 我们在 GitHub 上创建了一个仓库以集中工作并减少管理器和代理中的补丁。链接：[仓库](https://github.com/alonsobsd/wazuh-freebsd)，[b1f5298](https://cgit.freebsd.org/ports/commit/?id=b1f52980fe0a34ccaa674408c92869aec9aac4fe)
* Python 捆绑包已更新至 3.11.15。链接：[c941e5b](https://cgit.freebsd.org/ports/commit/?id=c941e5b33dea22c240b2b0bb53dd191bb1e8da4a)
* 修复了启用 MYSQL 选项时阻止 wazuh-manager 启动的问题。链接：[c941e5b](https://cgit.freebsd.org/ports/commit/?id=c941e5b33dea22c240b2b0bb53dd191bb1e8da4a)
* 修复了 sysinfo 的 `getPorts()` 函数中的解析问题。链接：[35fcd6a](https://cgit.freebsd.org/ports/commit/?id=35fcd6a4cc00bedfe350da9503d4d09d3e914006)
* 为 FreeBSD 添加了 asyncinotify 库的支持，该库阻止 Wazuh API 正确启动。链接：[35fcd6a](https://cgit.freebsd.org/ports/commit/?id=35fcd6a4cc00bedfe350da9503d4d09d3e914006)
* 现在 Wazuh 使用 OpenSearch Dashboards 2.19.4。链接：[b1f5298](https://cgit.freebsd.org/ports/commit/?id=b1f52980fe0a34ccaa674408c92869aec9aac4fe)
* sysinfo 模块现在可以获取用户和组信息。链接：[e9cebac](https://cgit.freebsd.org/ports/commit/?id=e9cebac52c06bab51b406304d7e5a6397fddec77)
* 修复了代理和管理器之间阻止 TCP 连接成功达到活动状态的问题，现在此协议是默认协议而非 UDP。链接：[055d5c9](https://cgit.freebsd.org/ports/commit/?id=055d5c96c56d8cc876451ccb9b0eb80bcac8d72a)，[508a8c8](https://cgit.freebsd.org/ports/commit/?id=508a8c8d4b9b836cc1effee7b5f462a53c644501)
* FreeBSD SCA、解码器和规则文件已更新，修复了冲突问题。链接：[055d5c9](https://cgit.freebsd.org/ports/commit/?id=055d5c96c56d8cc876451ccb9b0eb80bcac8d72a)，[508a8c8](https://cgit.freebsd.org/ports/commit/?id=508a8c8d4b9b836cc1effee7b5f462a53c644501)
* 管理器中 Python 脚本的一个问题阻止了在未设置 `CRYPTOGRAPHY_OPENSSL_NO_LEGACY` 环境变量时的正确执行。链接：[8bd6c77](https://cgit.freebsd.org/ports/commit/?id=8bd6c77634f475a0ff31bda46b4c04f91fa74d79)
* sysinfo 的 `getSerialNumber()` 函数已改进，因此管理器和代理现在可以使用 `kern.hostuuid` sysctl 唯一标识设备。链接：[284813e](https://cgit.freebsd.org/ports/commit/?id=284813ec0382a2bfe5b2e74a3081a67599d3155d)
* 修复了 wazuh-modulesd 中的一个导致在解压漏洞检测数据库和访问未初始化结构时出现 SIGSEGV 的问题。链接：[d3c13b6](https://cgit.freebsd.org/ports/commit/?id=d3c13b6b24ec7d9be58f0ebd3a2c7d0a2e7b7d79)
* 修复了代理中由于 etc/clients.keys 文件的所有者不正确而导致“权限错误”的问题。链接：[c74ab75](https://cgit.freebsd.org/ports/commit/?id=c74ab75450040f0367851979ff46cd64d74d6a1f)
* [security/wazuh-server](https://cgit.freebsd.org/ports/tree/security/wazuh-server/) 从 beats7 切换到 beats8。链接：[ce6831e](https://cgit.freebsd.org/ports/commit/?id=ce6831e12ecbcdbce6a1b4fb2988b9663e370a78)
* 修复了当系统上未安装 [pkg(8)](https://man.freebsd.org/cgi/man.cgi?query=pkg\&sektion=8\&format=html) 且 sysinfo 的 `getPackages()` 函数尝试获取有关已安装软件包的信息时 wazuh-modulesd 中的段错误。现在此函数已重新实现以使用 SQLite。链接：[ff95715](https://cgit.freebsd.org/ports/commit/?id=ff957155fa2a7ee01ceeec45b1fb75d80f856c58)，[a4242bf](https://cgit.freebsd.org/ports/commit/?id=a4242bfeafc2dd423cf145060abb9b5562958c72)
* 对 Wazuh API 的 api.yaml 文件应用 [dos2unix(1)](https://man.freebsd.org/cgi/man.cgi?query=dos2unix\&sektion=1\&format=html)。链接：[a4242bf](https://cgit.freebsd.org/ports/commit/?id=a4242bfeafc2dd423cf145060abb9b5562958c72)
* 修复了 wazuh-apid 的一个问题，当 `security.bsd.see_other_{u,g}ids` 设置为 `0` 时阻止其正确启动，将自身标记为 DOWN。链接：[c86d3fc](https://cgit.freebsd.org/ports/commit/?id=c86d3fc116b3437ff3351e8e886926175aaec2b1)
* 在 FreeBSD Wiki 上创建了一个页面，以集中我们已完成和待完成的工作。链接：[Wiki](https://wiki.freebsd.org/Wazuh)

改进了 Wazuh 的 Makejail，现在模仿了官方 Dockerfile，因此熟悉它的用户可以使用 [AppJail](https://github.com/DtxdF/AppJail) 和 [Director](https://github.com/DtxdF/director) 轻松部署所有 Wazuh 组件：

* [wazuh-manager](https://github.com/AppJail-makejails/wazuh-manager)
* [wazuh-agent](https://github.com/AppJail-makejails/wazuh-agent)
* [wazuh-indexer](https://github.com/AppJail-makejails/wazuh-indexer)
* [wazuh-certs-tool](https://github.com/AppJail-makejails/wazuh-certs-tool)
* [wazuh-dashboard](https://github.com/AppJail-makejails/wazuh-dashboard)

这也为 Makejail 添加了集群模式基础设施。

漏洞检测尚未在 FreeBSD 中实现，但 [Serpico](https://github.com/DtxdF/serpico) 已被开发来解决此不足。Serpico 是一个针对 FreeBSD 软件包和发行版的安全扫描器，将版本与标记为易受攻击的版本列表进行比较，并以紧凑的 JSON 格式显示漏洞信息，便于使用其他安全工具进行分析。该软件包包含 Wazuh 的规则和可通过 Web UI 或 OpenSearch Dashboards API 轻松安装的仪表板。

当前版本：4.14.3

### FreeBSD HPC 现代化倡议：生态系统扩展与上游集成

链接：

[sysutils/slurm-wlm](https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/) URL: <https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/>

[net/pmix](https://cgit.freebsd.org/ports/tree/net/pmix/) URL: <https://cgit.freebsd.org/ports/tree/net/pmix/>

[net/prrte](https://cgit.freebsd.org/ports/tree/net/prrte/) URL: <https://cgit.freebsd.org/ports/tree/net/prrte/>

[net/openmpi](https://cgit.freebsd.org/ports/tree/net/openmpi/) URL: <https://cgit.freebsd.org/ports/tree/net/openmpi/>

[net/ucx](https://cgit.freebsd.org/ports/tree/net/ucx/) URL: <https://cgit.freebsd.org/ports/tree/net/ucx/>

[benchmarks/py-reframe-hpc](https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/) URL: <https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/>

[sysutils/mpifileutils](https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/) URL: <https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/>

联系方式：Generic Rikka \[<rikka.goering@outlook.de>]

本报告延续了正在进行的 FreeBSD HPC Ports 现代化倡议，旨在使 FreeBSD 成为现代高性能计算（HPC）软件栈的实用且可维护的平台。

之前的工作侧重于通过现代化 [sysutils/slurm-wlm](https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/) 和引入 [net/pmix](https://cgit.freebsd.org/ports/tree/net/pmix/) 和 [net/prrte](https://cgit.freebsd.org/ports/tree/net/prrte/) 的独立 Port 来更新核心调度器和运行时栈。本季度的工作重心转向扩展周围的 HPC 生态系统、改进组件之间的集成，以及将移植过程中发现的可移植性修复上游化。

长期目标是在 FreeBSD Ports 中提供一个连贯的 HPC 软件环境，类似于用户在基于 Linux 的 HPC 系统上所期望的，同时在 FreeBSD 生态系统中保持可维护性。

#### 已完成的工作

* 继续跟踪 [sysutils/slurm-wlm](https://cgit.freebsd.org/ports/tree/sysutils/slurm-wlm/) 的上游发布，保持 FreeBSD Port 与最新上游版本同步。最近的更新确认 Slurm 可以仅用最小的补丁集在 FreeBSD 上成功调度和执行作业。
* 引入了 [net/ucx](https://cgit.freebsd.org/ports/tree/net/ucx/)，提供现代 MPI 实现用于高性能通信的统一通信 X 框架。
* 添加了 [benchmarks/py-reframe-hpc](https://cgit.freebsd.org/ports/tree/benchmarks/py-reframe-hpc/)，启用生产 HPC 集群上常用的回归测试和验证工作流。
* 继续改进 FreeBSD Ports 中 [net/openmpi](https://cgit.freebsd.org/ports/tree/net/openmpi/)、[net/ucx](https://cgit.freebsd.org/ports/tree/net/ucx/)、[net/pmix](https://cgit.freebsd.org/ports/tree/net/pmix/) 和 [net/prrte](https://cgit.freebsd.org/ports/tree/net/prrte/) 之间的互操作性。

#### 进行中的工作

* 正在移植 [sysutils/mpifileutils](https://cgit.freebsd.org/ports/tree/sysutils/mpifileutils/) 及其依赖栈（[devel/libcircle](https://cgit.freebsd.org/ports/tree/devel/libcircle/)、[devel/lwgrp](https://cgit.freebsd.org/ports/tree/devel/lwgrp/)、[devel/dtcmp](https://cgit.freebsd.org/ports/tree/devel/dtcmp/)），以提供大型 HPC 文件系统上常用的 MPI 并行文件实用程序。
* 将移植过程中发现的可移植性修复上游化到 UCX 和 mpifileutils 等项目，减少对 FreeBSD 特定补丁的需求。
* 与 SchedMD 开发者持续合作，将在 FreeBSD 上维护 Slurm 时发现的改进上游化。
* 与 OpenMPI Port 维护者协调，改进 OpenMPI 与 UCX 等现代网络框架的集成。

#### 后续计划

* 继续扩展 FreeBSD Ports 中可用的 HPC 软件生态系统。
* 通过尽可能将可移植性修复贡献给上游来进一步减少本地补丁集。
* 开发文档，描述如何在 FreeBSD 上部署 Slurm + OpenMPI + PMIx + PRRTE + UCX 栈，降低想要在平台上试验 HPC 工作负载的用户的入门门槛。
* 提供示例配置和集成指南，使 FreeBSD 可以作为 HPC 软件的现实开发和测试环境。

### 改进 bhyve 虚拟机监控器的 libvirt 支持

链接：

[libvirt：Bhyve 驱动程序](https://libvirt.org/drvbhyve.html) URL: <https://libvirt.org/drvbhyve.html>

联系方式：Roman Bogorodskiy \[<novel@FreeBSD.org>]

#### 已完成的工作

* libvirt/bhyve 驱动程序：
  * 添加了 arm64 支持。
  * 添加了 `virtio-scsi` 设备支持。
  * 添加了 vCPU 绑定配置支持。
  * 添加了 NUMA 域配置支持。
  * 各种小改进和错误修复。

#### 下季度计划

* 添加支持（目标如此，但可能顺延至下季度）：
  * 引导顺序配置。
  * TPM 设备。
  * 完整的挂起/恢复支持。
  * `virtio-console` 设备和 Qemu 客户机代理。
* 改进 FreeBSD 上 virt-manager 的支持。
* 扩展 libvirt CI 以针对 FreeBSD-CURRENT 快照虚拟机镜像进行测试。

赞助者：FreeBSD 基金会

***

**最后修改于**：2026 年 4 月 17 日，作者：[Lorenzo Salvadore](https://cgit.freebsd.org/doc/commit/?id=a6c3267d9b)


---

# 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/status/2026/2026-q1.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.
