FreeBSD 2025 年第二季度状态报告

这是 2025 年的第二份状态报告,共包含 32 份报告。

同前几个季度一样,本报告是在向大家发出 2025 第三季度报告提交征集的前几天发布的。事实上,尽管根据我们的 时间线 我们本应在 7 月发布本报告(一般规则是:应在发出征集后的下个月内发布),但直到 8 月底,我们仍在收到重要的报告。这件事既有积极的一面,也有消极的一面。一方面,这说明我们的 FreeBSD 社区正忙于修复现有问题并实现新功能,让我们所挚爱的操作系统日臻完善;也说明社区工作如此繁忙以致几乎无暇撰写报告。另一方面,这也意味着在发布时,这些报告中的新闻通常已滞后两个月。两个月不算多长,尤其考虑到还能通过许多其他渠道获取 FreeBSD 的信息,但若能有所改进那就更好了。

如果你是迟交者,请花些时间评估是否有办法改进报告提交的时效性。状态团队始终乐于简化提交流程:如果我们能为你做些什么,请直接说。如果你是贡献者或仅是 FreeBSD 的用户,也请在能力范围内多做贡献。即便只完成一项小而简单的任务也很有用,可以减轻其他开发者的压力,从而使他们更容易抽出时间来记录他们的工作。

祝阅读愉快!

Lorenzo Salvadore

代表状态团队

FreeBSD 团队报告

条目来自各官方与半官方团队,参见 管理页面

FreeBSD 核心小组

联系方式:FreeBSD 核心小组 [email protected]

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 基金会

链接:

FreeBSD 基金会 URL:https://freebsdfoundation.org/

技术路线图 URL:https://freebsdfoundation.org/blog/technology-roadmap/

捐赠 URL:https://freebsdfoundation.org/donate/

基金会合作伙伴计划 URL:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/

FreeBSD 期刊 URL:https://freebsdfoundation.org/journal/

基金会活动 URL:https://freebsdfoundation.org/our-work/events/

联系人:Deb Goodkin [email protected]

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

以下是我们在 2025 年第二季度支持 FreeBSD 的一些方式。

宣传活动

2025 年第二季度的宣传工作包括主办活动、推出新的视频指南系列以及聘任新的市场协调员。Florine Kamdem 带来了社交媒体、品牌与 IT 技能。她通过讲故事的方式策划数字活动,来激发社区兴趣并建立联系。阅读更多关于 Florine,查看基金会在 2025 年第二季度支持 FreeBSD 的部分方式:

改进操作系统

基金会继续支持两项主要计划:与 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 状态,增加了对 kqueue 使用情况的可观测性,从而改善了对进程如何使用内核事件通知机制的洞察。

  • 设计并实现了一种内核级标志机制 EXTERROR,用于指示何时存在扩展的错误信息。让应用可以检索超出标准错误代码的更为详细的诊断信息。

其他受赞助的工作在单独的报告条目中有提及:

基金会负责管理 FreeBSD 参与谷歌编程之夏项目。今年有 12 份项目被接受,详见 SummerOfCode2025Projects

改进持续集成与工作流

作为对 FreeBSD 项目的不懈支持,基金会资助了一名全职员工,专门负责改善项目的持续集成系统与测试基础设施。

法律 / FreeBSD 知识产权

基金会持有 FreeBSD 商标,并负责保护这些商标。我们还为核心小组提供法律支持,以研究随之而来的问题。

访问 https://freebsdfoundation.org 了解我们如何支持 FreeBSD 以及我们能如何帮助你!

FreeBSD 发布工程团队

链接:

FreeBSD 14.3-RELEASE 公告 URL:https://www.freebsd.org/releases/14.3R/announce/

FreeBSD 15.0-RELEASE 时间表 URL:https://www.freebsd.org/releases/15.0R/schedule/

FreeBSD RELEASE URL:https://download.freebsd.org/releases/ISO-IMAGES/

FreeBSD 开发快照 URL:https://download.freebsd.org/snapshots/ISO-IMAGES/

联系人:FreeBSD 发布工程团队 [email protected]

FreeBSD 发布工程团队负责为官方项目发行版设定和公布发行计划、宣布代码冻结并维护相应分支等事务。

该团队负责管理 14.3-RELEASE,促成了 6 月正式的 RELEASE 构建与公告。已启动对 15.0-RELEASE 的规划,预计将于 12 月发布 15.0-RELEASE。

现在由发布工程团队构建的 OCI 容器镜像,除了在 FreeBSD 下载站点提供外,还会将其上传到 Docker 与 GitHub 仓库。

团队新增成员 Jake Freeland,同时有三位成员离开:Konstantin BelousovJohn HixsonDoug Rabson。我们感谢他们的贡献。

发布工程团队将继续为 mainstable/14stable/13 分支提供每周的开发快照构建。

Ports

链接:

关于 FreeBSD Ports URL:https://www.FreeBSD.org/ports/

参与 Ports URL:https://docs.freebsd.org/en/articles/contributing/#ports-contributing

Ports 管理团队 URL:https://www.freebsd.org/portmgr/

Ports Tarball URL:http://ftp.freebsd.org/pub/FreeBSD/ports/ports/

联系人:Tobias C. Berner [email protected]

联系人:FreeBSD Ports 管理团队 [email protected]

Ports 管理团队负责把控 Ports 的整体方向、构建软件包以及人员事务。以下是上个季度的动态。

在上个季度,我们欢迎 Älven(alven@)和 Jesús Daniel Colmenares Oviedo(dtxdf@)成为新的 ports 提交者,同时有一位提交者离开。

根据索引,目前 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 上最活跃的提交者为:

过去三个月 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

在上个季度,Pkg 管理团队运行了 22 次 exp-runs 来测试基础设施变更和各种 Ports 升级。

Bug 分拣团队

链接:

FreeBSD Bugzilla URL:https://wiki.freebsd.org/Bugzilla

联系人:Bug 分拣团队 [email protected]

本季度我们的 PR 数量保持稳定。

Mark Linimon 在 FreeBSD Discord 举办了一些“Bug 分拣办公会”语音聊天。计划是较为定期地举行并提前公告。目前安排为周一中部夏令时 3 点(协调世界时 18 点)。

我们在对 PR 进行分类(triage)方面做得比吸引提交者对已分类的 PR 给予关注要好。欢迎提出改进建议。

我们新增了关于 Maintainer Approval(适用于附件)和 Maintainer Feedback(适用于完整的单个问题报告)的搜索查询。这些查询不容易通过各类网页表单组合得出。该项工作由 FreeBSD 基金会资助。

请参阅新文档:https://wiki.freebsd.org/Bugzilla/SearchQueries#Searches_For_Maintainer_Actions

我们使用这些查询关闭了若干 PR,并用其探索不活跃的维护者。到目前为止,我们尚未对后者采取行动。

升级到 Bugzilla 5.2 的设置问题已修复。轻量测试未显示回归。切换到该代码库计划在下个季度进行。

patchQA.py 仍处于测试阶段。其补丁应用代码尚不能胜任当前任务,必须更换。

patchQA.py 的另一个已知问题是它不知道由 installworld 安装到 /etc 的文件的来源。

应用户请求,我们创建了数十个新的 Bugzilla 账户。

另见:https://wiki.freebsd.org/Bugzilla/SearchQueries

赞助:FreeBSD 基金会

源代码管理团队

联系人:源代码管理团队 [email protected]

源代码管理团队旨在提高 src 开发者的工作效率,并致力于管理我们收到的大量错误报告、拉取请求(PR)和代码审查。可在 GitHub 查阅(Meeting minutes)会议纪要。

我们在 2025 年 5 月 23 日举办了一次 bug 清理活动,约有 10 名参与者。

在 2025 年 FreeBSD 开发者峰会(渥太华)上,源代码管理团队的成员做了一次 演示

根据开发者峰会的讨论,已从构建中停止 i386 与 32 位 powerpc 目标。

为确保团队的可持续性,我们引入了“潜水者”计划,允许 src 提交者参与两周一次的源代码管理团队会议。让开发者在不承担具体义务的情况下,决定是否有兴趣正式加入源代码管理团队。在征求有兴趣的开发者后,在过去几个月,有五位潜水者一直着参加电话会议:

除了参与讨论,他们还在处理 src 开发任务,尤其是为 FreeBSD 15.0 做准备,并关注诸如监控陈旧的 Phabricator 审查、性能回归跟踪以及使用 git notes 跟踪某些类型的提交元数据等议题。

FreeBSD 项目

基础设施现代化

联系人:Ed Maste [email protected]

联系人:Alice Sowerby [email protected]

该项目于 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 worldrelease.sh(正在进行)

  • 应该

    • 从编排工具中移除特权(未开始)

    • 将构建脚本移入公共仓库(未开始)

  • 可选

    • 环境标准化(未开始)

    • Ports 实现可复现构建(未开始)

    • CI 验证可复现性(正在进行)

    • 编写文档以便第三方确认可复现性(未开始)

工作包 C:CI/CD 自动化

本工作包旨在改进 CI/CD 自动化,通过现代化和安全化现有 CI/CD 系统,并扩展其覆盖范围以包含 FreeBSD Ports 中的第三方软件,从而优化新旧软件的交付与运维流程。

详细范围与核心小组、源代码管理团队、Port 管理团队、文档工程团队共同制定。

  • 必须

    • 提高提交的代码质量(已完成)

    • 预合并 CI(已完成)

    • 环境元数据(未开始)

    • 将 CI 扩展到 Ports(正在进行)

    • CI 威胁模型(未开始)

    • CI 管理流程(正在进行)

    • 文档(未开始)

  • 应该

    • 第三方互操作性(正在进行)

    • 测试中的自动化分析(正在进行)

    • 测试用例管理(未开始)

  • 可选

    • 细粒度调试(未开始)

工作包 D:改进 Ports 与软件的安全

本工作包旨在对 FreeBSD Ports 与软件包的安全控制进行现代化与扩展,包括:

  • 将现有的 VuXML 漏洞数据库迁移到 OSV(Open Source Vulnerability database,开源漏洞数据库)或类似的现代格式

  • 开发软件包审计后端与服务器,以可靠地从全球机构数据库(任意格式,例如 JSON - NIST)获取漏洞数据并生成洞察

  • 改进 Ports 的 CI 工具链

详细范围与核心小组、Port 管理团队、Pkg 管理团队、安全团队共同制定。

  • 必须

    • 新的数据库格式(正在进行)

    • 部署 2+ 个数据库实例(未开始)

    • 将旧数据迁移到新数据库(正在进行)

    • 在 pkg(8) 中添加对新格式的支持(正在进行)

    • 与上游的互动(未开始)

    • 按需生成 SBOM(未开始)

    • 记录如何设置构建与测试目标(未开始)

    • 集成第三方测试目标(未开始)

    • 持续测试(未开始)

  • 可选

    • 使 CI 产物可用(未开始)

工作包 E:改进软件物料清单(Software Bill of Materials,SBOM)

本工作包旨在改进并实现 FreeBSD 软件物料清单(SBOM)相关的现有与新工具与流程,包括:实现汇总跨树的各项溯源数据/标记为更高层视图的工具;开发用于解析/审查/检查 FreeBSD 源代码树并生成全面报告以作为完整软件栈的 SBOM 的工具;以及扩展 pkg 以使从 Ports/软件包安装的软件支持此功能。

详细范围与核心小组、Port 管理团队、Pkg 管理团队、安全团队、发布工程团队共同制定。

  • 必须

    • 评估生态系统中可用的项目/解决方案(正在进行)

    • 提出 SBOM 的目标解决方案(未开始)

    • 在 CI(例如每周构建)中生成 SBOM(正在进行)

    • 在发布流程中将 SBOM 作为构件生成(正在进行)

    • 支持按需获取 SBOM 构件(正在进行)

    • 汇总现有数据(未开始)

    • 记录并解释所做决策(未开始)

  • 可选

    • 与其他类似项目建立互动(未开始)

委托机构:德国主权技术基金

使 FreeBSD 安装器支持 pkgbase

联系人:Isaac Freund [[email protected]]

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 基金会

LINUX BSD-USER 4

联系人:Maksym Sobolyev [[email protected]]

链接:项目主页 https://github.com/sobomax/qemu-bsd-user-l4b

链接:工具 https://github.com/sobomax/qemu_l4b

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。

你能帮上忙:

赞助:Sippy Software, Inc.

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

链接:GitHub https://github.com/AlchemillaHQ/Sylve

链接:CI https://sylve-ci.alchemilla.io

链接:Discord https://discord.gg/bJB826JvXK

联系人:Hayzam Sherif [[email protected]]

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 基奇纳 - 滑铁卢,加拿大黑客马拉松

链接:

黑客马拉松/202506 Wiki 页面 URL:https://wiki.freebsd.org/Hackathon/202506

FreeBSD 黑客马拉松 Wiki 页面 URL:https://wiki.freebsd.org/Hackathon

在 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)

合并调度器运行队列补丁(Olivier Certner)

Capsicum (Ed Maste)

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/D50860

  • editors/emacs-devel:更新到 2025-06-17 快照。提交:4170f6575380

其他(Ed Maste、Olivier Certner、Sheng-Yi Hung、許立文)

赞助:FreeBSD 基金会

用户空间

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

FreeBSD 15.0 中的 ucred/组的变更

链接:

freebsd-arch 邮件讨论 URL:https://lists.freebsd.org/archives/freebsd-hackers/2025-August/004825.html

主要的内核变更 URL:https://cgit.freebsd.org/src/commit/sys/sys/ucred.h?id=be1f7435ef218b1df35aebf3b90dd65ffd8bbe51

主要的用户空间变更 URL:https://cgit.freebsd.org/src/commit/sys/kern/kern_prot.c?id=9da2fe96ff2ea227e4d5f03ef92b55aabeabb7fc

联系人:Kyle Evans [[email protected]]

联系人:Olivier Certner [[email protected]]

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 [[email protected]]

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

链接:

项目仓库 URL:https://gitlab.com/alfix/sysctltui

联系人:Alfonso Sabato Siciliano [[email protected]]

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 开发

链接:

Geomman 谷歌编程之夏 wiki URL:[https://wiki.freebsd.org/SummerOfCode2025Projects/FullDiskAdministrationToolForFreeBSD] (https://wiki.freebsd.org/SummerOfCode2025Projects/FullDiskAdministrationToolForFreeBSD)

geomman Gitlab 仓库 URL:https://gitlab.com/brauliorivas/geomman

bsddialog 仓库 URL:https://gitlab.com/alfix/bsddialog

sade URL:https://man.freebsd.org/cgi/man.cgi?query=sade&manpath=FreeBSD+14.3-RELEASE+and+Ports

联系人:Braulio Rivas [[email protected]]

Geomman 是一款基于 sade(8) 的新型分区工具,有移动、复制和粘贴分区等功能。Geomman 属于 2025 谷歌编程之夏项目,目前可在 Gitlab 仓库访问,预计后续将成为基本系统工具。

Geomman 是 TUI,能对非 UFS 文件系统的分区进行扩展、缩小、移动、复制和粘贴。例如,用户可创建 exFAT 分区,也能调整 ext4 文件系统大小。这将简化分区管理,因为现有工具通常只针对单个任务或文件系统,而 Geomman 将集中处理多种情况。

目前,Geomman 仅支持分区的复制和粘贴。但预计在下次报告前,工具将接近完成。

我正在开发使用 dd(1) 移动分区的机制。其他方法也许可行,欢迎提供帮助。

Geomman 的下一步计划:

  • 开发分区移动功能。

  • 处理使用 dd 时分区 UUID 重复的问题。

  • 添加创建、扩展和缩小更多文件系统类型的方案。

赞助:谷歌编程之夏

内核

涉及内核子系统/特性、驱动支持、文件系统等更新。

改进音频栈

联系人:Christos Margiolis [[email protected]]

自 2024 年第一季度以降,我一直在改进着音频栈。过往状态报告:

2024Q1

2024Q2

2024Q3

2024Q4

2025Q1

自上次报告以来的主要工作:

  • sound(4) 进行更多清理、修复和改进。

  • 提交 sndctl(8)(之前为 audio(8))。

  • 提供更多开箱即用的笔记本支持。

  • 放弃 /dev/dsp 作为路由设备 补丁,改为 D50070(含相关讨论)。

  • 提交一系列补丁清理 MIDI 子系统,并重构为通用层,类似 PCM。

  • 在 BSDCan 2025 做了相关演讲(幻灯片)。

后续工作:

  • 将 virtual_oss 移植到基本系统。

  • 更多错误修复、支持、优化及音频栈各方面改进。

开发过程可关注 freebsd-multimedia@

赞助:FreeBSD 基金会

DRM 驱动

链接:

Linux 6.9 DRM 驱动更新 URL:https://github.com/freebsd/drm-kmod/pull/361

联系人:Jean-Sébastien Pédron [[email protected]]

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 下所需。wlroots 也需要补丁,目前仅在 Linux 上有此支持。

上述 PR 及 linuxkpi 补丁均已准备好审查和测试。

赞助:FreeBSD 基金会(笔记本和桌面项目)

改进挂起/恢复

链接:

博客 URL:https://obiw.ac/s0ix/

FOSDEM s2idle/S0ix 演讲 URL:https://youtu.be/mBxj_EkAzV0

工作仓库 URL:https://github.com/obiwac/freebsd-s0ix/tree/everything

s2idle/S0ix + AMD SMU 栈最新补丁 URL:https://reviews.freebsd.org/D48721

USB4 suspend 栈 URL:https://reviews.freebsd.org/D49453

联系人:obiwac [[email protected]]

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 的阻碍。目前 FreeBSD 尚无 x86 驱动注册这些中断的基础设施。

SMU idlemask 现作为 sysctl 导出(dev.amdsmu.0.idlemask),数值未记录,主要用于协助 AMD 调试 S0i3 进入问题。

已构建预置镜像,便于在机器上测试 S0i3 进入问题。

博客内容已过时,2025 BSDCan 上已有相关演讲,但尚未单独上传视频,将在下次状态报告中提及。

赞助:FreeBSD 基金会

命名属性支持(Solaris 风格扩展属性)

联系人:Rick Macklem [[email protected]]

命名属性是 NFSv4 对 Solaris 风格扩展属性的称呼。由于 ZFS 起源于 Solaris,其相关机制在 OpenZFS 中已经存在。这个小型项目的目标是连接这些机制。此功能并非旨在替代 FreeBSD 已有的扩展属性支持,而是提供一种可用于 ZFS 和 NFSv4 的替代扩展属性操作方式。这个机制有几个潜在用途:它能让扩展属性与常规文件一样大,并可部分更新。某些 NFSv4 客户端,如 MacOS 和 Windows,可以使用这些扩展属性,但无法使用 FreeBSD/Linux 风格的扩展属性(MacOS 将其称为扩展属性 fork 文件,Windows 称之为 alternate data streams,备用数据流)。一些软件,如 bash,也能操作这些扩展属性。

根本区别在于,这种机制提供了一个不在文件系统命名空间中的目录,但与文件对象关联。可以通过 readdir(3) 读取该命名属性目录,获取扩展属性列表,这些扩展属性实际上就是普通文件。随后可以像操作普通文件一样读写这些扩展属性。

顶层系统调用接口为 open(2)/openat(2),新增标志 O_NAMEDATTR(Solaris 中称为 O_XATTR)。

大部分工作已提交到 FreeBSD 主线,适用于 FreeBSD 15。待 ZFS 补丁通过审查并合并到 OpenZFS,ZFS 和 NFSv4 支持即可生效。目前还有几篇手册页正在 Phabricator 进行审查。

剩余主要工作是更新 libarchive/tar,以便可以归档/恢复大扩展属性。(libarchive 支持已支持当前 FreeBSD 扩展属性机制,但存在大小限制。)

Packrat — 在非易失性存储上的 NFS 客户端缓存

联系人:Rick Macklem [[email protected]]

NFSv4.1/4.2 支持 delegation(委托)功能。当 NFSv4.1/4.2 客户端持有文件的 delegation 时,客户端对该文件拥有一定权限,包括保证在 delegation 被回收前其他客户端不会修改该文件。因此,客户端可以积极缓存文件数据,确信在 delegation 归还前文件不会被其他客户端修改。

本项目旨在让 NFSv4.1/4.2 客户端在持有 delegatio 时,将文件数据积极缓存到本地非易失性存储。我曾在 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 与原生无线动态

链接:

802.11ac 支持

LinuxKPI TKIP 与 GCMP 支持

LinuxKPI 无线挂起与恢复

MediaTek mt76 PCI 驱动支持

802.11ax 支持

更新 net80211

跟踪无线 PR

联系人:Bjoern A. Zeeb [[email protected]]

联系人:FreeBSD 无线邮件列表 [[email protected]]

本报告关注在 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 [[email protected]]

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 [[email protected]]

HFS+(分层文件系统)是 Apple 为基于 BSD 的 XNU 系统引入的旧文件系统。虽然 HFS+ 已被 APFS 取代,但仍被许多旧 Apple 设备(如 iPod)使用。

目前,FreeBSD 仅通过 FUSE 提供有限的 HFS+ 支持。本项目旨在将原始、已开源的 HFS+ 实现移植到 FreeBSD 内核,作为原生的文件系统驱动。

主要工作是现代化 VFS 层以符合当前 FreeBSD 接口,并将 XNU 特定逻辑适配为 FreeBSD 等效实现。

已实现功能:

  • 可挂载 HFS、HFS+ 卷

  • 目录和文件的读取、状态(stat)支持

  • 创建目录和文件支持

  • 可执行程序 mount_hfs

架构

更新特定平台功能,并增加对新硬件平台的支持。

支持 Pinephone Pro

链接:

Codeberg 仓库

联系人:Toby Kurien [[email protected]]

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 [[email protected]]

FreeBSD 可在 amd64(Intel 与 AMD)和 arm64(Graviton)EC2 实例上运行。

上季度,“热插拔”(及拔出)功能最终完成,使其在 FreeBSD 14.3-RELEASE 上完全可用。FreeBSD AMI Builder AMIs 现已作为 FreeBSD 发布构建流程的一部分生成(含 14.3-RELEASE)。

赞助:亚马逊

赞助:Patreon 页面

文档

文档树、手册页和外部书籍/文档的重要更新。

文档工程团队

FreeBSD 文档项目

新贡献者 FreeBSD 文档项目入门

文档工程团队

联系人:FreeBSD 文档工程团队 [[email protected]]

文档工程团队负责处理 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 翻译

在 Weblate 翻译 FreeBSD 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%)

感谢所有贡献者,无论是翻译还是审核文档。

请在本地用户组推广该项目,我们始终需要更多志愿者。

文档工程团队维护的软件包

本季度,文档工程团队维护的软件包更新如下:

未解决的问题

Bugzilla 中仍有 1 个指派给文档工程团队的开放 PR:

  • 267274 Please remove the zh-CN Handbook of the current FreeBSD website(请求移除当前 FreeBSD 网站上的简体中文手册)

FreeBSD Wiki

链接:

FreeBSD Wiki 首页

联系人:Mark Linimon [[email protected]]

联系人:Wiki 管理员 [[email protected]]

自上次状态报告以来,有多人表示希望将 Wiki 提升到应有的水平。

正在进行的讨论(主要在 FreeBSD Discord 上进行)涉及以下主题:

  • 定义哪些内容是被认为有用的。

  • 确保有用内容保持最新。

  • 找到将过时内容从搜索引擎中移除的方法。

  • 为现有网站添加基本分析,以了解哪些页面被访问。

  • 决定短期内 MoinMoin 是否仍可用于上述目的,同时考虑长期需求。

这些问题尚未达成共识。

请加入 FreeBSD Discord #documentation 下的 #wiki 子线程参与讨论。

视觉可访问性(Vision Accessibility)

链接:

项目仓库

联系人:FreeBSD 可访问性邮件列表 [[email protected]]

联系人:Alfonso Sabato Siciliano [[email protected]]

本季度,FreeBSD 可访问性手册的评审已提交,链接:https://reviews.freebsd.org/D50894,包含 HTML 预览。

手册旨在记录 FreeBSD 中用于视觉可访问性的辅助技术,覆盖基本系统和 Ports。分为两部分,共六章:

  1. Help(帮助)— 涉及如何通过适当的 FreeBSD 交流渠道有效请求帮助。

  2. Virtual Terminal(虚拟终端)— 文档 FreeBSD 控制台 (vt(4)) 的视觉可访问性特性。

  3. Colors(色彩)— 解释如何配置配色方案,包括高对比主题和根据环境光调整屏幕颜色。

  4. Low Vision(弱视)— 概述图形桌面环境中面向低视力用户的可访问性工具,如屏幕放大器、可读字体和缩放功能。

  5. Blindness(视觉障碍)— 描述盲人辅助技术,重点是屏幕阅读器及兼容工具。

  6. Development(开发)— 提供开发者资源,以提高软件可访问性、测试可访问性并改进视觉障碍用户支持。

手册刻意避免使用图片,并尽量减少非纯文本元素,以增强与辅助技术的兼容性。欢迎提出建议和新思路,如可能,请发送至 FreeBSD Accessibility 邮件列表,以便公开讨论和跟踪。

赞助:FreeBSD 基金会

Ports

影响 Ports 的变更,无论是涉及大多数树结构的重大改动,还是单个 Port。

用于 Ports 安全加固的编译选项

链接:

功能提交记录

FreeBSD 安全加固与编译器选项

联系人:Alexander Leidinger [[email protected]]

现在 Ports 可以启用现代编译器的一些安全功能以构建软件包。由于并非所有 Ports 都兼容,因此默认未启用。

可在 make.conf 中启用的三个新功能:

  • WITH_FORTIFY=yes:通过在编译时确定目标缓冲区大小时为函数(如 memcpy、strcpy、sprintf 等)添加检查,缓解常见内存安全问题(如缓冲区溢出)。需 FreeBSD 基本系统支持,仅 FreeBSD 15 及以后可用。

  • WITH_STACK_AUTOINIT=yes:启用编译器特定选项,自动初始化本地(自动)变量,防止未初始化内存使用。

  • WITH_ZEROREGS=yes:在函数返回时清零调用寄存器,以提高程序安全性,缓解 ROP 攻击、防止寄存器信息泄露。依赖于特定架构的编译器支持。Python Ports 因当前存在问题而默认禁用。

博客中详细说明了使用方法、排除特定 Ports 的方法,以及这三个新功能与已有构建时安全选项的详细解释。

改进 FreeBSD 上的 OpenJDK

链接:

项目描述

项目仓库

联系人:Harald Eilertsen [[email protected]]

FreeBSD Java 邮件列表 [[email protected]]

本项目旨在改进 FreeBSD/amd64 和 FreeBSD/arm64 上的 OpenJDK 支持。

Java 是许多高性能关键企业系统的重要运行环境。确保 Java 应用在 FreeBSD 上正确高效运行,对于 FreeBSD 仍能成为企业及各类组织的可选平台至关重要。

本季度达成的里程碑:

  • OpenJDK 24 Port 更新至 OpenJDK 24.0.1,紧随上游发布。

  • 修复 PPC Ports 的 循环问题(感谢 Piotr Kubaj)。

  • 提出并讨论了 OpenJDK Ports 新的引导方式 评审链接,为将 FreeBSD Port 集成进 OpenJDK CI 做准备。

  • 在 GitHub Actions 上集成了 jtreg 测试套件 CI 任务,确保 FreeBSD 上构建与测试可用,并熟悉 OpenJDK 项目 CI 框架。

此外,还花费大量时间清理和重构 Aarch64 BSD Port,修复各种问题,并使 BSD Port 与 OpenJDK 主线保持同步。

赞助:FreeBSD 基金会

FreeBSD 上的 GCC

链接:

GCC 项目 URL:https://gcc.gnu.org/

GCC 12 发行系列 URL:https://gcc.gnu.org/gcc-12/

GCC 13 发行系列 URL:https://gcc.gnu.org/gcc-13/

GCC 14 发行系列 URL:https://gcc.gnu.org/gcc-14/

GCC 15 发行系列 URL:https://gcc.gnu.org/gcc-15/

GCC 16 发行系列 URL:https://gcc.gnu.org/gcc-16/

联系方式:Lorenzo Salvadore [[email protected]](%[email protected]%5D(mailto:[email protected]))

用于将 GCC 默认版本从 13 更新至 14 的 exp-run 仍处于暂停状态。请注意,FreeBSD 13.4 缺少 GCC 14 链接时使用的符号;详细说明请见 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284499#c0。不过这些符号在更高版本的 FreeBSD 中已经存在。撰写本报告时,预计 FreeBSD 13.4 会很快停止支持(6 月 30 日),因此决定在此之前暂停 exp-run,计划于 7 月 1 日重启。

与此同时,已发布 GCC 15。一如既往,已创建新的 Port 包 lang/gcc15 ,同时还有跟踪最新 GCC 开发的 lang/gcc16-devel

除了了更多的 Bug。关于某些 CPUTYPE 值问题的 Bug 285711 已通过临时解决方法修复。在所有受支持的 FreeBSD 版本中包含提交 22e564c74eb2 之前,仍需使用该解决方法。

在 aarch64 机器上发现了构建失败,参见 Bug 282797。已经找到了修复方案,并即将提交到上游。

第三方项目

许多项目基于 FreeBSD 构建,或将 FreeBSD 组件整合到其项目中。由于这些项目可能对更广泛的 FreeBSD 社区有意义,我们有时会在季度报告中包含这些项目提交的简要更新。FreeBSD 项目不对这些提交中任何声明的准确性和真实性作出保证。

FreeBSD 中文社区 (CFC)

FreeBSD 中文社区 (CFC) URL:https://bsdcn.org/

该社区目前 QQ 群成员 316 人,微信群成员 175 人。

文档项目

链接:

FreeBSD 中文社区文档项目 GitHub URL:https://github.com/FreeBSD-Ask/

FreeBSD 中文社区文档项目网站 URL:https://book.bsdcn.org/

值得注意的是,以往所有 FreeBSD 文档均已完整翻译为中文,包括但不限于以下资料:

  • 《FreeBSD 发行说明(i386/amd64)》

  • 《FreeBSD 状态报告》

  • 《FreeBSD 手册》

  • 《FreeBSD Port 开发者手册》

  • 《FreeBSD 文章》

  • 《FreeBSD 架构手册》

  • 《开发者手册》

此外,还翻译了两部经典著作:

  • 《Unix 的四分之一世纪》

  • 《UNIX 痛恨者手册》,一本于 1994 年出版的幽默书籍,讲述了一些用户在 UNIX 操作系统中发现的问题。书中包括 UNIX 作者之一 Dennis Ritchie 的反序言,采用与手册本身类似的风格书写。

FreeBSD 从入门到跑路

链接:

GitHub 上的 FreeBSD 从入门到跑路 URL:https://github.com/FreeBSD-Ask/FreeBSD-Ask

FreeBSD 从入门到跑路网站 URL:https://book.bsdcn.org/

联系方式:ykla [[email protected]]

联系方式:Voosk [[email protected]]

《从入门到跑路》由 FreeBSD 中文社区 (CFC) 的 ykla 于 2021 年 3 月 14 日发起。它是一份以简体中文撰写的开源书籍,旨在提供 FreeBSD 操作系统的入门知识。

季度更新

希望有越来越多的贡献者加入文档工作。本项目的主要目标是对 FreeBSD 手册进行全面现代化改写,以促进 FreeBSD 的发展与采用。

Ports

GitHub QQ Port URL:https://github.com/FreeBSD-Ask/QQ-Port/ Bug 287292 - [NEW PORT] net-im/qq:由于上游开发恢复,考虑恢复 QQ port URL:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287292

本季度创建了 QQ 的 Port,QQ 是目前中国大陆使用最广泛的即时通讯应用之一。该 Bug 报告仍然开放,尚未分配任何评审人员。

赞助方:FreeBSD 中文社区 (CFC)

最后更新于