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

报告原文：[FreeBSD Status Report First Quarter 2024](https://www.freebsd.org/status/report-2024-01-2024-03/)

下文是 2024 年的第一份状态报告，共包含 21 项内容。

新年带来了许多有趣的新项目，例如新的 `libsys` 库，它将系统调用与 `libc` 和 `libpthread` 分离，以及 FreeBSD 图形安装器的开发工作，这将有助于使我们的操作系统更加用户友好。当然，常规项目仍在继续，例如 cloud-init、OpenStack 和 GCC Ports 的相关工作。正如往常一样，我们的主要团队与我们分享了他们的进展。

祝你阅读愉快！

Lorenzo Salvadore 代表状态团队敬上。

## FreeBSD 团队报告

以下是来自各个官方和半官方团队的报告，见于 [管理页面](https://www.freebsd.org/administration/)。

### FreeBSD 核心团队

联系人：FreeBSD 核心团队 <<core@FreeBSD.org>>

FreeBSD 核心团队是 FreeBSD 的管理机构。

#### 13.3 版本发布

FreeBSD 13.3 于 2024 年 3 月 5 日发布。

发布公告在：

<https://www.freebsd.org/releases/13.3R/announce/>

项目团队与发布工程团队一同将 13.3 版本发布献给 Glen Barber，感谢他多年来作为发布工程师的贡献。

#### 32 位平台支持的未来

核心团队宣布了 [FreeBSD 中 32 位平台支持的未来](https://lists.freebsd.org/archives/freebsd-announce/2024-February/000117.html)，计划在接下来的几个主要版本中逐步淘汰 32 位平台支持。

#### 提交权限

* 核心团队批准了 [Bojan Novković](mailto:bnovkov@FreeBSD.org) 的 src 提交权限。
* 核心团队恢复了 [Mark Peek](mailto:mp@FreeBSD.org)、[Mark Murray](mailto:markm@FreeBSD.org) 和 [Lawrence Stewart](mailto:lstewart@FreeBSD.org) 的 src 提交权限。

### 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 的发展。我们通过技术和非技术方式实现这一目标。我们完全依靠个人和企业的捐赠支持，基金用于以下方面：

* 软件开发项目，增强 FreeBSD 的功能和特性
* 赞助和组织会议及开发者峰会，提供协作机会并推广 FreeBSD
* 购买和支持硬件，改善和维护 FreeBSD 基础设施
* 提供资源，提升安全性、质量保证和持续集成工作
* 支持宣传、教育和推广 FreeBSD 所需的材料和人员
* 促进商业供应商与 FreeBSD 开发者之间的合作
* 代表 FreeBSD 项目执行合同、许可证协议及其他需要法律实体的安排

#### 运营

我们以雄心勃勃的目标开启了新年，通过确定操作系统中的支持特性和功能来推动 FreeBSD 项目进展，并加大宣传力度以提高 FreeBSD 的知名度。敬请关注我们的博客，了解更多关于 2024 年的目标和计划。

我们还发布了 2024 年预算。为了让预算过程更加透明，我们撰写了一篇 [博客文章](https://freebsdfoundation.org/blog/on-starting-the-2024-freebsd-foundation-budget-journey/)，详细介绍了资金的分配、新增的项目支出类别及资金流向的更多细节。

#### 操作系统改进

在 2024 年第一季度，FreeBSD 基金会赞助了 180 个 src、65 个 ports 和 18 个 doc 源代码提交。

本季度开始了三个新项目：

* 开始改进 FreeBSD 的音频栈，为音频开发者提供实用工具和框架，以便在 FreeBSD 上更轻松地进行声音开发。详情请参阅 [Christos Margiolis](mailto:christos@FreeBSD.org) 的 [音频栈改进](https://www.freebsd.org/status/report-2024-01-2024-03/#_audio_stack_improvements) 报告条目。
* [Olivier Certner](mailto:olce@FreeBSD.org) 开始了他与基金会的第二个合同，此次主要目标是使 unionfs 在 FreeBSD 上更稳定和实用。其他工作可能包括重新设计 VFS 查找、改进内存不足处理、实现文件系统更改的批量检测通知系统（如 inotify）以及改进控制台的可用性。
* 本季度还启动了一个新项目，为 OpenZFS 文件系统添加分层速率限制。[Pawel Dawidek](mailto:pjd@FreeBSD.org) 将添加类似配额的配置限制功能，但将限制读/写操作的数量及读/写带宽。

本季度有六个项目在继续进行：

* 有关将 OpenStack 组件移植到 FreeBSD 的工作，可以在 Chih-Hsin Chang 的 [OpenStack on FreeBSD](https://www.freebsd.org/status/report-2024-01-2024-03/#_openstack_on_freebsd) 报告条目中阅读。
* 改进对 FreeBSD 的 cloud-init 支持的工作继续推进。你可以在 Mina Galić 的 [FreeBSD as a Tier 1 cloud-init Platform](https://www.freebsd.org/status/report-2024-01-2024-03/#_freeBSD_as_a_tier_1_cloud-init_platform) 报告条目中了解她的工作。
* Advanced Micro Devices (AMD) 与 FreeBSD 基金会之间的一个新联合项目启动，旨在开发一个完整的 FreeBSD AMD IOMMU 驱动程序。这项工作将使 FreeBSD 完全支持超过 256 个内核，并支持 CPU 映射等功能，且将包括对 bhyve 的集成。对技术细节感兴趣的朋友可以关注 [Konstantin Belousov](mailto:kib@FreeBSD.org) 提交的标有 AMD 和 FreeBSD 基金会赞助的内容。
* 有关 FreeBSD 新图形安装器的状态，请参阅 Pierre Pronchery 的 [Graphical Installer for FreeBSD](https://www.freebsd.org/status/report-2024-01-2024-03/#_graphical_installer_for_freebsd) 报告条目。
* 将 Vector Packet Processor (VPP) 移植到 FreeBSD 的工作仍在进行中。VPP 是一个开源的高性能用户空间网络栈，提供适用于软件定义网络 (SDN) 和网络功能虚拟化 (NFV) 应用的快速数据包处理功能。该项目开发人员 [Tom Jones](mailto:thj@FreeBSD.org) 将发布一篇详细介绍 VPP 移植经验的文章，敬请期待。
* [Björn Zeeb](mailto:bz@FreeBSD.org) 和 [Cheng Cui](mailto:cc@FreeBSDd.org) 继续他们的无线工作。本季度主要集中在 LinuxKPI 802.11 和 net80211 的漏洞修复和稳定性改进，这些改进大多已包含在 13.3 版本中。

以下是 2024 年第一季度完成的其他基金会赞助开发的部分示例：

* FreeBSD 在收到 22 个贡献者提案后被接受为谷歌编程之夏 2024 项目；5 月 1 日将公布获奖项目数量
* OpenSSH 更新至 9.6p1 和 9.7p1
* 停止支持 bsdlabel
* 导入 bhyve/arm64 的内核部分
* 各种 RISC-V 的改进

#### FreeBSD 基础设施

完成了在纽约互联网公司（NYI）芝加哥站点建立新集群的合同。你可以在 [基金会的博客](https://freebsdfoundation.org/blog/powering-up-the-future-the-new-freebsd-cluster-in-chicago/) 上了解该项目的详细信息。

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

作为 FreeBSD 项目持续支持的一部分，基金会支持了一名全职员工，专注于改进项目的持续集成系统和测试基础设施。完整更新可在季度状态报告中找到。

#### 合作伙伴关系与研究

本季度合作伙伴关系的重点是向业界介绍 FreeBSD 社区的创新及其作为我们数字社会基石的持续影响。确保 FreeBSD 的广泛支持是我们长期的优先事项，我们邀请所有使用和开发 FreeBSD 的人参与其中。基金会合作关系负责人 Greg Wallace 很感激能够与 Microsoft、Google、AWS、OpenSSF、Alpha-Omega、CISA、Eclipse 基金会、开源倡议 (OSI)、Apache 软件基金会、Rust 基金会、Red Hat 和 Linux 基金会等开放源码和行业领导者会面，确保他们了解 FreeBSD 在全球数字基础设施中的关键角色。这一角色得益于 FreeBSD 的技术卓越性、内置安全性、高可用性、操作简单性、对开源协作的承诺和整体一致性。

在 RG Nets 赞助下，FreeBSD 社区正在开展的将 VPP 移植到 FreeBSD 的项目就体现了 FreeBSD 的这些特性。

确保行业了解 FreeBSD 的卓越和影响力对确保所有主要硬件和软件平台对 FreeBSD 的一级支持至关重要。每次与 BSD 社区外的人交流，以及每一篇展示 FreeBSD 如何促进我们个人和公司成功的内容，都会将我们推向更进一步的目标。

为此，基金会正在编写 FreeBSD 影响报告，以汇总 FreeBSD 在社会中扮演的核心和往往是关键任务的角色，从由 QNX 驱动的嵌入式系统，到支付和支票处理，再到数字娱乐、互联网和网络安全基础设施。

我们的社区在无数方式上作出贡献，包括确保 FreeBSD 支持行业标准的容器化工作负载——请查看 [Open Container Initiative FreeBSD 运行时扩展工作组](https://github.com/opencontainers/wg-freebsd-runtime)。

最近推出的硬件供应商支持调查将为一个硬件支持指南提供数据，反映所有受访者的集体经验，帮助大家识别优先支持 FreeBSD 的硬件供应商，并协助合作伙伴关系部门在优先供应商上加大推广力度。

最后，请 **告诉全世界你使用 FreeBSD 及其原因**。这没有错误的方式——可以在你的博客、最喜欢的社交媒体上发布，将 FreeBSD 列入公司开源页面，或联系基金会发布案例研究等。

[欧洲领先的网络安全公司 Stormshield 提供了如何展示使用 FreeBSD 的范例](https://www.stormshield.com/news/a-short-history-of-open-source/)。他们的博客页脚写道：“作为开源的强烈支持者，Stormshield 是 FreeBSD 社区的活跃成员（也是赞助者）……每当我们修改开源软件、制作补丁或添加功能时，我们都会将其提供给社区以供集成。”

#### 宣传推广

2024 年第一季度标志着基金会宣传团队的 [新纪元](https://freebsdfoundation.org/blog/march-2024-advocacy-update/) 的开始。我们很高兴地欢迎 [Kim McMahon](https://freebsdfoundation.org/blog/kim-mcmahon-to-join-freebsd-foundation-as-senior-director-of-advocacy-and-community/) 加入担任宣传与社区高级总监，同时也新增了两名技术写作人员，以增加我们发布的 FreeBSD 相关内容的频率和深度。以下是我们在第一季度为支持 FreeBSD 所做的一些扩展工作：

* 开始规划将于 2024 年 5 月 29 日至 30 日在加拿大渥太华举行、与 BSDCan 同地举行的 [2024 年 5 月 FreeBSD 开发者峰会](https://freebsdfoundation.org/news-and-events/event-calendar/may-2024-freebsd-developer-summit/)。
* 在 2024 年 2 月 6 日至 7 日于英国伦敦举办的 [State of Open Con 24](https://stateofopencon.com/soocon-2024/) 上向新老朋友介绍了 FreeBSD。
* 在 2024 年 3 月 14 日至 17 日于加利福尼亚州帕萨迪纳举办的 [SCaLE21x](https://www.socallinuxexpo.org/scale/21x) 上举办了 FreeBSD 简介的半日工作坊并设立展位。感谢 Gordon Tetlow 对工作坊的帮助。
* 基金会团队还致力于统一 FreeBSD 基金会和核心团队之间关于 FreeBSD 改进和优势的宣传信息。
* 基金会团队成员担任了 2024 年谷歌编程之夏的管理员。今年是谷歌编程之夏 20 周年，也是 [FreeBSD 项目被接受为指导组织的第 20 年](https://freebsdfoundation.org/blog/the-freebsd-project-participating-in-google-summer-of-code-2024-2/)。项目共收到 23 份实习申请。
* 提供了 [FreeBSD 13.x 的概述](https://freebsdfoundation.org/blog/freebsd-13-3-whats-new-and-how-did-we-get-here/)，包括 13.3 版本的内容。
* 完成了 2024 年 FreeBSD 社区调查的最终报告，预计将在四月底发布。
* 与创新英国和 Digital Security by Design (DSbD) 合作，举办了首届年度 [Digital Security by Design (DSbD) 生态系统灯塔奖](https://www.globenewswire.com/news-release/2024/04/03/2856691/0/en/FreeBSD-Foundation-and-Digital-Security-by-Design-DSbD-Announce-Beacon-Award-Winners-for-Innovations-and-Improvements-to-CheriBSD.html)，表彰在 CheriBSD 方面的创新者。
* 发布了多篇博文，包括：
  * [是什么让 FreeBSD 治理模式成功](https://freebsdfoundation.org/blog/what-makes-the-freebsd-governance-model-successful/)
  * [引导 FreeBSD 发行版的未来：新任发行工程团队负责人 Colin Percival](https://freebsdfoundation.org/blog/guiding-the-future-of-freebsd-releases-colin-percival-the-new-release-engineering-team-lead/)
* 撰写或参与了多个思想领导和新闻文章，包括：
  * [网络安全战斗已蔓延到硬件](https://freebsdfoundation.org/news-and-events/latest-news/the-cybersecurity-battle-has-come-to-hardware/)
  * [在实际应用中的 Ampere：FreeBSD 如何在数据中心使用 Ampere Arm64 服务器](https://freebsdfoundation.org/news-and-events/latest-news/ampere-in-the-wild-how-freebsd-employs-ampere-arm64-servers-in-the-data-center/)
  * [指令集架构 (ISAs) 与新兴的硬件安全革命](https://freebsdfoundation.org/news-and-events/latest-news/isas-and-the-dawning-hardware-security-revolution/)
  * 发布了新版的 [2024 年 3 月 FreeBSD 更新](https://freebsdfoundation.org/news-and-events/newsletter/march-2024-foundation-update/)。
  * 发布了 FreeBSD 期刊的 [2023 年 11 月/12 月](https://freebsdfoundation.org/past-issues/freebsd-14-0/) 和 [2024 年 1 月/2 月](https://freebsdfoundation.org/past-issues/networking-10th-anniversary/) 期，并提供 HTML 版的文章。

#### 筹款

感谢每一位在上个季度为我们提供财务支持的人士，帮助我们赞助支持 FreeBSD 项目的工作。2024 年开局良好，本季度共筹集到 $250,855。感谢你对 FreeBSD 的投资！

请考虑通过捐赠来支持我们在 2024 年的工作：<https://freebsdfoundation.org/donate/>。

或者，了解我们的合作机会：<https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/>。

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

基金会拥有 FreeBSD 商标，并负有保护它们的责任。我们还为核心团队提供法律支持，帮助解决遇到的相关问题。

请访问 [https://freebsdfoundation.org](https://freebsdfoundation.org/) 以了解我们如何支持 FreeBSD 以及如何帮助你！

### FreeBSD 发布工程团队

链接：

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

[FreeBSD 14.1-RELEASE 计划](https://www.freebsd.org/releases/14.1R/schedule/) URL: <https://www.freebsd.org/releases/14.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 官方项目的发布计划、公告代码冻结并维护相应的分支等工作。

在今年第一季度，团队管理了 13.3-RELEASE 版本，最终于三月发布了正式版本和公告。14.1-RELEASE 周期的规划工作也已开始。

发布工程团队还持续为 **main**、**stable/14** 和 **stable/13** 分支提供每周的开发快照构建。

### 集群管理团队

链接：

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

联系方式：

集群管理团队 <<clusteradm@FreeBSD.org>>

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

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

* 为 FreeBSD.org 用户账户提供常规支持。
* 为所有物理主机和镜像提供常规磁盘和部件支持（以及更换）。
* [在芝加哥设立了一个新的镜像站点](https://freebsdfoundation.org/blog/powering-up-the-future-the-new-freebsd-cluster-in-chicago/)。

#### FreeBSD 官方镜像概览

当前的镜像站点分布在澳大利亚、巴西、德国、日本（两个完整镜像站点）、马来西亚、南非、瑞典、台湾、英国（完整镜像站点）和美国（加利福尼亚、芝加哥、新泽西（主站点）和华盛顿）。

以下组织慷慨提供了硬件和网络连接支持：

* [Bytemark Hosting](https://www.bytemark.co.uk/)（正在退役）
* [BroadBand Tower, Inc](https://www.bbtower.co.jp/en/corporate/) 的云与 SDN 实验室
* [國立陽明交通大學資訊工程學系](https://www.cs.nycu.edu.tw/)
* [Equinix](https://deploy.equinix.com/)
* [澳大利亚互联网协会](https://internet.asn.au/)
* [互联网系统联盟 (ISC)](https://www.isc.org/)
* [INX-ZA](https://www.inx.net.za/)
* [KDDI 网络通信株式会社](https://www.kddi-webcommunications.co.jp/english/)
* [马来西亚研究与教育网络](https://www.mohe.gov.my/en/services/research/myren)
* [MetaPeer](https://www.metapeer.com/)
* [纽约互联网](https://www.nyi.net/)
* [NIC.br](https://nic.br/)
* [Teleservice Skåne AB](https://www.teleservice.net/)（自 2023 年第四季度以来新增）
* [Your.Org](https://your.org/)

我们随时欢迎新的官方镜像站点。我们已经注意到在全球的互联网交换点 (IXP) 上托管单一镜像的好处，例如我们在澳大利亚、巴西和南非的现有镜像。如果你与有意赞助单一镜像服务器的组织有联系，或了解相关信息，请联系我们。我们特别关注美国西海岸和欧洲的镜像站点位置。

有关完整镜像站点规格，请参阅 [通用镜像布局](https://wiki.freebsd.org/Teams/clusteradm/generic-mirror-layout)；有关单一镜像站点的详细信息，请参阅 [tiny-mirror](https://wiki.freebsd.org/Teams/clusteradm/tiny-mirror)。

### 持续集成

链接：

[FreeBSD Jenkins 实例](https://ci.freebsd.org/) URL: [https://ci.FreeBSD.org](https://ci.freebsd.org/)

[FreeBSD CI Tinderbox 视图](https://tinderbox.freebsd.org/) URL: [https://https://tinderbox.freebsd.org](https://https/tinderbox.freebsd.org)

[FreeBSD CI 构件存档](https://artifact.ci.freebsd.org/) URL: [https://artifact.ci.FreeBSD.org](https://artifact.ci.freebsd.org/)

[托管 CI Wiki](https://wiki.freebsd.org/HostedCI) URL: [https://wiki.FreeBSD.org/HostedCI](https://wiki.freebsd.org/HostedCI)

[第三方软件 CI](https://wiki.freebsd.org/3rdPartySoftwareCI) URL: [https://wiki.FreeBSD.org/3rdPartySoftwareCI](https://wiki.freebsd.org/3rdPartySoftwareCI)

[与 freebsd-testing@ 相关的工单](https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=%3Cem%3Eopen%3C/em%3E\&email1=testing%40FreeBSD.org\&emailassigned_to1=1\&emailcc1=1\&emailtype1=equals)​

[open](https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=%3Cem%3Eopen%3C/em%3E\&email1=testing%40FreeBSD.org\&emailassigned_to1=1\&emailcc1=1\&emailtype1=equals)

[FreeBSD CI 仓库](https://github.com/freebsd/freebsd-ci) URL: <https://github.com/freebsd/freebsd-ci>

[dev-ci 邮件列表](https://lists.freebsd.org/subscription/dev-ci) URL: [https://lists.FreeBSD.org/subscription/dev-ci](https://lists.freebsd.org/subscription/dev-ci)

联系方式：Jenkins 管理员 <<jenkins-admin@FreeBSD.org>>

联系方式：許立文 <<lwhsu@FreeBSD.org>>

联系方式：[freebsd-testing 邮件列表](https://lists.freebsd.org/mailman/listinfo/freebsd-testing)

联系方式：EFNet 上的 IRC #freebsd-ci 频道

在 2024 年第一季度，我们与项目贡献者和开发人员合作，满足他们的测试需求。同时，我们与外部项目和公司合作，通过在 FreeBSD 上进行更多测试来增强其产品。

已完成的重要任务：

* 在 clusteradm 的帮助下，测试虚拟机的主机通过回收退役机器的部件完成了磁盘和内存升级。
* 更新了 stable/13 任务的构建环境至 13.3-RELEASE。
* 将主分支的 i386 构建切换为基于 amd64 的交叉构建。

正在进行的任务：

* 合并 <https://reviews.freebsd.org/D43786>
* 合并 <https://reviews.freebsd.org/D36257>
* 将 FreeBSD 基金会购买的新硬件加入 CI 集群
* 设计并实现基于预提交的 CI 构建和测试，以及基于 pull/merge 请求的系统（以支持 [工作流工作组](https://gitlab.com/bsdimp/freebsd-workflow)）
* 概念验证系统正在进行中。
* 设计并实现使用 CI 集群来构建发布构件，最先从快照构建开始，模拟发布工程操作
* 简化贡献者和开发人员的 CI/测试环境设置
* 设置 CI 阶段环境并将实验性任务放入其中
* 重新设计硬件测试实验室并增加测试所需的硬件

待处理或排队的任务：

* 收集和整理 [CI 任务和想法](https://hackmd.io/@FreeBSD-CI/freebsd-ci-todo)
* 为运行测试的虚拟机来宾设置公共网络访问
* 实现使用裸机硬件运行测试套件
* 增加针对 -CURRENT 的 drm Ports 构建测试
* 计划运行 ztest 测试
* 帮助更多软件在其 CI 流程中获得 FreeBSD 支持（Wiki 页面：[3rdPartySoftwareCI](https://wiki.freebsd.org/3rdPartySoftwareCI)、[HostedCI](https://wiki.freebsd.org/HostedCI)）
* 与托管 CI 提供商合作，以获得更好的 FreeBSD 支持

有关更多正在进行的工作信息，请参阅 [freebsd-testing@ 相关工单](https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=%3Cem%3Eopen%3C/em%3E\&email1=testing%40FreeBSD.org\&emailassigned_to1=1\&emailcc1=1\&emailtype1=equals)，并欢迎你加入我们的工作！

赞助方：FreeBSD 基金会

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

联系方式：Tobias C. Berner <<portmgr-secretary@FreeBSD.org>>

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

Ports 管理团队负责管理 Ports 的整体方向、包构建和人员事务。以下是上个季度的情况。

根据 INDEX，目前 Ports 中有 32,244 个 ports，约有 3,300 个开放的 ports PRs。上个季度主分支由 158 名提交者提交了 12,991 次提交，2024Q1 分支有 61 名提交者提交了 888 次。与上个季度相比，主分支的提交次数大幅增加（从 9,424 次增长），季度分支的回迁提交略有增加（从 781 增长）。ports 数量也增加了（从 31,942 增长）。

在第一季度，main 分支大约有 14,127 次提交，最活跃的提交者如下：

* 2934 sunpoet
* 2676 bofh
* 1297 yuri
* 748 eduardo
* 545 jbeich
* 347 arrowd
* 233 diizzy
* 195 yasu
* 170 ehaupt
* 164 wen

上个季度 Ports 中发生了许多变化，以下是主要软件的更新摘录：

* pkg 1.21.0
* 新增 USES: ocaml
* 默认 gcc 版本切换为 13
* 默认 ruby 版本切换为 3.2
* 默认 lazarus 版本切换为 3.2.0
* 默认 go 版本切换为 1.21
* Chromium 更新至 123.0.6312.105
* Electron-28 更新至 28.2.10
* Electron-27 更新至 27.3.9
* Firefox 更新至 124.0.2
* Firefox-esr 更新至 115.9.1
* KDE 更新至 Frameworks 5 5.115，Frameworks 6 至 6.0.0，Plasma Desktop 5 至 5.27.11，Plasma Desktop 6 至 6.0.2
* Qt5 更新至 5.15.13
* Qt6 更新至 6.6.3
* Python 更新至 3.11.9、3.10.14 和 3.8.10
* Ruby 更新至 3.2.3
* Rust 更新至 1.77.0
* SDL 更新至 2.30.2
* Sway 更新至 1.9
* wlroots 更新至 1.17.2
* Wine 更新至 9.0
* Xorg 服务器更新至 0.17.2

在上个季度，[FreeBSD 软件包管理团队](mailto:pkgmgr@FreeBSD.org) 进行了 17 次实验运行，以测试各种 ports 升级、默认版本更新、子包支持和基本系统更改。

## 项目

这些项目涵盖多个领域，从内核和用户空间到 Ports 或外部项目。

### 音频栈改进

联系人：Christos Margiolis <<christos@FreeBSD.org>>

FreeBSD 的音频栈长期以来未受到足够的关注和开发，尽管质量很高，但仍有改进空间，包括缺乏音频开发框架、缺少用户空间实用工具以及内核驱动相关的漏洞等。此项目旨在涵盖这些方面，更多是一个总体改进项目，而非实现特定功能。

目前我的重点是音频栈的内核部分，最受关注的补丁可能是 [D43545](https://reviews.freebsd.org/D43545)。我也正在计划移除较过时的 [sound(4)](https://man.freebsd.org/cgi/man.cgi?query=sound\&sektion=4\&format=html) 中的 "snd\_clone" 音频设备克隆框架，并以 DEVFS\_CDEVPRIV(9) 取而代之 ([D44411](https://reviews.freebsd.org/D44411))。

未来任务包括：

* 寻找更好（理想情况下为自动）的方式来处理 [snd\_hda(4)](https://man.freebsd.org/cgi/man.cgi?query=snd_hda\&sektion=4\&format=html) 的针脚配置。
* 实现类似于 [mixer(3)](https://man.freebsd.org/cgi/man.cgi?query=mixer\&sektion=3\&format=html) 和 [mixer(8)](https://man.freebsd.org/cgi/man.cgi?query=mixer\&sektion=8\&format=html) 的 [oss(3)](https://man.freebsd.org/cgi/man.cgi?query=oss\&sektion=3\&format=html) 库和 [audio(8)](https://man.freebsd.org/cgi/man.cgi?query=audio\&sektion=8\&format=html) 工具。
* 编写蓝牙设备管理工具。
* 改进 [mixer(3)](https://man.freebsd.org/cgi/man.cgi?query=mixer\&sektion=3\&format=html) 和 [mixer(8)](https://man.freebsd.org/cgi/man.cgi?query=mixer\&sektion=8\&format=html)。
* 在必要时改进文档和测试套件。

[这里](https://lists.freebsd.org/archives/freebsd-multimedia/2023-December/002088.html) 有更详细的说明。

你也可以在 [freebsd-multimedia@](https://lists.freebsd.org/subscription/freebsd-multimedia) 中关注开发过程，我会定期发布报告：

* [报告 #1](https://lists.freebsd.org/archives/freebsd-multimedia/2024-January/002158.html)
* [报告 #2](https://lists.freebsd.org/archives/freebsd-multimedia/2024-January/002179.html)
* [报告 #3](https://lists.freebsd.org/archives/freebsd-multimedia/2024-January/002209.html)
* [报告 #4](https://lists.freebsd.org/archives/freebsd-multimedia/2024-January/002229.html)
* [报告 #5](https://lists.freebsd.org/archives/freebsd-multimedia/2024-February/002248.html)
* [报告 #6](https://lists.freebsd.org/archives/freebsd-multimedia/2024-February/002252.html)
* [报告 #7](https://lists.freebsd.org/archives/freebsd-multimedia/2024-March/002273.html)
* [报告 #8](https://lists.freebsd.org/archives/freebsd-multimedia/2024-March/002286.html)

赞助商：FreeBSD 基金会

### Bhyve 改进

链接：

[bhyve 生产用户电话会议](https://callfortesting.org/) URL: <https://callfortesting.org>

[FreeBSD Wiki - 企业工作组](https://wiki.freebsd.org/EnterpriseWorkingGroup) URL: <https://wiki.freebsd.org/EnterpriseWorkingGroup>

[FreeBSD Wiki - EWG - bhyve 和 jails 管理工具](https://wiki.freebsd.org/ChrisMoerz/bhyve_management) URL: <https://wiki.freebsd.org/ChrisMoerz/bhyve_management>

[Jan Bramkamp 的 s6rc 项目](http://static.bultmann.eu/s6-talk/#\(1\)) URL: <http://static.bultmann.eu/s6-talk/>

[GitHub 上的 vmstated](https://github.com/christian-moerz/vmstated) URL: <https://github.com/christian-moerz/vmstated>

[YouTube - vmstated 讲解视频](https://www.youtube.com/watch?v=f60NCrunXyw) URL: <https://www.youtube.com/watch?v=f60NCrunXyw>

联系人：

Chris Moerz <<freebsd@ny-central.org>>

#### Bhyve I/O 性能测量

每周的 bhyve 生产用户电话会议中，参与者最近讨论了 bhyve 的 I/O 性能。虽然提出了多种测量和比较方法，但很明显当前没有正式的分析报告。因此，我们开始着手此项工作，以更好地了解各种配置选项对客户机 I/O 性能的影响。我们创建了一组 shell 脚本，利用 FreeBSD 客户机在多种配置下运行 [benchmarks/fio](https://cgit.freebsd.org/ports/tree/benchmarks/fio/) 进行 I/O 性能测量。这使我们可以比较带宽、延迟、IOPS 等多个标准。

目前，我们正在测试：

* 不同的存储后端（如 ahci-hd、nvme、virtio-blk）
* 不同的内存设置
* 不同的 CPU 固定选项
* 不同的存储块大小
* 不同的虚拟磁盘访问块大小

我们还将不同 CPU 制造商的测试结果进行比较，并对比客户机与主机的性能，以更好地了解虚拟化对性能的影响。

我们计划继续在 Michael Dexter 主持的每周 bhyve 生产用户电话会议中讨论结果——如果你有兴趣，欢迎加入。此外，我们希望能在第三季度的 EuroBSDCon 上展示这些结果。

#### Bhyve 虚拟机工具

去年，FreeBSD 基金会的 Greg Wallace 成立了企业工作组，专门解决 FreeBSD 企业用户的痛点。其中一个工作组聚焦于 bhyve 和 jails 管理工具。在收集了一组期望的功能和特性后，围绕 bhyve 的关键需求出现了：希望 bhyve 的配置概念和工具能够类似于 jails。

虽然其他特性（如 TPM 软件仿真和快照/恢复/主机迁移）也很受欢迎，但由于概念性工具问题的复杂性较低、目标明确，且清晰地展示了实现路径，所以得到了优先考虑。

技术上，这意味着需要解决有关进程监督和虚拟机状态管理的现有缺口。通过对现有框架（如 Jan Bramkamp 的 s6rc）进行试验，并在每周的 bhyve 生产用户电话会议（由 Michael Dexter 组织）中讨论，我们最终实现了“vmstated”的概念验证。

vmstated 最初是为了更好地理解进程监督和虚拟机状态处理问题空间的实验项目。它由一个守护进程和 vmstatedctl 管理工具组成，基于 FreeBSD 的原生工具和库构建，利用 kqueue 等 FreeBSD 特有的结构来降低资源消耗。

vmstated 通过 UCL 配置文件（类似于 jails.conf）进行配置，结合 [bhyve\_config(5)](https://man.freebsd.org/cgi/man.cgi?query=bhyve_config\&sektion=5\&format=html) 配置文件，为虚拟机配置提供了高度的灵活性。vmstatedctl 提供了类似 jail 的命令集，用于启动、停止和获取客户机的状态信息。状态转换可以通过 shell 脚本轻松挂接，以便在相关状态变化时运行额外的网络或存储设置和拆卸命令。

初始版本已在 Ports 系统中发布为 [sysutils/vmstated](https://cgit.freebsd.org/ports/tree/sysutils/vmstated/)，且更新即将提交；不过，最新版本可在 GitHub 上找到。我们正在考虑扩展这项工作；如果你有兴趣，欢迎加入我们！补丁、建议和反馈等都非常欢迎！

如果你想了解更多关于我们的工作，欢迎参加 Michael Dexter 主持的每周 bhyve 生产用户电话会议，或通过 [电子邮件](mailto:freebsd@ny-central.org) 联系我。

#### 文档

我们成功更新了《手册》和《Porter 手册》的部分内容（感谢 [Ed Maste](mailto:emaste@FreeBSD.org)、[Joseph Mingrone](mailto:jrm@FreeBSD.org)、[Pau Amma](mailto:pauamma@gundo.com) 和 [Rodney W. Grimes](mailto:rgrimes@FreeBSD.org)）：

* FreeBSD 手册中虚拟化章节的若干改进和扩展
  * 使用 [bhyve\_config(5)](https://man.freebsd.org/cgi/man.cgi?query=bhyve_config\&sektion=5\&format=html) 配置文件
  * bhyve 的 jailing
  * 实验性的快照和恢复功能
  * 设置 Windows 客户机
* 我们还提交了一个审查 ([D43940](https://reviews.freebsd.org/D43940))，作为改进 bhyve 手册页的初步步骤
  * 这首先以结构更新的方式启动，将许多 `-s` 标志选项分开
  * 待提交，我们可以进行更广泛的内容更新

我们非常欢迎反馈意见——无论是现有内容的改进，还是你认为我们应关注的其他内容！

### FreeBSD 图形安装程序

链接：\
[AsiaBSDCon 2024 演示幻灯片](https://people.defora.org/~khorben/FreeBSD/bsdinstall/bsdinstall%20-%20Now%20with%20Graphics!%20-%20AsiaBSDCon%202024%20-%20WIP%20Session.pdf)\
[gbsddialog](https://github.com/khorben/gbsddialog)\
[预览视频](https://youtu.be/jm6byc7N2O4)

联系人：Pierre Pronchery <<pierre@freebsdfoundation.org>>

当测试一个新的操作系统时，首先需要克服的障碍是如何安装它。安装过程也是新用户对操作系统的第一印象。当前，操作系统安装程序的技术标准肯定涉及图形化流程。这不仅适用于主流系统，也适用于与 [FreeBSD](https://www.freebsd.org/) 类似的其他 UNIX 系统，如 [RedHat Enterprise Linux](https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux)、[Ubuntu](https://ubuntu.com/)、[Debian GNU/Linux](https://www.debian.org/) 甚至 [Devuan GNU+Linux](https://www.devuan.org/)。无论用户的技术水平如何，这都是操作系统在公众眼中比较的依据。

实际上，不同项目已经将 FreeBSD 衍生为桌面导向的操作系统。其中只有 [GhostBSD](https://www.ghostbsd.org/) 是一个维护中的项目，提供图形化的安装流程。本项目的目标是为 FreeBSD 提供一个类似于现有安装程序的图形安装程序，作为其基本系统的一部分。然而，[GhostBSD 的安装程序](https://ghostbsd-documentation-portal.readthedocs.io/en/latest/user/installation-guide/custom-installation.html#installing-ghostbsd) 依赖于基于 Python 的 Gtk+ 界面，这在采用 FreeBSD 的常规镜像生成流程时会显著增加安装介质的大小，也会导致 FreeBSD Ports 中引入和维护新的项目。

因此，基于对现有 [bsdinstall(8)](https://man.freebsd.org/cgi/man.cgi?query=bsdinstall\&sektion=8\&format=html) 和 [bsdconfig(8)](https://man.freebsd.org/cgi/man.cgi?query=bsdconfig\&sektion=8\&format=html) 工具的理解，我设想了一个 BSD 许可的 [Xdialog(1)](https://man.freebsd.org/cgi/man.cgi?query=Xdialog\&sektion=1\&format=html) 替代品。类似于使用 -X 参数调用 bsdconfig 进入图形模式，可以直接替换 [bsddialog(1)](https://man.freebsd.org/cgi/man.cgi?query=bsddialog\&sektion=1\&format=html)，从而实现图形化安装，同时共享现有安装程序的基础架构。为避免与 x11/xdialog Ports 中的 Xdialog 当前实现混淆，我将替代程序命名为 [gbsddialog(1)](https://man.freebsd.org/cgi/man.cgi?query=gbsddialog\&sektion=1\&format=html)。此外，Xdialog 相当陈旧（最后更新于 2006 年），在视觉上也显示了其过时性。

在 14.0 版本发布后，我创建了一个概念验证原型。随后 [FreeBSD 基金会](https://www.freebsdfoundation.org/) 给我提供了两个月的时间，以完成一个可用的实现。通过一些简化处理，我很高兴能在 [AsiaBSDCon 2024](https://2024.asiabsdcon.org/program.html) 的 WIP 会议上展示了这一成果，包括一个可用的图形安装程序。

大多数必要的补丁已经在 [FreeBSD 的 Phabricator](https://reviews.freebsd.org/) 上提供审核：

* [D44279 bsdinstall: 实现使用 bsddialog 的 adduser](https://reviews.freebsd.org/D44279)
* [D44280 bsdinstall: 实现使用 bsddialog 的 rootpass](https://reviews.freebsd.org/D44280)
* [D44670 bsdinstall: 实现使用 bsddialog 的时区设置](https://reviews.freebsd.org/D44670)
* [D44671 bsdinstall: 允许强制特定的分区模式](https://reviews.freebsd.org/D44671)
* [D44672 bsdinstall: 从 $DIALOG 获取对话框二进制文件](https://reviews.freebsd.org/D44672)
* [D44673 bsdinstall: 在目标中处理命令行选项](https://reviews.freebsd.org/D44673)
* [D44674 bsdinstall: 增加图形模式支持](https://reviews.freebsd.org/D44674)

我尝试将这些补丁按集成时的潜在摩擦程度排序。

本项目的最重要目标是改进 bsdinstall，无论最终能否成功集成。从上述补丁中可以看出，D44279、D44280、D44670 有望改善安装程序的整体外观，即便是在文本模式下。此外，D44671 和 D44672 提高了安装程序在脚本化或定制时的整体灵活性。D44673 和 D44674 使其与 bsdconfig -X 功能相当，甚至允许图形化安装 jail。

一些部分仍然缺失，或使用了尚不适合集成的简化方案：

* 避免了 "fetchmissingdists" 目标，将所有组件打包在安装介质上；
* "checksum" 和 "extract" 目标不得不使用更简单的代码重新实现，导致普通安装程序的用户体验下降；
* 安装介质的创建生成了一个额外的巨大镜像（接近 8 GB），疑似受到 [makefs(8)](https://man.freebsd.org/cgi/man.cgi?query=makefs\&sektion=8\&format=html) 中一个 bug 的影响。

相应的代码可以在我的 [GitHub fork](https://github.com/khorben/freebsd-src/) 中的 [khorben/bsdinstall-graphical4](https://github.com/khorben/freebsd-src/tree/khorben/bsdinstall-graphical4) 分支找到。根据合并操作的复杂性，结合（希望）逐步集成的更改，可能会添加新的分支以跟踪进展。（实际上，已经存在一个 [khorben/bsdinstall-graphical5](https://github.com/khorben/freebsd-src/tree/khorben/bsdinstall-graphical5) 分支。）

总的来说，安装程序需要进一步发展以达到新的成熟水平。在此项目期间，我收到了一些对安装程序的普遍抱怨，甚至有呼声要求彻底重写。确实，当前代码库存在许多问题和限制。缺少图形安装程序只是众多问题之一，还包括错误恢复、无法导航到上一步、缺乏安装进度概览、缺少基于网络的安装程序等问题。与此同时，这仍是我们熟悉的安装程序，我认为它仍然可以被改进和提升。

特别感谢 [Ed Maste](mailto:emaste@FreeBSD.org) 和 [Joe Mingrone](mailto:jrm@FreeBSD.org) 提供的机会，以及 [Philippe Audeoud](mailto:jadawin@FreeBSD.org)、[Tobias C. Berner](mailto:tcberner)、[Olivier Certner](mailto:olce@FreeBSD.org)、[Jessica Clarke](mailto:jrtc27@FreeBSD.org)、[Olivier Cochard-Labbé](mailto:olivier@FreeBSD.org)、[Baptiste Daroussin](mailto:bapt@FreeBSD.org)、[Brad Davis](mailto:brd@FreeBSD.org)、[Michael Dexter](mailto:dexter@FreeBSD.org)、[許立文](mailto:lwhsu@FreeBSD.org)、[Mateusz Piotrowski](mailto:0mp@FreeBSD.org)、[Alfonso Siciliano](mailto:asiciliano@FreeBSD.org)、[Emmanuel Vadot](mailto:manu@FreeBSD.org) 和 [Robert Watson](mailto:rwatson@FreeBSD.org) 的反馈、审查和鼓励。（如果遗漏了任何人，请理解我绝无此意！）

赞助：FreeBSD 基金会

## 用户空间

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

### libsys

联系人：Brooks Davis <<brooks@FreeBSD.org>>

libsys 项目将系统调用从 libc.so 和 libpthread.so（即 libthr.so）中移除，转而使用一个独立的 libsys.so。这样做的目的包括：

* 隔离语言运行时与系统调用实现的细节。
* 更好地支持系统调用的日志记录和回放框架。
* 支持消除在运行时链接器和 `libsys` 中调用系统调用的能力，除非是受信代码。

这项工作最初受到 2016 年 CheriBSD 中一个隔离原型的启发。Ali Mashtizadeh 和 Tal Garfinkel 接手了这个工作，并尝试将其上游化 ([D14609](https://reviews.freebsd.org/D14609))。不幸的是，我们未能通过 Phabricator 审查解决所需的大规模重组，因此这项工作停滞了。去年，CHERI 项目再次发现需要在 CheriBSD 中为一个基于库的隔离框架引入系统调用分离，因此我从头开始重建了这个补丁，并在此过程中提交了数十项 `libc` 清理工作。第一批更改已于 2 月 5 日提交。从那时起，我对如何链接 `libsys` 以及每个库提供哪些符号做了一些改进。

感谢 [Konstantin Belousov](mailto:kib@FreeBSD.org) 的多轮审查和反馈，以及运行时链接器的修复。感谢 [Mark Johnston](mailto:markj@FreeBSD.org) 的运行时链接器调试，感谢 [Dimitry Andric](mailto:dim@FreeBSD.org) 提供的消毒器修复。感谢所有报告错误并帮助调试问题的人。

#### 已知问题（截至报告期结束时）

* `libsys` 的 ABI 尚未被认为是稳定的（可以安全假设 `__sys_foo()` 会得到支持，因此语言运行时现在可以使用它）。
* 使用地址消毒器的程序必须链接 `-lsys`（在发布时已在基本系统中解决）。

#### TODO

* 添加 libsys.h 文件。（参见 [D44387](https://reviews.freebsd.org/D44387) 和堆栈中的其他审查。）
* 更新 [intro(2)](https://man.freebsd.org/cgi/man.cgi?query=intro\&sektion=2\&format=html) 文档以包括 `libsys`。
* 完成 ABI 的最终定稿。我可能会减少我们暴露的 `_`（下划线）前缀符号的数量。
* 是否将 `libsys` 合并到 MFC（合并到主干）中？目前不清楚这是否可行，但或许可以 MFC 一些对语言运行时有用的部分。

#### 需要帮助

* 将不使用 `libc` 的语言运行时移植为使用 `libsys` 进行系统调用，而不是自定义接口。
* 探索类似 OpenBSD 中的 [msyscall(2)](https://man.openbsd.org/OpenBSD-7.3/msyscall)（现已废弃）和 [pinsyscalls(2)](https://man.openbsd.org/pinsyscalls) 的系统调用使用限制（这些与我们的 `libsys` 可能不完全匹配）。

赞助商：AFRL, DARPA

### FreeBSD pkg 的 PackageKit 后端

联系人：Gleb Popov <<arrowd@FreeBSD.org>>

PackageKit 是一个小型 D-Bus 守护进程，作为“应用商店”类应用程序的后端，最著名的如 Plasma Discover 和 Gnome Software Center。最新的 PackageKit 版本引入了一个 libpkg 后端，这意味着你现在可以在 FreeBSD 上使用启用了 PackageKit 的程序来管理软件。Plasma Discover 已经切换到使用 PackageKit，因此只要你更新你的 Ports/包，就可以开箱即用。

如果你在使用 PackageKit 时遇到崩溃或错误，请通过 [在上游打开问题](https://github.com/PackageKit/PackageKit/issues) 来告知我。如果你有兴趣贡献，也有很多工作可以做！

赞助商：Serenity Cybersecurity, LLC

## 内核

更新内核子系统/功能、驱动支持、文件系统等。

### iwlwifi(4) 和 13.3-RELEASE 的无线网络支持

链接： [分类无线问题报告](https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=277512\&hide_resolved=0) URL: <https://bugs.freebsd.org/bugzilla/showdependencytree.cgi?id=277512&hide_resolved=0>

联系人：Bjoern A. Zeeb <<bz@FreeBSD.org>>\
联系人：FreeBSD 无线邮件列表 <<wireless@FreeBSD.org>>

在 2024 年的前几周，重点是为 13.3-RELEASE 提供稳定性，最终使 [iwlwifi(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwifi\&sektion=4\&format=html) 可用。即将发布的 14.1-RELEASE 也将受益于这一工作。自那以后，反馈总体上是积极的，并且 [iwlwifi(4)](https://man.freebsd.org/cgi/man.cgi?query=iwlwifi\&sektion=4\&format=html) 支持的芯片组（最高到 BE200）似乎大多数情况下已经稳定，但仍然较慢。

大量的测试得到了 FreeBSD 基金会和许多用户的支持。非常感谢所有测试、报告问题、更新 PR 和帮助其他用户的人。

我也开始慢慢地“分类”更多（旧的）无线问题报告，并将继续在今年进行一些清理工作。

如果你有问题或反馈，请使用 [freebsd-wireless 邮件列表](https://lists.freebsd.org/subscription/freebsd-wireless)。这样大家都能看到并参与讨论，回答也会公开存档。

赞助商：minipci.biz（BE200 硬件）

## 架构

更新平台特定功能，并为新硬件平台带来支持。

### Ten64、WHLE-LS1 和 HoneyComb

链接： [我的 Wiki 页面，包含一些状态链接](https://wiki.freebsd.org/BjoernZeeb/) URL: <https://wiki.freebsd.org/BjoernZeeb/>

联系人：Bjoern A. Zeeb <<bz@FreeBSD.ORG>>

Solid-Run 的 HoneyComb、Traverse Technologies 的 Ten64 和 Conclusive Engineering 的 WHLE-LS1 的一些版本，都是基于 NXP 的平台，采用数据路径加速架构 Gen2（DPAA2）。

已经进行了一些工作，以支持或改善对这些板卡外围设备的支持。

对于 DPAA2，我有一些本地更改需要审查（或进一步讨论）：

* 清理 memac（MDIO）代码，将总线附加（特定于 ACPI 和 FDT）的代码合并为更通用的代码。
* 清理 MC 总线附加代码（同样是 ACPI 和 FDT）。
* 出于支持某些 PHY 在 FDT 基础平台上的 mii\_fdt.c 的原因，重构 MAC/MII 代码，并将其大部分迁移出网络接口（NI）。
* 改进 Dmitry Salychev（dsl）最初的 SFF/SFP 代码，原型化类似 MII 的总线来支持 SFP，希望经过更多工作后，它可以发展成更大、更通用的 FreeBSD 框架，并将其连接到 DPMAC。
* 基于此，对 FDT 基本系统使用 DAC 和光纤电缆的“托管”SFP+ 模式（使用 Ten64 术语）的最小支持（仍然相当“粗糙”）已经可用。
* 向 DPMAC 和 NI 添加更多的 sysctl 统计信息。

简而言之，我主要清理了在最初的引导过程中我所贡献的一些混乱。

对于基于 LS1088a 的 WHLE-LS1 系统，所做的更改包括：

* 更新设备树文件。
* 添加对 PCA9546 I2C 开关的支持（已提交）。
* 添加对 PCAL6524 24 位 Fm+ I2C-bus/SMBus I/O 扩展器的基本支持。
* 添加对 PCA9633 4 位 Fm+ I2C-bus LED 驱动器的基本支持，用于驱动状态 LED。
* 添加支持编程 [rgephy(4)](https://man.freebsd.org/cgi/man.cgi?query=rgephy\&sektion=4\&format=html) LED（需验证）。
* 开始测试使用 MMCCAM 和 GENERIC 的 eMMC，但遇到了一些问题（需要进一步调查，固件更新似乎没有问题）。
* 测试了三个 PCIe 插槽中的一个以及 USB，均正常。

对于 Ten64：

* 大部分基本工作在一段时间前就已经完成，并且它通常是可用的。
* 检测 VSC8514 PHY 的功能在去年年底已经加入。
* 用作默认平台来测试 DPAA2 更改和 SFP/SFP+ 代码。

此外，Pierre-Luc Drouin 已经彻底改进了 Vybrid I2C 支持，现在能够在 FDT 和 ACPI 基本系统上都能成功附加和工作（已提交）。

赞助商：Traverse Technologies（Ten64 硬件，过去的支持）

## 云平台

更新特定于云的平台功能，并为新云平台提供支持。

### FreeBSD 在 Microsoft HyperV 和 Azure 上的支持

链接： [FreeBSD 在 Microsoft Azure 上的文章](https://wiki.freebsd.org/MicrosoftAzure) URL: <https://wiki.freebsd.org/MicrosoftAzure>\
[FreeBSD 在 Microsoft HyperV 上的文章](https://wiki.freebsd.org/HyperV) URL: <https://wiki.freebsd.org/HyperV>

联系人：Microsoft FreeBSD 集成服务团队 <<bsdic@microsoft.com>>\
联系人：[freebsd-cloud 邮件列表](https://lists.freebsd.org/subscription/freebsd-cloud)\
联系人：FreeBSD Azure 发布工程团队 <<releng-azure@FreeBSD.org>>\
联系人：Wei Hu <<whu@FreeBSD.org>>\
联系人：Souradeep Chakrabarti <<schakrabarti@microsoft.com>>\
联系人：許立文 <<lwhsu@FreeBSD.org>>

在本季度，我们解决了所有阻塞性问题，并发布了 [13.3-RELEASE 在 Azure 市场](https://azuremarketplace.microsoft.com/marketplace/apps/thefreebsdfoundation.freebsd-13_3)。

正在进行的任务：

* 自动化镜像构建和发布过程，并合并到 src/release/。
* 构建并发布快照版本到 [Azure 社区画廊](https://learn.microsoft.com/azure/virtual-machines/share-gallery-community)。

上述任务由 FreeBSD 基金会赞助，微软提供资源支持。

待办事项

* 更新 [Microsoft Learn](https://learn.microsoft.com/) 上的 FreeBSD 相关文档。
* 在 [Azure Pipelines](https://azure.microsoft.com/products/devops/pipelines/) 中支持 FreeBSD。
* 将 [Azure agent](https://www.freshports.org/sysutils/azure-agent) 更新至最新版本。
* 上游 [Azure agent 的本地修改](https://github.com/Azure/WALinuxAgent/pull/1892)。
* 移植 [Azure 的 Linux 虚拟机扩展](https://github.com/Azure/azure-linux-extensions)。

赞助商：Microsoft（为微软内部人员提供支持及资源）\
赞助商：FreeBSD 基金会（为其他所有方面提供支持）

### FreeBSD 作为 Tier 1 云平台的 cloud-init 支持

链接： [cloud-init 网站](https://cloud-init.io/) URL: <https://cloud-init.io/>\
[cloud-init 文档](https://cloudinit.readthedocs.io/en/latest/) URL: <https://cloudinit.readthedocs.io/en/latest/>

联系人：Mina Galić <<freebsd@igalic.co>>

cloud-init 是云平台中用于配置服务器的标准工具。过去一年半，FreeBSD 在 cloud-init 上的支持逐步得到了改进。今年，结合 cloud-init 开发者和 FreeBSD 基金会的支持，我们决定专注于在 FreeBSD 本身上进行改进，帮助 cloud-init 团队测试未来的 FreeBSD 代码路径变更。为实现这个目标，我需要让 FreeBSD 在 LXD（以及 Incus）中运行，并由 `lxd-agent`（或 `incus-agent`）控制。

最近几周的改进如下：

* 我编写了一个小型 [测试框架](https://codeberg.org/meena/test-cloud-init)（使用 sh 编写，正在逐步移植到 OpenTofu/Terraform），它安装最新版本的 [net/cloud-init-devel](https://cgit.freebsd.org/ports/tree/net/cloud-init-devel/) 或 [net/cloud-init](https://cgit.freebsd.org/ports/tree/net/cloud-init/)，并运行一些标准的 cloud-init 测试。
* 为此，我创建了一个 [专用的公共仓库](https://pkg.igalic.co/)，其中包含适用于 FreeBSD 13 和 14（amd64 和 aarch64）的最新版本 [net/cloud-init-devel](https://cgit.freebsd.org/ports/tree/net/cloud-init-devel/) 和 [net/cloud-init](https://cgit.freebsd.org/ports/tree/net/cloud-init/)。
* 我已经将 Linux 的 vsock 测试框架 [移植到 FreeBSD](https://codeberg.org/meena/vsock-tests)。
* 我为 [VirtIO Socket 驱动](https://codeberg.org/meena/freebsd-src/src/branch/vsock/sys/dev/virtio/socket) 创建了一个骨架，基于 HyperV Socket 驱动。
* 在此过程中，我对 HyperV 套接字进行了多个 [改进](https://reviews.freebsd.org/D44517)，其中一些已被接受，另一些仍需进一步修改。
* 我已经测试并发布了最新的 24.1 系列 cloud-init，cloud-init 团队和我终于修复了一些长期存在的错误，例如将 [`/run/cloud-init`](https://github.com/canonical/cloud-init/pull/4820) 移动到 BSD 的 /var/run/cloud-init，以及修复了 [`homedir`](https://github.com/canonical/cloud-init/pull/5061) 到 `user_groups` 参数的功能。
* 此次发布还包括来自社区的 OpenBSD 代码路径的多个修复，而不仅仅是我个人的工作。
* 我还开始了 OpenBSD 的官方移植工作，但 [该工作已暂停](https://marc.info/?l=openbsd-ports\&m=170508174230708\&w=2)。

未来工作的广泛概述：

* 完成 FreeBSD 的 VirtIO Socket 驱动。
* 修复 Go 运行时以支持 FreeBSD 上的 VirtIO。
* 将 lxd-agent 的依赖移植到 FreeBSD。
* 将 lxd-agent 移植到 FreeBSD。

这些工作将在 BSD 上进行更多 cloud-init 改进和在不同云提供商上进行更多测试的过程中穿插进行。

赞助商：FreeBSD 基金会

### FreeBSD 上的 OpenStack

链接： [OpenStack](https://www.openstack.org/) URL: <https://www.openstack.org/>\
[OpenStack 在 FreeBSD 上的实现](https://github.com/openstack-on-freebsd) URL: <https://github.com/openstack-on-freebsd>

联系人：Chih-Hsin Chang <<starbops@hey.com>>\
联系人：許立文 <<lwhsu@FreeBSD.org>>

OpenStack on FreeBSD 项目旨在将 OpenStack 云基础设施与 FreeBSD 操作系统无缝集成。该项目利用 FreeBSD 的独特功能，同时确保与 OpenStack 标准的兼容性。

在 2024 年第一季度，我们在 OpenStack on FreeBSD 项目上取得了显著进展。包括提交了 BSDCan 2024 的提案，并参加了 2024 年 AsiaBSDCon，以 [分享我们的移植经验并为项目赢得曝光](https://papers.freebsd.org/2024/asiabsdcon/chang-towards-a-robust-freebsd-based-cloud-porting-openstack-components/)。在 AsiaBSDCon 获得的反馈尤其有价值，帮助我们改进了项目的方向。在此期间，我们还回顾了项目的第一阶段任务并做出了必要的调整。我们还计划了第二和第三阶段，并将其与项目的长期目标对齐。一个技术成就就是验证了 bhyve 串口控制台通过 TCP 的功能，这是项目基础设施的重要部分。此外，我们还创建了一个 [演示视频](https://asciinema.org/a/647308) 展示了项目的进展和特性。

展望未来，下一季度的重点工作包括确认实施 FreeBSD 特权管理用户空间工具的可行性，利用 [mac(4)](https://man.freebsd.org/cgi/man.cgi?query=mac\&sektion=4\&format=html) 和 [priv(9)](https://man.freebsd.org/cgi/man.cgi?query=priv\&sektion=9\&format=html)，简化安装步骤，通过迁移到 FreeBSD ports，并将 OpenStack Ironic 移植到 FreeBSD。这些任务将增强项目的功能和兼容性。

赞助商：FreeBSD 基金会

### 文档

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

#### 文档工程团队

链接：[FreeBSD 文档项目](https://www.freebsd.org/docproj/) URL: <https://www.freebsd.org/docproj/>\
链接：[FreeBSD 文档项目新贡献者入门指南](https://docs.freebsd.org/en/books/fdp-primer/) URL: <https://docs.freebsd.org/en/books/fdp-primer/>\
链接：[文档工程团队](https://www.freebsd.org/administration/#t-doceng) URL: <https://www.freebsd.org/administration/#t-doceng>

联系人：FreeBSD Doceng 团队 <<doceng@FreeBSD.org>>

[doceng 团队](mailto:doceng@FreeBSD.org) 负责处理与 FreeBSD 文档项目相关的一些元项目问题；更多信息，请参阅 [FreeBSD Doceng 团队章程](https://www.freebsd.org/internal/doceng/)。

在过去一个季度中：

[Edward Tomasz Napierała](mailto:trasz@FreeBSD.org) 和 [Tom Rhodes](mailto:trhodes@FreeBSD.org) 的文档提交权限被暂时保管。

#### FreeBSD 在 Weblate 上的翻译

链接：[在 Weblate 上翻译 FreeBSD](https://wiki.freebsd.org/Doc/Translation/Weblate) URL: <https://wiki.freebsd.org/Doc/Translation/Weblate>\
链接：[FreeBSD Weblate 实例](https://translate-dev.freebsd.org/) URL: <https://translate-dev.freebsd.org/>

**2024 年第一季度状态**

* 17 个团队语言
* 189 名注册用户

三名新翻译者加入了 Weblate：

* piker3（波兰语团队，pl）
* chrislongros（希腊语团队，el）
* grip（意大利语团队，it\_IT）

**语言进展**

* 简体中文（zh-cn）（进展：7%）
* 繁体中文（zh-tw）（进展：3%）
* 荷兰语（nl）（进展：1%）
* 法语（fr）（进展：1%）
* 德语（de）（进展：1%）
* 希腊语（el）（进展：1%）
* 印尼语（id）（进展：1%）
* 意大利语（it）（进展：5%）
* 韩语（ko）（进展：32%）
* 挪威语（nb-no）（进展：1%）
* 波斯语（fa-ir）（进展：3%）
* 波兰语（pl）（进展：2%）
* 葡萄牙语（pt）（进展：0%）
* 巴西葡萄牙语（pt-br）（进展：22%）
* 西班牙语（es）（进展：36%）
* 土耳其语（tr）（进展：2%）

我们感谢所有参与翻译或审核文档的人员。

此外，请在你所在的本地用户组中推广这一努力，我们始终需要更多志愿者的帮助。

### Ports

影响 Ports 的变化，可能是影响大部分树的重大变动，也可能是个别 Ports 的变化。

#### FreshPorts：新包通知

链接：[FreshPorts](https://freshports.org/) URL: <https://freshports.org/>\
链接：[FreshPorts 博客](https://news.freshports.org/) URL: <https://news.freshports.org/>

联系人：Dan Langille <<dvl@FreeBSD.org>>

FreshPorts 和 FreshSource 已经报告了 FreeBSD 提交信息长达 20 年，涉及了所有提交内容，不仅仅是 Ports。

FreshPorts 跟踪提交并从 Ports 的 Makefile 中提取数据，创建一个有用的数据库，供 Ports 维护者和用户使用。

例如，你可以通过 <https://www.freshports.org/security/acme.sh/#history> 查看 [security/acme.sh](https://cgit.freebsd.org/ports/tree/security/acme.sh/) Ports 的历史记录，从 2017 年 5 月开始。还可以查看依赖关系、flavors、配置选项和可用的包。这些信息对 Ports 的用户和开发者都非常有用。

#### 通知：新包可用

FreshPorts 的原始功能之一是 Ports 更新通知。你可以创建一个 Ports 列表，并接收关于这些 Ports 的通知。此新功能还可以在某个 Ports 有新包可用时通知你。应用场景：已知的安全漏洞已被修复。FreshPorts 会告诉你该 Ports 已经修复，你可以等待包的发布。这个新功能会在包可用时通知你。

详情请参见：

* <https://github.com/FreshPorts/freshports/issues/542>

#### 需要帮助

FreshPorts 已经运行超过 23 年。未来，必须由其他人接手。我最近已经开始了这个过程。FreshPorts 涉及多个方面：

* FreeBSD 管理（更新操作系统和包）
* 前端代码（网站 - 主要是 PHP）
* 后端代码（提交处理 - Perl、Python、Shell）
* 数据库设计（PostgreSQL）

数据库变化较少，需要的维护工作比应用程序和操作系统要少。网站几乎能自我运行。偶尔 FreeBSD Ports 基础设施发生变化时，可能会破坏某些功能或需要做出修改，但这类修复很少具有紧迫性，因此并不会占用大量时间。这并不是一个巨大的时间投入，但会有很多学习机会。虽然 FreshPorts 不是一个复杂的应用程序，但也并不简单。

如果你有兴趣参与贡献，请加入 [FreshPorts-coders 邮件列表](https://lists.freshports.org/mailman/listinfo/freshports-coders)，并告诉我们你愿意帮助的部分。

### GCC on FreeBSD

链接：[GCC 项目](https://gcc.gnu.org/) URL: <https://gcc.gnu.org/>\
链接：[GCC 10 版本系列](https://gcc.gnu.org/gcc-10/) URL: <https://gcc.gnu.org/gcc-10/>\
链接：[GCC 11 版本系列](https://gcc.gnu.org/gcc-11/) URL: <https://gcc.gnu.org/gcc-11/>\
链接：[GCC 12 版本系列](https://gcc.gnu.org/gcc-12/) URL: <https://gcc.gnu.org/gcc-12/>\
链接：[GCC 13 版本系列](https://gcc.gnu.org/gcc-13/) URL: <https://gcc.gnu.org/gcc-13/>

联系人：Lorenzo Salvadore <<salvadore@FreeBSD.org>>

[将 GCC 默认版本更新为 13](https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273397) 已经完成。感谢 [Antoine Brodin](mailto:antoine@FreeBSD.org) 执行了实验性运行，感谢所有其他开发者和 Ports 维护者的参与。

如前报告所述，接下来的目标是减少 GCC Ports 中的开放错误数。现已有一些工作开始处理现存的错误。

特别是，长时间未更新的 [lang/gcc14-devel](https://cgit.freebsd.org/ports/tree/lang/gcc14-devel/) Ports，之前因为没有任何 BOOTSTRAP 选项而导致构建问题。感谢其他开发者和贡献者的帮助（特别感谢 Mark Millard），我发现根据官方文档，[没有引导的构建 GCC 需要一个可用的 GCC 二进制文件](https://gcc.gnu.org/install/prerequisites.html)，因此我修改了 [lang/gcc14-devel](https://cgit.freebsd.org/ports/tree/lang/gcc14-devel/) Ports，要求设置 BOOTSTRAP 选项。但后来有声明称，通过 clang 和 libc++ 启动 GCC 的过程是 [官方支持的](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111632)，但这并不是一个高优先级的任务。

目前，[lang/gcc14-devel](https://cgit.freebsd.org/ports/tree/lang/gcc14-devel/) 是唯一一个要求设置 BOOTSTRAP 选项的 GCC Ports。计划是让所有版本大于或等于 14 的 GCC Ports（即未来的 GCC Ports）都要求设置该选项：即使没有引导的构建在某种程度上是官方支持的，但由于它在上游的低优先级，它增加了维护 GCC Ports 的负担，结果却不大。如果较低版本开始遇到无法构建的问题，我也将要求它们使用引导。

### Valgrind: 正在移植到 arm64

链接：[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>\
链接：[arm64 Ports](https://github.com/paulfloyd/freebsdarm64_valgrind) URL: <https://github.com/paulfloyd/freebsdarm64_valgrind>

联系人：Paul Floyd <<pjfloyd@wanadoo.fr>>

如标题所示，Valgrind 已经成功移植到 FreeBSD arm64（或 aarch64）。接下来的步骤是进行审查并推送到上游。

Valgrind 3.23 预计将在 2024 年 4 月发布，[devel/valgrind](https://cgit.freebsd.org/ports/tree/devel/valgrind/) 会在那之后更新。

[devel/valgrind-devel](https://cgit.freebsd.org/ports/tree/devel/valgrind-devel/) 会在我将 arm64 的变更推送后进行更新。

`--track-fds=yes` 现在会检查并警告关闭文件描述符的重复操作。`closefrom` 的处理也得到了改进，现已使用此功能。

以下是为 FreeBSD 15 版本提供的一些重要修复，尤其是对新 `libsys` 的处理。

一些小的 bug 修复包括：

* 添加了对 FreeBSD 13.3 的支持。
* 为 `reallocarray` 添加了重定向。
* 修复了 `aio*` 函数的问题。
* 为 `memccpy` 添加了重定向。
* 修复了 `_umtx_op OP_ROBUST_LISTS` 的问题。
* 为 C23 的 `free_sized` 和 `free_aligned_sized` 添加了重定向。
* 正确地将 ELF 栈保护标志传播到 Valgrind 合成的虚拟机栈。
* 修复了 `--sanity-level-3` 及以上的相关问题（仅用于 Valgrind 自身测试时）。
* 修复了 `semctl` 的一些检查问题。
* 修复了 `utrace` 的参数检查问题。
* 修复了 `clock_nanosleep` 的参数检查问题。

## 第三方项目

许多项目建立在 FreeBSD 之上，或者将 FreeBSD 组件集成到他们的项目中。由于这些项目可能对更广泛的 FreeBSD 社区有兴趣，我们有时会在季度报告中包含这些项目提交的简要更新。FreeBSD 项目不对这些提交中的任何声明的准确性或真实性作出任何保证。

### 容器与 FreeBSD：Pot、Potluck 和 Potman

链接：[Pot 在 GitHub 上的组织](https://github.com/bsdpot) URL: <https://github.com/bsdpot>

联系人：Luca Pizzamiglio (Pot) <<pizzamig@FreeBSD.org>>\
联系人：Bretton Vine (Potluck) <<bv@honeyguide.eu>>\
联系人：Michael Gmelin (Potman) <<grembo@FreeBSD.org>>

Pot 是一个 Jail 管理工具，[同时支持通过 Nomad 进行编排](https://www.freebsd.org/news/status/report-2020-01-2020-03/#pot-and-the-nomad-pot-driver)。Potluck 旨在成为 FreeBSD 和 Pot 的 Dockerhub，类似于 Docker 在 Linux 上的作用：提供一个 Pot flavor 和完整容器镜像的仓库，用于与 Pot 一起使用，在许多情况下也可以与 Nomad 一起使用。

在本季度，没有发布新的 [Pot](https://github.com/bsdpot/pot) 版本。

然而，Potluck 活跃度较高。除了为 FreeBSD 14 重新构建镜像外，新的 [Adminer](https://github.com/bsdpot/potluck/tree/master/adminer) 容器也已由首次贡献者 [Sidicer](https://github.com/Sidicer) 提交。此外，许多其他功能、更新和修复已被提交到如 [HAProxy-Consul](https://github.com/bsdpot/potluck/tree/master/haproxy-consul)、[Grafana](https://github.com/bsdpot/potluck/tree/master/grafana)、[PostgreSQL-Patroni](https://github.com/bsdpot/potluck/tree/master/postgresql-patroni) 或 [Prometheus](https://github.com/bsdpot/potluck/tree/master/prometheus) 等容器中。

针对 [Mastodon 容器](https://github.com/bsdpot/potluck/tree/master/mastodon-s3)，已发布一篇 [博客文章](https://honeyguide.eu/posts/run-your-own-mastodon-server/)，解释如何使用它来运行自己的实例。

如往常一样，欢迎提供反馈和补丁。

赞助商：Nikulipe UAB、Honeyguide Group

**最后修改时间**：2024 年 4 月 25 日，由 [Lorenzo Salvadore](https://cgit.freebsd.org/doc/commit/?id=da824e27c2) 进行修改
