github编辑

FreeBSD 2024 年第三季度状态报告

原文地址:FreeBSD Status Report Third Quarter 2024arrow-up-right

这是 2024 年第三季度的状态报告,共有 32 项条目。

不幸的是,同上个季度一样,本季度我们再次迟到。正如我们的读者所熟知,许多 FreeBSD 贡献者都是志愿者,因此像状态报告这样的重要程度较低的截止日期(ddl)并不总能按时完成。事实上,如果你还不是 FreeBSD 的贡献者,请考虑加入我们arrow-up-right:你可在与世界各地的开发者一道工作的同时,减轻大家的负担,同时学到新技能。

祝阅读愉快,

Lorenzo Salvadore,

代表状态团队

FreeBSD 团队报告

来自各个官方和半官方团队的条目,见 管理页面arrow-up-right

FreeBSD 核心团队

联系方式:

FreeBSD 核心团队 <[email protected]envelope>

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

核心团队欢迎新秘书 René Ladan(rene@)的加入。

联络人

从核心团队中选出了各小组新的联络人:

  • bugmeister:glebius

  • ci:olivier

  • clusteradm:mat

  • doceng:lwhsu

  • foundation:hrs

  • portmgr:tcberner

  • re:dch

  • secteam:allanjude

  • srcmgr:glebius

202409 开发者峰会

  • 核心团队几乎全员参加了 2024 年在都柏林举办的 EuroBSDCon。下列人员出席:allanjude, dch, glebius, hrs, lwhsu, mat, olivier, rene

  • 核心团队与 FreeBSD 基金会举行了周期性会议,并借此机会面对面交流。会议内容包括改善二者以及与社区的合作与沟通。

新的 FreeBSD releases 支持时间表

  • 核心团队批准了 re@ 提出的缩减 FreeBSD releases 支持时间表的提案,将支持期限从五年缩减为四年,四年后会以尽力而为的方式继续为该 releases 提供支持。该提案得到了 portmgr 和 secteam 的认同。

srcmgr

  • 核心团队帮助成立了新的 srcmgr 团队。其章程尚未完全确定,如需要,可以在 6 到 12 个月后进行调整。

  • 从现在起,新的 src 提交权限提名应发送至 srcmgr@ 而非 core@。

  • 提议设立一项潜水者计划,以保持新成员的流入。

  • 核心团队在 202409 开发者峰会上宣布了 srcmgr,并于 9 月 29 日向 developers@ 发送了后续通知。

提交权限

  • 核心团队欢迎 Igor Ostapenko(igoro)成为新的 src 提交者。

  • 核心团队增补了由 grim reaper 脚本发送的文本:增加了如何重新激活开发者提交权限的说明。

FreeBSD 基金会

链接:

FreeBSD 基金会arrow-up-right 链接:https://freebsdfoundation.org/arrow-up-right

技术路线图arrow-up-right 链接:https://freebsdfoundation.org/blog/technology-roadmap/arrow-up-right

捐赠arrow-up-right 链接:https://freebsdfoundation.org/donate/arrow-up-right

基金会合作伙伴计划arrow-up-right 链接:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/arrow-up-right

FreeBSD 期刊arrow-up-right 链接:https://freebsdfoundation.org/journal/arrow-up-right

基金会活动arrow-up-right 链接:https://freebsdfoundation.org/our-work/events/arrow-up-right

联系方式:

Deb Goodkin <[email protected]envelope>

FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于支持和促进 FreeBSD 项目及全球社区,并推动 FreeBSD 的发展。我们通过技术/非技术方式实现这一目标。我们完全依靠个人和企业的捐赠支持,这些捐款帮助我们赞助以下项目:

  • 软件开发项目,以实现 FreeBSD 的功能和特性

  • 赞助和组织会议及开发者峰会,提供协作机会并促进 FreeBSD 的发展

  • 购买和支持硬件,以改善和维护 FreeBSD 的基础设施

  • 改进安全性、质量保证和持续集成工作的资源

  • 用于推广、教育和宣传 FreeBSD 的材料和人员

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

  • 代表 FreeBSD 项目执行合同、许可证协议及其他需要有合法实体的法律事务

尽管夏天让人倦怠,但我们仍完成了大量工作,你可在我们的第三季度报告中看到这些成果!亮点包括:从个人捐赠者那里筹集了 135,000 余美元,并启动了两个重大项目。首先,感谢主权技术基金(Sovereign Tech Fund)的大额投资,我们将进一步改善我们的基础设施。其次,感谢 Quantum Leap Research(量子跃迁研究)和基金会的赞助,我们将加速推进 FreeBSD 在现代笔记本电脑上的项目。我们还继续推进由 Alpha-Omega 赞助的项目,招聘了一名用户空间软件开发者,并创设了解决方案专家的职位。

正如你将在下面看到的,借助宣传和社区传播 FreeBSD 仍然是我们使命中的重要部分。在夏季,我们赞助了 EuroBSDCon,并将赞助即将到来的 FreeBSD 和 OpenZFS 峰会,同时为大约八名 FreeBSD 贡献者提供了参加 EuroBSDCon 的旅行赞助。我们的宣传团队积极制作内容,推广 FreeBSD 的优势和特性,解释为什么公司应使用 FreeBSD;以及如果你关心安全,为什么你也应该使用 FreeBSD。我们还在社交媒体上推广了项目和基金会的工作。

在 EuroBSDCon 期间,基金会与核心团队成员会面,讨论核心团队希望在其任期内达成的目标。我们确定了两个近期需要重点解决的领域:

  1. 财务报告透明度:在我们的季度报告中详细列出操作系统改进的支出。我们正在与会计师合作,从 2025 年开始,我们将报告在某些项目和关键领域(如笔记本电脑、企业、安全等)上的支出。与此同时,我们将在财务报告中添加注释,记录哪些项目包含在操作系统改进支出类别中。我们意识到,今年没有发布财务报表。我们的会计团队正在为我们引入改进的报告方式,并将我们的账目整合进新的会计系统。

  2. 我们赞助的项目:那些没有在项目官网上提及的。我们在自己的网站上记录这些项目,因为我们希望展示捐赠者的资金是如何被使用的。我们意识到还需要在 FreeBSD.org 上添加这些项目的文档,因此我们将调查如何更好地将我们的软件开发工作与 FreeBSD 项目关联起来。

我们赞助了大量的软件开发工作,旨在推动、改进并保持 FreeBSD 的安全。我们为其中一些工作获得了资金支持,但大部分资金来自于你的捐赠和我们的投资。我们的目标是专注于 FreeBSD 的长期可持续发展。为了实现这一目标,我们需要更多的公司参与进来,帮助赞助我们的工作。我们的投资最多只能持续一两年。如果你的公司依赖于 FreeBSD,请考虑提供财务支持,以确保 FreeBSD 保持安全、可靠且富有创新性。如果你不确定如何发起捐赠,请 联系我们envelope,我们可以帮助你推进这个过程。

请访问此处进行捐赠:https://freebsdfoundation.org/donate/arrow-up-right。欲了解更多关于我们的合作伙伴计划,请访问:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/arrow-up-right

改进操作系统

在 2024 年第三季度,在 263 个 src、37 个 port 和 11 个文档树的提交中,FreeBSD 基金会被标记为赞助商。

FreeBSD 基金会的几位开发团队成员参加了在爱尔兰都柏林举行的 FreeBSD 开发者峰会arrow-up-right,并在 EuroBSDCon 2024arrow-up-right 之前举行了会议。你可以观看 来自基金会的问候arrow-up-right 视频,在开幕式中:

  • Deb Goodkin 介绍了 FreeBSD 基金会

  • Joe Mingrone 介绍了开发团队成员,并简要概述了 FreeBSD 2024 谷歌编程之夏活动

  • Ed Maste 介绍了基金会当前或最近完成的开发项目。

最近开始成为基金会的技术项目管理角色的 Alice Sowerby,做了一场 介绍 CHAOSS(开源软件社区健康分析)项目arrow-up-right 的演讲,讲解了如何开始收集和处理社区健康指标。

基金会正维持着四个主要项目,这些项目得到了新的赞助和投资合作伙伴的支持。

  • 第一个项目,部分由 Alpha-Omegaarrow-up-right 赞助,旨在提高 FreeBSD 的安全性。作为该项目的一部分,基金会聘请了 Synacktivarrow-up-right 对两个重要子系统进行代码审计:bhyve 和 Capsicum。详细信息请参见专门的 Capsicum 和 Bhyve 代码审计arrow-up-right 报告条目。

  • 第二个项目,由 AMD 和基金会共同赞助,旨在为 FreeBSD 开发一款 AMD IOMMU 驱动程序。该项目的动因是更好地支持大型核心 AMD 设备。然而,该驱动程序在需要中断重映射的不同场景下也会发挥作用。目前,该工作已接近完成,开发人员 Konstantin Belousov 正在对一些 AMD 的大核心系统进行驱动程序测试,待测试完成后提交。

  • 第三个项目,由 主权技术基金arrow-up-right 投资支持,旨在通过五个关键子项目来改进 FreeBSD:

    • 零信任构建:增强工具和流程

    • CI/CD 自动化:简化软件交付和运维

    • 减轻技术债务:实施工具和流程以保持低技术债务

    • 安全控制:现代化并扩展安全工件,包括 FreeBSD Port 和软件包,以协助合规性

    • SBOM 改进:增强并实现新的工具和流程来支持 FreeBSD 的 SBOM

    为了减轻技术债务,我们与 Bitergiaarrow-up-right 合作,分析和评估我们的 Bugzilla 中的开放问题。通过实施改进的议题管理流程并为长期建立开源工具,我们的目标是实现并维持可管理的缺陷积压。其余四个子项目将在 2025 年开始。

  • 第四个项目,将由基金会和 Quantum Leap Research(量子跃迁研究)共同赞助,旨在 改进 FreeBSD 笔记本的可用性arrow-up-right。我们已经开始(或即将开始)支持在以下领域工作的开发者:

    • 增强无线芯片组支持:改善芯片组兼容性,确保可靠的无线连接,并支持更新的无线标准。

    • 电源管理:实施现代电源节省状态(如 s2idle 和 s0ix),提高电池寿命和能源效率。

    • 改善显卡支持:通过集成最新的 DRM 驱动程序,改善对 Intel 和 AMD 显卡的支持。

    • 改进音频:增强音频路由、耳机切换和数字麦克风(DMIC)功能,提供更友好的多媒体体验。

    • 笔记本特有硬件功能:解决现代笔记本中的特殊按钮、触摸板手势和其他独特硬件组件的问题。

FreeBSD 实现连续第 20 年参与谷歌编程之夏arrow-up-right。今年夏天的 11 个项目arrow-up-right 已完成,其中 9 个项目通过了评审。

基金会一直为 FreeBSD 开源容器倡议(OCI)工作组提供项目管理支持,由 Alice Sowerby 主持每两周一次的会议,并运行了最近的 FreeBSD 上 Podman 测试项目arrow-up-rightOCIarrow-up-right 开发云原生容器格式和运行时的开放行业标准,确保平台的一致性。FreeBSD 的 OCI 工作组正在为 FreeBSD 定义这些标准,实施方式包括使用 jail,可能还会使用 bhyve 的轻量级虚拟机。详细信息请参见基金会的 OCI 容器支持项目页面arrow-up-right

其他基金会的新闻:

  • Isaac Freund 加入了基金会开发团队,担任用户空间开发者。他是 River Wayland 混成器的首席开发者,也是 Core Zig 团队的成员,我们对 Isaac 为 FreeBSD 带来的经验感到兴奋。

  • Alfonso Sabato Siciliano 正在为盲人、低视力和色盲用户开发视觉无障碍子系统。新功能包括盲文显示框架、虚拟终端控制台的通信通道、语音合成器、高对比度 TUI 工具和一本文档 FreeBSD 上可用辅助技术的可访问性手册。

  • Tom Jones 完成了与 RGNets 的工作,将多平台网络堆栈 Vector Packet Processor(VPP)移植到 FreeBSD。你可以在他的 Endpoint-Independent NATarrow-up-right 报告条目中阅读有关他下个支持 FreeBSD 防火墙的全锥形 NAT 的项目。

  • Christos Margiolis 继续改进着 FreeBSD 的音频堆栈,并为音频开发人员提供有用的工具和框架,便于在 FreeBSD 上进行声音开发。最新进展请参考 音频堆栈改进arrow-up-right 条目。

  • Olivier Certner 在本报告中有两个条目。你可以在 调度优先级:256 队列运行队列子项目arrow-up-rightmac_do(4)、setcred(2)、mdo(1)arrow-up-right 报告条目中了解他的最新工作。

  • Bjoern Zeeb 继续改进着 FreeBSD 的无线网络。你可以在 Bjoern 的 更新无线arrow-up-right 条目中了解最新进展。

  • Philip Paeps 继续进行雇佣工作,以使 FreeBSD 集群现代化。

  • Chih-Hsin Chang 继续移植 OpenStack 组件,以便在 FreeBSD 主机上运行该云计算平台。最新信息请参见 FreeBSD 上的 OpenStackarrow-up-right 条目。

  • 基金会技术团队的其他成员也为 FreeBSD 开发做出了贡献。例如:

    • Mitchell Horne 为 RISC-V 提交了工作,包括添加对 Supervisor 模式:基于页面的内存类型(Svpbmt)扩展的支持

    • Ed Maste 用 etcupdate(8)arrow-up-right 替换了已弃用的工具 mergemaster,用于更新未由安装世界(world)管理的文件

    • Joe Mingrone 更新了我们的基础 libpcap 和 tcpdump(1)arrow-up-right

    • 許立文确保了我们的 Jenkins Port 跟踪最新的上游版本,并进行了一些 Port 的更新。

持续集成(CI)和工作流改进

作为我们持续支持 FreeBSD 项目的一部分,基金会有一名全职员工,专门负责改进 FreeBSD 项目的持续集成系统和测试基础设施。

宣传活动

在 2024 年第三季度,我们继续加大力度,提高 FreeBSD 项目的认知度,推动对 FreeBSD 项目的宣传,面向用户,并为 FreeBSD 社区提供教育内容。以下是我们的一些努力成果:

法律/FreeBSD 知识产权(IP)

基金会持有 FreeBSD 商标,负责保护这些商标。我们还为核心团队提供法律支持,调查可能出现的问题。

请访问 https://freebsdfoundation.orgarrow-up-right 了解更多关于我们如何支持 FreeBSD 以及如何帮助你的信息!

FreeBSD 发布工程团队

链接:

FreeBSD 13.4-RELEASE 公告arrow-up-right 链接:https://www.freebsd.org/releases/13.4R/announce/arrow-up-right

FreeBSD 14.2-RELEASE 计划arrow-up-right 链接:https://www.freebsd.org/releases/14.2R/schedule/arrow-up-right

FreeBSD releasesarrow-up-right 链接:https://download.freebsd.org/releases/ISO-IMAGES/arrow-up-right

FreeBSD 开发快照arrow-up-right 链接:https://download.freebsd.org/snapshots/ISO-IMAGES/arrow-up-right

联系方式:

FreeBSD 发布工程团队,<[email protected]envelope>

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

该团队管理了 13.4-RELEASE,并于 9 月发布了最终的 RELEASE 构建和公告。14.2-RELEASE 周期的规划已开始。

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

持续集成(CI)

链接:

FreeBSD Jenkins 实例arrow-up-right 链接:https://ci.FreeBSD.orgarrow-up-right

FreeBSD CI Tinderbox 视图arrow-up-right 链接:https://tinderbox.freebsd.orgarrow-up-right

FreeBSD CI 工件存档arrow-up-right 链接:https://artifact.ci.FreeBSD.orgarrow-up-right

托管 CI Wikiarrow-up-right 链接:https://wiki.FreeBSD.org/HostedCIarrow-up-right

第三方软件 CIarrow-up-right 链接:https://wiki.FreeBSD.org/3rdPartySoftwareCIarrow-up-right

与 freebsd-testing@ 相关的票据arrow-up-right 链接:https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=%3Cem%3Eopen%3C/em%3E&email1=testing%40FreeBSD.org&emailassigned_to1=1&emailcc1=1&emailtype1=equalsarrow-up-right

FreeBSD CI 仓库arrow-up-right 链接:https://github.com/freebsd/freebsd-ciarrow-up-right

dev-ci 邮件列表arrow-up-right 链接:https://lists.FreeBSD.org/subscription/dev-ciarrow-up-right

联系方式:

Jenkins 管理员 <[email protected]envelope>

許立文 <[email protected]envelope>

freebsd-testing 邮件列表arrow-up-right

IRC #freebsd-ci 频道(EFNet)

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

已完成的重要任务:

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

进行中的任务:

  • 改进 src/tests/ci 工作,以支持运行测试套件

  • 设计并实施预提交 CI 构建和测试以及基于 PR 请求/合并请求的系统(以支持 工作流工作组arrow-up-right

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

  • 设计并实施使用 CI 集群构建发布工件,像发布工程一样,从快照构建开始

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

  • 设置 CI 阶段环境并将实验性任务放入其中

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

开放/待处理的任务:

请参阅 freebsd-testing@ 相关票据arrow-up-right 获取更多 WIP 信息,并欢迎加入我们的努力!

赞助:FreeBSD 基金会

Ports

链接:

关于 FreeBSD Portsarrow-up-right 链接:https://www.FreeBSD.org/ports/arrow-up-right

贡献到 Portsarrow-up-right 链接:https://docs.freebsd.org/en/articles/contributing/#ports-contributingarrow-up-right

Ports 管理团队arrow-up-right 链接:https://www.freebsd.org/portmgr/arrow-up-right

Ports Tarballarrow-up-right 链接:http://ftp.freebsd.org/pub/FreeBSD/ports/ports/arrow-up-right

联系方式:

Tobias C. Berner <[email protected]envelope>

FreeBSD Ports 管理团队 <[email protected]envelope>

Ports 管理团队负责管理 Ports 的整体方向、构建软件包和人员相关事宜。以下是上个季度的相关动态。

根据索引,目前 Ports 中共有 36,504 个 port。目前约有 3,379 个开放的 ports PR。上个季度中,154 位提交者在 main 分支上进行了 11,594 次提交,78 位提交者在 2024Q3 分支上进行了 832 次提交。与上一季度相比,main 分支的提交量略有增加(从 10,525 次增加),季度分支的回退量约为上季度的一半(相比 1,771 次)。Ports 数量也有所增加(从 32,471 增至当前数量)。

在 main 分支中最活跃的提交者是:

在过去三个季度,Ports 发生了许多变化,以下是一些主要软件的升级:

  • PostgreSQL 默认版本切换至 16

  • Chromium 从 126.0.6478.126 更新至 129.0.6668.100

  • Firefox 从 127.0.2 更新至 131.0-rc1

  • Firefox-ESR 从 115.9.1 更新至 128.3.0-rc1

  • Rust 从 1.79.0 更新至 1.81.0

  • SDL2 从 2.30.3 更新至 2.30.7

  • Wlroots 从 0.17.4 更新至 0.18.1

  • Wine-devel 从 9.4 更新至 9.16

  • Qt5 从 5.15.14 更新至 5.15.15

  • Qt6 从 6.7.2 更新至 6.7.3

  • Plasma6 从 6.1.1 更新至 6.1.2

在上个季度,pkgmgr@ 进行了 24 次实验运行,以测试各种 ports 升级、ports 默认版本更新和基本系统的更改。

Bugmeister 团队

链接:

FreeBSD Bugzillaarrow-up-right 链接:https://wiki.freebsd.org/Bugzillaarrow-up-right

联系方式:

Bugmeister <[email protected]envelope>

图表和统计图

FreeBSD Foundation 的 Ed Masteenvelope 对在 Bugzilla 上增加更多有用的图表表示了兴趣。我们目前拥有的图表信息量有限。尽管许多 有趣的 Bugzilla 查询arrow-up-right 已经被记录下来,但其中的信息较为密集。

如果你有兴趣参与该任务,请直接联系 Ed。

Bugzilla 版本升级

最近,Bugzilla 上游发布了 5.0.4.1 版本,这是个小的错误修复版本。初步工作表明更新不会带来较大影响。工作仍在进行中。

PR 统计

PR(问题报告)不断提交并进行分类。长期来看,我们几乎达到了稳定状态。

上一季度(和年度)PR 数量有所波动。Vladimir Druzenko 指出,在 2023 年第四季度,PR 数量减少了约 200 个(我们尚未进行数据分析以找出原因)。不过,目前数量逐渐恢复到一年前的水平。而且我们似乎在更快速地关闭新提交的 PR。参考链接:

https://bugs.freebsd.org/bugzilla/page.cgi?id=dashboard.html&days=365arrow-up-right

PR 的总数仍然略超过 11,600 个,我们确实存在很多技术债务。

Bugmeister 还在努力重启 Bugathonsarrow-up-right

致谢

Bugmeister 团队要感谢许多参与 Bug 修复的人,包括新加入的分流人员 Alexander Vereeken、Alexander Ziaee 和 Frederick Lee。

FreeBSD Samba 团队

链接:

FreeBSD Samba 团队 Wikiarrow-up-right 链接:https://wiki.freebsd.org/Sambaarrow-up-right

Samba 官方主页arrow-up-right 链接:https://www.samba.org/arrow-up-right

联系方式:

FreeBSD Samba 团队 <[email protected]envelope>

Samba 提供了使用 SMB/CIFS 协议的客户端的安全、稳定和快速的文件和打印服务。它是将 FreeBSD/Linux/Unix 服务器和桌面无缝集成到 Active Directory(AD,活动目录)环境中的重要组件。Samba 可以作为域控制器,也可以作为常规域成员。

新的 FreeBSD Samba 团队的创建旨在更好地协调 Samba Port 及其依赖项的维护工作,特别是以下内容:

上季度的重要变化包括:

目前,FreeBSD Samba 团队正在以下领域开展协作:

欢迎测试和社区贡献,请通过 Bugzilla 或团队电子邮件联系我们。

项目

涵盖多个类别的项目,从内核和用户空间到 Ports/外部项目。

改进音频栈

联系方式:Christos Margiolis <[email protected]envelope>

FreeBSD 的音频栈相较于其他领域缺乏关注和开发,长期以来基本未得到维护,尽管质量较高,但仍有改进空间——从缺乏音频开发框架,到缺少用户空间实用工具和内核驱动相关的错误。本项目旨在覆盖这些方面,更像是通用的改进项目,而非具体功能的实现。

上次报告arrow-up-right 以来的重要工作:

后续工作包括:

  • 更多错误修复和改进。

  • 实现通用的 MIDI 层,类似于 pcm/,并全面改进和现代化 MIDI 代码库。

  • 实现蓝牙设备管理工具。

  • 更多 virtual_oss 补丁和改进。

  • 尝试实现 snd_hda(4)arrow-up-right 引脚补丁机制。

  • 调查支持 SOF/DMIC 的可能性。

你也可以关注 freebsd-multimedia@arrow-up-right 邮件列表,我会在上面定期发布进展报告。

赞助方:FreeBSD 基金会

用 Freepascal/Lazarus 编写的 bhyve 管理 GUI

链接:

Bhyvemgrarrow-up-right 链接:https://github.com/alonsobsd/bhyvemgr/arrow-up-right

联系人:

José Alonso Cárdenas Márquez <[email protected]envelope>

Bhyvemgr 是一款在 FreeBSD 上用 Freepascal/Lazarus 编写的 bhyve 管理图形界面 (GUI)。它需要许多由系统自带工具安装的程序,还有一些通过 ports/软件包安装。其主要目标是成为桌面应用程序,方便桌面用户在 FreeBSD 主机上快速、轻松地设置和运行虚拟机。

它应被用于虚拟机测试目的(而非生产环境)。如果你需要生产环境中的虚拟机管理工具,请参考 sysutils/vm-bhyvearrow-up-rightsysutils/bmdarrow-up-rightsysutils/cbsdarrow-up-right

Bhyvemgr 支持 15-CURRENT 的 aarch64 版本和 FreeBSD 13.x 至 15-CURRENT 的 amd64 版本。可以通过 ports 安装 sysutils/bhyvemgrarrow-up-right,也可以通过带有 gtk2、qt5 和 qt6 界面支持的包安装。

欢迎对项目感兴趣的人提供帮助。

2024 年第三季度末版本:1.1.0

待办事项

  • 在真实 aarch64 硬件上测试

  • 添加串口设备支持

  • 增加缺少的全局设置条目(bios、board、chassis、system)

修改 dhclient 以加速 FreeBSD 启动过程

链接:

加速 FreeBSD 启动过程arrow-up-right 链接:https://wiki.freebsd.org/SummerOfCode2024Projects/SpeedingUpTheFreeBSDBootProcessarrow-up-right

dhclient PRarrow-up-right 链接:https://github.com/freebsd/freebsd-src/pull/1368arrow-up-right

联系人:

Isaac Cilia Attard <[email protected]envelope>

作为我 2024 年谷歌编程之夏项目的一部分,我致力于加速 FreeBSD 的启动过程,其中包括减少 dhclient 中的 ARP 解析时间。这涉及将默认的 ARP 解析超时时间从 2000 毫秒降低到 250 毫秒,并增加了一个完全禁用该功能的参数。后者在云环境中尤为有用,因为通常节点已分配了 IP 地址。

因此,现在连接到 DHCP 网络的速度加快了,包括在启动过程中所需的时间。所实现的加速约为 2 秒。

这使得 FreeBSD 系统的启动速度比以前显著提高。

赞助商:谷歌公司(谷歌编程之夏 2024)

Capsicum 和 Bhyve 代码审计

联系人:

Ed Maste <[email protected]envelope>

联系人:

Pierre Pronchery <[email protected]envelope>

Alpha-Omega 项目arrow-up-right 的支持下,FreeBSD 基金会对两个重要子系统——bhyve 虚拟机管理器和 Capsicum 沙箱框架——进行了代码审计。除了发现这些系统中的漏洞并加以修复外,审计还旨在识别漏洞类型/代码实践不足之处,以便在整个项目中进行改进。

基金会面试了几家公司,并选择 Synacktiv 进行审计。经审计,发现了一些较为严重的问题,已在安全公告中修复:

针对一些轻度严重的问题,修复工作正在进行中。代码审计报告将在处理完一定严重程度以上的问题后发布。FreeBSD 基金会还将发布一份报告,其中包括对 Synacktiv 代码审计报告的影响评估、发现的漏洞类型以及总结的经验教训。

更多信息请参考 Alpha-Omega 仓库arrow-up-right

赞助商:FreeBSD 基金会

赞助商:Tailscale

端点独立(Endpoint-Independent)NAT

联系人:Tom Jones <[email protected]envelope>

此项目旨在为 pf 和 ipfw 防火墙添加对 UDP 的端点独立映射支持。

端点独立 NAT 能使位于 NAT 后面的应用程序与多个远程主机通信时保持相同的映射。这使得没有 NAT 穿越机制的应用程序也能够绕过 NAT 问题以进行对等发现。从远程主机的角度来看,NAT 是透明的,就像没有 NAT 一样。这种形式的 NAT 在过去几十年中有多种名称,也称为“全锥形”NAT。

9 月初,Damjan Jovanovic 和 Naman Sood 的工作成果在 pf 上进行了应用,补丁增加了一个新的“端点独立”后缀,用于 UDP pf nat 规则。

ipfw 对端点独立的支持将通过 libalias 提供,任何使用 libalias 进行地址转换的系统都将受益于此更改。正在进行的审查 D46689arrow-up-right 将为 libalias 增加支持。

此更改和已提交的 pf 更改均可通过在更多不同环境中进行测试而受益。

Kyua Jail 支持

联系人:Igor Ostapenko <[email protected]envelope>

FreeBSD 测试套件通过 kyua(1)arrow-up-right 工具执行。Kyua 支持并行执行测试,使用 kyua -v parallelism=<n> test 命令。然而,许多网络测试利用了 jail(8)arrow-up-right 特性,如 VNET(9)arrow-up-right,并且与 jail 的命名和网络配置存在冲突。因此,这些测试被标记为 is_exclusive=true 元数据属性,以防它们同时运行并相互干扰。这造成了一个困境:当一个项目旨在增加测试覆盖率时,独占测试的增加会成比例地增加执行时间,从而在多个方面影响开发过程。

Kyua 最近在 15-CURRENT 中进行了更改,支持一个新概念叫做“执行环境(execution environment)”。默认情况下,测试在所谓的“主机”执行环境中运行,和以前一样。测试可以选择使用一个全新的执行环境——“jail”环境。在这种情况下,kyua 在运行测试之前创建一个 jail,然后在 jail 内执行测试。这为更多的测试并行运行提供了机会,因为 jail 本身提供了额外的隔离,特别是通过 VNET。这取决于硬件和配置,但有报告指出,在相同的环境下,netpfil/pf 测试可以快约 4 倍——几分钟而不是半小时。

以下 Makefile 更改,是如何切换 netpfil/pf 测试在 jail 执行环境中并行运行的快速示范:

更多细节:

此更改还带来了新的 sysctl 只读变量,提供了更多关于当前 jail 的细节,并且可能对一般用途有帮助:

  • security.jail.children.max: 最大子 jail 数量

  • security.jail.children.cur: 当前子 jail 数量

提示:从 prison0 运行 sysctl -n security.jail.children.cur 可以提供系统中所有 jail 的数量。

Kyua 的进一步改进,如需求定义和自动解析,目前正在设计阶段。潜在的新元数据属性,如 required_kldsrequired_pkgs,为这些主题提供了一些线索。请联系 Igor 讨论可以帮助塑造这些即将到来的 Kyua 增强功能的想法和用例。

同 Linux 源代码兼容性的 WiKi

链接:

Linux Source Compatibilityarrow-up-right

https://wiki.freebsd.org/LinuxSourceCompatibilityarrow-up-right

联系人:

Edward Tomasz Napierala <[email protected]envelope>

现有一个 wiki 页面,用于跟踪 FreeBSD 和 Linux 之间的源代码兼容性差异——并且需要你的反馈!

由于 FreeBSD 和 Linux 都是 Unix 系统,并遵循相同的标准,它们在源代码层面已经大致兼容。然而,Linux 仍然存在其特有的某些系统调用;还存在头文件、常量等方面的差异。在 FreeBSD 中敉平这些差异将使移植软件变得更加轻松。

并非所有差异都可以敉平。有些差异由于命名冲突、对系统工作方式的不同看法,或者因为它会导致 autoconf 选择一个功能较差的兼容性 API,而非原生的 API,因此无法消除。在这种情况下,我们应该记录它,并建议使用其他 API。

该 wiki 页面旨在提供概述并帮助跟踪进展。这是需要你帮助的地方。我需要那些实际将软件移植到 FreeBSD 的人,基于他们的经验,添加缺失的 API。这还包括非系统调用项,如缺失的头文件和不支持的常量。最好还要提到可能需要它们的软件名称。

  • 添加缺失项

  • 添加潜在的 API 使用者

赞助商:创新英国(Innovate UK)

用户空间

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

服务 Jail—自动化 Jail 中的 rc.d 服务

链接:

服务 Jail 的 rc-article 部分arrow-up-right 链接:https://docs.freebsd.org/en/articles/rc-scripting/#rcng-service-jailsarrow-up-right

Bugtracker 上的 ports 服务 jail 补丁arrow-up-right 链接:https://bugs.freebsd.org/bugzilla/buglist.cgi?quicksearch=service+jail+awarearrow-up-right

联系人:

Alexander Leidinger <[email protected]envelope>

服务 Jail 扩展了 rc(8)arrow-up-right 系统,可自动将 rc.d 服务放入 jail。服务 jail 继承父主机或 jail 的文件系统,但默认情况下使用 jail 的其他所有限制(进程可见性、受限网络访问、文件系统挂载权限、sysvipc 等)。附加配置还可继承父级的 IP、sysvipc、内存页面锁定以及使用 bhyve 虚拟机监视器 (vmm(4)arrow-up-right)。

自上次报告以来,多个 Port 已经添加了服务 jail 配置。在 ports 中的大约 1460 个启动脚本中,大约有 80 个启动脚本发生了变化,主要包括 postgresql、DNS 服务器、FTP 服务器、PHP、dovecot、postfix、rspamd、amavisd-new 和 clamav 等重要示例。还有一些更改正在等待相关 ports 维护人员的处理。

欢迎任何帮助修改更多启动脚本的人(大多数情况下仅需添加一行)。如果你想帮助,可以在上方的 bugtracker 链接中查看正在审查的更改。

用户空间 UFS 驱动程序 (fuse-ufs)

链接

fuse-ufs GitHubarrow-up-right

https://github.com/realchonk/fuse-ufsarrow-up-right

联系人:

Benjamin Stürz <[email protected]envelope>

在今年的谷歌编程之夏中,我使用 FUSE 和 Rust 编写了一款用户空间 UFS 驱动程序。该项目旨在简化在其他操作系统上挂载 FreeBSD UFS 文件系统的过程。目前仅实现了只读文件系统访问,但作为额外功能,fuse-ufs 能够挂载与主机字节序不同的文件系统。

我目前正在将项目拆分为二进制和库部分,以便更易于集成到其他操作系统中。作为此重构的一部分,将实现一款额外的 FUSE2 后端,以便可以在 OpenBSD 上运行。当前在 Linux 和 FreeBSD 上有测试基础架构,未来将支持 OpenBSD。尽管没有 MacOS 的 CI,我的一位朋友用 MacFUSE 进行了测试,且能正常工作。

完成重构后,我将开始着手实现写入支持。得益于 Robert Clauseckerenvelope 的支持,我还将添加软更新和挂载 Sun UFS 的功能。

可以使用 cargo install fuse-ufs 安装该驱动,或(在 Arch Linux 上)使用你喜欢的 AUR 助手安装。感谢 Robert Clausecker 在 FreeBSD 的 sysutils/fusefs-ufsarrow-up-right 中创建的 port。

特别感谢 Alan SomersenvelopeKirk McKusickenvelope 的指导,并感谢 Robert Clausecker 提供了 FreeBSD port 并建议我完成此 GSoC 项目。还要感谢 Davids Paskevics 为我编写了模糊测试工具。

赞助商:2024 谷歌编程之夏

内核

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

FreeBSD V4L2 和内核 USB 视频类驱动

链接:

公共开发仓库arrow-up-right 链接:https://github.com/AlvinChen1028/freebsd-src/tree/feature-uvcarrow-up-right

上游准备仓库arrow-up-right 链接:https://github.com/lwhsu/freebsd-src/pull/2arrow-up-right

联系人:Alvin Chen <[email protected]envelope>

联系人:許立文 <[email protected]envelope>

该工作旨在创建 FreeBSD UVC(USB 视频类)内核驱动,并遵循 v4l2 API,以便大多数 Linux 摄像头应用程序可以轻松移植到 FreeBSD。

代码仍在整理中,完成后将提交正式评审。

当前状态:

  1. 启用 UVC 驱动的关键功能。

  2. 实现关键 v4l2 IOCTL。

  3. 支持大多数 USB 摄像头(最高支持 4K 分辨率):如 Jabra、Logitech 等。

  4. 已验证部分应用程序:VLC、Cheese、pwcview。

后续工作:

  1. 需要实现几个 v4l2 IOCTL:使 v4l2-compliance 测试套件的所有用例通过。

  2. 需要实现一些 UVC API:如 uvc 控制映射回调等。

  3. 解决与 USB 相关的 UVC 锁定问题。

  4. 支持基于 PCI 的 AI 摄像头。

  5. 必要时进行代码重构。

赞助商:戴尔科技公司(负责开发)

赞助商:FreeBSD 基金会(负责上游支持)

mac_do(4)、setcred(2)、mdo(1)

联系人:Olivier Certner <[email protected]envelope>

联系人:Baptiste Daroussin <[email protected]envelope>

此项目的目标是通过利用 FreeBSD 的 MAC 框架,能在不使用 setuid 可执行文件的情况下实现受控的进程凭据转换。

传统的凭据更改程序必须以 root 用户身份(至少是有效的 UID,或最低限度为保存的 UID)执行一些初始操作。这类程序(例如 sudo(8)arrow-up-right)代码行数众多,且包含可能具有安全隐患的功能(如可加载的安全模块)。因此,这些程序的攻击面较大,且难以确保其完全正确。此外,在大多数情况下,它们提供的额外功能并非必要。

更广泛地说,mac_do(4)arrow-up-right 内核模块的威胁模型主要关注被用户态程序(无论是凭据更改程序还是凭据提供程序)破坏的可能性。这种情况下,内核的凭据更改 API 的调用必须在内核内受到监控,且不需调用用户态程序。实际上,mac_do(4)arrow-up-right 需由管理员预先配置,以指明哪些凭据转换是有效的(通过 sysctl(8)arrow-up-right 的参数 security.mac.do.rules 实现)。

目前,只有配套的用户态程序 mdo(1)arrow-up-right 被授权通过 mac_do(4)arrow-up-right 执行凭据转换(基于可执行文件路径)。这个小程序仅通过调用 setuid(2)arrow-up-right(以及可选的 initgroups(3)arrow-up-rightsetgroups(2)arrow-up-rightsetgid(2)arrow-up-right)来设置新凭据。

当前 mac_do(4)arrow-up-right 的规则仅允许指定简单的 UID 转换,而不能考虑组的变更。因此,内核模块无法检查 setgroups(2)arrow-up-rightsetgid(2)arrow-up-right 系统调用参数的内容,完全依赖 mdo(1)arrow-up-right 传递正确的信息。

新版本的 mac_do(4)arrow-up-right 已开发了一个月。除了修复并发、每个 jail 的设置和 MAC 策略组合问题外,它还引入了对规则的重新定义,从而更精细地控制允许哪些组在凭据中出现。新功能允许内核模块一次性应用凭据更改,因为允许的最终凭据取决于配置的规则。传统用户态接口(例如 setuid(2)arrow-up-rightsetgroups(2)arrow-up-right 等)需要多次调用才能达到所需的凭据状态,因此我们引入了新的系统调用 setcred(2)arrow-up-right,可以一次性请求任意凭据转换,简化了用户态的凭据更改编码。

前置变更正在审核中(特别是修订 D46886arrow-up-rightD46889arrow-up-rightD46896arrow-up-rightD46923arrow-up-right)。mac_do(4)arrow-up-right/mdo(1)arrow-up-right 的主要更改也将很快推送以供审核。完整的旧版本可以在 GitHubarrow-up-right 上查看。

赞助商:FreeBSD 基金会

调度优先级:256 队列运行队列子项目

联系人:Olivier Certner <[email protected]envelope>

256 队列运行队列子项目旨在修复 FreeBSD 的 POSIX 合规性,以确保在 SCHED_FIFO/SCHED_RR 调度类中,不同的优先级会导致具有更高优先级的线程立即抢占。此项目是调度优先级重构项目的一部分,目标是规范 FreeBSD 的调度接口,增加 POSIX 合规性,修复现有的错误,并增强非标准部分,以实现更好的控制和安全性。预计的好处包括在实时音视频处理等领域提升 FreeBSD 的使用率。

目前,通过 rtprio 结构体的 prio 字段指定的优先级(rtprio(2) 接口)或 sched_param 结构体的 sched_priority 字段,会导致在内部将具有相同优先级类别的线程视为相同级别,未能达到 POSIX 对 SCHED_FIFOSCHED_RR 的预期效果。

为了解决此问题,我们选择了一个影响较大的内部更改,增加每个运行队列的队列数量,详细信息请参考 EuroBSDCon 2024 的 PPT。

所有修改均在审核中,项目已注意到 nice 值的效果较弱,并因此生成了实验性补丁以增强其效果。此外,我们还启动了另一个调度器项目,旨在使 ULE 适应混合架构,这可能会触发更多调度器更改。

赞助商:FreeBSD 基金会

更新无线

链接:分类无线问题报告arrow-up-right

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

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

当前的无线更新工作旨在增加对新芯片组和最新标准的支持。

目前已支持 iwlwifi(4)arrow-up-rightrtw88(4)arrow-up-right,我们还收到了 rtw89 和 ath10k 的补丁和初步工作报告。此外,ath11k、ath12k 以及由 mt76 支持的各种芯片组仍待有人投入时间完成兼容代码、测试和调试工作。

工作正在进行中,计划将驱动程序更新至 Linux v6.11,以便未来更好地维护,特别是减少无线兼容代码版本之间的不兼容,以便根据需要支持多个 Linux 版本。

自原生 kern_malloc 更改提交后,LinuxKPI 正在进行持续的内存分配改进,以更好地符合 Linux 规范,这有助于解决 DMA 问题。同时,还在添加缺失的 bus_dmamap_sync() 调用。

我们正在测试对 rtw88(4)arrow-up-right SDIO 设备的支持(在 r2s-plus 上测试中),并着手稳定 USB 支持更新,待驱动更新完成后会开始发布。最后,还有更多更新排队等待完成 LinuxKPI 802.11 兼容代码的 11n 支持,同时改进原生的 net80211 代码。

如有问题或反馈,请使用 freebsd-wireless 邮件列表arrow-up-right。这样所有人都能看到讨论并参与,同时答案也将被公开存档。

赞助:FreeBSD 基金会

VirtIO 套接字和 AF_VSOCK 支持

链接:源代码arrow-up-right

联系人:Danilo Egea Gondolfo([email protected]envelope

VirtIO 套接字设备用于在不依赖网络的情况下实现主机与虚拟机之间的通信。AF_VSOCK 协议族使得可以通过套接字 API 使用 VirtIO 套接字设备。

过去几个月来,我一直在为 VirtIO 套接字设备开发一款虚拟机端的驱动程序,并实现了 AF_VSOCK 协议族。最初的目的是让 lxd-agentarrow-up-right 守护进程能在 FreeBSD 上运行,但该守护进程与 LXD 主机守护进程的通信通过 VSOCK 实现。LXD 是一款基于 Linux/KVM 的容器和虚拟机管理器,我的最终目标是使 FreeBSD 成为 LXD 的一等公民。

目前,该驱动已经足够稳定,使得 lxd-agent 可以正常工作。我还适配了 golang.org/x/sys 库和 lxd-agent,使其在 FreeBSD 上支持 AF_VSOCK。功能如命令执行、交互式控制台和文件传输已经可以正常运行。

在 Linux 上,AF_VSOCK 可以通过 VirtIO、HyperV 和 VMware 套接字作为传输方式。我正努力设计此实现,以便未来也可以支持不同的传输方式。

在当前工作的基础上,未来的工作设想包括将 AF_VSOCK 和 HyperV Sockets 集成(FreeBSD 通过 AF_HYPERV 已支持),支持 VIRTIO_VSOCK_F_SEQPACKET,为 bhyve 实现 VirtIO 套接字设备及主机端驱动。

我会在空闲时间继续慢慢推进这个项目,希望下次能带来更多的进展。目前离代码审查尚有大量工作要完成。

架构

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

支持 Pinephone Pro

链接:Codeberg 上的仓库arrow-up-right

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

在八月份开始了一个新项目,旨在使 FreeBSD 可用于 Pinephone Pro。

目前的 FreeBSD RELEASE 镜像已经可以在 Pinephone Pro 上启动,但屏幕输出和其他设备尚不支持。目标是逐步支持更多组件,使该设备有朝一日能作为一款高度移动的 FreeBSD 设备使用。

在过去的几周里,已经完成了基础工作,比如熟悉设备、交叉编译并启动 15.0-CURRENT 自定义内核,以及控制前面的红/绿/蓝 LED 灯。此外,LCD 背光已经可以开启,虽然由于缺乏电源管理支持,USB-C 集线器仍无法正常工作,但已启用。

下一步是为 RK818 电源管理芯片编写驱动程序。没有这个驱动,许多硬件将无法启动,比如上面的 USB-C 端口。通过尝试修改现有的 RK808 驱动来实现 RK818 支持,这将使更多设备可以访问,例如启用屏幕、USB 外设和 WiFi。

欢迎提供反馈和测试。

赞助:Honeyguide Group

aarch64 的 SIMD 增强

链接:

EuroBSDCon 2024 演讲arrow-up-right

演讲幻灯片 (PDF)arrow-up-right

谷歌编程之夏项目概述arrow-up-right

simd(7)arrow-up-right

联系人:Getz Mikalsen([email protected]envelope

将增强的 SIMD libc 字符串函数从 amd64 移植到 aarch64 的工作已经成功完成。目前,除了 ARM 优化的子程序库中已有的实现外,还有 16 个 libc 字符串函数的优化实现。此外,还可以通过 YouTube 查看在 EuroBSDCon 2024 上的相关演讲,演讲中简要描述了如何针对 aarch64 架构进行移植。

这些增强显著提高了所有 FreeBSD 系统在 aarch64 平台上的字符串函数性能。

代码目前正在进行验收测试,通过 exp-run 构建所有 Port,一次不应用补丁集,另一次应用补丁集,以查看是否引起了新的故障。

赞助:谷歌公司(2024 谷歌编程之夏)

云平台

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

微软 HyperV 和 Azure 上对 FreeBSD 的支持

链接:

Microsoft Azure 文章(FreeBSD Wiki)arrow-up-right

Microsoft HyperV 文章(FreeBSD Wiki)arrow-up-right

联系人:Microsoft FreeBSD 集成服务团队([email protected]envelope

联系人:freebsd-cloud 邮件列表arrow-up-right

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

联系人:Wei Hu([email protected]envelope

联系人:Souradeep Chakrabarti([email protected]envelope

联系人:Colin Su([email protected]envelope

联系人:許立文([email protected]envelope

在本季度,我们已经在 Azure Marketplace 发布了 13.4-RELEASEarrow-up-right

来自微软的 Souradeep Chakrabarti 添加了一项功能,用于在 Hyper-V 和 Azure 上使用超调用进行 TLB Shootdown。微基准测试显示,TLB Shootdown 的性能提升了 30-40%。该功能已在 DevSummit 202409arrow-up-right 上展示。

Wei Hu 发现了一个问题,即在最新的 Azure v6 虚拟机 SKU 启动 FreeBSD 时,缺少 CDROM 设备。V6 类型的虚拟机仅为来宾操作系统提供 NVMe 磁盘。他还继续为 FreeBSD MANA NIC 设备修复 BUG。

进行中的工作任务:

待解决的任务:

赞助:微软(为微软内部人员提供支持,其他资源由微软提供)

赞助:FreeBSD 基金会(提供其他所有支持)

EC2 上对 FreeBSD 的支持

联系人:Colin Percival([email protected]envelope

FreeBSD 可在 amd64(Intel 和 AMD)和 arm64(Graviton)EC2 实例上使用。

在过去的季度中,已添加一种新的“小型”版本的 EC2 AMI,不包含调试符号、测试、32 位兼容库/LLVM 调试器,也没有预装 Amazon SSM Agent/AWS CLI(在首次启动时默认未安装)。

现在,每周都会使用发布工程团队构建的快照 AMI 进行构建性能测试。这些测试揭示了几个性能回归问题,现已修复;特别是,修复了启动加载程序中 EFI RNG 的问题,显著提升了 Graviton 实例的速度。

赞助:亚马逊

赞助:https://www.patreon.com/cpercivaarrow-up-right

OpenStack 对 FreeBSD 的支持

链接:

OpenStack 官方网站arrow-up-right

OpenStack 在 FreeBSD 上的项目arrow-up-right

联系人:Chih-Hsin Chang([email protected]envelope

联系人:許立文([email protected]envelope

OpenStack 在 FreeBSD 上的项目旨在将 OpenStack 云基础设施带到 FreeBSD 操作系统,通过利用 FreeBSD 的特殊功能,同时保持与 OpenStack 的兼容性。

在 2024 年第三季度,我们继续致力于多个重要任务。我们在移植 OpenStack Ironic 的工作仍在进行中,当前测试已在 arm64 服务器上运行。在该配置下,服务节点为 amd64,配置节点为 arm64。这帮助我们探索在 FreeBSD 上运行混合环境的更多选项。

在 8 月,我们在 COSCUP 2024arrow-up-right 上做了一次演讲,分享了项目的进展和我们的经验。这为我们赢得了社区更多的关注和兴趣。

我们还将一些 OpenStack 组件,如 Keystone、Glance 和 Placement,从 FreeBSD 14.0-STABLE 更新到 FreeBSD 15.0-CURRENT。这个更新帮助我们跟进 FreeBSD 的最新变化,提升了项目的运行效果。

另一个值得注意的事项是测试了 bhyve 串口控制台通过 TCP 的补丁arrow-up-right,并在 OpenStack 工作流中使用它。这使我们更接近于停止使用自定义的 socat-manager 解决方案,并转向内置的串口控制台解决方案。

尽管我们仍计划将 OpenStack 的手动安装过程转为 FreeBSD 的 Port,但这一方面的进展不大。我们希望在接下来的几个月里继续推动这项工作。现有工作可以在 openstack 仓库arrow-up-right 中找到。

赞助:FreeBSD 基金会

文档

在文档树、手册页或新外部书籍/文档中的值得注意的变化。

文档工程团队

链接:FreeBSD 文档项目arrow-up-right

链接:FreeBSD 文档项目新贡献者入门arrow-up-right

链接:文档工程团队arrow-up-right

联系人:FreeBSD Doceng 团队([email protected]envelope

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

Benedict Reuschling 从 doceng@ 团队辞职。doceng@ 感谢 bcr@ 的贡献。

文档更改

  • 《手册》:文档中增加了自动创建 XDG 目录的内容,从 FreeBSD 14.1 开始,修复了 VNET 配置示例脚本。

  • 《架构手册》:在 MAC 章节中移除了 K&R 原型。

  • 网站:对顶部横幅和布局进行了一些改进,视觉上重新排列了按钮等。

  • 文档仓库:修复了所有格式不正确的表格警告,移除了已废弃的属性,以符合新版本的 gohugo。

FreeBSD 翻译(Weblate)

链接:在 Weblate 上翻译 FreeBSDarrow-up-right 链接:FreeBSD Weblate 实例arrow-up-right

2024 年第三季度状态

  • 17 种团队语言

  • 214 名注册用户

1 位新翻译者加入了 Weblate:

  • matthew(id)

语言进度

  • 简体中文 (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%)

  • 波兰语(进度:2%)

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

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

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

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

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

此外,请在你的本地用户组中帮助宣传此项目,我们始终需要更多的志愿者。

DocEng 维护的包

在本季度,doceng@ 团队在维护的包中完成了以下工作:

  • textproc/docproj:提升 gohugo 依赖至 0.133.1

  • www/gohugo:更新至 0.134.3

未解决的问题

在 Bugzilla 中,有 2 个开放的 PR 分配给 doceng@:

  • 276923 www/gohugo 在 poudriere 下的链接错误

  • 267274 请从当前 FreeBSD 网站中移除 zh-CN 手册

在本季度,doceng@ 团队关闭了 3 个 PR:

  • 266107 FreeBSD 手册及其他书籍:PDF:损坏的链接 – crossref

  • 279815 状态报告:ERR_TOO_MANY_REDIRECTS

  • 281396 手册:错误::第 149 行:检测到丢弃不完整行的单元格

FreeBSD Wiki

链接:

FreeBSD Wiki 首页arrow-up-right 链接:https://wiki.freebsd.org/FrontPagearrow-up-right

联系方式:Mark Linimon <[email protected]envelope>

联系方式:Wiki 管理员 <[email protected]envelope>

FreeBSD Wiki 是一个信息库,其中包含不适合放入 官方项目文档arrow-up-right 的内容,因为这些信息过于具体、过于分散或过于临时。

当前项目

Mark Linimon 已开始清理各种过时的页面。重点是针对我们展示给新用户的页面。(近期的基金会新闻通讯中直接提到了其中的一些页面。)不幸的是,许多页面已经过时,甚至到了不再是推荐内容的程度。

目前已做出最大改动的页面包括:

除了移除显然过时的条目外,所有条目现在都已加上了添加时间戳。wiki-admin@envelope 希望我们能将这一做法延续下去。

此外,wiki-admin@envelope 还向提交者/贡献者发送了电子邮件,询问是否应保留上述页面中的某些条目。这个任务将继续进行,直到页面得到清理。

(注:在 2024 年 FreeBSD 基金会社区调查报告中,许多回应者提到 wiki 中的内容过时。)

先前停滞的计划

我们仍计划让 Discord 上的受众更好地了解 Wiki(因为我们 FreeBSD 社区中存在过多“孤岛”)。但是,团队由于时间不够,尚未开展这项工作。然而,你可以通过 FreeBSD Discord 联系 Setesh 获取更多信息。

之前,我们正在进行更新 Wiki 软件的初步工作。由于 MoinMoin 开发似乎停滞不前,导致我们有不必要的 python2 依赖,曾考虑切换实现方式。然而,MoinMoin 现在声称它们即将发布 2.0 版本。我们尚未尝试安装其最新的测试版以测试兼容性,欢迎测试者加入。

FreeBSD 俄语文档项目

链接:

FAQarrow-up-right 链接:https://docs.freebsd.org/ru/books/faq/arrow-up-right

手册arrow-up-right 链接:https://docs.freebsd.org/ru/books/handbook/arrow-up-right

Webarrow-up-right 链接:https://www.freebsd.org/ru/arrow-up-right

联系方式:Andrei Zakhvatov <[email protected]envelope>

FreeBSD 俄语文档项目的当前目标是提供最新的俄语翻译,涵盖 FreeBSD 文档中最重要的部分(FAQ、手册、网站)。为俄语用户提供高质量的官方技术材料,帮助全球范围内的操作系统接受度提高是非常重要的。我们希望这一活动能获得俄语 FreeBSD 社区的支持,推动更多材料的翻译工作。

文档翻译有了一些进展:

如果你愿意帮助翻译,可以查看 官方翻译指南arrow-up-right。我们总是非常感谢你为以下材料提供翻译支持:

  • 手册章节和部分

  • 文章

  • 网站页面

Ports

影响 Ports 的更改,无论是涉及大多数树的广泛更改,还是单个 Port 的更改。

FreeBSD 上的 GCC

链接:

GCC 项目arrow-up-right 链接:https://gcc.gnu.org/arrow-up-right

GCC 11 发布系列arrow-up-right 链接:https://gcc.gnu.org/gcc-11/arrow-up-right

GCC 12 发布系列arrow-up-right 链接:https://gcc.gnu.org/gcc-12/arrow-up-right

GCC 13 发布系列arrow-up-right 链接:https://gcc.gnu.org/gcc-13/arrow-up-right

GCC 14 发布系列arrow-up-right 链接:https://gcc.gnu.org/gcc-14/arrow-up-right

联系方式:Lorenzo Salvadore <[email protected]envelope>

本季度的主要新闻是关于新的 GCC 版本:

更新 GCC 默认版本从 13 升级至 14 的 exp-runarrow-up-right 已经开始。感谢所有参与者。

如果你维护任何受影响的 Port 或希望在准备和测试补丁方面提供帮助,请考虑尝试在受影响的 Port 中添加 -fpermissiveCFLAGS:GCC 14 将一些警告转变为错误,导致许多构建失败。-fpermissive 参数可这些错误转换回警告。

FreeBSD aarch64 上的 Freepascal 和 Lazarus

链接:

Freepascal 项目arrow-up-right 链接:https://www.freepascal.org/arrow-up-right

Lazarus IDEarrow-up-right 链接:https://www.lazarus-ide.org/arrow-up-right

联系方式:José Alonso Cárdenas Márquez <[email protected]envelope>

Free Pascal 是一款成熟的、功能强大的开源 Pascal 编译器,支持多种操作系统和处理器架构:Intel x86(16 位和 32 位)、AMD64/x86-64、PowerPC、PowerPC64、SPARC、SPARC64、ARM、AArch64、MIPS、摩托罗拉 68k、AVR 和 JVM。此外,开发版还支持 RISC-V(32/64 位)、Xtensa 和 Z80 架构,并支持 LLVM 编译器基础设施。同时,Free Pascal 团队还维护着一款名为 pas2js 的 Pascal 到 JavaScript 的转换器。

Lazarus 是一款与 Delphi 兼容的跨平台 IDE,支持快速应用程序开发,提供了多种现成的组件,并具有图形化表单设计器,可以轻松创建复杂的图形用户界面。

三年前,Mikaël Urankar <[email protected]envelope> 开始将 Free Pascal 编译器移植到 FreeBSD aarch64,并且已经将其合并到 Free Pascal 的 main 代码分支中。几个月前,我添加了 lang/fpc-develarrow-up-right(3.3.1)和 editors/lazarus-develarrow-up-right(3.99)到 Ports,仅适用于 i386 和 amd64,因为 aarch64 尚未准备好。aarch64 上生成的二进制文件无法运行,因为存在 ELF 问题。最终,几天前这些问题得以解决,对 FreeBSD aarch64 的支持完成。

lang/fpc-develarrow-up-righteditors/lazarus-develarrow-up-right 已更新至 3.3.1.20240913 和 3.99.20240913,分别支持 aarch64。这为 FreeBSD 用户带来了一个新语言和平台,支持在 FreeBSD aarch64 上进行控制台、图形/任何类型的应用程序开发。

待办事项

第三方项目

许多项目基于 FreeBSD 或将 FreeBSD 组件集成到他们的项目中。由于这些项目可能对更广泛的 FreeBSD 社区有兴趣,我们有时会在季度报告中包括这些项目提交的简短更新。FreeBSD 项目对于这些提交中的任何声明的准确性或真实性不做任何表态。

容器与 FreeBSD:Pot、Potluck 和 Potman

链接:

Pot 组织在 GitHub 上arrow-up-right 链接:https://github.com/bsdpotarrow-up-right

联系方式:Luca Pizzamiglio (Pot) <[email protected]envelope>

联系方式:Bretton Vine (Potluck) <[email protected]envelope>

联系方式:Michael Gmelin (Potman) <[email protected]envelope>

Pot 是一款 Jail 管理工具,还支持通过 Nomad 进行编排arrow-up-right。Potluck 旨在成为 FreeBSD 和 Pot(以及未来可能还包括 Podman)在容器领域的类似作用,就像 Dockerhub 对 Linux 和 Docker 的作用一样:一个容器描述和完整容器镜像的存储库,可用于 Pot 并且在许多情况下也能与 Nomad 一起使用。

在本季度,Potarrow-up-right 进行了两个 bug 修复,预计很快会发布。

Potluck 镜像再次进行了更新。所有镜像已重新构建,以包含最新的修复和季度软件包。此外,像 Lokiarrow-up-rightVaultarrow-up-right 这样的某些镜像还进行了额外的更新和 bug 修复。

此外,我们还对 Potluck 未来可能支持 OCI、Buildah 和 Podman 镜像进行了研究。已发布了两篇博客文章,一篇介绍了 基本的 Buildah 和 Podman 设置arrow-up-right,另一篇描述了 如何使用 Nomad 和 Consul 协调 Podman 容器arrow-up-right

如往常一样,欢迎反馈和补丁。

赞助商:Nikulipe UAB,Honeyguide Group

最后修改时间Lorenzo Salvadorearrow-up-right 于 2024 年 11 月 6 日

最后更新于