FreeBSD 2023 年第四季度状态报告

这是 2023 年的第四份状态报告,共包含 18 篇条目。

这是 2023 年的最后一个季度。你可能已经注意到,本次状态报告比往常发布时间更晚,且报告数量少于上一季度。事实上,每年最后一个季度对于我们社区的许多成员来说,都是圣诞节和新年庆祝的季节,这意味着他们会花更多时间陪伴家人,而留给自己热爱的自由软件项目的时间会相应减少。因此,本季度的报告较少,提交时间也相对较晚。但最终,它们还是如期而至。

祝阅读愉快!

—— Lorenzo Salvadore,代表状态报告团队

FreeBSD 团队报告

来自 管理页面 中各个官方及半官方团队的报告。

FreeBSD 核心团队

联系方式: FreeBSD 核心团队 <core@FreeBSD.org>

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

与发布工程团队共同努力,项目将 FreeBSD 14.0-RELEASE 献给已故的 Hans Petter Selasky 以示纪念。

14.0-RELEASE

FreeBSD 14.0 于 2023 年第四季度末发布。

可在以下链接找到发布说明:https://www.freebsd.org/releases/14.0R/relnotes/

新的发布工程团队

经过多年服务,原发布工程师 gjb@ 退任。

cperciva@ 接任为新的发布工程师,karels@ 担任新的副发布工程师。

核心团队对 gjb@ 长期以来的贡献以及他所主导的多次准时发布表示感谢。

FreeBSD 2024 社区调查

2023 年底,核心团队与 FreeBSD 基金会合作开展了 2024 年社区调查。

FreeBSD 基金会

相关链接: FreeBSD 基金会 链接:https://freebsdfoundation.org/ 技术路线图 链接:https://freebsdfoundation.org/blog/technology-roadmap/ 捐赠 链接:https://freebsdfoundation.org/donate/ 基金会合作计划 链接:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/ FreeBSD 期刊 链接:https://freebsdfoundation.org/journal/ 基金会活动 链接:https://freebsdfoundation.org/our-work/events/

联系方式: Deb Goodkin <deb@FreeBSDFoundation.org>

FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于支持和推广 FreeBSD 项目及全球社区,并推动 FreeBSD 的技术发展。我们通过技术和非技术方式来实现这一目标。基金会 100% 依靠个人和企业的捐款,这些资金用于:

  • 赞助软件开发项目,为 FreeBSD 实现新功能和特性,

  • 赞助和组织会议及开发者峰会,提供合作机会并推广 FreeBSD,

  • 购买和维护硬件,以改进和维护 FreeBSD 基础设施,

  • 提供资源,提升安全性、质量保证和持续集成,

  • 提供推广、教育和宣传 FreeBSD 所需的材料和人员,

  • 促进商业供应商与 FreeBSD 开发者之间的合作,

  • 代表 FreeBSD 项目执行合同、许可证协议及其他法律事务。

在 2023 年第四季度,基金会通过以下方式支持 FreeBSD:

操作系统改进

在 2023 年第四季度,共有 236 次 src 提交、47 次 ports 提交和 33 次 doc 树提交注明了 FreeBSD 基金会为其赞助方。其中部分由基金会赞助的工作已在单独的报告条目中描述:

本季度有三位新承包商加入:

  • Cheng Cui 开始全职从事无线网络开发,主要目标是协助 Bjoern Zeeb 在 iwlwifi 设备上实现 802.11ac 支持。

  • Tom Jones 开始将 Vector Packet Processor (VPP) 移植到 FreeBSD。VPP 是一款开源的高性能用户态网络栈,能够快速处理数据包,适用于软件定义网络(SDN)和网络功能虚拟化(NFV)应用。

  • Olivier Certner 作为 FreeBSD 基金会的一般 FreeBSD 开发者加入,其贡献包括:

    • 审查、修复并加强了多个安全策略,以限制进程可见性,这些策略基于用户身份、用户组成员资格或 jail 子系统的层级关系;

    • login 类代码中修复了多个问题,包括一个允许非特权用户绕过资源限制的漏洞;

    • 为 AMD Zen2 处理器的 Zenbleed 漏洞实施了一个安全的硬件修复方案。

此外,在 2023 年第四季度,基金会赞助的其他部分工作包括:

  • arm64:添加 Armv8 rndr 随机数生成器支持

  • 网络:改进 net80211LinuxKPIiwlwifi 的功能和修复

  • OpenSSL:更新至 3.0.113.0.12

  • freebsd-update:修复多个问题,以为 14.0 版本做准备

  • SSH:更新至 OpenSSH 9.5p1

  • IOMMU:多个错误修复

  • 文件系统makefs / ZFS 相关修复

关于基金会在 2023 年全年的软件开发工作,请参阅: https://freebsdfoundation.org/blog/2023-in-review-software-development/

FreeBSD 基础设施

我们批准了 10 余万美元 用于 FreeBSD 集群更新,该项目于 2023 年底启动,并将持续到新的一年。此项目包括采购和运送 15 台新服务器,它们将被部署在 NYI 公司慷慨捐赠的芝加哥数据中心的 4 个机架 里。集群管理团队根据需求确定了以下硬件配置:

  • 5 台 package 构建服务器

  • 3 台 web 服务器

  • 2 台 package 镜像服务器

  • 2 台 CI 服务器

  • 2 台 防火墙/路由器

  • 1 台 管理堡垒机

关于 2023 年的基础设施支持详情,请参阅: https://freebsdfoundation.org/blog/2023-in-review-infrastructure/

持续集成与工作流改进

作为对 FreeBSD 项目持续支持的一部分,基金会提供了一名全职员工,专门负责改进 FreeBSD 的持续集成(CI)和测试基础设施。完整的更新内容可在本季度状态报告中查看。

合作伙伴关系与研究

在 2023 年第四季度,我与以下个人、公司和组织进行了交流:

  • Phil Shafer(Juniper Networks)在 All Things Open 会议上介绍了 libxo 库,并分享了他在输出重写与过滤方面的持续研究。

  • Simon Gerraty(Juniper Networks)在 Vendor Summit 上介绍了 SecureBoot

  • 其他企业与机构:AMD、Ampere、互联网安全中心(CIS)、创新英国、Michael Dexter、Metify、微软、NetApp、NetScaler、NIST、Nozomi Networks、英伟达、Open Container Initiative 社区成员、OpenSSF、RG Nets、Doug Rabson。

2023 年 10 月,我有幸参加 NetApp 年度大会,与 NetApp 及其合作伙伴和客户就 AI 及 AI 数据管道、混合云、绿色计算 等主题进行了深入交流。我还借机分发了一些 FreeBSD 胸针 🙂,并与一位 NetApp 客户公司的 FreeBSD 用户建立了联系。

2023 年第四季度,我们发布了 FreeBSD SSDF 认证 计划,以帮助 FreeBSD 商业用户满足 美国政府采购法规 的新要求。该计划得到了 NetApp、Metify 和 NIST 的宝贵反馈,并受到了 OSI 的 Open Policy Alliance 社区的启发。

2023 年 12 月,Open Container Initiative(开放容器标准)技术监督委员会通过了 Doug Rabson 提出的提案,将成立工作组扩展 OCI 运行时规范,以支持 FreeBSD。感谢所有贡献者!FreeBSD 的 OCI 运行时扩展是社区最常请求的功能之一,我很高兴能在协调工作中尽一份力。

2023 年 11 月的 供应商峰会 取得了圆满成功,特别感谢 John Baldwin 和 Anne Dickison 在组织和协调方面的辛勤付出。我在会议上受益匪浅,尤其是:

  • 与众多 FreeBSD 用户的交流

  • CHERI 项目演讲

  • 最终用户小组讨论

  • Allan Jude 关于“Upstream First”策略的演讲

关于基金会在 2023 年的 合作伙伴关系与研究 方面的完整回顾,请参阅: https://freebsdfoundation.org/blog/2023-in-review-partnerships-and-research/

宣传

从组织和参加活动,到创建技术内容进行教育,再到扩大 FreeBSD 在媒体中的覆盖面,以下是我们在上个季度为支持 FreeBSD 所做的一些工作:

想要了解我们在 2023 年宣传 FreeBSD 的详细回顾,请查看 2023 年宣传回顾https://freebsdfoundation.org/blog/2023-in-review-advocacy/ 或查阅我们的月度通讯:https://freebsdfoundation.org/our-work/latest-updates/?filter=newsletter

筹款

感谢上个季度所有为支持 FreeBSD 项目工作做出财务贡献的人。你们的支持让我们离目标更近了,我们对你们的投资表示感谢!我们仍在收到邮寄捐款,最终金额将在 2 月中旬公布。

请考虑在 2024 年继续支持我们的工作,捐赠链接如下:https://freebsdfoundation.org/donate/

或者,了解我们的合作伙伴机会:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/

法律/FreeBSD 知识产权

基金会拥有 FreeBSD 商标,并且我们有责任保护这些商标。我们还为核心团队提供法律支持,帮助他们解决相关问题。

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

FreeBSD 发布工程团队

链接: FreeBSD 13.3-RELEASE 日程 URL:https://www.freebsd.org/releases/13.3R/schedule/ FreeBSD 发布 URL:https://download.freebsd.org/releases/ISO-IMAGES/ FreeBSD 开发快照 URL:https://download.freebsd.org/snapshots/ISO-IMAGES/

联系方式:FreeBSD 发布工程团队, <re@FreeBSD.org>

FreeBSD 发布工程团队负责制定和发布 FreeBSD 项目的官方发布日程,宣布代码冻结以及维护相关分支等工作。

在 2023 年第四季度,团队继续推进 14.0-RELEASE,并于 11 月发布了最终的 RELEASE 版本。接下来的 13.3-RELEASE14.1-RELEASE 循环的规划已开始。

发布工程团队继续提供 mainstable/13 分支的每周开发快照,并在 14.0-RELEASE 发布后,开始为 stable/14 提供每周快照。

在担任发布工程负责人十多年后,Glen Barber 退休了;他的副手 Colin Percival 接任发布工程负责人,而 Mike Karels 担任副发布工程负责人。

集群管理团队

链接: 集群管理团队成员 URL:https://www.freebsd.org/administration/#t-clusteradm

联系方式:集群管理团队 <clusteradm@FreeBSD.org>

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

在本季度,团队完成了以下工作:

  • 定期支持 FreeBSD.org 用户账户。

  • 定期为所有物理主机和镜像提供磁盘和零部件支持(以及更换)。

  • 启用在 FreeBSD 项目管理的镜像站中同步 https://www.FreeBSD.orghttps://docs.FreeBSD.org

  • 集群刷新,将所有主机和 jails 升级至最新版本的 15-CURRENT、14-STABLE、13-STABLE 和 12-STABLE。

  • 开始逐步淘汰 12-STABLE 基础设施,因为该分支接近生命周期结束。

除了这些项目外,在 Modirum 慷慨赞助了 Philip 在 10 月的大部分时间后,我们成功地将 pkgbase 推进到“预览”生产阶段,及时为 14.0-RELEASE(11 月发布)做好准备。

我们还在瑞典 Sjöbo 安装了一个新的欧洲镜像站,该站由 Teleservice Skåne AB 赞助。现在,欧洲的流量大致均匀地分配在我们现有的法兰克福镜像(由 Equinix 赞助)和新的瑞典镜像之间。在服务超过十年后,我们计划在 2024 年第一季度停用位于英国的镜像站。我们感谢 Bytemark Hosting 长期以来对该镜像的支持。

下个季度,在 FreeBSD 基金会的支持下,我们计划在芝加哥建立一个新的主集群站点。

FreeBSD 官方镜像概览

当前镜像站位置包括澳大利亚、巴西、德国、日本(两个完整镜像站)、马来西亚、南非、瑞典、台湾、英国(完整镜像站)、美国(加利福尼亚、新泽西【主站点】和华盛顿)。

硬件和网络连接由以下公司慷慨提供:

持续集成

链接: FreeBSD Jenkins 实例 URL:https://ci.FreeBSD.org FreeBSD CI Tinderbox 视图 URL:https://tinderbox.freebsd.org FreeBSD CI 工件存档 URL:https://artifact.ci.FreeBSD.org 托管 CI 维基 URL:https://wiki.FreeBSD.org/HostedCI 第三方软件 CI URL:https://wiki.FreeBSD.org/3rdPartySoftwareCI 与 freebsd-testing@ 相关的工单 URL:https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status= FreeBSD CI 存储库 URL:https://github.com/freebsd/freebsd-ci dev-ci 邮件列表 URL:https://lists.FreeBSD.org/subscription/dev-ci

联系方式:Jenkins 管理员 <jenkins-admin@FreeBSD.org> 联系方式: 許立文 <lwhsu@FreeBSD.org> 联系方式:freebsd-testing 邮件列表 联系方式:IRC #freebsd-ci 频道(EFNet)

在 2023 年第四季度,我们与项目贡献者和开发者合作,解决他们的测试需求。同时,我们与外部项目和公司合作,通过在 FreeBSD 上进行更多测试来增强他们的产品。

完成的重要任务:

  • 添加构建 amd64 架构的工作,使用 GCC 13(感谢 jhb@)

  • 为 stable-14 添加 powerpc64le 作业配置(感谢 alfredo@)

  • 更新 main 和 stable/14 分支的构建环境至 14.0-RELEASE

进行中的任务:

  • 设计并实现基于预提交的 CI 构建和测试系统,以及基于拉取/合并请求的系统(以支持 工作流程工作组

    • 概念验证系统正在进行中

  • 设计并实施使用 CI 集群构建发布工件,类似发布工程的做法,从快照构建开始

  • 简化 CI/测试环境的设置,方便贡献者和开发者使用

  • 设置 CI 阶段环境,并将实验性作业放置在其上

  • 重新设计硬件测试实验室,增加更多硬件进行测试

待处理或排队的任务:

  • 收集和整理 CI 任务和想法

  • 为运行测试的 VM 客户机设置公共网络访问

  • 实施使用裸金属硬件运行测试套件

  • 添加 drm Port 构建测试,针对 -CURRENT

  • 计划运行 ztest 测试

  • 帮助更多软件在其 CI 流水线中获得 FreeBSD 支持(维基页面:3rdPartySoftwareCIHostedCI

  • 与托管 CI 提供商合作,改善 FreeBSD 的支持

请查看 与 freebsd-testing@ 相关的工单 以获取更多关于工作进行中的信息,欢迎加入我们的努力!

赞助商:FreeBSD 基金会

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 <portmgr-secretary@FreeBSD.org> 联系方式:FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>

Ports 管理团队负责监督 Ports 的整体方向,构建包以及人事事务。以下是本季度的工作概况。

  • 根据 INDEX,目前 Ports 中共有 31,942 个 ports。当前大约有 3,100 个开放的 ports PR。这个季度,主分支共进行了 9,424 次提交,涉及 157 名提交者,2023Q4 分支共进行了 781 次提交,涉及 71 名提交者。与上个季度相比,主分支的提交次数显著减少(从 11,454 次减少),而季度分支的回溯提交也略有减少(从 828 次减少)。ports 数量也有所下降(从 34,600 个减少)。

在第四季度,主分支共进行了约 9,424 次提交,最活跃的提交者如下:

sunpoet   2946
yuri       861
bofh       793
jbeich     419
fuz        324
eduardo    168
fernape    160
jhale      153
thierry    146
diizzy     123

在第四季度,我们欢迎 Michael Osipov (michaelo) 和 Timothy Beyer (beyert) 成为新的提交者,但也遗憾地告别了 bland、sbruno、hselasky 和 gjb。

我们邀请了 arrowd、flo 和 riggs 成为 portmgr-lurkers,加入未来几个月的工作。

在季度末,FreeBSD 12.x 的支持被移除。

第四季度结束时,还引入了子包到 Ports。与引入 flavor 时类似,新子包将需要得到 portmgr 的批准,才能推送到树中。使用子包后,可以从单个 ports 构建生成多个包。

基础设施方面发生了以下变化:

  • 构建了 14.0-RELEASE 的包

  • 更新了 Poudriere 至 release-3.4

不再维护的 www/qt5-webkit 被移除。

以下软件包被移除:

  • postgresql11, php80, mysql57, percona57, ghostscript9

以下默认版本发生了变化:

  • perl 升级至 5.36

  • ghostscript 升级至 10

  • corosync 升级至 3

更新的主要 ports 包括:

在上个季度,pkgmgr@ 执行了 26 次 exp-run,测试了各种 ports 升级、默认版本更新、子包支持和基本系统更改。

Bugmeister 团队和 Bugzilla

链接: Bugmeister 团队 URL:https://www.freebsd.org/administration/#t-bugmeister FreeBSD Bugzilla URL:https://bugs.freebsd.org/bugzilla/

联系方式:Bugmeister <bugmeister@FreeBSD.org>

最近对我们的 Bugzilla 实例进行了以下维护:

  • 每周提醒邮件现在包括了参数 mfc-* 查询的正确值;

  • 仪表板页面删除了一个过时的查询。(我们不再使用关键字 patch-ready ;它带来了过多的文书工作。因此,该字段的查询已经没有意义。)

  • 限制报告 PR 的最大数量的上限已从 10000 提高到 12500。

此外,我们已更新了关于 Bugzilla 的 Wiki 文档:

此外,针对 FreeBSD 12 的 PR 正在被筛选,因为 12 已于 2023 年 12 月 31 日停止支持。

我们还在努力记录 Bugzilla 的设置,特别是关于我们的定制部分。这是为了使我们的仓库与生产环境中运行的版本保持一致。

过去一个季度(和年度)的 PR 数量保持稳定。然而,我们似乎现在处理 PR 的速度更快了。参考:https://bugs.freebsd.org/bugzilla/page.cgi?id=dashboard.html&days=90

PR 总数保持在 11,400 左右。

Bugmeister 也在努力重新启动 Bugathons。请参见更新后的页面 https://wiki.freebsd.org/Bugathons

Bugmeister 感谢一批协助处理 bug 的人员,包括 Mina Galić、Graham Perrin、Lorenzo SalvadoreFernando Apesteguìa 等人。

此外,Bugmeister 感谢所有帮助处理 PR 的 FreeBSD 提交者。在过去的几个月里,我们似乎已经接近稳定状态。

用户空间

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

服务 jail — 自动 jailrc.d 服务

链接: D40370: 自动 jail rc.d 服务的基础设施 URL:https://reviews.freebsd.org/D40370 D40371: 自动服务 jail:为自动服务 jail 中服务的完全功能设置一些配置 URL:https://reviews.freebsd.org/D40371 D42779: 手册 / rc 文章更新,关于服务 jail URL:https://reviews.freebsd.org/D42779

联系方式:Alexander Leidinger <netchild@FreeBSD.org>

服务 jail 扩展了 rc(8) 系统,允许自动 jail rc.d 服务。服务 jail 继承父主机或 jail 的文件系统,但默认使用 jail 的其他所有限制(进程可见性、受限的网络访问、文件系统挂载权限、sysvipc 等)。额外的配置可继承父主机的 IP、sysvipc、内存页面锁定,并使用 bhyve 虚拟机监控器 (vmm(4))。

如果你想将例如 local_unbound 放入服务 jail 并允许 IPv4 和 IPv6 访问,只需将 rc.conf(5) 更改为:

local_unbound_svcj_options=net_basic
local_unbound_svcj=YES

注意:所有基本系统服务都已在补丁中覆盖,使用 name_svcj_options 或在服务 jail 功能不适用的地方进行硬编码禁用(例如,纯服务,它们改变运行时配置但不启动守护进程,或者运行无法在 jail 内以合理方式运行的程序)。因此,上面的 local_unbound_svcj_options 这行是多余的,仅作为示例,说明所需配置的数量。

虽然这没有手动 jail 设置(具有独立文件系统和 IP/VNET)那样的安全优势,但它更容易设置,同时提供了 jail 的一些安全优势,如隐藏同一用户的其他进程。

上次服务 jail 状态报告 以来,添加了以下内容:

  • 在服务 jail 框架中支持 NFS(未经测试),

  • 允许将 startstop 之外的其他服务命令 jail ,

  • D40371 中补丁的所有基本系统服务的服务 jail 选项/配置,

  • 在手册中开始记录服务 jail 。

并非所有服务都经过测试,但所有服务都有配置。

欢迎任何测试和反馈(即使是简单的“服务 X 在服务 jail 中正常工作”)。

内核

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

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

联系方式:Rick Macklem <rmacklem@FreeBSD.org>

NFSv4.1/4.2 支持一种称为“委托”的功能。当一个 NFSv4.1/4.2 客户端持有委托时,该客户端对文件拥有一定的权限,包括保证除非委托被召回,否则其他客户端不能更改该文件。因此,当客户端持有文件的委托时,它可以积极地缓存文件的数据,因为它知道在返回委托之前,其他客户端不会修改该文件。

该项目旨在允许 NFSv4.1/4.2 客户端在客户端本地非易失性存储上积极缓存文件数据,当客户端持有文件的委托时。我很久以前创建了一个补丁,试图为 NFSv4.0 做到这一点,但它从未达到可以使用的阶段。这个项目是对该补丁的完全重写,部分原因是 NFSv4.1/4.2 加上其他最近的 NFSv4 相关变化使得这一操作变得更加可行。

我现在有代码运行得相当好,并希望在冬季为其他人提供补丁进行测试。早期测试显示了希望。在进行“make buildkernel”的测试时,启用和未启用 packrat 的测试结果如下:

表格 1. NFS 操作计数

NFS 操作计数
Getattr
Lookup
Read
Write
总 RPC

启用 packrats

433506

99254

0

0

371736

未启用 packrats

2359913

97954

10748

0

2318810

表格 2. 运行耗时

这是你需要的表格:

Elapsed Run Time (sec) 启用 packrats
未启用 packrats

5561

6203

如你所见,启用 packrat 的情况运行得稍快,且 RPC 数量较少。尽管此测试是在我的小型局域网中进行的,但预计 NFSv4.1/4.2 在广域网中的挂载会显示出更大的性能差异。我会提到,packrat 缓存是通过将 FreeBSD 的 /usr/src 解压到 NFSv4.1/4.2 挂载点来启动的。

这将是一个非常实验性的功能,但希望它能让 NFS 挂载在 WAN 环境中(例如移动笔记本电脑)更有效地使用。

仍然需要做一些工作,特别是在 NFSv4.1/4.2 客户端重启后恢复委托方面。希望下一次状态报告中会提供一个 URL,允许下载供用户测试的补丁。

架构

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

armv7 Ports 质量保证

联系人:Robert Clausecker <fuz@FreeBSD.org>

作为长期项目的一部分,旨在提高 FreeBSD armv7 架构的 Ports 质量,已修复了基本系统和各种 Port 中的多个问题。通过这一举措,能够成功构建自 2023Q4 分支的二进制包的数量从 2023 年 10 月 4 日的 30018 增加到 2023 年 11 月 24 日的 31118。

已识别并解决了两个影响包构建的内核错误(PR 267788PR 274705),这两个问题单独就导致了 900 多个构建失败。其他常见的构建失败原因包括:

  • 缺乏 FreeBSD 特定的 armv7 支持代码

  • 数据对齐问题(armv7 是少数不支持非对齐内存访问的架构之一)

  • 构建过程中出现地址空间耗尽问题(通常与 LTO 相关;PR 274705 解决了许多这种情况)

  • armv7 FreeBSD 上缺少 OpenMP 支持

如果你是 armv7 上使用 FreeBSD Ports 的用户,遇到任何问题,请随时在我们的 bug 跟踪器 上提交错误报告。

amd64 的 SIMD 增强

链接: FreeBSD 基金会博客文章 simd(7) 正在接受测试的工作

联系人:Robert Clausecker <fuz@FreeBSD.org>

该项目已完成,旨在通过 SIMD 实现增强 amd64 上的 libc 字符串函数。总共编写了 17 个 libc 函数的 SIMD 实现,并根据需要补充了标量实现。通过这次重写,平均长度为 64 个字符的字符串函数的性能提高了 5.54 倍。此外,还有 9 个其他库函数被重写,以调用 SIMD 增强的例程,从而带来好处,而不需要额外的汇编实现。详情请参见上述的 FreeBSD 基金会博客文章。

部分 SIMD 工作已出现在 CURRENT 分支中,其余部分目前正在接受测试,若没有问题,将进行合并。计划将所有改进反向移植到 14-STABLE,以便包含在 FreeBSD 14.1 中。

赞助商:FreeBSD 基金会

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

FreeBSD 上的 OpenStack

链接: OpenStack OpenStack on FreeBSD

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

在第四季度,我们成功地将最初虚拟化的 OpenStack 平台迁移到运行 FreeBSD 14.0-STABLE 的物理机器上。迁移的 OpenStack 组件包括 Keystone、Glance、Placement、Neutron 和 Nova。作为这一过程的一部分,我们借此机会更新了 安装文档和依赖列表

接下来,我们鼓励有兴趣的用户和开发者按照此文档在他们的 FreeBSD 环境中轻松重建 OpenStack 平台。任何遇到的问题或困难欢迎在 GitHub 项目页面 上报告。你的贡献将有助于改进我们的安装文档以及整体移植工作。

在下一个季度,我们的重点将转向将迁移过程中生成的各种补丁和解决方法,以更结构化的代码形式整合到项目中。此外,我们计划为每个 OpenStack 组件开发 FreeBSD Port,从而进一步简化安装过程。

赞助商:FreeBSD 基金会

FreeBSD 与微软 HyperV & Azure

链接: Microsoft Azure 文章在 FreeBSD wiki 上 Microsoft HyperV 文章在 FreeBSD wiki 上

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

在本季度,我们解决了所有阻碍问题,并发布了 14.0-RELEASE 在 Azure Marketplace,提供完整的架构(amd64, arm64)和虚拟机生成(gen1, gen2)支持,并且可以选择 UFS 和 ZFS 作为根文件系统。

正在进行的任务:

  • 自动化镜像构建和发布过程,并合并到 src/release/

  • 构建并发布快照构建到 Azure 社区画廊

以上任务由 FreeBSD 基金会赞助,由微软提供资源。

待办事项

赞助商:微软(为微软内部人员提供)及资源提供给其他人员 赞助商:FreeBSD 基金会(为其他所有事项提供赞助)

FreeBSD EC2

链接: FreeBSD/EC2 Patreon

联系人:Colin Percival <cperciva@FreeBSD.org>

FreeBSD 可用于 amd64(Intel 和 AMD)和 arm64(Graviton)EC2 实例。工作持续进行,确保即将推出的实例类型得到支持;最近,需要进行一些更改以支持“第 7 代”Intel 和 AMD 实例。

FreeBSD 14.0-RELEASE 携带了实验性的 ZFS 根 AMI 和 "cloud-init" AMI。还计划提供其他 "flavored" FreeBSD AMI,包括 "AMI Builder" 和 "minimal"(没有调试符号)。

发布构建过程中发现的一个错误,导致 14.0-RELEASE AMI 包含 /etc/rc.conf 中重复的行,已被修正,未来的发布版本应该不会受到影响。

ec2-aws-imdsv2-get 工具中的一个错误导致 14.0-RELEASE AMI 不支持二进制用户数据文件,现已修正,未来的发布版本不再受此影响。

此工作由 Colin 的 FreeBSD/EC2 Patreon 支持。

文档

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

文档工程团队

链接: FreeBSD 文档项目 FreeBSD 文档项目新贡献者入门指南 文档工程团队

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

doceng@ 团队负责处理与 FreeBSD 文档项目相关的一些元项目问题;有关更多信息,请参见 FreeBSD Doceng 团队章程

在过去的一个季度:

Glen Barber 离开了 doceng。doceng 感谢 gjb@ 的服务。

应 Ceri Davies 的要求,他的提交权限被暂时保管。doceng 感谢 ceri@ 的贡献。

mhorne@ 将由 carlavilla@ 指导,以获得文档提交权限。

FreeBSD 手册:

手册已更新,显示 FreeBSD 14.0 是最新发布版本。

FreeBSD Weblate 翻译

链接: 在 Weblate 上翻译 FreeBSD FreeBSD Weblate 实例

2023 年第四季度状态

  • 17 支团队语言

  • 203 名注册用户

语言

  • 简体中文 (zh-cn) (进度:7%)

  • 繁体中文 (zh-tw) (进度:3%)

  • 荷兰语 (nl) (进度:1%)

  • 法语 (fr) (进度:1%)

  • 德语 (de) (进度:1%)

  • 印度尼西亚语 (id) (进度:1%)

  • 意大利语 (it) (进度:5%)

  • 韩语 (ko) (进度:33%)

  • 挪威语 (nb-no) (进度:1%)

  • 波斯语 (fa-ir) (进度:2%)

  • 波兰语 (进度:1%)

  • 葡萄牙语 (进度:0%)

  • 巴西葡萄牙语 (pt-br) (进度:22%)

  • 西班牙语 (es) (进度:35%)

  • 土耳其语 (tr) (进度:2%)

我们感谢所有贡献翻译或审阅文档的人员。

请帮助在你的本地用户组中推广这一努力,我们总是需要更多的志愿者。

FreeBSD 手册工作组

联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>

FAQ 工作组

联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>

新的 FAQ 与 FreeBSD 14.0 一起发布。

FreeBSD 网站改版 - WebApps 工作组

联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>

工作组负责创建新的 FreeBSD 文档门户,并重新设计 FreeBSD 主网站及其组件。FreeBSD 开发者可以通过 FreeBSD Slack 渠道 #wg-www21 跟进并加入工作组。该工作将分为三个阶段:

  1. 网站上的手册页重新设计 使用 mandoc 生成 HTML 页面脚本。(已完成,Doceng 审批,部署日期尚未决定)公开实例见 https://man-dev.FreeBSD.org

  2. FreeBSD 主网站重新设计 新设计,响应式和黑暗主题。(几乎完成,已在 EuroBSDCon 上展示

  3. 网站上的 Ports 页面重新设计 用于创建应用程序门户的 Ports 脚本。(进行中

FreeBSD 在线编辑器和手册页编辑器

链接: FreeBSD 在线文档编辑器 FreeBSD 在线手册页编辑器

联系人:Yan-Hao Wang <bses30074@gmail.com> 联系人:許立文 <lwhsu@FreeBSD.org>

本报告继续概述 FreeBSD 在线编辑器和手册页编辑器项目,概述了近期提升文档和手册页编辑过程的努力。为了优化项目的结构完整性,我们聘请了专业的前端程序员。我们计划尽快发布编辑器,并且目前有一些任务需要额外的支持。

  1. 我们正在积极寻找合适的人选,进行项目的全面前端安全审查。

  2. 需要仔细检查 JavaScript 代码,确保其稳健性和效率。我们正在寻找具备专业技能的人来深入检查代码库,找出任何问题,并提出优化建议以提高性能。

  3. 由于目前没有现成的 JavaScript 库来渲染 mandoc,我不得不自己创建一个。然而,在编辑过程中仍然存在一些隐藏的错误。我们正在寻求帮助解决这些渲染问题。

FreeBSD Wiki

链接: Wiki

联系人:Wiki 管理团队 <wiki-admin@FreeBSD.org>

目前正在计划向 Discord 上的观众介绍 Wiki(我们在 FreeBSD 社区中有太多的“孤岛”)。欲了解更多信息,请联系 FreeBSD Discord 上的 Setesh。

正在进行对 Wiki 软件本身的更新工作。继续使用 MoinMoin 需要一个包含较低版本 Python 的 jail。MoinMoin 项目本身似乎在重新设计的过程中停滞;至少需要完成后端数据库的升级。

考虑中的替代方案包括 MediaWiki 和 DocuWiki;详见 https://wiki.freebsd.org/Wiki/NextGeneration。大多数讨论正在 Matrix 上进行;如果你想参与,请联系 wiki-admin@FreeBSD.org

Ports

影响 Ports 的变化,无论是涉及大多数树的广泛变化,还是个别 Port 的变化。

KDE 在 FreeBSD 上

链接: KDE/FreeBSD 项目 FreeBSD — KDE 社区 Wiki

联系人:Adriaan de Groot <kde@FreeBSD.org>

KDE 在 FreeBSD 上的项目为 FreeBSD Ports 打包了 CMake、Qt 和来自 KDE 社区的软件。该软件包括一个完整的桌面环境 KDE Plasma(支持 X11 和 Wayland),以及可以在任何 FreeBSD 机器上使用的数百个应用程序。

KDE 团队desktop@x11@ 的一部分,负责构建软件栈,使 FreeBSD 成为美观且可用的日常图形桌面工作站。以下笔记主要描述 KDE 的 Port,但也包括对整个桌面栈重要的项目。

基础设施

CMake 已更新多次,目前版本为 3.28.1,为最新的上游版本。FreeBSD 的 Ports 再次完全更新。

Qt5 现在进入长期支持阶段,更新频率较低。KDE 补丁集是 Qt 的一个社区支持分支,拉取 KDE 社区的上游补丁和修复,并更新到 5.15.12。Qt5 Port 中有几个废弃项(见下文)。

Qt6 和 KDE 即将发布的 KDE Plasma 6 大版本(计划于 2024 年第一季度发布)是 KDE 团队的下一个主要里程碑。Qt6 已更新到 6.6.1 版本,同时更新了 Qt 的 Python 绑定 PySide。KDE Frameworks 6 的 alpha 版本已添加到 Ports 中。

KDE 栈

KDE Gear 每季度发布一次,KDE Plasma 每月更新一次,KDE Frameworks 每月都有新版本发布。这些(大型)更新在上游发布后不久就会推出,并未单独列出。

  • KDE Frameworks 达到了 5.112 版本。KDE Frameworks 5 系列即将结束,尽管它仍会有几个月的长期支持。

  • KDE Plasma 桌面已更新到 5.27.10 版本。

  • KDE Gear 更新到 23.08.4 版本。

  • KDE Frameworks 6(alpha)更新到 5.247 版本,并已在 Ports 中更新。

  • KDE Plasma 桌面 6(beta 2)更新到 5.91.0,并已在 Ports 中更新。

相关 Port

KDE 生态系统包含海量的 Port——大多数由 kde@ 维护,所有 Port 都建立在 Qt 和 KDE Frameworks 的共享基础上。KDE 团队根据需要更新这些 Port。本季度,KDE 团队再次感谢 Tobias C. BernerGleb PopovJason E. Hale 持续更新 Port。

许多 Port 已“风味化”,支持在 Ports 中使用 Qt5 和 Qt6 版本。

特别提到:

废弃项

网页浏览器体积庞大,具有相当大的安全面。已于 2023 年最后一天移除了备受推崇的 Port www/qt5-webkit WebKit 。

GNOME 44 的状态

链接: GNOME 开发仓库

联系人:FreeBSD GNOME 团队 <gnome@FreeBSD.org> 联系人:Olivier Duchateau <duchateau.olivier@gmail.com>

GNOME 是一款完整的桌面环境,主要基于 GLib、GTK3/GTK4 和 libadwaita。它提供了两个窗口管理器或合成器:x11-wm/mutterx11-wm/metacity

目前在 Ports 中,x11/gnome-shell 上游不再支持。由于这项工作量较大,为了让用户能够使用 GNOME 44,我决定将更新分开进行,因为它影响到多个 Port。

作为 x11/budgie 和 Pantheon 桌面的维护者(Pantheon 是一款基于 x11-wm/mutter 的窗口管理器,专为 elementary OS 开发),我需要一些更新版的 GNOME 库。

首先,我着手处理 WebKitGTK。4.0 “legacy” API 几乎不再被 GNOME 的库使用。最低要求是 4.1 API。我为 Mk/Uses 框架创建了 webkit.mk,以便为 www/webkit2-gtk3 添加“风味”。目前有一个 进行中的努力,但它目前不稳定。像 Epiphany、邮件客户端(Geary、Evolution)或包:sysutils/gnome-control-center 中的在线帐户面板等应用程序经常崩溃。

尽管如此,桌面的其余部分是可用的,最新的 GNOME Shell 版本(44.7)是可用的。我已经开始提交我的第一个补丁进行审查(以及 Bugzilla 中的补丁)。

我还移植了 GNOME Flashback 会话模块。它依赖于 x11-wm/metacityx11-toolkits/libwnck3

我还维护了一份 文档,并且我们可以 查看 可用的各种桌面。

GNOME 45 已接近完成,除了 GNOME Shell 扩展。对于这个版本,我将专注于 Wayland 支持(bug #258042bug #271836)。

欢迎进行测试和补丁,特别是 WebKitGTK。

接下来几个月我计划进行以下工作:

  • 允许在显示管理器(gdm)中选择会话,这是我们补丁的回归问题。

  • 修复 sysutils/gnome-control-center 中的网络共享(VNC、SSH)面板,并为 bug #275900 提供回溯。

  • 继续更新 GNOME 45 的应用程序和库。

FreeBSD 上的 GCC

链接: GCC 项目 GCC 10 版本系列 GCC 11 版本系列 GCC 12 版本系列 GCC 13 版本系列

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

将 GCC 默认版本更新为 13 的工作正在推进。感谢 Antoine Brodin 进行的实验运行以及所有其他开发者和 Ports 维护者的参与。

正如你可能记得的,上个季度,额外的补丁与默认版本更新一起进行了测试,其中一些已经合并:

  • lang/gcc11 已切换回 STANDARD_BOOTSTRAP,并更新到 11.4.0 版本;

  • lang/gcc13 已更新到 13.2.0 版本。

大约一半的公开 bug 已经修复,但还有一半未解决。如果你维护任何受影响的 Port,请尝试修复你的 Port 并/或使其能够在基础编译器下构建。

本季度,关于 GCC 的多个 bug 报告也已被打开。待默认 GCC 版本更新完成,所有这些 bug 都将得到解决。

第三方项目

许多项目在 FreeBSD 上构建或将 FreeBSD 的组件纳入其项目中。由于这些项目可能对更广泛的 FreeBSD 社区感兴趣,我们有时会在季度报告中包括这些项目提交的简要更新。FreeBSD 项目不对这些提交中的任何声明的准确性或真实性做出任何声明。

容器与 FreeBSD:Pot、Potluck 和 Potman

链接: Pot 在 GitHub 上的组织

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

Pot 是一个 Jail 管理工具,还支持通过 Nomad 进行编排

在本季度,Pot 0.16.0 发布,包含 多个新特性和修复,其中包括 一个新设置,用于防止 VNET pots 之间的直接流量新属性,用于配置 pot 停止行为。还发布了维护/稳定版本的 potnet (0.5.0)nomad-pot-driver (0.10.0)

Potluck 旨在成为 FreeBSD 和 Pot 的 Dockerhub,类似于 Docker 对 Linux 和 Docker 的作用:一个存储 Pot 风味和完整容器镜像的仓库,用于与 Pot 配合使用,在许多情况下也可与 Nomad 配合使用。

在上个季度中,新增的一个容器镜像是 Zincsearch,这是一个用 Go 编写的轻量级 Elasticsearch 替代品。

同时,Mastodon 容器 正在为公共的 mastodon.africa 实例提供服务。

此外,我们获得了更多的宣传:BSD Now 第536集 标题为 “Pot-flavored Jails”。

像往常一样,欢迎提供反馈和补丁。

赞助商:Nikulipe UAB、Honeyguide Group

最后更新于

这有帮助吗?