FreeBSD 2025 年第二季度状态报告
版本:2025 年 8 月 29 日
最后作者:Chris Moerz
引言
这是 2025 年的第二份状态报告,共包含 32 份报告。
同前几个季度一样,本报告是在向大家发出 2025 第三季度报告提交征集的前几天发布的。事实上,尽管根据我们的 时间线 我们本应在 7 月发布本报告(一般规则是:应在发出征集后的下个月内发布),但直到 8 月底,我们仍在收到重要的报告。这件事既有积极的一面,也有消极的一面。一方面,这说明我们的 FreeBSD 社区正忙于修复现有问题并实现新功能,让我们所挚爱的操作系统日臻完善;也说明社区工作如此繁忙以致几乎无暇撰写报告。另一方面,这也意味着在发布时,这些报告中的新闻总是已滞后两个月。两个月不算太差,尤其考虑到还能通过许多其他渠道获取 FreeBSD 的信息,但若能有所改进那就更好了。
如果你是迟交者,请花些时间评估是否有办法改进报告提交的时效性。状态团队始终乐于简化提交流程:如果我们能为你做些什么,请直接说。如果你是贡献者或仅是 FreeBSD 的用户,也请在能力范围内多做贡献。即便只完成一项小而简单的任务也很有用,可以减轻其他开发者的压力,从而使他们更容易抽出时间来记录他们的工作。
祝阅读愉快!
Lorenzo Salvadore
代表状态团队
FreeBSD 团队报告
来自各官方及半官方团队的报告,见 管理页面。
FreeBSD 核心团队
联系方式:FreeBSD 核心团队 <core@FreeBSD.org>
FreeBSD 核心团队是 FreeBSD 的管理机构。
FreeBSD 项目路线图
核心团队正在收集想法和意见以起草 FreeBSD 项目的路线图。这是第十三届核心团队认为值得在第十二届核心团队基础上继续推进的一项议题。路线图并不是为了限制和约束开发者和贡献者的活动,而是凝聚 FreeBSD 项目的目标与期望,以及社区可以共同合作的方向。它还将帮助 FreeBSD 基金会更有效地支持 FreeBSD 项目,因此这是核心团队与 FreeBSD 基金会会议中的一项重要讨论内容。
关于生成式 AI 生成代码与文档的政策
核心团队正在研究为 LLM(Large Language Model,大语言模型)/AI(Artificial intelligence,人工智能)的使用(包括但不限于生成代码)制定政策。结果将写进文档仓库中的贡献者指南。AI 在翻译(似乎比人工更快)、解释冗长或晦涩文档、定位 bug 或帮助理解大型代码库等方面可能很有用。由于许可证方面的顾虑,我们目前倾向于不使用 AI 来生成代码。正在 2025 BSDCan 开发者峰会的核心会议上继续相关讨论,核心团队仍在收集反馈并完善该项政策。
正在进行的工作
核心团队当前正在处理以下事项:
核心团队与 FreeBSD 基金会正在筹备 2025 年版社区调查。
基金会提议的隐私友好型网站分析。当下想法是比较 freebsd.org 与 freebsdfoundation.org 之间的流量。
FreeBSD 基金会
链接:
联系方式:Deb Goodkin <deb@FreeBSDFoundation.org>
FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于通过技术与非技术支持推动 FreeBSD 的发展。基金会完全由捐款资助,支持软件开发、基础设施、安全与协作工作;组织活动和开发者峰会;提供教育资源;并在法律事务上代表 FreeBSD 项目。
以下是我们在 2025 年第二季度支持 FreeBSD 的一些方式。
宣传活动
2025 年第二季度的宣传工作包括主办活动、推出新的视频指南系列以及聘任新的市场协调员。Florine Kamdem 带来了社交媒体、品牌与 IT 技能。她通过讲故事的方式策划数字活动,来激发社区兴趣并建立联系。了解更多关于 Florine 的信息,查看基金会在 2025 年第二季度支持 FreeBSD 的部分方式:
举办了 2025 年 6 月 11-12 日与 BSDCan 2025 同地举办的 2025 年 6 月 FreeBSD 开发者峰会。全天直播的视频可在项目的 YouTube 频道 观看,将在后续几周内提供单场演讲的视频。
确认了我们对 EuroBSDcon 2025(银牌赞助)的赞助,会议于 2025 年 9 月 25-28 日在克罗地亚萨格勒布举办。旅行资助 现已开放申请,申请截止日期为 2025 年 8 月 5 日。
发布了 2025 年 3-4 月 和 2025 年 5 月 的 FreeBSD 基金会通讯。
发布了 2025 年 1-3 月期 的 FreeBSD 期刊,包含 HTML 版本的文章。
改进操作系统
基金会继续支持两项主要计划:与 Quantum Leap Research 合作的笔记本支持与可用性项目,以及由 Sovereign Tech Agency 委托的 基础设施现代化项目。有关这两项工作的背景,请参阅 2025 第一季度状态报告。
整个季度内,将 FreeBSD 基金会列为赞助商的提交:src 536 次、ports 64 次和 doc 41 次。
以下是该工作及其他受赞助工作的摘录示例:
libvirt 对 bhyve 的支持方面的各种改进,如:
libvirt 集成测试项目 libvirt-tck 的初始移植,从而可以对 FreeBSD 上的 libvirt bhyve 驱动执行测试。
增强 bhyve 驱动以改善兼容性与可测试性。
为 virtio-rnd 设备、NVRAM 配置和扩展的域使用统计提供支持(正在审查中)。
对基于
pf(4)的 NAT 网络的初始支持(正在审查中)。
改进在 amd64 上对 tlsbase(线程本地存储)的处理,使其在上下文切换时更可靠,惠及手动管理 TLS 的应用程序(如 Wine)。
改进运行时链接器,包括支持
-z initfirst标志。这解决了长期存在的RTLD_DEEPBIND的问题,并为动态链接应用程序中的符号解析与初始化顺序提供了更好的控制。通过启用瞬时 PT_ATTACH 行为增强了 ptrace 的可用性。这降低了调试工具的操作阻力,并消除了可能中断或破坏跟踪工作流程的伪 EINTR 错误。
通过扩展
procstat(1)报告 kqueue 状态,改善了对进程如何使用内核事件通知机制的可观测性。设计并实现了 EXTERROR,一种向用户空间报告扩展错误信息的机制,可补充常规的 errno 值。这使得应用程序可以检索超出标准错误代码的更详细的诊断信息。
其他受赞助的工作在单独的报告条目中有提及:
改进持续集成与工作流
作为对 FreeBSD 项目的持续支持,基金会资助了一名全职员工,专门负责改善项目的持续集成系统与测试基础设施。
法律与 FreeBSD 知识产权
基金会持有 FreeBSD 商标,并负责保护这些商标。我们还为核心团队提供法律支持,以应对出现的法律问题。
访问 https://freebsdfoundation.org 了解我们如何支持 FreeBSD 以及我们能如何帮助你!
FreeBSD 发布工程团队
链接:
联系方式:FreeBSD 发布工程团队 <re@FreeBSD.org>
FreeBSD 发布工程团队负责为官方项目发行版设定和公布发行计划、宣布代码冻结并维护相应分支等事务。
该团队负责管理 14.3-RELEASE,促成了 6 月正式的 RELEASE 构建与公告。已启动对 15.0-RELEASE 的规划,预计将于 12 月发布。
现在由发布工程团队构建的 OCI 容器镜像,除了在 FreeBSD 下载站点提供外,还会上传到 Docker 与 GitHub 仓库。
团队新增成员 Jake Freeland,同时有三位成员离开:Konstantin Belousov、John Hixson、Doug Rabson。我们感谢他们的贡献。
发布工程团队继续为 main、stable/14 和 stable/13 分支提供每周的开发快照构建。
Ports
链接:
联系方式:
Tobias C. Berner <portmgr-secretary@FreeBSD.org>
FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>
Ports 管理团队负责把控 Ports 的整体方向、构建软件包以及人员事务。以下是上个季度的动态。
在上个季度,我们欢迎 Älven(alven@)和 Jesús Daniel Colmenares Oviedo(dtxdf@)成为新的 ports 提交者,同时有一位提交者离开。
根据 INDEX,目前 Ports 中共有 36,605 款(较上次的 36,450 有所增加)Port。目前约有 3,330 份(较上次的 3,333 有所下降)开放的 Ports PR,其中 832 份未分配。上个季度在 main 分支有 10,294 次(较上次的 10,733 有所下降)提交,由 157 名(较上次的 158 有所下降)提交者完成;在 2025Q2 分支有 770 次(较上次的 707 有所增加)提交,由 56 名(较上次的 54 有所增加)提交者完成。
在 main 上最活跃的提交者为:
3541 sunpoet@FreeBSD.org
503 yuri@FreeBSD.org
439 vvd@FreeBSD.org
345 bofh@FreeBSD.org
315 rene@FreeBSD.org
178 bapt@FreeBSD.org
过去三个月 Ports 发生了许多变化,下面是主要软件的升级摘录:
pkg 2.2.1
Go 的默认版本切换为 1.24
Lazarus(非 aarch64)的默认版本切换为 4.0
Linux(非 i386)的默认版本切换至 Rocky Linux 9(rl9)
Perl 的默认版本切换为 5.40
PostgreSQL 的默认版本切换为 17
Ruby 的默认版本切换为 3.3
Chromium 137.0.7151.119
Electron 35.* 和 36.*
Firefox 140.0.2
Firefox-esr 128.12.0
Gnome 47
KDE Plasma 6.4.1
KDE Framework 6.15.0
Qt6 6.9.1
Ruby 3.2.8、3.3.8、3.4.4(新增)与 3.5.0-preview1(新增)
Rust 1.87.0
SDL 2.32.8 与 3.2.16
Sway 1.11
wlroots 0.19.0(新增)
Xorg server 21.1.18
在上个季度,pkgmgr@ 运行了 22 次 exp-runs 来测试基础设施变更和各种 Port 升级。
Bugmeister 团队
链接:
联系方式:Bugmeister 团队 <bugmeister@FreeBSD.org>
本季度我们的 PR 数量保持稳定。
Mark Linimon 在 FreeBSD Discord 举办了一些“Bugmeister 办公时间”语音聊天。计划是较为定期地举行并提前公告。目前安排为周一中部夏令时 3 点(协调世界时 18 点)。
我们在对 PR 进行分类(triage)方面做得比吸引提交者对已分类的 PR 给予关注要好。欢迎提出改进建议。
我们新增了关于 Maintainer Approval(适用于附件)和 Maintainer Feedback(适用于完整的单个问题报告)的搜索查询。这些查询不容易通过各类网页表单组合得出。该项工作由 FreeBSD 基金会资助。
我们使用这些查询关闭了若干 PR,并用其调查不活跃的维护者。到目前为止,我们尚未对后者采取行动。
升级到 Bugzilla 5.2 的设置问题已修复。轻量测试未显示回归。切换到该代码库计划在下个季度进行。
patchQA.py 仍处于测试阶段。其补丁应用代码尚不能胜任当前任务,必须更换。
patchQA.py 的另一个已知问题是它不知道由 installworld 安装到 /etc 的文件的来源。
应用户请求,我们创建了数十个新的 Bugzilla 账户。
赞助者:FreeBSD 基金会
源代码管理团队
联系方式:源代码管理团队 <srcmgr@FreeBSD.org>
源代码管理团队旨在提高 src 开发者的工作效率,并致力于管理我们收到的大量错误报告、拉取请求(PR)和代码审查。可在 GitHub 查阅(Meeting minutes)会议纪要。
我们在 2025 年 5 月 23 日举办了一次 bug 清理活动,约有 10 名参与者。
在 2025 年 FreeBSD 开发者峰会(渥太华)上,源代码管理团队的成员做了一次 演示。
根据开发者峰会的讨论,已从构建中移除 i386 与 32 位 powerpc 目标。
为确保团队的可持续性,我们引入了“潜水者”计划,允许 src 提交者参与两周一次的源代码管理团队会议。让开发者在不承担具体义务的情况下,决定是否有兴趣正式加入源代码管理团队。在征求有兴趣的开发者后,在过去几个月,有五位潜水者一直在参加电话会议:
Jake Freeland jfree@FreeBSD.org
Olivier Certner olce@FreeBSD.org
Dag-Erling Smørgrav des@FreeBSD.org
Bojan Novković bnovkov@FreeBSD.org
Kyle Evans kevans@FreeBSD.org
除了参与讨论,他们还在处理 src 开发任务,尤其是为 FreeBSD 15.0 做准备,并关注诸如监控陈旧的 Phabricator 审查、性能回归跟踪以及使用 git notes 跟踪某些类型的提交元数据等议题。
FreeBSD 项目
跨越多个类别的项目,从内核和用户空间到 Ports 或外部项目。
基础设施现代化
联系方式:
Ed Maste <emaste@FreeBSD.org>
Alice Sowerby <alice@freebsdfoundation.org>
该项目于 2024 年第三季度启动,由 Sovereign Tech Agency(德国主权技术局)委托,预算为 $745,000,预计支出期限约为一年。主要目标是改进基本系统、Ports 与软件包的安全工具,更新项目基础设施来加速开发,增强构建安全性,并让新开发者更易上手。
第二季度动态
全部五个工作包现已展开,项目将持续进行至 2025 年 12 月底,届时项目将结束。
工作包 A:偿还技术债务
本工作包的大部分工作已完成,每月仍分配少量工时以支持 FreeBSD 项目的源代码管理团队,帮助他们嵌入新的流程,使 Bug 管理更容易和可持续。Bug 积压仪表板 https://grimoire.freebsd.org 仍可用,有助于更直观地理解积压情况。
我们还通过应用自 2023 年起的补丁,改进升级流程来升级 Bugzilla,以确保后续更新更为顺畅。
将在 8 月的欧洲开源峰会(Open Source Summit Europe)进行一场专题讨论,向更广泛的受众分享这项工作。基金会项目组的两名成员和为该项目交付 GrimoireLab 实施的 Bitergia 两名代表将出席(FreeBSD 项目源代码管理团队的成员无法出席)。
我们正在通过创建一种 自动化方法 来评估附加到现有源代码和 Ports 的拉取请求中的补丁(代码改进),以判断它们是否仍然适用,并在适用时自动应用,从而减少技术债务。这一工具目前处于测试阶段。
工作包 B:零信任构建
本工作包旨在改进工具与流程,以支持 FreeBSD 的零信任构建,通过扩展现有组件,使项目能够在不需要任何特殊权限的情况下构建发行产物(软件包集、ISO 镜像等)。
详细范围与核心团队、源代码管理团队、安全团队共同制定。工作项如下:
必须
对于所有源代码发行构建用例/产物实现无 root(正在进行)
源代码产物可实现可复现构建(正在进行)
形式化并记录
make world与release.sh(正在进行)
应该
从编排工具中移除特权(未开始)
将构建脚本移入公共仓库(未开始)
可选
环境标准化(未开始)
Ports 实现可复现构建(未开始)
CI 验证可复现性(正在进行)
编写文档以便第三方确认可复现性(未开始)
工作包 C:CI/CD 自动化
本工作包旨在改进 CI/CD 自动化,通过现代化和安全化现有 CI/CD 系统,并扩展其覆盖范围以包含 FreeBSD Ports 中的第三方软件,从而优化新旧软件的交付与运维流程。
详细范围与核心团队、源代码管理团队、Ports 管理团队、文档工程团队共同制定。
必须
提高提交的代码质量(已完成)
预合并 CI(已完成)
环境元数据(未开始)
将 CI 扩展到 Ports(正在进行)
CI 威胁模型(未开始)
CI 管理流程(正在进行)
文档(未开始)
应该
第三方互操作性(正在进行)
测试中的自动化分析(正在进行)
测试用例管理(未开始)
可选
细粒度调试(未开始)
工作包 D:改进 Ports 与软件包的安全
本工作包旨在对 FreeBSD Ports 与软件包的安全控制进行现代化与扩展,包括:
将现有的 VuXML 漏洞数据库迁移到 OSV(Open Source Vulnerability database,开源漏洞数据库)或类似的现代格式
开发软件包审计后端与服务器,以可靠地从全球机构数据库(任意格式,例如 JSON - NIST)获取漏洞数据并生成洞察
改进 Ports 的 CI 工具链
详细范围与核心团队、Ports 管理团队、Pkg 管理团队、安全团队共同制定。
必须
新的数据库格式(正在进行)
部署 2+ 个数据库实例(未开始)
将旧数据迁移到新数据库(正在进行)
在 pkg(8) 中添加对新格式的支持(正在进行)
与上游的互动(未开始)
按需生成 SBOM(未开始)
记录如何设置构建与测试目标(未开始)
集成第三方测试目标(未开始)
持续测试(未开始)
可选
使 CI 产物可用(未开始)
工作包 E:改进软件物料清单(Software Bill of Materials,SBOM)
本工作包旨在改进并实现 FreeBSD 软件物料清单(SBOM)相关的现有与新工具与流程,包括:实现汇总跨树的各项溯源数据/标记为更高层视图的工具;开发用于解析/审查/检查 FreeBSD 源代码树并生成全面报告以作为完整软件栈的 SBOM 的工具;以及扩展 pkg 以使从 Ports/软件包安装的软件支持此功能。
详细范围与核心团队、Ports 管理团队、Pkg 管理团队、安全团队、发布工程团队共同制定。
必须
评估生态系统中可用的项目/解决方案(正在进行)
提出 SBOM 的目标解决方案(未开始)
在 CI(例如每周构建)中生成 SBOM(正在进行)
在发布流程中将 SBOM 作为构件生成(正在进行)
支持按需获取 SBOM 构件(正在进行)
汇总现有数据(未开始)
记录并解释所做决策(未开始)
可选
与其他类似项目建立互动(未开始)
委托机构:德国主权技术局
使 FreeBSD 安装器支持 pkgbase
联系方式:Isaac Freund <ifreund@freebsdfoundation.org>
FreeBSD 安装器现在可进行 pkgbase 系统安装(参见 https://wiki.freebsd.org/PkgBase)。
近期在 FreeBSD 15.0 快照中,对安装器新增的对话框,可让用户从 pkg.freebsd.org 下载并安装软件包,而不是使用传统的分发文件集(distribution sets)。
构建系统也支持把离线的 pkgbase 软件包内置到 FreeBSD 安装介质,从而实现完全离线的 pkgbase 系统安装。不过这些离线 pkgbase 软件包尚未内置在 15.0 快照的安装介质中,因为同时内置离线的传统发行文件集与 pkgbase 软件包会使安装介质的体积激增。为此,有一个构建时开关 -DPKGBASE,已准备好由 FreeBSD 发布工程团队于近期开启。
赞助者:FreeBSD 基金会
BSD-USER 4 LINUX
联系方式:Maksym Sobolyev <sobomax@FreeBSD.org>
链接:
链接:
bsd-user-4-linux 项目旨在将 QEMU 的 BSD 用户态仿真(bsd-user)移植到 Linux。主要目标是能够在现代 Linux 系统上运行未修改的 FreeBSD 二进制文件。此外,该项目还旨在提供带有可用 FreeBSD 环境的多平台容器镜像,并提供现成的 GitHub Actions 模板。
新闻:
自项目首次公告以来收到了两次新的 PR:
清理诊断输出;
在 Linux 上使用 libkqueue 库支持 kqueue()。
已从 Warner 的 qemu-bsd-user 项目合并过来一组最新的更改,将 Qemu 升级到了 9.2.0,并包含一些修复与改进。
当前状态:
初始移植已能成功运行
make -jN buildworld。大多数命令行工具按预期工作(例如 sh(1)、bash(1)、find(1)、grep(1)、git(1)、clang(1) 等)。
GitHub Actions 管道可构建 x86_64 仿真镜像,目标平台包括:linux/386、linux/amd64、linux/arm/v5、linux/arm64/v8。
已构建并推送了包含 FreeBSD 14.1 二进制 world 的预构建 Docker 容器到 GitHub Container Registry:
ghcr.io/sobomax/qemu-bsd-user-l4b:latest-ubuntu-latest-freebsd141。还发布了一个特殊的预构建“admin”容器,其中包含用于 FreeBSD/amd64 仿真的 Linux 用户态 qemu 二进制:
ghcr.io/sobomax/qemu-bsd-user-l4b:latest-ubuntu-latest。
下一步:
将 FreeBSD 版本提升到 14.3;
基于 Qemu 10.0.x 进行 rebase。
你能帮上忙:
使用你偏好的工具链测试、报告问题或提交修复;
识别并实现缺失的系统调用;
在 Patreon 支持项目(https://patreon.com/sippylabs)。
赞助者:Sippy Software, Inc.
Sylve — FreeBSD 的统一系统管理平台
链接:
链接:
链接:
联系方式:Hayzam Sherif <hayzam@alchemilla.io>
Sylve 是一款面向 FreeBSD 的现代化统一系统管理平台,灵感来自 Proxmox。项目旨在提供集成的 Web 界面来管理虚拟机(通过 bhyve)、Jail、ZFS 存储、网络与防火墙。后端使用 Go 实现,前端使用 SvelteKit、Tailwind CSS 与 ShadCN UI 组件。
该项目强调最小化系统占用,目前运行时仅需依赖 sysutils/smartmontools、sysutils/tmux 与 libvirt。
Sylve 将持续填补 FreeBSD 生态中的关键空白,为系统管理任务提供一致且友好的界面。
第二季度进展亮点
仪表盘
在主摘要页添加了动态图表,包括 CPU 使用率、内存使用率与网络吞吐的实时可视化。
网络
现在可通过界面详细地查看接口,并以结构化格式展示全部相关元数据。用户还可以创建“switch”(交换机)——基于 FreeBSD bridge 接口的简单二层交换机。
存储
ZFS 集成几近完成。用户现在可以:
创建与销毁池、文件系统、卷与快照;
一次性删除多个数据集;
安排自动(定时)快照。
ZFS 监控的初始仪表盘工作已启动,计划在第三季度进一步增强。
实用工具
新增内置下载器,支持 HTTP 与磁力链接,便于通过界面直接获取 ISO 镜像或虚拟机模板。
虚拟机
现在可使用 bhyve 创建与删除虚拟机。主要功能包括:
CPU 绑定;
基于网页的 VNC 控制台访问;
PCI 直通;
每个虚拟机的基本 CPU 与内存使用图表。
为支持虚拟机生命周期操作,新增了对 libvirtd 的运行时依赖。
第三季度计划
美化并稳定现有功能;
支持编辑虚拟机;
扩展图表并添加基础通知系统以检测硬件或服务故障;
实现管理 Jail 的 UI 与 API 支持;
扩展网络功能:更多交换机/桥接类型、防火墙规则配置、通过 dns/dnsmasq 等提供 DHCP 支持(用于虚拟机)、集成 WireGuard VPN。
欢迎贡献、测试与反馈。若有兴趣贡献,请考虑协助 UI 测试与可访问性反馈,或通过 GitHub 提交 bug 报告与功能请求。
赞助者:FreeBSD 基金会与 Alchemilla(提供开发与基础设施支持)
202506 基奇纳 - 滑铁卢,加拿大黑客马拉松
链接:
在 BSDCan 2025 之后的一周,基奇纳 - 滑铁卢地区举办了一场黑客马拉松。
感谢 Ed Maste 在基奇纳的 Communitech Hub 主办本次活动。
黑客马拉松的照片
黑客马拉松的照片汇集于此:https://people.freebsd.org/~emaste/hackathon202506/ 。
国家 FreeBSD 日恰好落在黑客马拉松期间,Charlie Li 在滑铁卢的一家街机酒吧为我们带来了一场精彩的 DJ 表演,全程在 FreeBSD 上进行混音 :)
黑客马拉松期间完成的工作
WiFi 测试台(許立文)
在位于基奇纳的基金会办公室搭建了用于概念验证的无线硬件。
当前设置较为简单:
一台裸机拥有多个无线接口;
一台接入点通过串口控制台和私有测试网络连接到该机器。
目前我们有以下硬件可直通到用 FreeBSD CI 构建服务器镜像启动的 bhyve 虚拟机:
Intel AX210
Realtek RTL8812AU
工作继续将其作为下游任务在标准测试完成后连接到 FreeBSD CI 集群。
安装器(Joseph Mingrone、Ed Maste、Aymeric Wibo)
逐步检查安装程序,并按我们收集的笔记创建 wiki 页面“Improving the Installer(改进安装程序)”。
lua 引导加载器:为安装器添加了独特的品牌标识(让用户明显看出系统正在引导进安装器)。补丁:https://reviews.freebsd.org/D51001
pkgbase (Ed Maste)
在 bsdinstall(8) 中:如果介质包含基本系统软件包则默认使用 pkgbase。补丁:https://reviews.freebsd.org/D50467
在 release(7) 中:为在失败时中止添加了
set -e。补丁:https://reviews.freebsd.org/D50383
合并调度器运行队列补丁(Olivier Certner)
Capsicum (Ed Maste)
改进手册页 capsicum(4)。补丁:https://reviews.freebsd.org/D50855 ,提交: ce65ff203a4f
将 beep(1) Capsicum 化,作为 Capsicum 的简单示例。补丁:https://reviews.freebsd.org/D50709
s2idle/S0ix/USB4 (Aymeric Wibo, Sheng-Yi Hung)
修复了更多 USB4 驱动的 panic。
与 Olivier & Mark 讨论 s2idle 在调度器方面的工作方式,并临时实现了调度器的“idle”状态(在该状态下始终选择空闲线程)。
扩展 amdgpio 驱动以处理全部 GPIO 中断(S0i3 在 AMD 上的需求)。同时与 Sheng-Yi 探讨了在 x86 设备驱动中如何消费 GPIO 中断,例如为降低 Framework 触控板延迟做准备。
为 AMD 实现了更多 S0i3 调试功能,以帮助定位无法进入 S0i3 的原因。
Ports (Joseph Mingrone)
Mk/Scripts/qa.sh:修正 LIB_DEPENDS 警告的误报。补丁:https://reviews.freebsd.org/D50860editors/emacs-devel:更新到 2025-06-17 快照。提交:4170f6575380
其他(Ed Maste、Olivier Certner、Sheng-Yi Hung、許立文)
启用 sccache 支持,作为构建时替代 ccache(通过 WITH_CCACHE_BUILD 环境变量)。提交: 10cb3979a9bd
就 CPPC 实现进行讨论(Sheng-Yi、Olivier),参见特别是 D49587。
其他各种修复。补丁/提交: D50876、956100d60fa8、fc77abfd1e62、D50938、6d8cfd29d477、4f33d073003c
赞助者:FreeBSD 基金会
用户空间
影响基本系统及其中程序的变更。
FreeBSD 15.0 中的 ucred/组的变更
链接:
联系方式:
Kyle Evans <kevans@FreeBSD.org>
Olivier Certner <olce@FreeBSD.org>
FreeBSD 15.0 将在用户态与内核中改变对补充组(supplementary groups)的处理方式,该变更值得额外关注并征求反馈。
背景信息:以往,FreeBSD 在 ucred(9) 的 cr_groups 数组中,将进程的有效组 ID(effective group-ID)作为第一个元素,其余元素表示补充组(supplementary groups)。这一设计的自然结果是,setgroups(2) 和 getgroups(2) 使用的数组也遵循相同格式,并且 setgroups(2) 有文档记录过的副作用,即设置有效组 ID。大多数其他平台已经不再表现出这种行为,包括 NetBSD 和 OpenBSD。在测试中,macOS 似乎是唯一的例外。
问题在于,Ports 中的绝大多数软件来自其他平台,在那些平台上 setgroups(2) 与 getgroups(2) 仅对补充组生效。这类行为差异非常微妙,需要更谨慎地审计以确保我们没有在移植软件中引入潜在的安全问题。
在 FreeBSD 15.0 中,面向用户的主要变化是让 setgroups(2)、getgroups(2) 与 initgroups(3) 的行为与其他平台保持一致。我们请求用户在发布周期内格外留意可能受影响的区域。总体预期包括:
修复少量情形下会丢失预期有效组成员或某些补充组的问题;
在极少数情形下引入问题(可能性更小):某些代码原本期望 setgroups(2) 同时改变有效组成员,但现在它只作为补充组处理,从而导致有效组 ID 不变。
基本系统内包含的软件总体上不受影响或会因该变更而改进,OpenSSH 就是一个因历史实现导致出现“奇怪 bug”的显著示例(参见提交记录)。
将 MIT Kerberos 导入 FreeBSD
联系方式:Cy Schubert <cy@FreeBSD.org>
FreeBSD 基金会接到请求,将 MIT KRB5 导入 FreeBSD,来替换我们陈旧的 Heimdal 实现。
企业工作组(Enterprise Working Group)已向基金会提出用 MIT KRB5 替换 Heimdal 的请求。
这是该项目的首次报告。
已完成任务:
MIT KRB5 已导入到 FreeBSD 15-CURRENT。
在完成一次成功的 ports exp-run 之前,选项
WITH_MITKRB5处于禁用状态。
剩余任务:
修复 ports exp-run 发现的 Ports 构建错误。
撰写关于新 Kerberos 的说明文档。
确定是否可能将 Heimdal 数据库迁移到 MIT 数据库。(目前看起来不太可能,原因是我们的古老 Heimdal 与较新 Heimdal/MIT 对旧加密算法的支持不足。)
如可能,撰写 Heimdal Kerberos 数据库迁移到 MIT 数据库的迁移文档。
(可选)在下一届 BSDCan 上讨论并就导入与迁移方案展开开发讨论。
赞助者:FreeBSD 基金会
SysctlTui
链接:
联系方式:Alfonso Sabato Siciliano <asiciliano@FreeBSD.org>
SysctlTUI 是一款用于浏览与管理 sysctl(3) 参数的交互式文本用户界面(TUI)工具。它将 sysctl 管理信息库(MIB)以层级可浏览的树状结构呈现,用户可以:
浏览每项内核参数的元数据;
获取和显示当前值;
在界面内交互式地修改参数值。
界面由三块面板组成:MIB 树视图、显示元数据的详细面板和数值编辑器。按 F1 键会打开帮助对话框,说明:
何时构建 MIB;
何时检索或更新值;
入门在线指南网站,介绍如何解释与使用显示的数据。
尽管仍处于早期开发(当前版本 0.0.2),但 SysctlTUI 的功能已经堪比 [sysutils/nsysctl] 和 [deskutils/sysctlview]。项目包含手册页,可提供建议以使输出类似于 sysctl(8) 或 nsysctl(8)。待办列表中规划的改进包括配置文件集成和按名称对子树排序等。
SysctlTUI 是开源的,并在 FreeBSD Ports 中可用:sysutils/sysctltui。注意:TUI 存在已知的可访问性问题,大多数屏幕阅读器无法使用。依赖屏幕阅读器的用户可改用命令行工具 sysutils/nsysctl,该工具提供与 SysctlTUI 相同的信息,两者使用相同的内核接口。
Geomman 开发
链接:
联系方式:Braulio Rivas <brauliorivas@FreeBSD.org>
Geomman 是一款基于 sade(8) 的新型分区工具,有移动、复制和粘贴分区等功能。Geomman 属于谷歌编程之夏 2025 项目,目前可在 Gitlab 仓库访问,预计后续将成为基本系统工具。
Geomman 是 TUI,能对非 UFS 文件系统的分区进行扩展、缩小、移动、复制和粘贴。例如,用户可创建 exFAT 分区,也能调整 ext4 文件系统大小。这将简化分区管理,因为现有工具通常只针对单个任务或文件系统,而 Geomman 将集中处理多种情况。
目前,Geomman 仅支持分区的复制和粘贴。但预计在下次报告前,工具将接近完成。
我正在开发使用 dd(1) 移动分区的机制。其他方法也许可行,欢迎提供帮助。
Geomman 的下一步计划:
开发分区移动功能。
处理使用 dd 时分区 UUID 重复的问题。
添加创建、扩展和缩小更多文件系统类型的方案。
赞助者:谷歌编程之夏
内核
涉及内核子系统/特性、驱动支持、文件系统等更新。
改进音频栈
联系方式:Christos Margiolis <christos@FreeBSD.org>
自 2024 年第一季度以来,我一直在改进音频栈。过往状态报告:
自上次报告以来的主要工作:
对 sound(4) 进行更多清理、修复和改进。
提交 sndctl(8)(之前为 audio(8))。
提交 AFMT_FLOAT 支持。
提供更多开箱即用的笔记本支持。
提交一系列补丁清理 MIDI 子系统,并重构为通用层,类似 PCM。
在 BSDCan 2025 做了相关演讲(幻灯片)。
后续工作:
将 virtual_oss 移植到基本系统。
更多错误修复、支持、优化及音频栈各方面改进。
开发过程可关注 freebsd-multimedia@。
赞助者:FreeBSD 基金会
DRM 驱动
链接:
联系方式:Jean-Sébastien Pédron <dumbbell@FreeBSD.org>
DRM 驱动是 集成/独立 GPU 的内核驱动,在 Linux 内核维护,我们将其移植到 FreeBSD。目前仅移植了 AMD 和 Intel DRM 驱动(NVIDIA 驱动为闭源,由 NVIDIA 提供)。
我们按 Linux 版本逐步移植,有助于更频繁发布更新,并简化调试,因为版本跨度小。
本季度,我们将 Linux 6.7 和 6.8 的驱动合并到 drm-kmod。Linux 6.9 DRM 驱动移植完成,现已可供审查和测试;参见 PR 说明。PR 列出了 linuxkpi 所需的所有补丁,部分已审查,仍有工作待完成。
这些更新针对 FreeBSD 15-CURRENT 分支。内核补丁被接受并合并后,将评估是否及如何向早期发布分支(如 14-STABLE)回移。
等待审查期间,还开始开发了 FreeBSD 尚不支持的两个功能:
这些功能显然是 wlroots 基于 Wayland 的合成器在 Vulkan API 下所需(参见 Bug 286311)。wlroots 也需要补丁,目前仅在 Linux 上有此支持。
上述 PR 及 linuxkpi 补丁均已准备好审查和测试。linuxkpi 补丁在上述 PR 中有链接。
赞助者:FreeBSD 基金会(笔记本和桌面项目)
改进挂起/恢复
链接:
联系方式:obiwac <obiwac@FreeBSD.org>
Suspend-to-idle 与 S0ix 支持正在添加到 FreeBSD。
这将让现代 Intel 与 AMD 笔记本(如 AMD 与新 Intel Framework 笔记本)及部分不支持 ACPI S3 睡眠的设备,进入低功耗状态,延长电池寿命。
已更新 USB4 驱动(S0i3 依赖)来支持睡眠流程,所有 CPU 在 s2idle 下可进入 C3 状态。调度器工作仍需确保 CPU 保持在 C3 并避免被调度工作,但已有可行原型。意味着在 Framework 13 AMD Ryzen 7040 系列笔记本上,S0i3 现在可进入(仅在我的可工作的 14.1 分支上),-CURRENT 尚不可用。
已扩展 amdgpio 驱动(AMD GPIO 控制器),来处理所有 GPIO 中断并挂起控制器,这可能是 CPU 进入 S0i3 的阻碍。目前对这些 GPIO 中断暂未做任何处理,因为 FreeBSD 尚无 x86 设备驱动注册这些中断的基础设施。
SMU idlemask 现作为 sysctl 导出(dev.amdsmu.0.idlemask),数值未记录,主要用于协助 AMD 调试 S0i3 进入问题。
已构建预置镜像,便于在机器上测试 S0i3 进入问题。
博客内容已过时,2025 BSDCan 上已有相关演讲,但尚未单独上传视频,将在下次状态报告中提及。
赞助者:FreeBSD 基金会
命名属性支持(Solaris 风格扩展属性)
联系方式:Rick Macklem <rmacklem@FreeBSD.org>
命名属性是 NFSv4 对 Solaris 风格扩展属性的称呼。由于 ZFS 起源于 Solaris,其相关机制在 OpenZFS 中已经存在。这个小型项目的目标是连接这些机制。此功能并非旨在替代 FreeBSD 已有的扩展属性支持,而是提供一种可用于 ZFS 和 NFSv4 的替代扩展属性操作方式。这个机制有几个潜在用途:它能让扩展属性与常规文件一样大,并可部分更新。某些 NFSv4 客户端,如 MacOS 和 Windows,可以使用这些扩展属性,但无法使用 FreeBSD/Linux 风格的扩展属性(MacOS 将其称为扩展属性 fork 文件,Windows 称之为 alternate data streams,备用数据流)。一些软件,如 bash,也能操作这些扩展属性。
根本区别在于,这种机制提供了一个不在文件系统命名空间中的目录,但与文件对象关联。可以通过 readdir(3) 读取该命名属性目录,获取扩展属性列表,这些扩展属性实际上就是普通文件。随后可以像操作普通文件一样读写这些扩展属性。
大部分工作已提交到 FreeBSD 主线,适用于 FreeBSD 15。待 ZFS 补丁通过审查并合并到 OpenZFS,ZFS 和 NFSv4 支持即可生效。目前还有几篇手册页正在 Phabricator 进行审查。
剩余主要工作是更新 libarchive/tar,以便可以归档/恢复大扩展属性。(libarchive 支持已支持当前 FreeBSD 扩展属性机制,但存在大小限制。)
Packrat — 在非易失性存储上的 NFS 客户端缓存
联系方式:Rick Macklem <rmacklem@freebsd.org>
NFSv4.1/4.2 支持 delegation(委托)功能。当 NFSv4.1/4.2 客户端持有文件的 delegation 时,客户端对该文件拥有一定权限,包括保证在 delegation 被回收前其他客户端不会修改该文件。因此,客户端可以积极缓存文件数据,确信在 delegation 归还前文件不会被其他客户端修改。
本项目旨在让 NFSv4.1/4.2 客户端在持有 delegation 时,将文件数据积极缓存到本地非易失性存储。我曾在 NFSv4.0 上尝试过类似补丁,但不成熟。本项目为补丁的完整重写,并利用 NFSv4.1/4.2 及近期相关改进,使实现更可行。
补丁正在稳定阶段,但尚不确定是否能作为实验性功能以新挂载选项“packrat”纳入 FreeBSD 15。
目前主要工作是编写写回内核线程。现在,存储在本地非易失性存储的脏数据块在卸载时才写回 NFSv4.1/4.2 服务器,可能导致卸载耗时较长(数分钟)。计划实现写回内核进程,遍历非易失性存储并写回脏数据块,目标是在卸载完成时大部分脏数据已写回,同时不影响同步 NFSv4.1/4.2 RPC 性能。
该功能将为实验性,但希望能提升 NFS 挂载的有效性,尤其在 WAN 场景,如移动笔记本。仍需解决的问题包括 NFSv4.1/4.2 客户端重启后 delegation 的恢复。
LinuxKPI 802.11 与原生无线更新
链接:
联系方式:
Bjoern A. Zeeb <bz@FreeBSD.org>
FreeBSD 无线邮件列表 <wireless@FreeBSD.org>
本报告关注在 FreeBSD 上使用许可宽松的 Linux 无线驱动(大部分未修改),并为原生 net80211 栈准备对新标准的支持。
如公告所述,已从源码中移除 iwlwififw(4),改为通过 Ports/软件包管理解决。用户可使用 fwget(8) 自动安装固件及相关配置。
wlan_tkip(4) 支持已加入 linuxkpi(4),需手动启用。随后加入 [wlan_gcmp(4)] 支持,自 FreeBSD 15 开始可用。
FreeBSD 14.3-RELEASE 首次提供了 VHT(802.11ac/WiFi 5)支持。现代 iwlwifi(4) 芯片支持良好,发布后虽存在少量问题,但总体反馈积极。
驱动 [rtw88(4)] 修复了 NULL 指针问题,现开始可用,感谢所有参与调试和测试的贡献者。
基于 LinuxKPI 的无线驱动挂起/恢复工作再次推进,目前挂起功能已有可用方案。
正在开发对 Mediatek mt76 PCIe 卡的支持。
HE (802.11ax) 定义已从 linuxkpi(4) 转移至原生 net80211,并进行了修正。增强了 ifconfig(8) 解析更多信息元素以便调试。正在修复信号强度报告和 RSSI 处理问题。
后续将继续改进 LinuxKPI 和优化原生 net80211 代码,解决现有问题。
最后,已更新或新建多个手册页。
赞助者:FreeBSD 基金会
USB 内核调试
联系方式:Tom Jones <thj@FreeBSD.org>
XHCI USB 控制器提供了一种模式,可将其用作系统调试接口。XHCI 调试使用一种特殊的 USB 3 数据线,其中 VBUS、D+ 和 D- 断开。此功能可用于实时调试 FreeBSD 内核,用于排查导致系统视频控制台锁死的问题,而无法使用串口控制台时尤其有用。这类情况常出现在图形驱动调试中。
佐藤広生 开发了 XHCI 调试接口的支持,并提供了部分进展的 git 分支实现。该实现使 FreeBSD 可同时作为调试主机和调试目标,从引导加载器到内核都可进行调试。
我与 Mitchell Horne 一起更新和测试了该方案,目前我们有适用于 FreeBSD 主线的工作分支。我们正在整理接口并测试稳定性,目标是在 FreeBSD 16 分支创建时引入 XHCI 调试。
在 XHCI 调试工作中,我重新发现了 Hans Petter Selasky 在 2009 年实现的第二种内核调试方式。FreeBSD USB 栈支持将 USB 串口设备用作系统控制台,并在系统进入调试器(如 panic)后继续轮询接口。USB 串口调试能让开发者使用两条普通 USB 串口接口连接 FreeBSD 目标并调试内核。USB 串口调试在所有 FreeBSD 9 及以上版本可用,但内核构建流程的变化导致在现代内核中无法自动检测。
本季度我的主要工作是撰写使用该接口的文档,并修改 GENERIC 内核,以便在 FreeBSD 新版本中使用。
核心工作之一是尝试记录内核调试接口。如果你使用除串口或网络外的实时调试接口,请联系我,以便将其加入 FreeBSD 开发者手册。
赞助者:FreeBSD 基金会
将 HFS+ 移植到 FreeBSD
链接:
联系方式:Sanchit Sahay <ss19723@nyu.edu>
HFS+(分层文件系统)是 Apple 为基于 BSD 的 XNU 系统引入的旧文件系统。虽然 HFS+ 已被 APFS 取代,但仍被许多旧 Apple 设备(如 iPod)使用。
目前,FreeBSD 仅通过 FUSE 提供有限的 HFS+ 支持。本项目旨在将原始、已开源的 HFS+ 实现移植到 FreeBSD 内核,作为原生的文件系统驱动。
主要工作是现代化 VFS 层以符合当前 FreeBSD 接口,并将 XNU 特定逻辑适配为 FreeBSD 等效实现。
已实现功能:
可挂载 HFS、HFS+ 卷
目录和文件的读取、状态(stat)支持
创建目录和文件支持
可执行程序
mount_hfs
架构
更新特定平台功能,并增加对新硬件平台的支持。
支持 Pinephone Pro
链接:
联系方式:Toby Kurien <toby@tobykurien.com>
FreeBSD 移植到 Pinephone Pro 项目持续推进,目标是逐步支持 Pinephone Pro 各组件,使其后续可作为高便携 FreeBSD 设备使用。
在本季度,发布了新的开发版本,可用于在 Pinephone Pro 上刷写和测试。包含新添加的触控驱动、最小桌面环境及屏幕键盘。只需刷写到 SD 卡并使用正确版本的 U-boot 即可启动(具体信息见仓库)。镜像中还包含内核和驱动源码、vim 编辑器 及构建工具,便于设备上开发驱动。
为便于测试和驱动开发,通过耳机接口启用了网络访问(使用耳机转 USB 串口适配器),通过 PPP 协议连接 PC 网络。配置方法见仓库 README。
目前正在开发 USB 和 WiFi 驱动。欢迎贡献测试、反馈、回溯上游、驱动开发或鼓励之词。
更多信息见 FreeBSD 论坛:帖子链接
赞助者:Honeyguide Group
云计算
更新云平台相关功能,并增加对新云平台的支持。
在 EC2 的 FreeBSD
联系方式:Colin Percival <cperciva@FreeBSD.org>
FreeBSD 可在 amd64(Intel 与 AMD)和 arm64(Graviton)EC2 实例上运行。
上季度,“热插拔”(及拔出)功能最终完成,使其在 FreeBSD 14.3-RELEASE 上完全可用。FreeBSD AMI Builder AMIs 现已作为 FreeBSD 发布构建流程的一部分生成(含 14.3-RELEASE)。
赞助者:亚马逊
赞助者:Patreon 页面
文档
文档树、手册页和外部书籍/文档的重要更新。
文档工程团队
联系方式:FreeBSD 文档工程团队 <doceng@FreeBSD.org>
文档工程团队负责处理 FreeBSD 文档项目的一些元项目问题;更多信息参见 FreeBSD 文档工程团队章程。
上季度,以下提交权限已被保管:
ale
brueffer
danger
glewis
hrs
ygy
团队变动:
欢迎 ebrandi@ 成为新成员(观察员)。
carlavilla@ 离开文档工程团队,感谢其奉献。
dbaio@ 离开文档工程团队,感谢其奉献。
fernape@ 离开文档工程团队,感谢其奉献。
文档更新
手册
更新了 Jail 章节
更新了 WiFi 信息
网站
网站新增 Plausible Analytics
Port 开发者手册
文档增加
Uses=gnome:gnomedesktop4
所有相关文档修正了许多错别字。
文档仓库:
添加 macOS 10.12.0、10.15.0、11.1 手册页
更新 macOS 至 15.5.0 手册页
添加 OpenIndiana 手册页:2013.08、2015.10、2020.10、2022.10、2024.10
添加 NetBSD 9.4 手册页
添加 OpenBSD 7.7 手册页
更新 Debian 手册页至 12.11.0
FreeBSD Weblate 翻译
2025 年第二季度状态
20 种团队语言
252 注册用户
新增 6 名翻译者:
@mohamad (fa)
@v.popolitov (ru)
@SochiByte
@carlosdaniel26
@tj (nl_NL)
@Natthachai043 (en)
语言进度
简体中文(zh_CN)(进度:7%)
繁体中文(zh_TW)(进度:3%)
荷兰语 (nl_NL)(进度:1%)
法语 (fr_FR)(进度:1%)
德语 (de_DE)(进度:1%)
希腊语(进度:1%)
印度尼西亚语(进度:1%)
意大利语 (it_IT)(进度:4%)
韩语(进度:30%)
书面挪威语(Bokmål)(进度:1%)
波斯语(进度:3%)
波兰语(进度:1%)
葡萄牙语(进度:0%)
巴西葡萄牙语(进度:23%)
俄语(进度:37%)
西班牙语(进度:35%)
土耳其语 (tr_TR)(进度:1%)
感谢所有贡献者,无论是翻译还是审核文档。
请在本地用户组推广该项目,我们始终需要更多志愿者。
文档工程团队维护的软件包
本季度,文档工程团队维护的软件包更新如下:
www/gohugo:更新至 0.147.8
未解决的问题
Bugzilla 中仍有 1 个指派给文档工程团队的开放 PR:
267274 Please remove the zh-CN Handbook of the current FreeBSD website(请求移除当前 FreeBSD 网站上的简体中文手册)
FreeBSD Wiki
链接: