最后修改:Lorenzo Salvadore 于 2024 年 8 月 18 日
这是 2024 年的第二份状态报告,共包含 20 个条目。
这次状态报告的发布要比平常困难许多:实际上我们已经发布晚了。问题在于,很多成员在 FreeBSD 项目内外都非常忙碌,因此某些报告迟到了,总报告的发布也就比往常晚。希望这只是一个例外,我们能在下一季度恢复正常,2024 年第三季度的报告预计于 2024 年 10 月发布。
祝阅读愉快。
Lorenzo Salvadore,
代表状态团队
来自各种官方、半官方团队的条目,如管理页面所列。
联系方式:FreeBSD 核心团队 core@FreeBSD.org
FreeBSD 核心团队是 FreeBSD 的管理机构。
核心团队在 202405 开发者峰会上发布了状态更新。详情请访问:https://wiki.freebsd.org/DevSummit/202405
我们沉痛地得知 Mike Karels 在近期逝世。我们向他的家人、朋友和社区表示诚挚的哀悼。Mike 是一位令人敬仰的开发者,他的离世是一个巨大的损失。
更多有关他的详细信息,请访问 FreeBSD 基金会:
https://freebsdfoundation.org/mike_karels/
第十二届核心团队任命了 Muhammad Moinur Rahman(bofh@)和 Allan Jude(allanjude@)为 2024 年核心团队选举的负责人。在 Allan 决定参选后,Moin 继续独立地处理了所有选举事务。
选举结果公布于 6 月 12 日,选出了 8 名成员:
Allan Jude(allanjude@)
Dave Cottlehuber(dch@)
Gleb Smirnoff(glebius@)
佐藤広生(hrs@)
許立文(lwhsu@)
Mathieu Arnold(mat@)
Olivier Cochard(olivier@)
Tobias C. Berner(tcberner@)
Mike Karels 也参加了 2024 年核心团队选举,他在选举结果中排第九。在讨论后,决定由这八名成员组成新的第十三届核心团队。
第十三届核心团队于 6 月 12 日就任,并在 6 月 21 日和第十二届核心团队举行了交接会议。
FreeBSD 项目感谢即将卸任的第十二届核心团队成员在过去两年中的工作:
Baptiste Daroussin(bapt@)
Benedict Reuschling(bcr@)
Ed Maste(emaste@)
Greg Lehey(grog@)
John Baldwin(jhb@)
Emmanuel Vadot(manu@)
Mateusz Piotrowski(0mp@)
核心团队批准了 Osama Abboud(osamaabb@)在 src 的提交权限
核心团队重新启用了 Ryan Libby(rlibby@)在 src 的提交权限
链接:
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 的发展。我们以技术和非技术的方式来实现这一目标。我们的资金完全来自个人和公司的捐献,这些资金将帮助我们维持:
软件开发项目。在 FreeBSD 中开发功能和特性
赞助和组织会议、开发者峰会。提供协作机会来推广 FreeBSD
购买和提供硬件支持。改善和维护 FreeBSD 基础设施
提供资源。改进安全性、质量保证和持续集成工作
所需的材料和人员。推广、教育和宣传 FreeBSD
商业供应商与 FreeBSD 开发者之间的合作
代表 FreeBSD 项目执行合同、许可协议和其他需要认可法律实体的法律事项
在上个季度,我们协助庆祝了 FreeBSD 31 周年!FreeBSD 社区热衷于庆祝这样的里程碑事件。我们看到,不仅有越来越多的用户在社交媒体上分享他们的故事,许多商业用户也在积极推广他们的用例——并表达了他们对 FreeBSD 的热爱。看到那些 FreeBSD 改进,用户和贡献者的增长,FreeBSD 项目的发展真令人振奋。
在过去的几个季度,我们成立了技术、宣传和合作团队,以加快步伐,改进 FreeBSD 操作系统,提高其使用量、知名度,提升赞助支持我们工作的合作伙伴数量。
下面你将会看到每个团队的进展,可了解为服务我们所爱的社区和操作系统,我们所完成的工作。但首先,我想分享募款的进展。在上个季度,我们募集了 41,154 美元,募集目标是超过 2,000,000 美元。你可以在这里浏览我们 2024 年的预算,了解我们是如何使用你的捐款的:https://freebsdfoundation.org/wp-content/uploads/2024/03/Budget2024-Approved-Public.pdf。
有超过一半的预算直接用于改进 FreeBSD,并确保其安全性。若存在安全漏洞,我们的工作人员可迅速介入,评估情况,并在需要时进行更改和实施解决方案。我们有一名全职开发人员负责着持续集成工作,并研究着改进测试代码的工具、提高测试覆盖率以及帮助开发人员提高效率的方式。我们还把更多资金用于宣传工作。比如编写一些东西来展现 FreeBSD 的优势和特长,采访商业用户并记录其用例,推广社区所做的工作。
请考虑通过捐款来赞助我们的工作,以帮助保持 FreeBSD 的创新性、安全性和稳定性:https://freebsdfoundation.org/donate/。
如果你是公司客户,请考虑成为合作伙伴!可在这里了解更多关于我们合作机会的信息:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/。
在 2024 年第二季度,有 204 个 src 提交、50 个 ports 提交和 11 个 doc 提交以 FreeBSD 基金会为赞助商。
基金会正赞助着 13 个项目。
Christos Margiolis 持续改进着 FreeBSD 的音频栈,并为音频开发者提供有用的工具和框架,以促进在 FreeBSD 上的音频开发。详情请参阅条目音频栈改进。
Pawel Dawidek 正处于为 OpenZFS 添加分层速率限制项目的最后阶段。详情请参阅 OpenZFS 的分层速率限制报告条目和 OpenZFS 存储库中的 PR。
长期合同聘用的 Olivier Certner 活跃在源代码的各方面:
rtprio(2):将每个运行队列的队列数由 64 更新为 256
UnionFS:审查了 Jason A. Harmening 所做的工作。Jason 的工作修复了许多锁问题(没有锁的野访问、死锁等),尤其是 unionfs_rename()
,并改进了锁逻辑。
vnode 回收与 ZFS ARC 回收 :审查了 bug #275594 的修复,联系了上游,用于获得和测试回溯,发布了勘误通知并将解决方案实施至了 13.3-RELEASE-p2。开始了一项长期工作,改进 Vnode 回收机制以让 ZFS 传递正确信息。
ULE 调度器:进展是,将在单个(而非 3 个)运行队列上工作,以符合 POSIX 有关不同 SCHED_FIFO/SCHED_RR
优先级数量的规定。
杂项:一些(26 个)审查、ports 更新和研究 DRM 问题。
在 FreeBSD 期刊上发表了 EuroBSDCon 2023 会议报告。
Pierre Pronchery 继续与基金会合作开展进行一项以安全为中心的项目,其中包括:
使用 security/osv-scanner 自动生成所有 ports 的 VuXML 报告
基于 bhyve 运行 Coverity 扫描报告,协助改正报告发现的问题
AMD 和 FreeBSD 基金会的合作项目持续着进行——开发一款完善的 FreeBSD AMD IOMMU 驱动程序。该工作将使 FreeBSD 能够完全支持大于 256 个核心,并配备诸如 CPU 映射等功能,还将涉及 bhyve 集成。Konstantin Belousov 始终在该项目的各方面工作,涉及驱动程序附件、寄存器定义、ACPI 表解析器和实用函数。需要完成的两个关键组件是上下文处理(主要使 Intel DMAR 代码泛化)和分页表创建。待完成后,可以开启 AMD 驱动的使能位进行测试。要跟踪 Konstantin 的所有工作,请查找带有 Sponsored by Advanced Micro Devices (AMD)
和 The FreeBSD Foundation
的 src 提交。
矢量数据包处理器(VPP)是款开源的高性能用户空间网络栈,提供了快速的数据包处理,适用于软件定义网络和网络功能虚拟化应用。Tom Jones 即将完成该项目的部分工作——将 VPP 移植到 FreeBSD。代码已与 RG Nets(该工作的联合赞助商)共享,以进行广泛测试。
Björn Zeeb 持续改进着 FreeBSD 的无线网络功能。与上个季度一样,重点主要放在错误修复和稳定性改进上。Björn 逾 30 次的源代码提交大部分都是针对 LinuxKPI 和 net80211 代码的。
Philip Paeps 正进行着一份每月 20 小时、为期六个月的合同,以持续使 FreeBSD 集群现代化的工作。这项工作包括将更多的服务器迁移到我们在芝加哥 NYI 的最新集群站点。
Moin Rahman 目前进行着两份合同。Moin 即将完成一份有关互联网安全中心(CIS)加固指南的工作,并继续致力于建立预提交 CI 系统。
Mina Galić 继续努力使 FreeBSD 上的 cloud-init 支持达到与 Linux 同期水准。
Mitchell Horne 在 FreeBSD 开发者峰会上展示了他的 RISC-V 工作。你可在报告条目 FreeBSD/riscv64 中阅读相关最新进展信息。
有关把 OpenStack 组件移植到 FreeBSD 主机上的项目的最新进展,请参考报告条目 Chih-Hsin Chang 的 OpenStack on FreeBSD。
其他的基金会技术团队成员也对 FreeBSD 的开发工作做出了贡献。例如,Mark Johnston 与 Andrew Turner 一起编写了构建 arm64 bhyve 客户机的扁平化设备树(FDT)的基本例程。FDT 描述了客户机操作系统需要了解的各种硬件组件,如 CPU、内存、串口、PCIe 控制器、中断控制器和平台计时器。Ed Maste 进行了多项源代码贡献,包括现代化 tzsetup(8) ,修正了 diff(1) 参数的问题。許立文和 Joe Mingrone 在平衡日常职责的同时,也为多个 port 提供了更新和修复,处理了紧急安全问题。
FreeBSD 正在参加第 20 届谷歌编程之夏。今年夏天的 11 个项目 进展顺利。
作为我们不懈改进 FreeBSD 项目的一部分,基金会聘用了一名全职员工专门负责改进 FreeBSD 项目的持续集成系统和测试基础设施。
在第二季度,基金会的合作负责人 Greg Wallace 参加了在西雅图举行的开源峰会活动。在那里,Greg Wallace 与 Doug Rabson 一起参加了有关 FreeBSD OCI Runtime Extension 工作组工作的演讲。你可以在这里查看。Greg 还利用此次活动与多家重要科技公司建立起联系,推动重大联合技术项目。Greg 为这次活动的撰文在此。
其他需求强烈的功能也正在继续开发。RG Nets 和其他公司在将 CUDA 及相关 AI 栈组件引入 FreeBSD 方面取得了很大进展。基金会正在寻求 FreeBSD 用户协助的方法,帮助在 FreeBSD 上提供多种 AI 技术的支持。一个想法是推出 FreeBSD AI 实验室,从支持者那里募集资金,用以全面支持 FreeBSD 上的 CUDA,完善 DPU(数据处理器)驱动支持。如果你想支持此项倡议,请联系我们。
我们还在继续帮助 FreeBSD 社区的辛勤工作——使 FreeBSD 支持 .NET,从而使其下游依赖项能够更好地支持 FreeBSD。关于这方面的更多信息即将发布。
感谢 Alpha-Omega 慷慨解囊,FreeBSD 基金会委托 Synactiv 对重要子系统进行了两次代码审计。Alpha-Omega 是一项开源项目,其使命是通过推动对最关键的开源软件项目和生态系统的可持续安全改进来保护社会。可以在这里找到我们最近的月进展。代码审计将在七月完成,然后我们将进行进程审计,并开启一项双因素身份验证(2FA)试点项目。
在一、二季度,Greg 参与了几次有关各种政府法规的会议。今年三月,他代表 FreeBSD 参加了美国网络安全和基础设施安全局(CISA)为期两天的开源软件(OSS)安全峰会,与其他开放政策联盟(Open Policy Alliance,OPA)成员一道参会。此前,Greg 与 OPA 合作提交了有关美国政府如何支持开源安全性和可持续性的意见。在六月,FreeBSD 基金会加入了 Eclipse 基金会的开放监管合规工作组(Open Regulatory Compliance Working Group)。该工作组旨在加速开发所需的网络安全流程,以实现合规,同时为整个开源社区提供了技术讨论的中立环境。
我们非常高兴地欢迎 Alice Sowerby 成为合同兼职的合作伙伴项目经理。Alice 是一位经验丰富、技能多元的领导者,目前活跃于多个开源领域。她是 CHAOSS 播客的联合主持人,也是 OSPO 书籍 TODO 小组审查团队的主席。Alice 正在为 Alpha-Omega、OCI FreeBSD Runtime Extension WG 和企业工作组等合作伙伴计划进行计划和项目管理。
在 2024 年第二季度,我们不懈地提升着 FreeBSD 的受关注度,宣传 FreeBSD 的发展,展示用户,为 FreeBSD 社区带来教育信息。以下是我们的一些努力成果:
组织了 2024 年 5 月的 FreeBSD 开发者峰会,该峰会与 BSDCan 同时举办。可以观看峰会的视频并阅读概览。
在 FreeBSD 周,庆祝了 FreeBSD 的 31 岁生日,期间发布了许多新用户故事,并采访了 Beastie!
发布了 2024 年 FreeBSD 社区调查的最终报告。
公布了首届年度数字安全设计(DSbD)生态系统灯塔奖的获奖信息,以表彰在 CheriBSD 上进行创新和增强的贡献者。该奖项由基金会与 Innovate UK(英国创新局)和数字安全设计(DSbD)合作赞助。
编写了 FreeBSD 14.1 概述。
更新了 FreeBSD 终端用户页面,加入了新的采访和一些新的案例研究,包括 Netflix、Metify 和RGNets 的案例研究。
参与了以下撰稿文章、采访和播客:
基金会持有 FreeBSD 商标,并有责任保护这些商标。我们还为核心团队提供法律支持,以便调查出现的问题。
访问 https://freebsdfoundation.org,了解我们怎样保护 FreeBSD 和帮助你!
链接:
FreeBSD 14.1-RELEASE 公告 网址:https://www.freebsd.org/releases/14.1R/announce/
FreeBSD 13.4-RELEASE 计划 网址:https://www.freebsd.org/releases/13.4R/schedule/
FreeBSD RELEASE 网址:https://download.freebsd.org/releases/ISO-IMAGES/
FreeBSD 开发快照 网址:https://download.freebsd.org/snapshots/ISO-IMAGES/
联系:FreeBSD 发布工程团队,re@FreeBSD.org
FreeBSD 发布工程团队负责安排和公布 FreeBSD 正式项目版本的发布时间表,宣布代码冻结并维护相应的分支等工作。
发布工程团队对 Mike Karels 的逝世进行了悼念。Mike Karels 曾是 FreeBSD 副发布工程负责人,在去世前几天,他曾同意担任 13.4-RELEASE 的发布工程师。
发布工程团队团队管理了 14.1-RELEASE,且在 6 月完成了最终发布构建和公告。在今年第二季度,团队新增了成员:Ed Maste(副发布工程负责人)、Dave Cottlehuber、John Hixson、Mahdi Mokhtari、Doug Rabson、Muhammad Moinur Rahman。正进行着 13.4-RELEASE 的周期规划。
发布工程团队持续为 main、stable/14 和 stable/13 分支提供每周构建的开发快照。
链接:集群管理团队成员
网址:https://www.freebsd.org/administration/#t-clusteradm
联系:集群管理团队 clusteradm@FreeBSD.org
FreeBSD 集群管理团队成员负责管理 FreeBSD 项目所需的机器,以便同步 FreeBSD 分布式工作和通信。
本季度,团队完成了以下工作:
定期服务 FreeBSD.org
用户账户。
为所有物理机和镜像不断地提供(和更换)磁盘和组件。
更新集群软件。
将集群服务迁移到芝加哥。
除了软件包构建器和面向开发者的机器(“dogfood”),大多数 FreeBSD 集群都跟踪着 stable/X 分支。在本季度,我们开始将 stable/13 主机迁移到 stable/14。
在撰写本文时,集群中有 133 台物理机,其中 48 台运行着 current,64 台已更新到 stable/14。剩余的机器将在不久的将来进行升级或下线。在集群的 290 个 jail 中,有 206 个运行着 stable/14。
在年初,我们开始在芝加哥建立新站点。在本季度,我们开始下线新泽西洲的旧机器,将服务迁移到芝加哥。我们的长期目标是使芝加哥成为我们的主要站点。完成此工作还需数月时间。
目前的镜像服务器分布在以下地点:澳大利亚、巴西、德国、日本(两个完整镜像站点)、马来西亚、南非、瑞典、台湾、英国(完整镜像站点)、美国加利福尼亚州、芝加哥、新泽西(主站点)和华盛顿。
硬件和网络连接由以下组织慷慨提供:
BroadBand Tower, Inc. 的云和 SDN 实验室
我们始终欢迎新的官方镜像加入。我们发现了由全球互联网分发的单一镜像站的好处,我们现有的澳大利亚、巴西和南非的镜像证明了这一点。如果你与有意赞助单一镜像服务器的组织有所联系,或知道这样的组织,请联系我们。我们尤为关注美国西海岸和整个欧洲地区。
查看通用镜像布局可获取完整镜像站点规格,tiny-mirror 可了解单一镜像站点。
赞助商:FreeBSD 基金会和 Netzkommune
链接:
联系:Jenkins 管理员 jenkins-admin@FreeBSD.org
联系人: 許立文 lwhsu@FreeBSD.org
联系:EFNet 上的 IRC #freebsd-ci 频道
在 2024 年第二季度,我们与项目贡献者和开发人员合作,满足了他们的测试需求。同时,我们与外部项目和公司合作,通过更多地在 FreeBSD 上进行测试来改进他们的产品。
已完成的重要任务:
将 FreeBSD 基金会购买的新硬件(芝加哥)添加至 CI 集群
将下线的 pkg 构建器变为构建代理,添加到 CI 集群
根据机器能力调整了作业调度机制
bofh@ 合并了 https://reviews.freebsd.org/D43786 作为 为开发者添加初步的树内 CI 基础设施,以便他们可以复现类似于 https://ci.FreeBSD.org 的环境(结果)
下线 main 分支的 armv6 作业
正在进行的任务:
设计和实施基于 CI 的构建和测试以及拉取/合并请求系统(以支持工作流程工作组)
正在进行概念验证系统。
设计和实施使用 CI 集群构建发布工件,如发布工程所做的那样,从快照构建开始
简化贡献者和开发人员设置 CI/test 环境的流程
设置 CI 阶段环境并将实验性作业置于其上
重新设计硬件测试实验室并添加更多测试硬件
已列出和待进行的任务:
收集和整理 CI 任务和想法
为运行测试的 VM 虚拟机设置公网访问
实现使用裸金属硬件运行测试套件
添加面向 -CURRENT 的 drm Port 构建测试
计划运行 ztest 测试
帮助更多软件在其 CI 管道中获得 FreeBSD 支持(维基页面:3rdPartySoftwareCI,HostedCI)
与托管 CI 提供商合作以更好地支持 FreeBSD
请参阅 freebsd-testing@ 相关问题 了解更多进行中的信息,不要犹豫,加入这个工作吧!
赞助商:FreeBSD 基金会
链接:
联系人:
Tobias C. Berner portmgr-secretary@FreeBSD.org
FreeBSD Ports 管理团队 portmgr@FreeBSD.org
Ports 管理团队负责把控 Ports 的整体方向、构建软件包以及人员管理等事项。以下是上季度发生的情况。
根据索引,目前 Ports 中共有 32,471 个 port。目前约有 3,497 个正在进行的 ports PR。上季度,在主分支上有 160 位提交者进行了 10,525 次提交,在 2024Q2 分支上有 107 位提交者进行了 1,771 次提交。同上一季度相比,对 main 分支的提交数量大幅减少(12,991),对季度分支的回溯也有所减少(888 次)。ports 数量则有所增加(32,244)。
最活跃的 main 分支提交者是:
sunpoet:3739 次提交
yuri:1450 次提交
jbeich:491 次提交
eduardo:220 次提交
bofh:200 次提交
diizzy:197 次提交
rene:188 次提交
fernape:156 次提交
jhale:133 次提交
arrowd:129 次提交
在过去三个季度中,ports 中发生了很多变化,以下是一些主要软件的更新情况:
pkg 更新到 1.21.3
lazarus 的默认版本切换到 3.4.0
fpc 的默认版本切换到 3.2.3
python 的默认版本切换到 3.11
chromium 从 123.0.6312.86 更新到 126.0.6478.126
firefox 从 124.0.1 更新到 127.0.2
firefox-esr 从 115.9.0 更新到 115.12.1
rust 从 1.77.0 更新到 1.79.0
sdl2 从 2.6.3 更新到 2.8.2
wlroots 从 0.17.2 更新到 0.17.4
wine 从 8.0.2 更新到 9.0
wine-devel 从 9.4 更新到 9.11
xorg-server 从 21.1.11 更新到 21.1.13
qt5 从 5.15.13 更新到 5.15.14
qt6 从 6.6.3 更新到 6.7.2
kf5 从 5.115.0 更新到 5.116.0
kf6 从 6.0.0 更新到 6.3.0
plasma6 从 6.0.2 更新到 6.1.1
在上季度,pkgmgr@ 进行了 24 次实验性运行,测试了各种 ports 更新、ports 默认版本更新、子包支持和基本系统变更。
这些项目涉及了多个类别,从内核和用户空间到 Ports 和外部项目。
联系人:Christos Margiolis christos@FreeBSD.org
FreeBSD 的音频栈是个不怎么受关注和开发的领域,虽然其质量较高,但仍有改进空间——缺乏音频开发框架,缺少用户空间实用程序,内核驱动也有若干错误。这个项目旨在触及这些领域,因此这更多的是一项普通改进项目,而非实现特定功能。
自上次报告以来的重要工作:
现在实现了异步音频设备分离。此功能已随 FreeBSD 14.1-RELEASE 以及 14-STABLE 版本分发。
修复了多个 sound(4) 的崩溃和错误。
提升了 snd_hda(4) 笔记本音频的即开即用支持。
一系列提交清理,简化了 sound(4) 的部分内容。
对 OSS API 进行了多项修复,最值得注意的是 SNDCTL_AUDIOINFO 和 SNDCTL_ENGINEINFO IOCTLs 的正确实现。
着手实现 sound(3),一个 OSS 音频和 MIDI 库。
接管了 virtual_oss(8) 的维护。
未来的工作包括:
实现一款蓝牙设备管理实用程序。
在需要的地方改进文档和测试套件。
尝试找到一种更好的(理想情况下,自动化的)方式来处理 snd_hda(4) pin 修补。这个实验性尝试可能不会得到实际的工作结果。
你还可以在freebsd-multimedia@中跟踪开发进程,我会在那里发布周期报告。
赞助:FreeBSD 基金会
链接:
GitHub 工作组 wiki 页面 网址:https://wiki.freebsd.org/WorkingGroup/GitHub
FreeBSD 基本系统 RPs 网址:https://github.com/freebsd/freebsd-src/pulls
联系人:Warner Losh imp@FreeBSD.org
FreeBSD 项目一直在尝试通过 GitHub RP 接受贡献。在过去的一年里,我们从中学到了很多东西,并制定了一些与 RP 相关的规则。总体来说,RP 应该仅针对用户可见的内容、对项目有正向作用并且已准备就绪的改动,当然最终审核除外。
当前状态:
我们能够通过每周最少一次的手动处理,来跟上 RP 的进度。
我们发现手动处理过程繁琐且易错。
我们可以在测试分支中分阶段处理多个 RP,以便批量进行测试。
我们可以自动合并结果,以在 GitHub 基础设施中显示 RP 已被合并。
我们需要在以下方面的帮助来自动化处理流程:
添加上下文相关的自动化测试(例如,对 man 页进行 igor 测试)。
添加能够测试启动生成镜像的构建/安装测试。
将常见任务(如校正 man 页)自动化到阶段性处理过程。
为一级架构的阶段性分支添加简单的冒烟测试(smoke testing)。
研究是否可以选择性地集成 Jenkins 测试,以扩大我们可以接受的变更规模。
将 Bugzilla 问题报告和 Phabricator 审查进行集成。
通过自动化对 RP 中常见错误的反馈,来改善提交者在 GitHub 上的体验。
创建提交者清单以减少错误。
提供有关优秀 RP 的报告,尤其是那些频繁参与的优质 RP 贡献者。
我们正在 FreeBSD 的 Discord 服务器上的 #github-hacking 频道协调工作。欢迎加入我们来贡献你的力量,或只是聊一聊 FreeBSD。
待一切调整好,我们希望能通过宣传来感召贡献者,至少在基本系统上,要使用 GitHub RP。我们需要更多开发人员来审查 FreeBSD 的 GitHub RP。待自动化成熟并全面展开,我们还将需要更多开发人员来审查和合并 RP。我们真切希望以这一努力,改善 FreeBSD 的贡献体验,并从社区收到有用的修复。
影响基本系统及其程序的更改。
链接:
网址:https://github.com/dlrobertson/capsicum-rs capsicum-net 在 GitHub 上
网址:https://github.com/asomers/capsicum-net
联系人:Alan Somers asomers@FreeBSD.org
Capsicum 是一款轻量级的操作系统能力和沙箱框架,实施了混合能力系统模型。
我已接管了为 Capsicum 提供 Rust 绑定的库,并扩展了对 libcasper(3) 和 cap_net(3) 的支持。这个库已经在 net-mgmt/nfs-exporter 和一个支持 TLS 的 FTP 服务器中使用了(该 FTP 服务器是闭源的,但所有有趣的部分都位于开源库中,示例服务器在 https://github.com/bolcom/libunftp/tree/master/crates/unftp-sbe-fs/examples)。
赞助商:Axcient
链接:
Service Jails rc-article 部分 网址:https://docs.freebsd.org/en/articles/rc-scripting/#rcng-service-jails
联系人:Alexander Leidinger netchild@FreeBSD.org
服务 jail 扩展了 rc(8) 系统,使其能够自动将 rc.d 服务放入 jail 。服务 jail 继承了父主机或 jail 的文件系统,但默认情况下使用 jail 的所有其他限制(进程可见性、受限网络访问、文件系统挂载权限、sysvipc 等)。额外配置允许继承父主机的 IP、sysvipc、内存页面锁定以及使用 bhyve 虚拟机监视器 (vmm(4))。
基本系统基础设施和基本系统 rc.d 服务已提交到 15-current,手册/rc 文章更新已更新至文档。下一步是扩展 ports 中的服务,使其能够利用这一功能。
如果你想将诸如 nginx 放入服务 jail 并允许 IPv4 和 IPv6 访问,只需将 rc.conf(5) 更改为:
尽管它不具有独立文件系统和 IP/VNET 的手动 jail 设置那样的安全优势,但它更容易设置,同时带来了一些 jail 的安全性优势,如隐藏同一用户的其余进程。
欢迎一切测试和反馈(即使只是“service X 在服务 jail 中正常工作”)。
内核子系统/功能、驱动支持、文件系统等的更新。
链接:
RP 网址:https://github.com/openzfs/zfs/pull/16205
联系人:Pawel Dawidek pawel@dawidek.net
速率限制能限制每个数据集的带宽和元数据操作的数量。
分层速率限制能在共享环境中进行细粒度的资源控制,例如,当单个 ZFS 池为多个独立的虚拟机或 jail 提供数据时。
由于限制是分层的,它们的执行方式类似于配额属性:子数据集须受父数据集的限制。
可以使用六个新属性来配置限制:limit_bw_read
、limit_bw_write
、limit_bw_total
、limit_op_read
、limit_op_write
、limit_op_total
limit_bw_*
属性分别限制数据集及其子集可以消耗的读取、写入或总带宽。这些限制以 B/s 为单位。limit_op_*
属性限制数据集及其子集可以生成的读取、写入或总的元数据操作数量。这些限制以每秒运算次数(operations per second,OPS)为单位。
这些限制适用于文件系统和 ZFS 卷(及快照)。
已完成起步工作,RP 已提交审核。
赞助商:Klara Systems 赞助商:FreeBSD Foundation
链接:
网址:https://wiki.freebsd.org/SummerOfCode2024Projects/ZeroCostConditionalExecutionMechanism
联系人:Marko Vlaić mvlaic@freebsd.org
联系人:Bojan Novković (导师) bnovkov@freebsd.org
该项目旨在实现一种低成本的条件执行机制,类似于 Linux 中的接口 static_key
。当前的工作名称是 zcond
,即零成本条件。其目的是减少在性能敏感的内核代码路径中,少用功能的开销。特别是,目标是以下简单结构的代码块:
类似代码块可能会在频繁执行的代码中产生性能开销。
该机制的动机使用案例是跟踪(如 wiki 中所述),但该项目将研究此机制更广的可应用领域。
该机制的核心是运行时指令热补丁,使其高度依赖于架构。由于内核指令在运行时被覆盖,因此必须尤为关注安全性。更多详细信息和实现思路可以在项目 wiki 中找到。随着项目的推进,将会产生更多关于实现和设计决策的文档。
项目的目标是为 x86-64 架构开发出一个可用的机制实现。然后,将其应用于现有的内核代码,并进行基准测试。若基准测试结果良好,再移植到其他架构。
该项目是 谷歌编程之夏2024 的一部分。项目仍处于早期阶段,但一切反馈都将受到高度重视。
关于机制、API 和实现的普通反馈
欢迎提出跟踪以外的更多使用案例
代码审查
命名建议
赞助商:Google LLC(2024 谷歌编程之夏)
更新平台特定功能,并支持新的硬件平台。
链接:
网址:https://wiki.freebsd.org/riscv
联系人:Mitchell Horne mhorne@FreeBSD.org
联系人:Ruslan Bukin br@FreeBSD.org
联系人:Jari Sihvola jsihv@gmx.com
FreeBSD/RISC-V 项目正在为 RISC-V 指令集架构 提供支持。
在 6 月的开发者峰会上,Mitchell 作为 BSDCan 2024 的一部分,展示了 FreeBSD/riscv64 平台的状态。演讲讨论了迎接不断发展的 RISC-V ISA 的挑战,并简述了一些可用的目标硬件。虽然形式较为非正式,但可在 YouTube 上观看。
https://www.youtube.com/watch?v=O7zW7Z9U0ns
正在进行 FreeBSD JH7110 RISC-V SoC 的开发工作。该 SoC 搭载于几款现有的 RISC-V 单板计算机。主要支持对象是 VisionFive v2,但这项工作可能会对类似硬件如 Pine64 Star64 和 Milk-V Mars 有益。
目前,在 CURRENT 中开发完成了一部分。已完成的内容包含:
串口
clk/reset 驱动
MMC/SD
下一个目标是实现以太网支持,这需要对 if_eqos
驱动进行增补。代码已功能就绪,但仍在审查中。
这项工作由 Jari 进行,Mitchell 负责审查、测试和集成。
https://wiki.freebsd.org/riscv/StarFive
如开发者峰会演讲中所述,这些 CPU 有多个使用障碍。问题主要来自于开发商的定制魔改:带有自定义缓存管理指令的非一致性设备 I/O,以及自定义(不规范)的页面基础内存类型实现。这些特殊之处要求对 pmap、busdma 和早期启动代码进行困难且侵入性变更。
同时,我们看到基于这些 IP 的硬件越来越多,因此改进成为一个反复出现的问题和动力。
正在进行页面基础内存类型的工作,并预计很快会在 CURRENT 中实施。此功能允许为单独的虚拟内存页面分配特定属性,例如缓存要求。riscv64 pmap 已增补以支持官方的 RISC-V 'Svpbmt' 扩展和 T-HEAD 版本的 PBMT。这些可选编码不兼容,但提供了类似的功能。
对设备一致性和缓存管理挑战的工作将在下个季度开始。
希望这些基础工作最终能够支持可用的 RISC-V 硬件,如:
Allwinner D1 (Nehza)
Sipeed Lichee Pi 4A
Beagle-V Ahead
Milk-V Pioneer
对 bhyve/vmm(4)
中的 RISC-V 虚拟化实验支持正在积极开发。目前,可以使用单核 VM,且虚拟机能启动到多用户模式。
注意:"H"(虚拟化,Hypervisor)扩展未被任何现有已知的或即将出现的 RISC-V 硬件实现。它被软件模拟器如 Spike、QEMU 所完全支持。
https://wiki.freebsd.org/riscv/bhyve
赞助商:FreeBSD Foundation (mhorne 的工作) 赞助商:UKRI (br 的工作)
更新云特定功能,并支持新的云平台。
链接:
FreeBSD wiki 上的 Microsoft Azure 文章 网址:https://wiki.freebsd.org/MicrosoftAzure
FreeBSD wiki 上的 Microsoft HyperV 文章 网址:https://wiki.freebsd.org/HyperV
联系人:Microsoft FreeBSD 集成服务团队 bsdic@microsoft.com
联系人:FreeBSD Azure 发布工程团队 releng-azure@FreeBSD.org
联系人:Wei Hu whu@FreeBSD.org
联系人:Souradeep Chakrabarti schakrabarti@microsoft.com
联系人:許立文 lwhsu@FreeBSD.org
在本季度,我们在 Azure Marketplace 上发布了 14.1-RELEASE。来自 Microsoft 的 Souradeep Chakrabarti 改进了 Azure 中的 TLB 刷新机制。
正在进行的任务:
自动化镜像构建和发布流程,并合并到 src/release/
。
构建快照并发布到 Azure community gallery。
对在 Azure Pipelines 添加的 FreeBSD 支持进行测试
以上任务由 FreeBSD 基金会赞助,Microsoft 提供资源支持。
待办事项
更新 Microsoft Learn 上的 FreeBSD 相关文档
把 sysutils/azure-agent 更新到最新版本
回馈上游 Azure 代理的本地修改
移植 Linux 虚拟机扩展到 Azure
赞助商:Microsoft(为 Microsoft 内部人员和其他资源提供支持
赞助商:FreeBSD 基金会(其他所有事宜)
链接:
OpenStack 网址:https://www.openstack.org/
FreeBSD 上的 OpenStack 网址:https://github.com/openstack-on-freebsd
联系人:Chih-Hsin Chang starbops@hey.com
联系人:許立文 lwhsu@FreeBSD.org
FreeBSD 上的 OpenStack 项目旨在将 OpenStack 云基础设施同 FreeBSD 操作系统集成,利用 FreeBSD 的独特功能,同时保持与 OpenStack 标准的兼容性。
在 2024 年第二季度,我们的项目进展得到了显著推进。我们的一项关键活动是参加 BSDCan 2024,在会上介绍了 “迈向稳健的基于 FreeBSD 的云:迁移 OpenStack 组件”。这次演讲提高了项目的知名度,并吸引了潜在贡献者的关注。
我们将当前的单节点概念验证(POC)站点扩展到了三节点设置。涉及详细的环境设置和网络规划。此外,我们开始将基础迁移到 FreeBSD 15.0-CURRENT,以确保我们的项目与 FreeBSD 的最新进展保持一致。
我们还开始将手动安装步骤和代码补丁转化为 FreeBSD ports,以简化用户将来的安装流程。另一个重大里程碑是启动了在 FreeBSD 实例和 OpenStack Ironic 的服务主机上进行裸机供应的工作。
展望下个季度,我们将专注于完善这些进展,进一步增强项目的稳健性和易用性。特别是,我们计划将 OpenStack 组件从 Xena 版更新到更新版本,因为 Xena 已进入“不再维护”阶段,并将很快达到 EOL。我们欢迎社区的建议和贡献,以帮助我们实现目标。
赞助商:FreeBSD 基金会
文档树、手册页和新的外部书籍和文档中的重要变更。
链接:FreeBSD 文档项目 网址:https://www.freebsd.org/docproj/url
链接:FreeBSD 文档项目新贡献者入门指南 网址:https://docs.freebsd.org/en/books/fdp-primer/url
链接:文档工程团队 网址:https://www.freebsd.org/administration/#t-docengurl
联系人:FreeBSD Doceng 团队 doceng@FreeBSD.org
doceng@ 团队处理与 FreeBSD 文档项目相关的一些元项目问题;更多信息请参见 FreeBSD Doceng 团队章程。
在本季度,文档的多个部分得到了更新,比如删除了对从 ports 中移除的 ports 的提及、修正了错别字、更新了链接并改进了 asciidoc。
以下是本季度的三个突出贡献:
记录了与供应商导入相关的最佳实践。网址:https://cgit.freebsd.org/doc/commit/?id=fe494e72df138266f6da2b9170cf0215275a6aaf
向手册中添加了关于服务 jail 的部分。网址:https://cgit.freebsd.org/doc/commit/?id=8f4754a9a6ee8f2503cfb68d14afa99b17729e7f
链接:在 Weblate 上翻译 FreeBSD 网址:https://wiki.freebsd.org/Doc/Translation/Weblateurl
链接:FreeBSD Weblate 实例 网址:https://translate-dev.freebsd.org/url
2024 年第二季度状态
17 个团队语言
214 名注册用户
9 名新译者加入了 Weblate:
BFR (de_DE)
Elwood (de_DE)
Freebsd-Freund (de_DE)
MSantos (pt)
SINF-KEN (fr_FR, nl_NL)
aperechnev (ru)
edsonwolf
fdecunta (es_ES)
wheatfox (zh_CN, zh_HANS)
语言进展
简体中文 (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) (进度:22%)
西班牙语 (es) (进度:36%)
土耳其语 (tr) (进度:2%)
感谢所有为翻译和审阅文档做出贡献的人。
请将这一努力帮助推广到你当地的用户组,我们始终需要更多的志愿者。
在本季度,doceng@ 维护的包进行了以下工作:
textproc/docproj-legacy:修复了 DBLATEX 的构建问题
textproc/docproj-legacy:修复 poudriere 警告
textproc/rubygem-asciidoctor-epub3: 添加了缺失的运行时依赖
www/gohugo:更新到 0.125.4
在 bugzilla 中有 3 个分配给 doceng@ 的待解决 PR:
在本季度,doceng@ 关闭了 3 个 PR:
影响 Ports 的变更,无论是影响大部分软件的普遍变更还是单个 Port 本身。
链接:
GCC 项目 网址:https://gcc.gnu.org/
GCC 11 发布系列 网址:https://gcc.gnu.org/gcc-11/
GCC 12 发布系列 网址:https://gcc.gnu.org/gcc-12/
GCC 13 发布系列 网址:https://gcc.gnu.org/gcc-13/
GCC 14 发布系列 网址:https://gcc.gnu.org/gcc-14/
联系人:Lorenzo Salvadore salvadore@FreeBSD.org
上游已发布 GCC 14.1。因此,已创建了 Port lang/gcc-14,同时创建了 lang/gcc15-devel,该 Port 跟踪着最新的开发 GCC 版本。之前的 GCC 主要版本也正在更新。
与之前报告中的计划相反,本季度在现有 GCC Port 的错误修复工作不怎么多。这是因为,我发现上游对在 FreeBSD 上支持 GCC 的兴趣有所增加,但 GCC 的源代码在我们的平台上仍无法开箱即用,需大量补丁,这些补丁在我们的 Ports 中。因此,有必要集中精力将所有这些补丁上游化,最好一次性进行,而不是像之前那样逐个处理,再定期运行测试套件,来修复所有失败的测试。同时,我正在开发一个新的自动化设置,以尽可能高效地构建和测试所有受支持的 GCC 版本,包括从源代码(不使用 Port)构建 GCC。所有这些都显著减缓了以往的 GCC Port 维护(-devel Port 的用户可能已经注意到更新频率降低),但我相信,这最终会带来回报。
还需注意的是,Robert Clausecker 已为 riscv64 架构启用 lang/gcc11、lang/gcc12 和 lang/gcc13,因为这些 Port 在 15-CURRENT 上构建良好。
链接:
KDE/FreeBSD 计划 网址:https://freebsd.kde.org/
FreeBSD — KDE 社区 Wiki 网址:https://community.kde.org/FreeBSD
联系人:Adriaan de Groot kde@FreeBSD.org
FreeBSD 项目的 KDE 负责把 CMake、Qt 及 KDE 社区的软件打包到 FreeBSD Port。这些软件包括了一款完整的桌面环境,即 KDE Plasma(支持 X11 和 Wayland),以及数百个可在 FreeBSD 机器上使用的应用程序。 KDE 团队 是 desktop@ 的一部分,构建软件堆栈,使 FreeBSD 成为美观且可用的日常图形桌面工作站。
我们错过了一个季度,在此期间,KDE 社区庆祝了 KDE Frameworks 6、KDE Plasma 6 和 KDE Gear 的 KDE Megarelease。最新的软件仍未在 FreeBSD 上提供,正在等待更多测试和某些集成工作。
CMake 已更新多次,现在是版本 3.29.6,为上游的最新版本。Port 中的 CMake 现在支持为测试设置并行构建。
Qt5 现在处于长期支持状态,仅偶尔更新。5.15.14 的更新以及 WebEngine 到 5.15.17 的更新已在 5 月完成。
Qt6 和 Qt 的 Python 绑定库 PySide 均已更新到 6.7.2 版本。
KDE Gear、Plasma 和 Frameworks 的发布非常规律。这些更新仅以零散的形式到达 FreeBSD Port,原因是兼容问题和测试工作滞后。
KDE Frameworks 更新到版本 6.3.0
KDE Plasma 6 桌面更新到版本 6.0.4
KDE Gear 6 尚未移植到 Ports
KDE 生态系统包含了大量的 Port,大多数由 kde@ 维护,所有 Port 都建立在 Qt 和 KDE Frameworks 的共享基础上。KDE 团队 根据需要更新所有这些 Port。本季度 KDE 团队再次感谢 Tobias C. Berner、Gleb Popov 和 Jason E. Hale 来保持最新状态。
链接:
FreeBSD Erlang Wiki 网址:https://wiki.freebsd.org/Erlang
Erlang/OTP 语言 网址:https://erlang.org/
Elixir 语言 网址:https://elixir-lang.org/
Gleam 语言 网址:https://gleam.run/
联系人:FreeBSD Erlang 邮件列表 erlang@FreeBSD.org
Erlang 运行时系统,通常称为 BEAM,为 FreeBSD Port 中的多种编程语言和应用程序提供运行时支持。
2024 年的显著变化包括:
添加 OTP27(最新发布的 Erlang 运行时)、Elixir 1.17 和 Gleam 1.20
2024 年至今已有超过 57 个点发布更新
改进了 Erlang Port 的内联文档
将 RabbitMQ Port 迁移到由通用 UNIX 构建,从而与 Elixir 的构建时依赖解耦。这使得 RabbitMQ 可以迁移到最新支持的发布版本。RabbitMQ 用户需要每季度更新,以避免停留在不再受支持的 Erlang/OTP + RabbitMQ 发布版本上
请注意,由于上游 Erlang OTP 团队仅承诺支持两个最新的主要版本,OTP26-27 正不断地收到点更新,但较旧的 Erlang 运行时版本现在不太可能获得安全和错误修复。
在 2024 年第三季度,Erlang 团队计划:
将基本的 lang/erlang Port 迁移到 OTP26,并更新相关依赖
欢迎其他测试和社区贡献,请在邮件列表中联系,尤其是,如果你能够帮助测试特定的 Port 更新。
有许多项目基于 FreeBSD,融入了 FreeBSD 组件。由于这些项目可能引发 FreeBSD 社区的广泛关注,我们有时会在季度报告中包含这些项目提交的简要进展。FreeBSD 项目对这些提交中的任何声明的准确性和真实性不做任何担保。
链接:
在 GitHub 上的 Pot 组织 网址: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 进行编排。Potluck 旨在成为 FreeBSD 和 Pot 的 Dockerhub,提供 Pot 风味和完整的容器镜像,用于 Pot 和许多情况下的 Nomad。
本季度没有发布新的 Pot 。
然而,Potluck 镜像再次看到了一些更新。所有镜像均已为新的季度包重构建,添加了一个新的 Opensearch 容器。额外的功能、更新和修复已提交到了 PostgreSQL-Patroni 和 Nomad-Server-TLS 等容器。
目前共有 58 个容器镜像和模板可用。
一如既往,欢迎反馈和补丁。
赞助商:Nikulipe UAB、Honeyguide Group