Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
FreeBSD 手册
FreeBSD Port 开发者手册
FreeBSD 官方文章
《FreeBSD 项目模型》、《FreeBSD 常见问题解答》、《4.4BSD 操作系统设计与实现》
FreeBSD 架构手册
FreeBSD 开发者手册
FreeBSD 发行说明
FreeBSD 状态报告
最后修改: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@)
Hiroki Sato(hrs@)
Li-Wen Hsu(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) 参数的问题。Li-Wen Hsu 和 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
联系:Li-Wen Hsu 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 架构开发出一个可用的机制实现。然后,将其应用于现有的内核代码,并进行基准测试。若基准测试结果良好,再移植到其他架构。
该项目是 Google Summer of Code 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
联系人:Li-Wen Hsu 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
联系人:Li-Wen Hsu 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 的提及、修正了错别字、更新了 URL 并改进了 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
原文地址 https://www.freebsd.org/status/report-2022-04-2022-06/。
FreeBSD 季度状态报告 2022 年第二季度
这里是 2022 年的第二份季度报告,共包括 26 份报告。
在本季度,季度团队设法更快地发布报告,并希望能减少错误。然而,如果你注意到某些错误,请报告,以便我们能够纠正它们,并在我们的工具中添加自动检查设置,以防止将来出现这些错误,并尽可能对发布过程保持高效率。
我们还想提醒你,如果由于任何原因,你需要更多的时间来提交季度报告,团队将等待你,但请提醒我们,以便我们意识到有些报告仍未提交。
非常感谢所有选择通过季度报告与 FreeBSD 社区分享其工作的人。
Lorenzo Salvadore,代表现状报告小组。
本报告的渲染版可在此查阅: https://www.freebsd.org/status/report-2022-04-2022-06/
目录
FreeBSD 团队报告
FreeBSD 核心团队
FreeBSD 基金会
FreeBSD 发布工程团队
集群管理团队
持续集成
Ports
项目
Linux 兼容层更新
FreeBSD 与 riscv64
微软 HyperV 和 Azure 上的 FreeBSD
用户空间
正在进行的关于 LLDB 多进程调试支持的工作
makefs(8) 中的 ZFS 支持
基础系统 OpenSSH 更新
pf 的最新状况
内核
ENA FreeBSD 驱动程序更新
新的蓝牙 ® 配置守护程序:blued
OpenVPN DCO
无线更新
共享页地址随机化
架构
支持恩智浦 DPAA2
关于 arm64 及其他的中型超级页
文件
文档工程团队
Ports
FreeBSD 上的 KDE
其他地方
GCC :更新 GCC_DEFAULT 和其他改进
Valgrind - 13.1/14.0 的大量错误修正和更新
FreeBSD 上 的 Pantheon 桌面
英特尔的 igt-gpu-tools 的完整功能移植
来自各官方和半官方团队的报告,可在行政页面找到。
联系:FreeBSD 核心团队 core@FreeBSD.org
FreeBSD 核心团队是 FreeBSD 的管理机构。
第十二代 FreeBSD 核心团队是由活跃的开发者选举产生的。core.12 的成员是:
Baptiste Daroussin(bapt, 现任)
Benedict Reuschling(bcr)
Ed Maste(emaste, 现任)
Greg Lehey(grog)
John Baldwin(jhb)
Li-Wen Hsu(lwhsu)
Emmanuel Vadot(manu)
Tobias C. Berner(tcberner)
Mateusz Piotrowski(0mp)
6 月 10 日,即将离任的 core.11 和即将上任的 core.12 团队召开了交接会议,新的核心团队于 6 月 18 日宣布成立。
在任命新的核心小组秘书和完成交接任务后,现任核心小组秘书 Muhammad Moinur Rahman (bofh) 将卸任。
在本季度,Kornel Dulęba(kd)和 Dmitry Salychev(dsl)的 src 提交权限已经被批准。
链接:
FreeBSD 基金会 网址:https://www.FreeBSDFoundation.org
技术路线图 网址:https://FreeBSDFoundation.org/blog/technology-roadmap/
捐赠 网址:https://www.FreeBSDFoundation.org/donate/
基金会合作计划 网址:https://www.FreeBSDFoundation.org/FreeBSD-foundation-partnership-program
FreeBSD 杂志 网址:https://www.FreeBSDFoundation.org/journal/
基金会新闻和活动 网址:https://www.FreeBSDFoundation.org/news-and-events/
联系:Deb Goodkin deb@FreeBSDFoundation.org
FreeBSD 基金会是一个 501(c)(3) 的非营利组织,致力于支持和促进全球的 FreeBSD 项目和社区。捐献来自个人和企业的资金被用来资助和管理软件开发项目、会议和开发者峰会。我们还为 FreeBSD 贡献者提供旅行补助,购买和支持硬件以改善和维护 FreeBSD 的基础设施,并提供资源以改善安全、质量保证和发布工程工作。我们发布营销材料来推广、教育和宣传 FreeBSD 项目,促进商业供应商和 FreeBSD 开发者之间的合作,最后,在执行合同、许可协议和其他需要公认的法律实体的法律安排中代表 FreeBSD 项目。
筹集资金的努力
首先,我想向所有为我们的工作提供资金捐助的人表示衷心的感谢。我们的资金 100% 来自于你们的捐款,因此每一笔捐款都可以帮助我们在许多方面继续支持 FreeBSD,包括在这份状况报告中资助和发表的一些工作。
我们今年的目标是为大约 200 万美元的支出预算筹集至少 140 万美元。在我写这份报告的时候,我们为实现这一目标筹集了不到 20 万美元。因此,我们显然需要加紧努力筹款。这是迄今为止我工作中最困难的部分。我更愿意和社区中的人们讨论我们如何帮助你们,帮助创造内容以招募更多的用户和贡献者加入项目,并了解个人和组织在使用 FreeBSD 时遇到的挑战和痛点,以便我们能够帮助改善这些方面。索取金钱并不在此列。
我们在五个主要领域支持 FreeBSD。软件开发是我们资助的最大的领域,我们有六个软件开发人员,他们介入实现新的功能,支持一级平台,审查补丁,并修复问题。你可以在这份报告中了解到我们在操作系统改进方面所做的一些工作。FreeBSD 宣传是我们支持的另一个领域,通过会议、网上和现场的演讲、教程和操作指南来传播 FreeBSD 的信息。我们购买并支持用于支持该项目工作的 FreeBSD 基础设施的硬件。基金会组织的虚拟和现场活动帮助联系和吸引社区成员分享他们的知识并进行项目合作。最后,我们在需要时为项目提供法律支持,并保护 FreeBSD 的商标。
如果你今年还没有捐款,请考虑一下捐款,地址是:https://freebsdfoundation.org/donate/。
我们还有一个针对大型商业捐助者的合作伙伴计划。你可以在 https://freebsdfoundation.org/our-donors/ 找到更多信息。
操作系统的改进
在 2022 年第二季度,有 243 份 src、62 份 port 和 12 份文档树的提交将 FreeBSD 基金会列为赞助商。这分别占了每个版本库中提交总数的 10.6%、0.7% 和 4.5%。
赞助工作
你可以在个别季度报告条目中读到一些基金会赞助的工作。
基础系统 OpenSSH 更新
正在进行的关于 LLDB 多进程调试支持的工作
无线状态
在 makefs 中支持 ZFS
这里介绍了其他正在进行的赞助工作。
FreeBSD Wireguard 的改进
Wireguard 项目的目的是改善对 FreeBSD Wirguard 内核模块的支持。
John Baldwin 的工作包括调整模块,使其使用 FreeBSD 的 OCF 而不是 Wireguard 的内部实现。 它还包括增加新的密码和 API 支持。
最新的上游版本包含了这项工作。
FreeBSD 上的 Openstack
OpenStack 是一个用于不同类型资源(如虚拟机)的云系统。
然而,OpenStack 只非官方地支持 FreeBSD 作为客户系统。
这意味着用户可以在开放的云平台上催生 FreeBSD 实例,但目前还不能在 FreeBSD 主机上运行 OpenStack。
这个项目的目标是移植 OpenStack 组件,使 FreeBSD 能够作为 OpenStack 主机运行。
Bhyve 问题支持
基金会最近签署了一份支持 Byhve 的新合同。
这份合同将使 John Baldwin 能够在 Bhyve 出现问题时为其奉献时间,特别是安全问题。
Handbook 改进探索
在基金会的赞助下,Pau Amma 完成了一个小型项目,探索如何改进《Handbook》。
已经发出了一份调查,结果将很快与大家分享。
持续集成和质量保证
基金会提供了一名全职工作人员,并资助了一些项目,以改善持续集成、自动测试以及 FreeBSD 项目的整体质量保障工作。
支持 FreeBSD 基础设施
基金会为该项目提供硬件和支持。一个新的澳大利亚镜像被集群管理团队部署到了网上。如果你是大洋洲或东南亚的 FreeBSD 用户,请让我们知道安装程序镜像和软件包的下载速度是否有所提高。
通过你们的捐款,基金会购买了新的硬件来修复两个 PowerPC 软件包的构建器,一个是小端软件包(powerpc64le),第二个是大端软件包(powerpc64,powerpc)。新的硬件刚刚到达数据中心,很快就会安装。预计在不久的将来会有很多 PowerPC 软件包。
倡导和教育 FreeBSD
我们的大部分工作是致力于项目的宣传。这可能涉及到突出有趣的 FreeBSD 工作,制作文献和视频教程,参加活动,或做演讲。我们制作文献的目的是教给人们 FreeBSD 的基本知识,并帮助他们在采用或贡献的道路上更加容易。除了参加活动和发表演讲之外,我们还鼓励和帮助社区成员举办他们自己的 FreeBSD 活动,发表演讲,或者担任 FreeBSD 的工作人员。
FreeBSD 基金会在全球范围内赞助了许多会议、活动和峰会。这些活动可以是与 BSD 相关的,也可以是开源的,或者是面向未被代表的群体的技术活动。我们支持以 FreeBSD 为中心的活动,以帮助提供一个分享知识的场所,在项目上一起工作,并促进开发者和商业用户之间的合作。这都有助于提供一个健康的生态系统。我们支持非 FreeBSD 的活动,以促进和提高对 FreeBSD 的认识,增加 FreeBSD 在不同应用中的使用,并招募更多的贡献者加入该计划。我们将继续参加虚拟活动,并计划在 2022 年 6 月举行开发者峰会。除了参加和策划虚拟活动之外,我们还在不断地进行新的培训计划,并更新我们的指南选择,以促进更多的人尝试使用 FreeBSD。
请看我们上一季度所做的一些宣传和教育工作:
我们获得了 2022 年 10 月 30 日至 11 月 2 日在北卡罗来纳州罗利举行的 All Things Open 的展位和非营利性赞助商地位
我们在 7 月 28-30 日在加州洛杉矶举行的 Scale 19x 上的展位和研讨会已经确定。FreeBSD 研讨会将于 2022 年 7 月 29 日星期五举行,你可以到基金会的 502 号展位参观
确认我们是 2022 年 9 月 15-18 日在奥地利维也纳举行的 EuroBSDcon 的银牌赞助商
赞助并帮助组织 2022 年 6 月 16-17 日的 FreeBSD 开发者峰会。视频可以在 FreeBSD 项目的 YouTube 频道上看到
庆祝 2022 年 6 月 19 日的 FreeBSD 日,以及接下来的整个一周
我们获得了 7 月 30 日至 31 日在台湾举行的 COSCUP 之友级别的赞助
发布 FreeBSD 基金会 2022 年春季更新
新的博客文章
我们通过出版专业的 FreeBSD 杂志来帮助世界了解 FreeBSD。正如我们之前提到的,FreeBSD 杂志现在是一份免费出版物。了解更多信息并访问最新的期刊:https://www.FreeBSDfoundation.org/journal/。
你可以在 https://www.FreeBSDfoundation.org/news-and-events/ 找到更多关于我们参加的活动和即将举行的活动。
法律/FreeBSD 知识产权
基金会拥有 FreeBSD 的商标,保护这些商标是我们的责任。我们还为核心团队提供法律支持,以调查出现的问题。
进入 https://www.FreeBSDFoundation.org ,了解更多关于我们如何支持 FreeBSD 以及我们如何帮助你的信息。
链接:
FreeBSD 13.1-RELEASE schedule 网址:https://www.freebsd.org/releases/13.1R/schedule/
FreeBSD 13.1-RELEASE 公告 网址:https://www.freebsd.org/releases/13.1R/announce/
FreeBSD 的发布 网址:https://download.freebsd.org/releases/ISO-IMAGES/
FreeBSD 的开发快照 网址:https://download.freebsd.org/snapshots/ISO-IMAGES/
联系:FreeBSD 发布工程团队,re@FreeBSD.org
FreeBSD 发布工程团队负责为 FreeBSD 的官方项目发布制定并发布发布计划,宣布代码冻结并维护相应的分支,以及其他事项。
在 2022 年的第二季度,发布工程团队完成了 13.1-RELEASE 周期的工作。这是 stable/13 的第二个版本分支。在整个发布周期中,发生了三次 BETA 构建和六次 RC(候选发布版)构建,将最终发布日期从 2022 年 4 月 21 日移至 2022 年 5 月 16 日,因为在最后一刻发现了一些问题。
我们感谢所有测试 13.1-RELEASE 的 FreeBSD 开发人员和贡献者,他们报告了问题,并 着周期的进展勤奋地进行了修改。
此外,在整个季度中,还为主分支、stable/13 和 stable/12 分支发布了几个开发快照版本。
赞助商:Rubicon Communications, LLC ("Netgate") 赞助商:FreeBSD 基金会
链接:
集群管理小组成员 网址:https://www.freebsd.org/administration/#t-clusteradm
FreeBSD 集群管理团队的成员负责管理该项目所依赖的机器,以同步其分布式工作和通信。在这一季度,该团队进行了以下工作:
在澳大利亚悉尼安装了一个新的镜像,由 IX 澳大利亚公司托管
修复了 CI 集群的硬件故障
建立一个新的内部监测系统
定期进行集群范围内的软件升级
对 FreeBSD.org 用户账户的定期支持工作
正在进行中:
与 PowerPC 团队合作,改进软件包构建者、通用和参考机器。
计划硬件更新,并修复各站点的杂项故障
改善成套建筑的基础设施
审查服务 jail 和服务管理员的运作情况
与 doceng@ 合作,改善 https://www.freebsd.org 和 https://docs.freebsd.org 的部署。
改进网络服务架构
完善集群备份计划
完善日志分析系统
我们正在欧洲寻找一个额外的全镜像站点(五个服务器)。请看通用镜像布局,以满足我们的需要。我们也欢迎提供额外的单服务器镜像(见小镜像),特别是在欧洲。
链接:
FreeBSD Jenkins Instance 网址:https://ci.FreeBSD.org
FreeBSD CI 软件存档 网址:https://artifact.ci.FreeBSD.org
FreeBSD Jenkins wiki 网址:https://wiki.freebsd.org/Jenkins Hosted CI wiki 网址:https://wiki.freebsd.org/HostedCI
第三方软件 CI 网址:https://wiki.freebsd.org/3rdPartySoftwareCI
与 freebsd-testing@ 相关的票据 网址:https://preview.tiny网址.com/y9maauwg
FreeBSD CI 存储库 网址:https://github.com/freebsd/freebsd-ci
dev-ci 邮件列表 网址:https://lists.freebsd.org/subscription/dev-ci
联系:Jenkins Admin jenkins-admin@FreeBSD.org
联系:Li-Wen Hsu lwhsu@FreeBSD.org
联系:IRC EFNet 平台上的 #freebsd-ci
FreeBSD CI 团队负责维护 FreeBSD 项目的持续集成系统。CI 系统检查提交的修改是否能够成功构建,然后对新构建的结果进行各种测试和分析。这些构建的工件被归档到工件服务器中,以备进一步测试和调试的需要。CI 团队成员检查失败的构建和不稳定的测试,并与该领域的专家合作,修复代码或调整测试基础设施。
在 2022 年的第二季度,我们继续与项目中的贡献者和开发者合作,以满足他们的测试需求,同时也与外部项目和公司保持合作,以改进他们的产品和 FreeBSD。
重要的已完成任务:
修正了 CI 集群的硬件故障问题
进行中的任务:
设计和实施提交前的 CI 构建和测试(以支持工作流程工作组的工作)
设计和实施 CI 集群的使用,以建立发布工程的工件。
测试和合并 FreeBSD-ci repo 中的提交请求
简化贡献者和开发者的 CI/测试环境设置
设置 CI 阶段环境,并将实验性工作放在上面
整理 freebsd-ci 版本库中的脚本,为合并到 src 版本库做准备
更新 wiki 上的文件
正在进行或等待的任务:
收集和整理 CI 任务和想法
为运行测试的虚拟客体设置公共网络接入
实施使用裸机硬件来运行测试套件
增加 drm port,针对 -CURRENT 构建测试
计划运行 ztest 测试
增加更多外部工具链相关的工作
提高硬件实验室的成熟度,增加更多测试用硬件
帮助更多的软件在其 CI 管道中获得 FreeBSD 支持(Wiki 页面:3rdPartySoftwareCI, HostedCI)
与托管 CI 供应商合作以获得更好的 FreeBSD 支持
更多的 WIP 信息请参见 freebsd-testing@相关票据,请不要犹豫,加入我们的努力吧!
赞助商:FreeBSD 基金会
链接:
关于 FreeBSD ports 网址:https://www.FreeBSD.org/ports/
贡献 Port 的 网址:https://docs.freebsd.org/en/articles/contributing/#ports-contributing
FreeBSD Ports 监控 网址:http://portsmon.freebsd.org/
Ports 管理团队 网址:https://www.freebsd.org/portmgr/
Ports Tarball 网址:http://ftp.freebsd.org/pub/FreeBSD/ports/ports/
联系:René Ladan portmgr-secretary@FreeBSD.org
联系:FreeBSD Ports 管理团队 portmgr@FreeBSD.org
Ports 管理团队负责监督 Ports 的整体方向、建筑配套和人事事务。以下是上一季度发生的情况。
Port 的数量略高于 30,000。在上一季度,“main”分支有 151 个提交者提交了 9137 个代码,"2022Q2" 分支有 61 个提交者提交了 589 个代码。在写这篇文章的时候,有 2700 个开放 port 的 PR,其中 682 个是未分配的。与上一季度相比,提交活动略有减少,而 PR 的数量则保持不变。注意:Freshports 似乎大幅多计了。本季度的 port 数是以不同的方式得出的,与上一季度的 port 数没有可比性。
在上一季度,portmgr 欢迎 salvadore@ 的回归,但同时也因为缺乏活跃而与七个 port 提交者告别。
在两周一次的会议上,portmgr 讨论了以下主题。* ca_root_nss 的未来 * 基础系统提供某些 .pc 文件的可行性 * 处理基础系统小版本升级时内核模块 port 不兼容问题的方法
经过开发人员的讨论,portmgr 决定授予所有文档和源码提交权限,以修复 Ports 树中任何与文档相关的错误,但不影响其功能。
以下是在 2022q2 期间对 Ports Tree 所做的修改: * pkg 更新到了 1.18.3 版,Firefox 更新到了 102.0 版,Chromium 更新到了 103.0.50060.53 版 * GCC、 Lazarus、 Python 和 Ruby 的默认版本分别更新为 11 (powerpcspe 保持 8 版)、 2.2.2、 3.9 和 3.0。* 加入了两个新的 USES,gstreamer 用于支持基于 GStreamer 插件的 port,pytest 用于帮助使用 pytest 进行测试。
跨越多个类别的项目,从内核和用户空间到 port 或外部项目。
联系:Dmitry Chagin dchagin@FreeBSD.org 联系:Edward Tomasz Napierala trasz@FreeBSD.org
这个项目的目标是提高 FreeBSD 执行未经修改的 Linux 二进制文件的能力。目前特定的 Linux 应用程序的支持状态正在 Linux 应用程序状态 Wiki 页面上进行跟踪。
Y2k38 Linux 项目的实施已基本完成;所有 '*_time64()'
系统调用都已提交。
arm64 Linux 仿真层的状态与 amd64 Linux 仿真层的状态保持一致:即实现了 vDSO、机器依赖的 futexes、信号传递。
线程亲和性系统调用被修改以实现 Linux 语义。
总共修复了 50 多个错误;glibc-2.35 测试套件报告了不到 80 个失败的测试。
Linux 仿真层的所有修改都合并到了 stable/13 分支。
在 libsysdecode 和 kdump 中加入了对流行的 Linux 系统调用跟踪的初步支持。目前正在进行的工作是让追踪更多的系统调用发挥作用。
赞助商:EPSRC (Edward 的工作)
链接:
golang 主页 网址:https://github.com/golang/go
FreeBSD riscv64 github repo 网址:https://github.com/MikaelUrankar/go/tree/freebsd_riscv64
FreeBSD riscv64 golang 问题 网址:golang/go#53466
联系:Mikaël Urankar mikael@FreeBSD.org 联系:Dmitri Goutnik dmgk@FreeBSD.org
已经完成了将 go 移植到 FreeBSD riscv64 上的工作,它可以构建并通过所有 run.bash 测试,包括 cgo (在 QEMU 和 Unmatched 上测试)。在上游创建了一个拉动请求,该提案已被添加到提案项目的活动栏中,并将在每周的提案审查会议上被审查。
链接:
微软在 FreeBSD 上的 Azure WIKI 文章 网址:https://wiki.freebsd.org/MicrosoftAzure
微软在 FreeBSD 上的 HyperV WIKI 文章 网址:https://wiki.freebsd.org/HyperV
联系:Microsoft FreeBSD 集成服务团队 bsdic@microsoft.com
联系:FreeBSD Azure 发布工程团队 releng-azure@FreeBSD.org
联系:Wei Hu whu@FreeBSD.org
联系:Li-Wen Hsu lwhsu@FreeBSD.org
Azure Marketplace 上的 13.1-RELEASE 镜像已经发布。
正在进行的工作任务:
实现镜像构建和发布过程的自动化
构建并向 Azure 市场发布基于 ZFS 的镜像
通过合并 makefs(8) 和 release(7) 的 ZFS 支持,taks 将受益。
https://reviews.freebsd.org/D23334
https://reviews.freebsd.org/D34426
https://reviews.freebsd.org/D35248
构建和发布 Hyper-V gen2 VM 镜像到 Azure Marketplace
被 https://bugs.freebsd.org/264267 阻拦
上述任务由 FreeBSD 基金会赞助,并由微软提供资源。
Wei Hu 和他在微软的同事正在从事由微软赞助的几项任务:
修复 Azure 中 Hyper-V gen2 VM 的启动问题
https://bugs.freebsd.org/264267
移植 Hyper-V 客户端以支持 arch64
开启的任务:
在 https://docs.microsoft.com 更新 FreeBSD 的相关文档
在 Azure Pipelines 中支持 FreeBSD
将 Azure 代理 port 更新到最新版本
Azure 代理代理的上游本地修改
赞助商:微软提供了 Wei Hu 等人在微软的工作,以及其他方面的资源 赞助商:FreeBSD 基金会提供其他一切
影响基础系统和其中程序的变化。
链接:
Moritz Systems 项目简介网址:https://www.moritz.systems/blog/multiprocess-support-for-lldb/
进度报告 1 网址:https://www.moritz.systems/blog/implementing-non-stop-protocol-compatibility-in-lldb/
联系:Kamil Rytarowski kamil@moritz.systems 联系:Michał Górny mgorny@moritz.systems
根据上游的描述,“LLDB 是下一代高性能调试器。它是作为一组可重用的组件构建的,这些组件高度利用了更大的 LLVM 项目中的现有库,例如 Clang 表达式解析器和 LLVM 反汇编器。”
FreeBSD 在基本系统中包括 LLDB。之前赞助的项目改进了 LLDB,使其成为基础系统中可信的调试器,尽管它与 GNU GDB 的当代版本相比仍有一些限制。这个项目于 2022 年 4 月开始。它的目标是实现对多个进程同时调试的全面支持。
在项目开始时,LLDB 对多进程调试的支持非常有限。客户端的特点是支持通过维护与不同服务器实例的多个连接来同时调试多个独立进程。由于我们早期的工作,服务器能够处理 fork(2) 和 vfork(2) 调用,并且要么分离新分叉的子进程并继续跟踪父进程,要么分离父进程并跟踪子进程(等同于 GDB 的 follow-fork-mode
设置)。
一旦项目完成,LLDB 将能够同时追踪任意数量的分叉进程(相当于 GDB 的 detach-on-fork off
)。将实现对 GDB 远程串行协议的多进程扩展的完全支持,以及对不停机扩展的部分支持,该扩展将使多个进程独立恢复和停止。
赞助商:FreeBSD 基金会
链接:
邮件列表 网址:https://lists.freebsd.org/archives/freebsd-hackers/2022-May/001128.html
makefs(8) 代码审查 网址:https://reviews.freebsd.org/D35248 release(7) 代码审查 网址:https://reviews.freebsd.org/D34426
联系:Mark Johnston markj@FreeBSD.org
makefs(8) 是一个源自 NetBSD 的工具,它完全在用户空间创建文件系统镜像。它是建立虚拟机(VM)镜像的一个有用的工具链组件,因为它不需要任何特殊的权限,不像格式化一个字符设备,挂载新的文件系统,并将文件复制到上面。此外,makefs 可以创建可重复的镜像,并旨在最大限度地减少资源消耗。目前,FreeBSD 的 makefs 可以创建 UFS、cd9660 和 msdos(FAT)文件系统镜像。
最近的工作使 makefs 能够创建 ZFS 镜像。makefs 的 ZFS 支持包括创建多个数据集的能力,每个数据集映射到输入文件层次中的一个目录。然而,许多 ZFS 功能并不被支持,因为该实现只提供了获得可重复的根池所需的功能。
后续工作使 release(7) 框架能够使用这个新的 makefs 扩展来创建基于 ZFS 的虚拟机和云镜像。
赞助商:FreeBSD 基金会
链接:
OpenSSH 网址:https://www.openssh.com/
OpenSSH 8.9 发布说明 网址:https://www.openssh.com/txt/release-8.9[https://www.openssh.com/txt/release-8.9
OpenSSH 9.0 发布说明 网址:https://www.openssh.com/txt/release-9.0[https://www.openssh.com/txt/release-9.0
联系:Ed Maste emaste@freebsd.org
OpenSSH,一套远程登录和文件传输工具,在 FreeBSD 基本系统中从 8.8p1 版本更新到 9.0p1。
它还没有被合并到 stable/13 和 stable/12 分支。我预计将在七月进行。
注意: OpenSSH 9.0p1 将 scp(1) 从使用传统的 scp/rcp 协议改为默认使用 SFTP 协议。可以使用 -O 标志来代替以前的协议。
赞助商:FreeBSD 基金会
联系:Kristof Provost kp@FreeBSD.org 联系:Reid Linnemann rlinnemann@netgate.com
以太网
pf 最近增加了对以太网层过滤的支持。见 2021q2 pf_ethernet 报告。
从那时起,以太网层的过滤功能得到了扩展:
anchor 支持
查看第三层头的能力,以便与源/目的 IP(v4/v6)地址匹配
对 IP 地址匹配的表格支持
直接派发到 dummynet
将以太网层的数据包直接传给 dummynet,而不是对数据包进行标记,并依靠第三层来处理 dummynet
Dummynet
pf 最近开始能够使用 dummynet 进行数据包调度。这种支持已经被扩展和改进,现在相信已经可以用于生产了。
一个值得注意的修正是,回复到/路由到的流量现在也要接受 dummynet 调度。
最后匹配时间戳
pf 现在可以跟踪一个规则最后一次被匹配的时间。与 ipfw 规则的时间戳类似,这些时间戳在内部是以秒为单位的系统“墙上时钟时间”的 uint32_t 捕捉。(参见 time(9))。时间戳是 CPU 本地的,并且在每次规则或状态被匹配时更新。
赞助商:Rubicon Communications, LLC("Netgate")
内核子系统/功能、驱动支持、文件系统等方面的更新。
链接:
ENA readme 网址:https://github.com/amzn/amzn-drivers/blob/master/kernel/fbsd/ena/README.rst
联系:Michal Krawczyk mk@semihalf.com 联系:Dawid Gorecki dgr@semihalf.com 联系:Marcin Wojtas Marcin Wojtas mw@FreeBSD.org
ENA(Elastic Network Adapter)是亚马逊网络服务(AWS)的虚拟化环境中可用的智能网卡。ENA 驱动程序支持多个发送和接收队列,可以处理高达 100Gb/s 的网络流量,这取决于它所使用的实例类型。
自上次更新以来已完成:
ENA 驱动程序的上游版本 v2.5.0,其中包括:
改进复位程序的处理
延长定时器服务寿命,以便能够检测更多的硬件故障
修复验证 Tx 请求 ID 的逻辑
修复用于 Tx 的 IPv6 L4 校验和卸载处理
在驱动中添加 NUMA awareness
对即将发布的 ENA 驱动(v2.6.0)进行内部审查,包括:
进一步改进复位处理
代码清理和风格修正
记录的改进
对 ENI 指标的检索进行修复
正在进行的工作:
测试即将发布的 ENA 驱动程序(v2.6.0)
赞助商:亚马逊
链接: blued git 网址:https://git.lysator.liu.se/kempe/blued
联系:
邮件:kempe@lysator.liu.se
IRC: kempe@libera.chat
简介
blued 工具提供了一个 IPC 接口,可以让非特权用户以用户友好的方式连接和使用蓝牙设备,并支持安全的简单配对(公钥加密,如果设备允许,还可以进行中间人保护)。
什么是 blued?
blued 有三个部分:一个库、一个守护程序和一个命令行工具。库对蓝牙的细节进行抽象,守护程序管理蓝牙设备,命令行工具让用户列出或扫描蓝牙设备,与设备配对,或从一个设备上取消配对。命令行工具通过 UNIX 套接字与守护程序进行通信。
与 bthidd 和 hcsecd 不同,blued 支持安全的简单配对并提供 IPC。为了让 HID 设备工作,仍然需要 bthidd。我们提供了一个脚本来配对蓝牙设备,并对 bthidd 进行适当的配置,这样它就可以在没有用户干预的情况下工作和重新连接。
一旦配对被证明是稳定的,错误也被解决了,我们计划以某种方式将 bthidd 与 blued 集成,使 HID 设备在配对时自动开始工作,而不需要使用外部脚本。长期目标是提供一个图形化的用户界面,可以列出设备并提供简单的一键式设置来连接它们。
安装和使用 blued v0.1
你需要在 /etc/src
中安装可选的 src 组件。
首先,按照 FreeBSD 手册中的解释,确保你已经加载了工作的蓝牙驱动。
为了测试 blued,请获取 blued v0.1 的源代码。然后编译它,用 kernel_patches 中的补丁修补你的 FreeBSD 内核,并按照 README 中的解释重新编译 hci 模块。
我主要在 FreeBSD 12.3 上测试了 blued,但在 13.1 上测试时,我的补丁应用得很干净。目前我还没有提供 port,但可以直接从构建目录中运行该软件,或者运行make install
来安装所有需要的文件。blued 和 bluecontrol 都使用 capsicum,blued 可以被配置为无需 root 权限。
更多信息请参考 README
中的运行 blued 部分。
帮助
测试
我只用自己的鼠标试过这个软件,并意识到一个单一的蓝牙设备的样本量是相当小的。我期待着问题的出现,同时也非常期待其他人的反馈!
如果出现问题,从 /var/log/debug.log 和 /var/log/messages 的输出,以及尝试配对时从 hcidump -x
得到的流量转储,将有助于故障排除。
贡献
如果你想参与代码并提交补丁,欢迎你访问 Lysator 的 Git 上的仓库
链接:
D34340 网址:D34340
OpenVPN 维基 网址:OpenVPN wiki
联系:Kristof Provost kp@FreeBSD.org
OpenVPN DCO(或称数据通道卸载)将 OpenVPN 的数据包处理转移到内核中。
传统上,OpenVPN 使用 tun(4) 接口来传输和接收数据包。在这种设置下,收到的数据包由内核接收,传递给 OpenVPN 应用程序进行解密,然后再传回内核进行网络栈处理。这需要在内核和用户空间之间进行多次转换,自然会造成性能损失。
新的 if_ovpn OpenVPN DCO 卸载驱动完全在内核中执行加密/解密,提高了性能。
最初的性能测试显示,吞吐量从大约 660Mbit/s 提高到大约 2Gbit/s。
用户空间的 OpenVPN 代码也需要修改以使用新的 if_ovpn 卸载驱动。这预计将成为未来 2.6.0 版 OpenVPN 的一部分。
赞助商:Rubicon Communications, LLC (“Netgate”)
链接:
Intel iwlwifi 状态 FreeBSD wiki 页面 网址:https://wiki.freebsd.org/WiFi/Iwlwifi
Realtek rtw89 状态 FreeBSD wiki 页面 网址:https://wiki.freebsd.org/WiFi/Rtw89
联系:Bjoern A. Zeeb bz@FreeBSD.org
整个项目旨在为目前使用 LinuxKPI 兼容代码的 FreeBSD 带来对较新芯片组的支持,该代码由本地 net80211 和内核代码支撑。此外,我们的目标是继续努力支持更新的无线标准。在第二季度,有 40 个提交进入了 FreeBSD CURRENT。随着越来越多的用户尝试多种驱动,支持时间也在增加。
早期版本的 Intel iwlwifi 衍生的无线驱动在 13.1-RELEASE 中发布了,这使得这项工作进入了第一个 FreeBSD 版本。此后,iwlwifi 驱动程序和固件又在 CURRENT 和 stable/13 中进行了更新,这是持续开发的一部分。与上游 Intel Linux 版本的驱动共享的文件中的变化现在不到 400 行。最近,一个长期存在的老式芯片组的问题(有希望)得到解决,允许支持 iwm(4) 的网卡在近三个月后再次与 iwlwifi(4) 一起工作。在今年年底之前,项目的主要重点将是让我们达到当代的速度。
4 月 1 日,使用与 iwlwifi 工作相同的 LinuxKPI 基础设施,Realtek 的 rtw88(4) 驱动被纳入了 CURRENT。由于 DMA 的问题,在接下来的几周里,一个解决方法被开发出来并放到了代码仓库上,因此用户不再需要修补内核。对于物理内存超过 4GB 的机器,该驱动仍然需要在 loader.conf 中设置一个调整项。这个调整项使得该驱动在六月被合并到了 stable/13,随后又在 CURRENT 和 stable/13 中进一步更新。随着基于 rtw88 的芯片组的 USB 部分被准备纳入 Linux,准备 FreeBSD 也能支持 USB 部分的工作已经开始(需要更多时间)。
在过去的几个月里,Realtek 的 rtw89 已经开始编译,在它能够在 URRENT 启用之前,仍然是一个稳定运行和关联的工作。
感谢所有用户的测试和反馈,耐心等待下一次的更新、错误修复,或者只是我的一个答复。和你们一起工作是一件非常愉快的事情! 继续向我发送错误报告,但请记住,你应该感谢 FreeBSD 基金会,因为它使大部分工作成为可能。
要了解最新的开发状况,请关注 freebsd-wireless 邮件列表 并查看 wiki 页面。
赞助商:FreeBSD 基金会
链接:
联系:Kornel Duleba mindal@semihalf.com
联系:Marcin Wojtas mw@FreeBSD.org
共享页是一个 R/X 页,由 image activator 映射到每个进程中。它存储了 signal trampoline 以及其他元数据,例如实现用户空间定时器所需的信息。以前,它被映射在进程虚拟地址空间的顶部。随着上述变化,它的地址将被随机化。我们计划对所有架构的 64 位二进制文件默认开启该功能。目前,这些补丁正在审查中,等待批准。
赞助商:Stormshield
更新特定平台的功能,并引入对新硬件平台的支持。
链接:
联系:Dmitry Salychev dsl@FreeBSD.org
联系:Bjoern A. Zeeb bz@FreeBSD.org
恩智浦的一些 SoC(LX2160A、LS1088A)配备了 DPAA2,即第二代的数据路径加速架构。它允许动态配置和连接数据包处理“对象”(网络接口的 DPNI,媒体访问控制器的 DPMAC 等),以形成一个片上网络。
在上个季度,该驱动开始运行良好,足以用于 SolidRun 的 Honeycomb LX2(ACPI 测试平台),Traverse Technologies 已经为(他们的)Ten64(用作 FDT 测试平台)制作了一个 FreeBSD 预览。
该驱动仍在进行中,但已接近审查,以便将第一个版本放入代码库中,让大家从中受益。
WIP:
FDT MDIO 支持。FreeBSD 目前缺乏对 SPF 部分的支持
驱动程序资源的去分配,以正确卸载 dpaa2.ko
错误修复和改进
TODO:
对 DPIO 和 DPNI 的处理器亲和性
缓存的内存支持的软件门户
缓解瓶颈
支持更多的硬件组件(DPSW、DCE 等)
赞助商:赤裸裸的热情 :)
赞助商:Traverse Technologies (提供 Ten64 HW 用于测试)
联系:Eliot H. Solomon ehs3@rice.edu 联系:Alan L. Cox alc@rice.edu
64 位 ARM 架构的页表描述符格式包含一个称为连续位的标志。这告诉 MMU,它可以缓存一组对齐的、物理上连续的 16 个页表条目,这些条目具有相同的权限和属性,只需使用一个 TLB 条目。
毗连位,以及概念上类似于 RISC-V 架构的 Svnapot 扩展,允许使用 64KB 的超级页。这些中等大小的超级页可以为较小的内存对象带来地址转换的速度,通常与更传统的 2 MiB 超级页相关。
这个项目的重点是为 FreeBSD 带来对中型超级页的支持。到目前为止,我们已经修改了 arm64 pmap 的代码,通过检测物理上连续的页表项并使用 Contiguous 位来自动利用 64 KiB 超级页。现在,我们正在努力调整内核的超级页保留模块,以支持 64 KiB 的保留,除了目前的 2 MiB 的保留之外。增加中等大小的预留将允许虚拟内存系统明确地分配符合超级页推广要求的内存块,而不是仅仅希望它们偶然出现。
我们的目标是以一种通用的方式来实现这一点,使其有可能指定多个任意的 2 次方预留尺寸,从而更容易利用其他架构上的硬件功能,如 Ryzen 的 PTE 凝聚,它可以透明地将 4 KiB 的页表条目组合并为中等大小的超级页。
赞助商:莱斯大学计算机科学系
文档树、手册页或新的外部书籍/文件中值得注意的变化。
链接:FreeBSD 文档项目
链接:为新的贡献者提供的 FreeBSD 文档项目入门手册
链接:文档工程团队
联系:FreeBSD Doceng 团队 doceng@FreeBSD.org
doceng@ 团队是一个处理与 FreeBSD 文档工程相关的一些元项目问题的机构;更多信息请参见 FreeBSD Doceng 团队章程。
在上个季度,Graham Perrin (grahamperrin@) 和 Pau Amma (pauamma@),被授予文档提交权限。
有几个项目还在讨论中。
将网站和文档门户与项目的 GeoDNS 基础设施进行镜像。
如何处理文档中的商标。
从网站和文档门户中删除过时的翻译。
链接:在 Weblate 上翻译 FreeBSD 链接:FreeBSD Weblate 实例
2022 年第二季度状况
12 种语言
152 个注册用户(9 个新用户)
语种
中文(简体)(zh-cn)
中文(繁体)(zh-tw)
荷兰语 (nl)
法语(fr)
德语 (de)
印度尼西亚语 (id)
意大利语 (it)
挪威语 (nb-no)
波斯语 (fa-ir)
葡萄牙语 (pt-br)
西班牙文 (es)
土耳其语(tr)
我们要感谢每一个作出贡献、翻译或审阅文件的人。
同时,请在你的本地用户组中帮助推广这项工作,我们总是需要更多的志愿者。
联系:Sergio Carlavilla carlavilla@FreeBSD.org
负责创建新的 FreeBSD 文档门户和重新设计 FreeBSD 主网站及其组件的工作小组。FreeBSD 开发者可以在 FreeBSD Slack 频道 #wg-www21 上关注并加入该工作组。这项工作将分为四个阶段:
重新设计文档门户
创建一个新的设计,具有响应性和全局搜索功能。(完成)
重新设计网络上的手册页面
使用 mandoc 生成 HTML 页面的脚本。(工作正在进行中)
重新设计网络上的“ports”页面
创建应用门户的 port 脚本。(工作正在进行中)
重新设计 FreeBSD 的主网站
新的设计,响应性和暗色主题。(未开始)
影响 Ports 的变化,无论是涉及大部分目录的全面变化,还是个别 Ports 本身的变化。
链接:
KDE FreeBSD 网址:https://freebsd.kde.org/
KDE Community FreeBSD 网址:https://community.kde.org/FreeBSD
联系:Adriaan de Groot kde@FreeBSD.org
KDE on FreeBSD 项目将来自 KDE Community 的软件,以及依赖关系和相关软件打包到 FreeBSD ports 上。这些软件包括一个叫做 KDE Plasma 的完整桌面环境(适用于 X11 和 Wayland)和数百个可以在任何 FreeBSD 机器上使用的应用程序。
KDE 团队 (kde@) 也是 desktop@ 和 x11@ 的一部分,他们建立了软件栈,使 FreeBSD 成为漂亮的、可用于日常驱动的基于图形的桌面机器。下面的说明主要是描述 KDE 的 Ports,但也包括对整个桌面堆栈有意义的项目。
KDE 堆栈
KDE Gear 每季度发布一次,KDE Plasma 每月更新一次,KDE Frameworks 每月也有一个新版本。这些(大型)更新在其上游发布后不久就登陆,不单独列出。
astro/kstars 最新版本 3.5.9。
deskutils/grantleetheme 在 UPDATING 中得到了一个条目,因为这个 port 的安装结构发生了一些不寻常的变化。
deskutils/kalendar 加入了 KDE Gear 版本。
devel/okteta 更新了二进制(以及八进制和十六进制)数据查看器和编辑器。
finance/kraft 需要对较新的 KDE 框架进行特定的构建修复。
games/gcompris-qt 扩展了新版本,现在支持更多的图像格式(某些活动需要)。
graphics/digikam 在构建过程中不再需要 SQL 服务器。
graphics/krita 更新到了 5.0.5,可能是最后的 5.0 版本。
math/labplot 在最近的版本中有大量的新功能,如果你需要任何类型的数据绘图,非常值得一看。
net-im/ruqola 已经更新。这是一个 Qt 风格的 Rocket 聊天应用程序。
www/falkon 加入了 KDE Gear 的发布。
相关应用程序
Archivers/quazip 被更新了。
deskutils/semantik 已更新。
更新了 develop/py-qt5-pyqt,以便该 port 现在也能拉入 DBus。几乎所有桌面 Qt 应用程序都需要 DBus,包括那些用 Python 编写的应用程序。
devel/qcoro 在某些 FreeBSD 版本上有构建问题,已解决。
devel/qtcreator 随每个新版本的发布而更新。
devel/qt5 在 ports 中更新了它的基础架构,这样它在卸载时就不会产生奇怪的错误信息。
graphics/ksnip 和相关库已更新到最近的版本。
Matrix 客户端 Nheko (net-im/nheko) 和 Neochat (net-im/neochat) 在发布和库升级之后进行了更新。
更新了 x11/rsibreak;有助于防止在写长的季度报告时受伤。
其他方面
devel/appstream 的更新支持更多的应用程序信息。
如果用户安装了多个 python3 Port 和 lang/python3,devel/cmake 更倾向于使用通用的 python3 而不是版本化的 python3。
更新了 devel/dbus。
graphics/poppler 更新了若干次。
graphics/ImageMagick (包括 6 和 7) 更新了若干次。
multimedia/gstreamer 已更新。
链接:
GCC 项目 网址:https://gcc.gnu.org
GCC 11 发布系列 网址:https://gcc.gnu.org/gcc-11/
联系:Gerald Pfeifer gerald@pfeifer.com
联系:Lorenzo Salvadore salvadore@FreeBSD.org
联系:Lorenzo Salvadore Piotr Kubaj pkubaj@FreeBSD.org
salvadore@ 致力于将 Mk/bsd.default-versions.mk 中的 GCC_DEFAULT 从 10 升级到 11,根据 antoine@ 的 exp-runs 打开 bug 报告并修复了一些:非常感谢所有帮助这项工作的人。GCC_DEFAULT 从 GCC 10 到 GCC 11 的更新现在已经由 gerald@ 提交,并在下一个季度的分支中及时发生。https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258378 pkubaj@ 通过引入一个默认启用的新选项,将 GCC 引导转换为使用 GCC 本身的链接时间优化,适用于 GCC 11 和更新版本。启用 LTO_BOOTSTRAP 进行构建需要大量的内存和时间。实际需要多少资源取决于你的配置 (例如,你是用 port 还是用 poudriere 构建?你的架构是什么?)。举个例子,一个用户报告说需要 5 GiB 的临时文件,而在 PR 265254 中,由于产生了过多的进程,估计需要大约 130 GB 的内存(也见 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106328 )。考虑禁用 LTO_BOOTSTRAP,改用 STANDARD_BOOTSTRAP(或者完全禁用 BOOTSTRAP),以防出现问题。
pkubaj@ 还添加了 lang/gcc12 和 lang/gcc13-devel port,并将 lang/gcc9 更新到 9.5。
这三个改动仍然需要帮助,以便与上游的 GCC 一起工作(需要 src 专业知识,而不是 ports)。
上游的 lang/gcc11/patch-gets-no-more
upstreaming lang/gcc11/patch-arm-unwind-cxx-support
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256874
链接:
Valgrind 主页 网址:https://www.valgrind.org/
Valgrind 新闻 网址:https://www.valgrind.org/docs/manual/dist.news.html
联系:Paul Floyd pjfloyd@wanadoo.fr
在过去的几个月里,FreeBSD 上的 Valgrind 已经进行了相当多的错误修正。特别是,i386 版本在很大程度上已经“赶上”了它的老大哥 amd64。
devel/valgrind-devel port 已经提升到 3.20.0.g20220612,1,其中包括以下所有的变化。如果你经常使用 Valgrind,请切换到 valgrind-devel。
以下是自 Valgrind 3.19.0 发布以来的变化列表(该版本是与 devel/valgrind port 一起使用的版本)。
如果 Valgrind 在保存系统调用的携带标志时有信号到达,则信号恢复不正确。
修正了从 ld 产生的 PT_LOADs 中读取 DWARF 调试信息的问题,版本 9 后的 ld 将 RW 段分成两部分,这主要影响到共享库(.so 文件)。
在 i386 上正确实现线程 GDTs 的管理,这限制了应用程序只能创建 8192 个线程
使“brk”的第一页对寻址无效
分析和清理回归测试套件,特别是调整 i386 的泄漏测试,使其不能检测到 ECX 中剩余指针可能造成的泄漏。
让 lldb 可以读取 coredumps。
改进 C 语言分配函数的 errno 设置。
修正用 llvm-devel (15.0.0) 建立 Valgrind 的问题。
对于 FreeBSD 13.1 / 14.0,有
funlinkat, copy_file_range, swapoff, shm_open2 的系统调用包装器。
在 fcntl 中添加 K_INFO 处理程序
增加了对新的 auxv 条目的处理
为 DRD 和 Helgrind 增加了一些默认的抑制措施
现在有一个初始版本的 vgdb invoker 支持——这允许 vgdb 使用 ptrace 来强迫 valgrind 轮询 gdb 命令。这在 port 版本中还不能使用。
这并没有留下多少悬而未决的问题。我希望 14.0 和更新的 llvm 版本会继续需要支持。除此以外,还有
一些关于错误信息的小问题,以获得正确的源信息
更好的核心转储(低优先级)
为 Helgrind 处理 TLS(线程本地存储)(如果不是不可能的话,也很难)。
链接:
基本操作系统网址:https://elementary.io
开发库 网址:https://codeberg.org/olivierd/freebsd-ports-elementary
联系:Olivier Duchateau duchateau.olivier@gmail.com
Pantheon 桌面环境是为 elementary OS 设计的。它建立在 GNOME 技术(如 Mutter、GNOME Shell、GTK 3 和 4)之上,并以 Vala 语言编写。
其目标是为用户提供一个新的桌面。有些功能没有得到很好的支持,但我们可以有完整的会话。
仓库包含 Mk/Uses 框架 elementary.mk,官方应用程序,以及依赖 x11-toolkits/granite 的策划的 port(总共 56 个新 port)。
我已经提交了几个补丁,特别是:
x11-toolkits/granite7
devel/libgee 更新到 0.20.5 bug #262893
sysutils/bamf 更新至 0.5.6 bug #264203
开放任务
增加对用户设置的支持(这是非常以 Ubuntu 为中心的)。
完成移植 wingpanel-indicator-power(电源管理)。
链接:
FreeBSD Wiki 项目页面 网址:https://wiki.freebsd.org/SummerOfCode2022Projects/ImprovingTheLinuxKPICompatibilityLayerForTheFreeBSDGraphicsStack
状态报告 网址:https://cdaemon.com/tags/gsoc2022
联系:Jake Freeland jfree@freebsd.org
Intel 的 igt-gpu-tools 是 Linux 上 drm 驱动的一个通用测试套件。igt-gpu-tools 套件被分成针对 kms、内存管理和命令提交的测试和工具。该工具提供了详细的报告,以便透明地跟踪内核变化,并对现代 drm 驱动进行有效的调试。
将该项目移植到 FreeBSD 上可以为 FreeBSD 的 LinuxKPI 驱动的 drm 驱动的未来版本带来更大的稳定性。一个合适的 kms 驱动的测试套件也可以增加代码输出,使 FreeBSD 的桌面体验与 Linux 代码库同步。
该项目于 2022 年 6 月 13 日在 FreeBSD 的谷歌代码之夏计划下正式启动。我改编的代码可以在删除非 FreeBSD 兼容片段后进行编译。我们的计划是以符合 POSIX 的方式重新实现这些被剥离的组件。
值得注意的不兼容代码包括:debugfs,libkmod,libprocps,Linux 性能事件,和 Linux userfaultfd。如果你愿意协助将 libkmod 或 libprocps 移植到 ports 中,请不要犹豫,与我联系。
当 FreeBSD 兼容代码完成后,我将在 FreeBSD 14.0-CURRENT 上使用一系列图形处理器运行修改后的 igt 测试。如果一切顺利,这个项目的 diff 将被提交到 ports 中。
赞助商:谷歌代码之夏
2024.11.8 “FreeBSD 2024 年第三季度状态报告” 完成
原文地址:FreeBSD Status Report Third Quarter 2024
这是 2024 年第三季度的状态报告,共有 32 项条目。
不幸的是,同上个季度一样,本季度我们再次迟到。正如我们的读者所熟知,许多 FreeBSD 贡献者都是志愿者,因此像状态报告这样的重要程度较低的截止日期(ddl)并不总能按时完成。事实上,如果你还不是 FreeBSD 的贡献者,请考虑加入我们:你可在与世界各地的开发者一道工作的同时,减轻大家的负担,同时学到新技能。
祝阅读愉快,
Lorenzo Salvadore,
代表状态团队
来自各个官方和半官方团队的条目,见管理页面。
联系方式:
FreeBSD 核心团队 <core@FreeBSD.org>
FreeBSD 核心团队是 FreeBSD 的管理机构。
核心团队欢迎新秘书 René Ladan(rene@)的加入。
从核心团队中选出了各小组新的联络人:
bugmeister:glebius
ci:olivier
clusteradm:mat
doceng:lwhsu
foundation:hrs
portmgr:tcberner
re:dch
secteam:allanjude
srcmgr:glebius
核心团队几乎全员参加了 2024 年在都柏林举办的 EuroBSDCon。下列人员出席:allanjude, dch, glebius, hrs, lwhsu, mat, olivier, rene
核心团队与 FreeBSD 基金会举行了周期性会议,并借此机会面对面交流。会议内容包括改善二者以及与社区的合作与沟通。
核心团队批准了 re@ 提出的缩减 FreeBSD releases 支持时间表的提案,将支持期限从五年缩减为四年,四年后会以尽力而为的方式继续为该 releases 提供支持。该提案得到了 portmgr 和 secteam 的认同。
核心团队帮助成立了新的 srcmgr 团队。其章程尚未完全确定,如需要,可以在 6 到 12 个月后进行调整。
从现在起,新的 src 提交权限提名应发送至 srcmgr@ 而非 core@。
提议设立一项潜水者计划,以保持新成员的流入。
核心团队在 202409 开发者峰会上宣布了 srcmgr,并于 9 月 29 日向 developers@ 发送了后续通知。
核心团队欢迎 Igor Ostapenko(igoro)成为新的 src 提交者。
核心团队增补了由 grim reaper 脚本发送的文本:增加了如何重新激活开发者提交权限的说明。
链接:
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 项目执行合同、许可证协议及其他需要有合法实体的法律事务
尽管夏天让人倦怠,但我们仍完成了大量工作,你可在我们的第三季度报告中看到这些成果!亮点包括:从个人捐赠者那里筹集了 135,000 余美元,并启动了两个重大项目。首先,感谢主权技术基金(Sovereign Tech Fund)的大额投资,我们将进一步改善我们的基础设施。其次,感谢 Quantum Leap Research(量子跃迁研究)和基金会的资助,我们将加速推进 FreeBSD 在现代笔记本电脑上的项目。我们还继续推进由 Alpha-Omega 资助的项目,招聘了一名用户空间软件开发者,并创设了解决方案专家的职位。
正如你将在下面看到的,借助宣传和社区传播 FreeBSD 仍然是我们使命中的重要部分。在夏季,我们赞助了 EuroBSDCon,并将赞助即将到来的 FreeBSD 和 OpenZFS 峰会,同时为大约八名 FreeBSD 贡献者提供了参加 EuroBSDCon 的旅行资助。我们的倡导团队积极制作内容,推广 FreeBSD 的优势和特性,解释为什么公司应使用 FreeBSD;以及如果你关心安全,为什么你也应该使用 FreeBSD。我们还在社交媒体上推广了项目和基金会的工作。
在 EuroBSDCon 期间,基金会与核心团队成员会面,讨论核心团队希望在其任期内达成的目标。我们确定了两个近期需要重点解决的领域:
财务报告透明度:在我们的季度报告中详细列出操作系统改进的支出。我们正在与会计师合作,从 2025 年开始,我们将报告在某些项目和关键领域(如笔记本电脑、企业、安全等)上的支出。与此同时,我们将在财务报告中添加注释,记录哪些项目包含在操作系统改进支出类别中。我们意识到,今年没有发布财务报表。我们的会计团队正在为我们引入改进的报告方式,并将我们的账目整合进新的会计系统。
我们资助的项目:那些没有在项目官网上提及的。我们在自己的网站上记录这些项目,因为我们希望展示捐赠者的资金是如何被使用的。我们意识到还需要在 FreeBSD.org 上添加这些项目的文档,因此我们将调查如何更好地将我们的软件开发工作与 FreeBSD 项目关联起来。
我们资助了大量的软件开发工作,旨在推动、改进并保持 FreeBSD 的安全。我们为其中一些工作获得了资金支持,但大部分资金来自于你的捐赠和我们的投资。我们的目标是专注于 FreeBSD 的长期可持续发展。为了实现这一目标,我们需要更多的公司参与进来,帮助资助我们的工作。我们的投资最多只能持续一两年。如果你的公司依赖于 FreeBSD,请考虑提供财务支持,以确保 FreeBSD 保持安全、可靠且富有创新性。如果你不确定如何发起捐赠,请联系我们,我们可以帮助你推进这个过程。
请访问此处进行捐赠:https://freebsdfoundation.org/donate/。欲了解更多关于我们的合作伙伴计划,请访问:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/。
在 2024 年第三季度,在 263 个 src、37 个 port 和 11 个文档树的提交中,FreeBSD 基金会被标记为赞助商。
FreeBSD 基金会的几位开发团队成员参加了在爱尔兰都柏林举行的 FreeBSD 开发者峰会,并在 EuroBSDCon 2024 之前举行了会议。你可以观看来自基金会的问候视频,在开幕式中:
Deb Goodkin 介绍了 FreeBSD 基金会
Joe Mingrone 介绍了开发团队成员,并简要概述了 FreeBSD 2024 谷歌编程之夏活动
Ed Maste 介绍了基金会当前或最近完成的开发项目。
最近开始成为基金会的技术项目管理角色的 Alice Sowerby,做了一场介绍 CHAOSS(开源软件社区健康分析)项目的演讲,讲解了如何开始收集和处理社区健康指标。
基金会正维持着四个主要项目,这些项目得到了新的资助和投资合作伙伴的支持。
第一个项目,部分由 Alpha-Omega 资助,旨在提高 FreeBSD 的安全性。作为该项目的一部分,基金会聘请了 Synacktiv 对两个重要子系统进行代码审计:bhyve 和 Capsicum。详细信息请参见专门的 Capsicum 和 Bhyve 代码审计报告条目。
第二个项目,由 AMD 和基金会共同资助,旨在为 FreeBSD 开发一款 AMD IOMMU 驱动程序。该项目的动因是更好地支持大型核心 AMD 设备。然而,该驱动程序在需要中断重映射的不同场景下也会发挥作用。目前,该工作已接近完成,开发人员 Konstantin Belousov 正在对一些 AMD 的大核心系统进行驱动程序测试,待测试完成后提交。
第四个项目,将由基金会和 Quantum Leap Research(量子跃迁研究)共同资助,旨在改进 FreeBSD 笔记本的可用性。我们已经开始(或即将开始)支持在以下领域工作的开发者:
增强无线芯片组支持:改善芯片组兼容性,确保可靠的无线连接,并支持更新的无线标准。
电源管理:实施现代电源节省状态(如 s2idle 和 s0ix),提高电池寿命和能源效率。
改善显卡支持:通过集成最新的 DRM 驱动程序,改善对 Intel 和 AMD 显卡的支持。
改进音频:增强音频路由、耳机切换和数字麦克风(DMIC)功能,提供更友好的多媒体体验。
笔记本特有硬件功能:解决现代笔记本中的特殊按钮、触摸板手势和其他独特硬件组件的问题。
FreeBSD 实现连续第 20 年参与谷歌编程之夏。今年夏天的 11 个项目已完成,其中 9 个项目通过了评审。
基金会一直为 FreeBSD 开源容器倡议(OCI)工作组提供项目管理支持,由 Alice Sowerby 主持每两周一次的会议,并运行了最近的 FreeBSD 上 Podman 测试项目。OCI 开发云原生容器格式和运行时的开放行业标准,确保平台的一致性。FreeBSD 的 OCI 工作组正在为 FreeBSD 定义这些标准,实施方式包括使用 jail,可能还会使用 bhyve 的轻量级虚拟机。详细信息请参见基金会的 OCI 容器支持项目页面。
其他基金会的新闻:
Isaac Freund 加入了基金会开发团队,担任用户空间开发者。他是 River Wayland 混成器的首席开发者,也是 Core Zig 团队的成员,我们对 Isaac 为 FreeBSD 带来的经验感到兴奋。
Alfonso Sabato Siciliano 正在为盲人、低视力和色盲用户开发视觉无障碍子系统。新功能包括盲文显示框架、虚拟终端控制台的通信通道、语音合成器、高对比度 TUI 工具和一本文档 FreeBSD 上可用辅助技术的可访问性手册。
Tom Jones 完成了与 RGNets 的工作,将多平台网络堆栈 Vector Packet Processor(VPP)移植到 FreeBSD。你可以在他的 Endpoint-Independent NAT 报告条目中阅读有关他下个支持 FreeBSD 防火墙的全锥形 NAT 的项目。
Christos Margiolis 继续改进着 FreeBSD 的音频堆栈,并为音频开发人员提供有用的工具和框架,便于在 FreeBSD 上进行声音开发。最新进展请参考音频堆栈改进条目。
Olivier Certner 在本报告中有两个条目。你可以在调度优先级:256 队列运行队列子项目和 mac_do(4)、setcred(2)、mdo(1)报告条目中了解他的最新工作。
Bjoern Zeeb 继续改进着 FreeBSD 的无线网络。你可以在 Bjoern 的更新无线条目中了解最新进展。
Philip Paeps 继续进行雇佣工作,以使 FreeBSD 集群现代化。
Chih-Hsin Chang 继续移植 OpenStack 组件,以便在 FreeBSD 主机上运行该云计算平台。最新信息请参见 FreeBSD 上的 OpenStack条目。
基金会技术团队的其他成员也为 FreeBSD 开发做出了贡献。例如:
Mitchell Horne 为 RISC-V 提交了工作,包括添加对 Supervisor 模式:基于页面的内存类型(Svpbmt)扩展的支持
Ed Maste 用 etcupdate(8) 替换了已弃用的工具 mergemaster,用于更新未由安装世界(world)管理的文件
Joe Mingrone 更新了我们的基础 libpcap 和 tcpdump(1)
Li-Wen Hsu 确保了我们的 Jenkins Port 跟踪最新的上游版本,并进行了一些 Port 的更新。
作为我们持续支持 FreeBSD 项目的一部分,基金会有一名全职员工,专门负责改进 FreeBSD 项目的持续集成系统和测试基础设施。
在 2024 年第三季度,我们继续加大力度,提高 FreeBSD 项目的认知度,推动对 FreeBSD 项目的宣传,面向用户,并为 FreeBSD 社区提供教育内容。以下是我们的一些努力成果:
在 2024 年 EuroBSDcon FreeBSD 开发者峰会上进行了演讲。幻灯片和直播视频现已可用。
参加并展示了 EuroBSDCon 2024。基金会再次成为银牌赞助商。
完成了 OpenZFS 用户和开发者峰会的铜牌赞助。
开始筹备 2024 年秋季 FreeBSD 峰会,该峰会将于 2024 年 11 月 7 日至 8 日在加利福尼亚州圣荷西举行。会议程序现已发布,并已开放注册。
更新了社区关于新发布计划的信息:Navigating FreeBSD’s New Quarterly and Biennial Release Schedule。
分享了更多关于主权技术基金对基金会投资的细节:主权技术基金将投资 686,400 欧元用于 FreeBSD 基础设施现代化。
发布了 2024 年 7 月、8 月和 9 月的 FreeBSD 基金会更新。
发布了 2024 年 5 月/6 月和 7 月/8 月的 FreeBSD 期刊 HTML 版文章,分别为May/June 2024和July/August 2024。
基金会持有 FreeBSD 商标,负责保护这些商标。我们还为核心团队提供法律支持,调查可能出现的问题。
请访问 https://freebsdfoundation.org 了解更多关于我们如何支持 FreeBSD 以及如何帮助你的信息!
链接:
FreeBSD 13.4-RELEASE 公告 链接:https://www.freebsd.org/releases/13.4R/announce/
FreeBSD 14.2-RELEASE 计划 链接:https://www.freebsd.org/releases/14.2R/schedule/
FreeBSD releases 链接:https://download.freebsd.org/releases/ISO-IMAGES/
FreeBSD 开发快照 链接:https://download.freebsd.org/snapshots/ISO-IMAGES/
联系方式:
FreeBSD 发布工程团队,<re@FreeBSD.org>
FreeBSD 发布工程团队负责为 FreeBSD 项目的官方版本设定和发布发布计划,宣布代码冻结并维护相应的分支等任务。
该团队管理了 13.4-RELEASE,并于 9 月发布了最终的 RELEASE 构建和公告。14.2-RELEASE 周期的规划已开始。
发布工程团队继续为 main、stable/14 和 stable/13 分支提供每周的开发快照构建。
链接:
FreeBSD Jenkins 实例 链接:https://ci.FreeBSD.org
FreeBSD CI Tinderbox 视图 链接:https://tinderbox.freebsd.org
FreeBSD CI 工件存档 链接:https://artifact.ci.FreeBSD.org
托管 CI Wiki 链接:https://wiki.FreeBSD.org/HostedCI
第三方软件 CI 链接: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
FreeBSD CI 仓库 链接:https://github.com/freebsd/freebsd-ci
dev-ci 邮件列表 链接:https://lists.FreeBSD.org/subscription/dev-ci
联系方式:
Jenkins 管理员 <jenkins-admin@FreeBSD.org>
Li-Wen Hsu <lwhsu@FreeBSD.org>
IRC #freebsd-ci 频道(EFNet)
在 2024 年第四季度,我们与项目贡献者和开发人员合作,解决他们的测试需求。同时,我们与外部项目和公司合作,通过更多地在 FreeBSD 上进行测试来增强他们的产品。
已完成的重要任务:
将 main 分支和 stable/14 构建环境更新至 14.1-RELEASE
进行中的任务:
改进 src/tests/ci 工作,以支持运行测试套件
设计并实施预提交 CI 构建和测试以及基于 PR 请求/合并请求的系统(以支持工作流工作组)
概念验证系统正在进行中。
设计并实施使用 CI 集群构建发布工件,像发布工程一样,从快照构建开始
简化 CI/测试环境设置,以便贡献者和开发人员使用
设置 CI 阶段环境并将实验性任务放入其中
重新设计硬件测试实验室并增加更多测试硬件
开放/待处理的任务:
收集并整理 CI 任务和想法
设置虚拟机客户机的公共网络访问,用于运行测试
实施使用裸金属硬件运行测试套件
添加针对 -CURRENT 的 drm Port 构建测试
帮助更多软件在其 CI 管道中获得 FreeBSD 支持(Wiki 页面:3rdPartySoftwareCI,HostedCI)
与托管 CI 提供商合作,改善 FreeBSD 支持
请参阅 freebsd-testing@ 相关票据获取更多 WIP 信息,并欢迎加入我们的努力!
赞助:FreeBSD 基金会
链接:
关于 FreeBSD Ports 链接:https://www.FreeBSD.org/ports/
贡献到 Ports 链接:https://docs.freebsd.org/en/articles/contributing/#ports-contributing
Ports 管理团队 链接:https://www.freebsd.org/portmgr/
Ports Tarball 链接:http://ftp.freebsd.org/pub/FreeBSD/ports/ports/
联系方式:
Tobias C. Berner <portmgr-secretary@FreeBSD.org>
FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>
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 分支中最活跃的提交者是:
5133 次 sunpoet@FreeBSD.org
1262 次 yuri@FreeBSD.org
375 次 jbeich@FreeBSD.org
357 次 vvd@FreeBSD.org
331 次 bofh@FreeBSD.org
192 次 uzsolt@FreeBSD.org
185 次 eduardo@FreeBSD.org
172 次 diizzy@FreeBSD.org
148 次 mfechner@FreeBSD.org
131 次 arrowd@FreeBSD.org
在过去三个季度,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 默认版本更新和基本系统的更改。
链接:
FreeBSD Bugzilla 链接:https://wiki.freebsd.org/Bugzilla
联系方式:
Bugmeister <bugmeister@FreeBSD.org>
FreeBSD Foundation 的 Ed Maste 对在 Bugzilla 上增加更多有用的图表表示了兴趣。我们目前拥有的图表信息量有限。尽管许多有趣的 Bugzilla 查询已经被记录下来,但其中的信息较为密集。
如果你有兴趣参与该任务,请直接联系 Ed。
最近,Bugzilla 上游发布了 5.0.4.1 版本,这是个小的错误修复版本。初步工作表明更新不会带来较大影响。工作仍在进行中。
PR(问题报告)不断提交并进行分类。长期来看,我们几乎达到了稳定状态。
上一季度(和年度)PR 数量有所波动。Vladimir Druzenko 指出,在 2023 年第四季度,PR 数量减少了约 200 个(我们尚未进行数据分析以找出原因)。不过,目前数量逐渐恢复到一年前的水平。而且我们似乎在更快速地关闭新提交的 PR。参考链接:
https://bugs.freebsd.org/bugzilla/page.cgi?id=dashboard.html&days=365
PR 的总数仍然略超过 11,600 个,我们确实存在很多技术债务。
Bugmeister 还在努力重启 Bugathons。
Bugmeister 团队要感谢许多参与 Bug 修复的人,包括新加入的分流人员 Alexander Vereeken、Alexander Ziaee 和 Frederick Lee。
链接:
FreeBSD Samba 团队 Wiki 链接:https://wiki.freebsd.org/Samba
Samba 官方主页 链接:https://www.samba.org/
联系方式:
FreeBSD Samba 团队 <samba@FreeBSD.org>
Samba 提供了使用 SMB/CIFS 协议的客户端的安全、稳定和快速的文件和打印服务。它是将 FreeBSD/Linux/Unix 服务器和桌面无缝集成到 Active Directory(AD,活动目录)环境中的重要组件。Samba 可以作为域控制器,也可以作为常规域成员。
新的 FreeBSD Samba 团队的创建旨在更好地协调 Samba Port 及其依赖项的维护工作,特别是以下内容:
上季度的重要变化包括:
Timur Bakeyev、Xavier Beaudouin、Yasuhiro Kimura、Mateusz Piotrowski 和 Mikaël Urankar 成立了 FreeBSD Samba 团队。
在 Mk/Uses/samba.mk 中增加了 SAMBA_LDB_PORT
(由 Klara, Inc. 赞助)。
切换 net/samba419 默认使用外部依赖项而非内部集成(由 Klara, Inc. 赞助)。
将 net/samba419 更新至 4.19.8 版本。
目前,FreeBSD Samba 团队正在以下领域开展协作:
将 Samba 的默认版本从 4.16 切换到 4.19(Bugzilla PR#280769)。
当前的阻碍因素包括:
fruit:posix_rename = yes
功能损坏(Bugzilla PR#281360)。
Samba 4.19.8_1 中的复制功能损坏(Bugzilla PR#281672)。
在 ports 树中添加 Samba 4.20(Bugzilla PR#280533)。
在 ports 树中添加 Samba 4.21(Bugzilla PR#281262)。
欢迎测试和社区贡献,请通过 Bugzilla 或团队电子邮件联系我们。
涵盖多个类别的项目,从内核和用户空间到 Ports/外部项目。
联系方式:Christos Margiolis <christos@FreeBSD.org>
FreeBSD 的音频栈相较于其他领域缺乏关注和开发,长期以来基本未得到维护,尽管质量较高,但仍有改进空间——从缺乏音频开发框架,到缺少用户空间实用工具和内核驱动相关的错误。本项目旨在覆盖这些方面,更像是通用的改进项目,而非具体功能的实现。
自上次报告以来的重要工作:
后续工作包括:
更多错误修复和改进。
完成并提交 audio(8) 和 mididump(1)。
实现通用的 MIDI 层,类似于 pcm/
,并全面改进和现代化 MIDI 代码库。
实现蓝牙设备管理工具。
更多 virtual_oss 补丁和改进。
尝试实现 snd_hda(4) 引脚补丁机制。
调查支持 SOF/DMIC 的可能性。
你也可以关注 freebsd-multimedia@ 邮件列表,我会在上面定期发布进展报告。
赞助方:FreeBSD 基金会
链接:
Bhyvemgr 链接:https://github.com/alonsobsd/bhyvemgr/
联系人:
José Alonso Cárdenas Márquez <acm@FreeBSD.org>
Bhyvemgr 是一款在 FreeBSD 上用 Freepascal/Lazarus 编写的 bhyve 管理图形界面 (GUI)。它需要许多由系统自带工具安装的程序,还有一些通过 ports/软件包安装。其主要目标是成为桌面应用程序,方便桌面用户在 FreeBSD 主机上快速、轻松地设置和运行虚拟机。
它应被用于虚拟机测试目的(而非生产环境)。如果你需要生产环境中的虚拟机管理工具,请参考 sysutils/vm-bhyve、sysutils/bmd 和 sysutils/cbsd。
Bhyvemgr 支持 15-CURRENT 的 aarch64 版本和 FreeBSD 13.x 至 15-CURRENT 的 amd64 版本。可以通过 ports 安装 sysutils/bhyvemgr,也可以通过带有 gtk2、qt5 和 qt6 界面支持的包安装。
欢迎对项目感兴趣的人提供帮助。
2024 年第三季度末版本: 1.1.0
待办事项
在真实 aarch64 硬件上测试
添加串口设备支持
增加缺少的全局设置条目(bios、board、chassis、system)
链接:
加速 FreeBSD 启动过程 链接:https://wiki.freebsd.org/SummerOfCode2024Projects/SpeedingUpTheFreeBSDBootProcess
dhclient PR 链接:https://github.com/freebsd/freebsd-src/pull/1368
联系人:
Isaac Cilia Attard <icattard@FreeBSD.org>
作为我 2024 年谷歌编程之夏项目的一部分,我致力于加速 FreeBSD 的启动过程,其中包括减少 dhclient 中的 ARP 解析时间。这涉及将默认的 ARP 解析超时时间从 2000 毫秒降低到 250 毫秒,并增加了一个完全禁用该功能的参数。后者在云环境中尤为有用,因为通常节点已分配了 IP 地址。
因此,现在连接到 DHCP 网络的速度加快了,包括在启动过程中所需的时间。所实现的加速约为 2 秒。
这使得 FreeBSD 系统的启动速度比以前显著提高。
赞助商: 谷歌公司(谷歌编程之夏 2024)
联系人:
Ed Maste <emaste@FreeBSD.org>
联系人:
Pierre Pronchery <pierre@freebsdfoundation.org>
在 Alpha-Omega 项目的支持下,FreeBSD 基金会对两个重要子系统——bhyve 虚拟机管理器和 Capsicum 沙箱框架——进行了代码审计。除了发现这些系统中的漏洞并加以修复外,审计还旨在识别漏洞类型和/或代码实践不足之处,以便在整个项目中进行改进。
基金会面试了几家公司,并选择 Synacktiv 进行审计。经审计,发现了一些较为严重的问题,已在安全公告中修复:
针对一些轻度严重的问题,修复工作正在进行中。代码审计报告将在处理完一定严重程度以上的问题后发布。FreeBSD 基金会还将发布一份报告,其中包括对 Synacktiv 代码审计报告的影响评估、发现的漏洞类型以及总结的经验教训。
更多信息请参考 Alpha-Omega 仓库。
赞助商: FreeBSD 基金会
赞助商: Tailscale
联系人: Tom Jones <thj@freebsd.org>
此项目旨在为 pf 和 ipfw 防火墙添加对 UDP 的端点独立映射支持。
端点独立 NAT 能使位于 NAT 后面的应用程序与多个远程主机通信时保持相同的映射。这使得没有 NAT 穿越机制的应用程序也能够绕过 NAT 问题以进行对等发现。从远程主机的角度来看,NAT 是透明的,就像没有 NAT 一样。这种形式的 NAT 在过去几十年中有多种名称,也称为“全锥形” NAT。
9 月初,Damjan Jovanovic 和 Naman Sood 的工作成果在 pf 上进行了应用,补丁增加了一个新的“端点独立”后缀,用于 UDP pf nat 规则。
ipfw 对端点独立的支持将通过 libalias 提供,任何使用 libalias 进行地址转换的系统都将受益于此更改。正在进行的审查 D46689 将为 libalias 增加支持。
此更改和已提交的 pf 更改均可通过在更多不同环境中进行测试而受益。
联系人: Igor Ostapenko <igoro@FreeBSD.org>
FreeBSD 测试套件通过 kyua(1) 工具执行。Kyua 支持并行执行测试,使用 kyua -v parallelism=<n> test
命令。然而,许多网络测试利用了 jail(8) 特性,如 VNET(9),并且与 jail 的命名和网络配置存在冲突。因此,这些测试被标记为 is_exclusive=true
元数据属性,以防它们同时运行并相互干扰。这造成了一个困境:当一个项目旨在增加测试覆盖率时,独占测试的增加会成比例地增加执行时间,从而在多个方面影响开发过程。
Kyua 最近在 15-CURRENT 中进行了更改,支持一个新概念叫做“执行环境(execution environment)”。默认情况下,测试在所谓的“主机”执行环境中运行,和以前一样。测试可以选择使用一个全新的执行环境——“jail”环境。在这种情况下,kyua 在运行测试之前创建一个 jail,然后在 jail 内执行测试。这为更多的测试并行运行提供了机会,因为 jail 本身提供了额外的隔离,特别是通过 VNET。这取决于硬件和配置,但有报告指出,在相同的环境下,netpfil/pf 测试可以快约 4 倍——几分钟而不是半小时。
以下 Makefile 更改,是如何切换 netpfil/pf 测试在 jail 执行环境中并行运行的快速示范:
更多细节:
关键提交和详细描述:257e70f1d5ee61037c8c59b116538d3b6b1427a2
关于“execenv”功能的手册页:kyuafile(5),kyua.conf(5)
此更改还带来了新的 sysctl 只读变量,提供了更多关于当前 jail 的细节,并且可能对一般用途有帮助:
security.jail.children.max: 最大子 jail 数量
security.jail.children.cur: 当前子 jail 数量
提示:从 prison0
运行 sysctl -n security.jail.children.cur
可以提供系统中所有 jail 的数量。
Kyua 的进一步改进,如需求定义和自动解析,目前正在设计阶段。潜在的新元数据属性,如 required_klds
和 required_pkgs
,为这些主题提供了一些线索。请联系 Igor 讨论可以帮助塑造这些即将到来的 Kyua 增强功能的想法和用例。
链接:
https://wiki.freebsd.org/LinuxSourceCompatibility
联系人:
Edward Tomasz Napierala <trasz@freebsd.org>
现有一个 wiki 页面,用于跟踪 FreeBSD 和 Linux 之间的源代码兼容性差异——并且需要你的反馈!
由于 FreeBSD 和 Linux 都是 Unix 系统,并遵循相同的标准,它们在源代码层面已经大致兼容。然而,Linux 仍然存在其特有的某些系统调用;还存在头文件、常量等方面的差异。在 FreeBSD 中敉平这些差异将使移植软件变得更加轻松。
并非所有差异都可以敉平。有些差异由于命名冲突、对系统工作方式的不同看法,或者因为它会导致 autoconf 选择一个功能较差的兼容性 API,而非原生的 API,因此无法消除。在这种情况下,我们应该记录它,并建议使用其他 API。
该 wiki 页面旨在提供概述并帮助跟踪进展。这是需要你帮助的地方。我需要那些实际将软件移植到 FreeBSD 的人,基于他们的经验,添加缺失的 API。这还包括非系统调用项,如缺失的头文件和不支持的常量。最好还要提到可能需要它们的软件名称。
添加缺失项
添加潜在的 API 使用者
赞助商: 创新英国(Innovate UK)
影响基本系统和其中程序的更改。
链接:
服务 Jail 的 rc-article 部分 链接:https://docs.freebsd.org/en/articles/rc-scripting/#rcng-service-jails
Bugtracker 上的 ports 服务 jail 补丁 链接:https://bugs.freebsd.org/bugzilla/buglist.cgi?quicksearch=service+jail+aware
联系人:
Alexander Leidinger <netchild@FreeBSD.org>
服务 Jail 扩展了 rc(8) 系统,可自动将 rc.d 服务放入 jail。服务 jail 继承父主机或 jail 的文件系统,但默认情况下使用 jail 的其他所有限制(进程可见性、受限网络访问、文件系统挂载权限、sysvipc 等)。附加配置还可继承父级的 IP、sysvipc、内存页面锁定以及使用 bhyve 虚拟机监视器 (vmm(4))。
自上次报告以来,多个 Port 已经添加了服务 jail 配置。在 ports 中的大约 1460 个启动脚本中,大约有 80 个启动脚本发生了变化,主要包括 postgresql、DNS 服务器、FTP 服务器、PHP、dovecot、postfix、rspamd、amavisd-new 和 clamav 等重要示例。还有一些更改正在等待相关 ports 维护人员的处理。
欢迎任何帮助修改更多启动脚本的人(大多数情况下仅需添加一行)。如果你想帮助,可以在上方的 bugtracker 链接中查看正在审查的更改。
链接
https://github.com/realchonk/fuse-ufs
联系人:
Benjamin Stürz <benni@stuerz.xyz>
在今年的谷歌编程之夏中,我使用 FUSE 和 Rust 编写了一款用户空间 UFS 驱动程序。该项目旨在简化在其他操作系统上挂载 FreeBSD UFS 文件系统的过程。目前仅实现了只读文件系统访问,但作为额外功能,fuse-ufs 能够挂载与主机字节序不同的文件系统。
我目前正在将项目拆分为二进制和库部分,以便更易于集成到其他操作系统中。作为此重构的一部分,将实现一款额外的 FUSE2 后端,以便可以在 OpenBSD 上运行。当前在 Linux 和 FreeBSD 上有测试基础架构,未来将支持 OpenBSD。尽管没有 MacOS 的 CI,我的一位朋友用 MacFUSE 进行了测试,且能正常工作。
完成重构后,我将开始着手实现写入支持。得益于 Robert Clausecker 的支持,我还将添加软更新和挂载 Sun UFS 的功能。
可以使用 cargo install fuse-ufs
安装该驱动,或(在 Arch Linux 上)使用你喜欢的 AUR 助手安装。感谢 Robert Clausecker 在 FreeBSD 的 sysutils/fusefs-ufs 中创建的 port。
特别感谢 Alan Somers 和 Kirk McKusick 的指导,并感谢 Robert Clausecker 提供了 FreeBSD port 并建议我完成此 GSoC 项目。还要感谢 Davids Paskevics 为我编写了模糊测试工具。
赞助商: 2024 谷歌编程之夏
内核子系统/功能、驱动程序支持、文件系统等更新。
链接:
公共开发仓库 链接:https://github.com/AlvinChen1028/freebsd-src/tree/feature-uvc
上游准备仓库 链接:https://github.com/lwhsu/freebsd-src/pull/2
联系人: Alvin Chen <weike_chen@dell.com>
联系人: Li-Wen Hsu <lwhsu@FreeBSD.org>
该工作旨在创建 FreeBSD UVC(USB 视频类)内核驱动,并遵循 v4l2 API,以便大多数 Linux 摄像头应用程序可以轻松移植到 FreeBSD。
代码仍在整理中,完成后将提交正式评审。
当前状态:
启用 UVC 驱动的关键功能。
实现关键 v4l2 IOCTL。
支持大多数 USB 摄像头(最高支持 4K 分辨率):如 Jabra、Logitech 等。
已验证部分应用程序:VLC、Cheese、pwcview。
后续工作:
需要实现几个 v4l2 IOCTL:使 v4l2-compliance 测试套件的所有用例通过。
需要实现一些 UVC API:如 uvc 控制映射回调等。
解决与 USB 相关的 UVC 锁定问题。
支持基于 PCI 的 AI 摄像头。
必要时进行代码重构。
赞助商: 戴尔科技公司(负责开发)
赞助商: FreeBSD 基金会(负责上游支持)
联系人:Olivier Certner <olce.freebsd.statusreports@certner.fr>
联系人:Baptiste Daroussin <bapt@FreeBSD.org>
此项目的目标是通过利用 FreeBSD 的 MAC 框架,能在不使用 setuid 可执行文件的情况下实现受控的进程凭据转换。
传统的凭据更改程序必须以 root 用户身份(至少是有效的 UID,或最低限度为保存的 UID)执行一些初始操作。这类程序(例如 sudo(8))代码行数众多,且包含可能具有安全隐患的功能(如可加载的安全模块)。因此,这些程序的攻击面较大,且难以确保其完全正确。此外,在大多数情况下,它们提供的额外功能并非必要。
更广泛地说,mac_do(4) 内核模块的威胁模型主要关注被用户态程序(无论是凭据更改程序还是凭据提供程序)破坏的可能性。这种情况下,内核的凭据更改 API 的调用必须在内核内受到监控,且不需调用用户态程序。实际上,mac_do(4) 需由管理员预先配置,以指明哪些凭据转换是有效的(通过 sysctl(8) 的参数 security.mac.do.rules
实现)。
目前,只有配套的用户态程序 mdo(1) 被授权通过 mac_do(4) 执行凭据转换(基于可执行文件路径)。这个小程序仅通过调用 setuid(2)(以及可选的 initgroups(3)、setgroups(2) 和 setgid(2))来设置新凭据。
当前 mac_do(4) 的规则仅允许指定简单的 UID 转换,而不能考虑组的变更。因此,内核模块无法检查 setgroups(2) 和 setgid(2) 系统调用参数的内容,完全依赖 mdo(1) 传递正确的信息。
新版本的 mac_do(4) 已开发了一个月。除了修复并发、每个 jail 的设置和 MAC 策略组合问题外,它还引入了对规则的重新定义,从而更精细地控制允许哪些组在凭据中出现。新功能允许内核模块一次性应用凭据更改,因为允许的最终凭据取决于配置的规则。传统用户态接口(例如 setuid(2)、setgroups(2) 等)需要多次调用才能达到所需的凭据状态,因此我们引入了新的系统调用 setcred(2),可以一次性请求任意凭据转换,简化了用户态的凭据更改编码。
前置变更正在审核中(特别是修订 D46886 到 D46889 和 D46896 到 D46923)。mac_do(4)/mdo(1) 的主要更改也将很快推送以供审核。完整的旧版本可以在 GitHub 上查看。
赞助商:FreeBSD 基金会
联系人:Olivier Certner <olce.freebsd.statusreports@certner.fr>
256 队列运行队列子项目旨在修复 FreeBSD 的 POSIX 合规性,以确保在 SCHED_FIFO
/SCHED_RR
调度类中,不同的优先级会导致具有更高优先级的线程立即抢占。此项目是调度优先级重构项目的一部分,目标是规范 FreeBSD 的调度接口,增加 POSIX 合规性,修复现有的错误,并增强非标准部分,以实现更好的控制和安全性。预计的好处包括在实时音视频处理等领域提升 FreeBSD 的使用率。
目前,通过 rtprio
结构体的 prio
字段指定的优先级(rtprio(2)
接口)或 sched_param
结构体的 sched_priority
字段,会导致在内部将具有相同优先级类别的线程视为相同级别,未能达到 POSIX 对 SCHED_FIFO
和 SCHED_RR
的预期效果。
为了解决此问题,我们选择了一个影响较大的内部更改,增加每个运行队列的队列数量,详细信息请参考 EuroBSDCon 2024 的 PPT。
所有修改均在审核中,项目已注意到 nice
值的效果较弱,并因此生成了实验性补丁以增强其效果。此外,我们还启动了另一个调度器项目,旨在使 ULE 适应混合架构,这可能会触发更多调度器更改。
赞助商:FreeBSD 基金会
链接:分类无线问题报告
联系人:Bjoern A. Zeeb(bz@FreeBSD.org)
联系人:FreeBSD 无线邮件列表(wireless@FreeBSD.org)
当前的无线更新工作旨在增加对新芯片组和最新标准的支持。
目前已支持 iwlwifi(4) 和 rtw88(4),我们还收到了 rtw89 和 ath10k 的补丁和初步工作报告。此外,ath11k、ath12k 以及由 mt76 支持的各种芯片组仍待有人投入时间完成兼容代码、测试和调试工作。
工作正在进行中,计划将驱动程序更新至 Linux v6.11,以便未来更好地维护,特别是减少无线兼容代码版本之间的不兼容,以便根据需要支持多个 Linux 版本。
自原生 kern_malloc
更改提交后,LinuxKPI 正在进行持续的内存分配改进,以更好地符合 Linux 规范,这有助于解决 DMA 问题。同时,还在添加缺失的 bus_dmamap_sync()
调用。
我们正在测试对 rtw88(4) SDIO 设备的支持(在 r2s-plus 上测试中),并着手稳定 USB 支持更新,待驱动更新完成后会开始发布。最后,还有更多更新排队等待完成 LinuxKPI 802.11 兼容代码的 11n 支持,同时改进原生的 net80211 代码。
如有问题或反馈,请使用 freebsd-wireless 邮件列表。这样所有人都能看到讨论并参与,同时答案也将被公开存档。
赞助:FreeBSD 基金会
链接:源代码
联系人:Danilo Egea Gondolfo(danilo@FreeBSD.org)
VirtIO 套接字设备用于在不依赖网络的情况下实现主机与虚拟机之间的通信。AF_VSOCK 协议族使得可以通过套接字 API 使用 VirtIO 套接字设备。
过去几个月来,我一直在为 VirtIO 套接字设备开发一款虚拟机端的驱动程序,并实现了 AF_VSOCK 协议族。最初的目的是让 lxd-agent 守护进程能在 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 套接字设备及主机端驱动。
我会在空闲时间继续慢慢推进这个项目,希望下次能带来更多的进展。目前离代码审查尚有大量工作要完成。
更新特定平台的功能,并为新硬件平台带来支持。
联系人:Toby Kurien(toby@tobykurien.com)
在八月份开始了一个新项目,旨在使 FreeBSD 可用于 Pinephone Pro。
目前的 FreeBSD RELEASE 镜像已经可以在 Pinephone Pro 上启动,但屏幕输出和其他设备尚不支持。目标是逐步支持更多组件,使该设备有朝一日能作为一款高度移动的 FreeBSD 设备使用。
在过去的几周里,已经完成了基础工作,比如熟悉设备、交叉编译并启动 15.0-CURRENT 自定义内核,以及控制前面的红/绿/蓝 LED 灯。此外,LCD 背光已经可以开启,虽然由于缺乏电源管理支持,USB-C 集线器仍无法正常工作,但已启用。
下一步是为 RK818 电源管理芯片编写驱动程序。没有这个驱动,许多硬件将无法启动,比如上面的 USB-C 端口。通过尝试修改现有的 RK808 驱动来实现 RK818 支持,这将使更多设备可以访问,例如启用屏幕、USB 外设和 WiFi。
欢迎提供反馈和测试。
赞助:Honeyguide Group
链接:
联系人:Getz Mikalsen(getz@FreeBSD.org)
将增强的 SIMD libc 字符串函数从 amd64 移植到 aarch64 的工作已经成功完成。目前,除了 ARM 优化的子程序库中已有的实现外,还有 16 个 libc 字符串函数的优化实现。此外,还可以通过 YouTube 查看在 EuroBSDCon 2024 上的相关演讲,演讲中简要描述了如何针对 aarch64 架构进行移植。
这些增强显著提高了所有 FreeBSD 系统在 aarch64 平台上的字符串函数性能。
代码目前正在进行验收测试,通过 exp-run 构建所有 Port,一次不应用补丁集,另一次应用补丁集,以查看是否引起了新的故障。
赞助:谷歌公司(2024 谷歌编程之夏)
更新特定于云的功能,并为新云平台引入支持。
链接:
Microsoft Azure 文章(FreeBSD Wiki)
Microsoft HyperV 文章(FreeBSD Wiki)
联系人:Microsoft FreeBSD 集成服务团队(bsdic@microsoft.com)
联系人:FreeBSD Azure 发布工程团队(releng-azure@FreeBSD.org)
联系人:Wei Hu(whu@FreeBSD.org)
联系人:Souradeep Chakrabarti(schakrabarti@microsoft.com)
联系人:Colin Su(yuas@microsoft.com)
联系人:Li-Wen Hsu(lwhsu@FreeBSD.org)
在本季度,我们已经在 Azure Marketplace 发布了 13.4-RELEASE。
来自微软的 Souradeep Chakrabarti 添加了一项功能,用于在 Hyper-V 和 Azure 上使用超调用进行 TLB Shootdown。微基准测试显示,TLB Shootdown 的性能提升了 30-40%。该功能已在 DevSummit 202409 上展示。
Wei Hu 发现了一个问题,即在最新的 Azure v6 虚拟机 SKU 启动 FreeBSD 时,缺少 CDROM 设备。V6 类型的虚拟机仅为来宾操作系统提供 NVMe 磁盘。他还继续为 FreeBSD MANA NIC 设备修复 BUG。
进行中的工作任务:
自动化镜像发布过程并合并到 src/release/。(Li-Wen Hsu)
Colin Su 正在测试在 Azure Pipelines 中添加 FreeBSD 支持。
构建并发布快照构建到 Azure 社区画廊。
待解决的任务:
更新 Microsoft Learn 上与 FreeBSD 相关的文档
将 sysutils/azure-agent 更新至最新版本
赞助:微软(为微软内部人员提供支持,其他资源由微软提供)
赞助:FreeBSD 基金会(提供其他所有支持)
联系人:Colin Percival(cperciva@FreeBSD.org)
FreeBSD 可在 amd64(Intel 和 AMD)和 arm64(Graviton)EC2 实例上使用。
在过去的季度中,已添加一种新的“小型”版本的 EC2 AMI,不包含调试符号、测试、32 位兼容库/LLVM 调试器,也没有预装 Amazon SSM Agent/AWS CLI(在首次启动时默认未安装)。
现在,每周都会使用发布工程团队构建的快照 AMI 进行构建性能测试。这些测试揭示了几个性能回归问题,现已修复;特别是,修复了启动加载程序中 EFI RNG 的问题,显著提升了 Graviton 实例的速度。
赞助:亚马逊
赞助:https://www.patreon.com/cperciva
链接:
联系人:Chih-Hsin Chang(starbops@hey.com)
联系人:Li-Wen Hsu(lwhsu@FreeBSD.org)
OpenStack 在 FreeBSD 上的项目旨在将 OpenStack 云基础设施带到 FreeBSD 操作系统,通过利用 FreeBSD 的特殊功能,同时保持与 OpenStack 的兼容性。
在 2024 年第三季度,我们继续致力于多个重要任务。我们在移植 OpenStack Ironic 的工作仍在进行中,当前测试已在 arm64 服务器上运行。在该配置下,服务节点为 amd64,配置节点为 arm64。这帮助我们探索在 FreeBSD 上运行混合环境的更多选项。
在 8 月,我们在 COSCUP 2024 上做了一次演讲,分享了项目的进展和我们的经验。这为我们赢得了社区更多的关注和兴趣。
我们还将一些 OpenStack 组件,如 Keystone、Glance 和 Placement,从 FreeBSD 14.0-STABLE 更新到 FreeBSD 15.0-CURRENT。这个更新帮助我们跟进 FreeBSD 的最新变化,提升了项目的运行效果。
另一个值得注意的事项是测试了 bhyve 串口控制台通过 TCP 的补丁,并在 OpenStack 工作流中使用它。这使我们更接近于停止使用自定义的 socat-manager 解决方案,并转向内置的串口控制台解决方案。
尽管我们仍计划将 OpenStack 的手动安装过程转为 FreeBSD 的 Port,但这一方面的进展不大。我们希望在接下来的几个月里继续推动这项工作。现有工作可以在 openstack 仓库中找到。
赞助:FreeBSD 基金会
在文档树、手册页或新外部书籍/文档中的值得注意的变化。
链接:FreeBSD 文档项目
链接:文档工程团队
联系人:FreeBSD Doceng 团队(doceng@FreeBSD.org)
doceng@ 团队负责处理一些与 FreeBSD 文档项目相关的元项目问题;更多信息,请参见 FreeBSD Doceng 团队章程。
Benedict Reuschling 从 doceng@ 团队辞职。doceng@ 感谢 bcr@ 的贡献。
《手册》:文档中增加了自动创建 XDG 目录的内容,从 FreeBSD 14.1 开始,修复了 VNET 配置示例脚本。
《架构手册》:在 MAC 章节中移除了 K&R 原型。
网站:对顶部横幅和布局进行了一些改进,视觉上重新排列了按钮等。
文档仓库:修复了所有格式不正确的表格警告,移除了已废弃的属性,以符合新版本的 gohugo。
链接:在 Weblate 上翻译 FreeBSD 链接:FreeBSD Weblate 实例
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@ 团队在维护的包中完成了以下工作:
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 首页 链接:https://wiki.freebsd.org/FrontPage
联系方式:Mark Linimon <linimon@freebsd.org>
联系方式:Wiki 管理员 <wiki-admin@freebsd.org>
FreeBSD Wiki 是一个信息库,其中包含不适合放入官方项目文档的内容,因为这些信息过于具体、过于分散或过于临时。
Mark Linimon 已开始清理各种过时的页面。重点是针对我们展示给新用户的页面。(近期的基金会新闻通讯中直接提到了其中的一些页面。)不幸的是,许多页面已经过时,甚至到了不再是推荐内容的程度。
目前已做出最大改动的页面包括:
IdeasPage(在基金会文档中提到)
JuniorJobs(在基金会文档中提到)
各种 CategoryProject 下的页面
各种 CategoryTodo 下的页面
除了移除显然过时的条目外,所有条目现在都已加上了添加时间戳。wiki-admin@ 希望我们能将这一做法延续下去。
此外,wiki-admin@ 还向提交者/贡献者发送了电子邮件,询问是否应保留上述页面中的某些条目。这个任务将继续进行,直到页面得到清理。
(注:在 2024 年 FreeBSD 基金会社区调查报告中,许多回应者提到 wiki 中的内容过时。)
我们仍计划让 Discord 上的受众更好地了解 Wiki(因为我们 FreeBSD 社区中存在过多“孤岛”)。但是,团队由于时间不够,尚未开展这项工作。然而,你可以通过 FreeBSD Discord 联系 Setesh 获取更多信息。
之前,我们正在进行更新 Wiki 软件的初步工作。由于 MoinMoin 开发似乎停滞不前,导致我们有不必要的 python2 依赖,曾考虑切换实现方式。然而,MoinMoin 现在声称它们即将发布 2.0 版本。我们尚未尝试安装其最新的测试版以测试兼容性,欢迎测试者加入。
链接:
FAQ 链接:https://docs.freebsd.org/ru/books/faq/
手册 链接:https://docs.freebsd.org/ru/books/handbook/
Web 链接:https://www.freebsd.org/ru/
联系方式:Andrei Zakhvatov <andrey.zakhvatov@gmail.com>
FreeBSD 俄语文档项目的当前目标是提供最新的俄语翻译,涵盖 FreeBSD 文档中最重要的部分(FAQ、手册、网站)。为俄语用户提供高质量的官方技术材料,帮助全球范围内的操作系统接受度提高是非常重要的。我们希望这一活动能获得俄语 FreeBSD 社区的支持,推动更多材料的翻译工作。
文档翻译有了一些进展:
FAQ: PR #277008 和 PR #282062
手册:第 1 章 介绍:PR #276334
手册:第 2 章 安装 FreeBSD:PR #280610
手册:第 3 章 FreeBSD 基础:PR #282059
如果你愿意帮助翻译,可以查看官方翻译指南。我们总是非常感谢你为以下材料提供翻译支持:
手册章节和部分
文章
网站页面
影响 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 版本:
lang/gcc11 已更新至 11.5.0,这是 GCC 11 计划发布的最后一个版本;
lang/gcc12 已更新至 12.4.0;
lang/gcc13 已更新至 13.3.0;
lang/gcc14 已更新至 14.2.0。
更新 GCC 默认版本从 13 升级至 14 的 exp-run 已经开始。感谢所有参与者。
如果你维护任何受影响的 Port 或希望在准备和测试补丁方面提供帮助,请考虑尝试在受影响的 Port 中添加 -fpermissive
到 CFLAGS
:GCC 14 将一些警告转变为错误,导致许多构建失败。-fpermissive
参数可这些错误转换回警告。
链接:
Freepascal 项目 链接:https://www.freepascal.org/
Lazarus IDE 链接:https://www.lazarus-ide.org/
联系方式:José Alonso Cárdenas Márquez <acm@FreeBSD.org>
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 <mikael@FreeBSD.org> 开始将 Free Pascal 编译器移植到 FreeBSD aarch64,并且已经将其合并到 Free Pascal 的 main 代码分支中。几个月前,我添加了 lang/fpc-devel(3.3.1)和 editors/lazarus-devel(3.99)到 ports 树,仅适用于 i386 和 amd64,因为 aarch64 尚未准备好。aarch64 上生成的二进制文件无法运行,因为存在 ELF 问题。最终,几天前这些问题得以解决,对 FreeBSD aarch64 的支持完成。
lang/fpc-devel 和 editors/lazarus-devel 已更新至 3.3.1.20240913 和 3.99.20240913,分别支持 aarch64。这为 FreeBSD 用户带来了一个新语言和平台,支持在 FreeBSD aarch64 上进行控制台、图形/任何类型的应用程序开发。
待办事项:
更新 fpc/lazarus 相关的 Port(如 sysutils/bhyvemgr 和 archivers/peazip),以支持 FreeBSD/aarch64;
推动 FreeBSD 对 RISC-V 的支持。
许多项目基于 FreeBSD 或将 FreeBSD 组件集成到他们的项目中。由于这些项目可能对更广泛的 FreeBSD 社区有兴趣,我们有时会在季度报告中包括这些项目提交的简短更新。FreeBSD 项目对于这些提交中的任何声明的准确性或真实性不做任何表态。
链接:
Pot 组织在 GitHub 上 链接: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(以及未来可能还包括 Podman)在容器领域的类似作用,就像 Dockerhub 对 Linux 和 Docker 的作用一样:一个容器描述和完整容器镜像的存储库,可用于 Pot 并且在许多情况下也能与 Nomad 一起使用。
在本季度,Pot 进行了两个 bug 修复,预计很快会发布。
Potluck 镜像再次进行了更新。所有镜像已重新构建,以包含最新的修复和季度软件包。此外,像 Loki 或 Vault 这样的某些镜像还进行了额外的更新和 bug 修复。
此外,我们还对 Potluck 未来可能支持 OCI、Buildah 和 Podman 镜像进行了研究。已发布了两篇博客文章,一篇描述了 基本的 Buildah 和 Podman 设置,另一篇描述了 如何使用 Nomad 和 Consul 协调 Podman 容器。
如往常一样,欢迎反馈和补丁。
赞助商:Nikulipe UAB,Honeyguide Group
最后修改时间:Lorenzo Salvadore 于 2024 年 11 月 6 日
译者:ChatGPT & ykla
这是 2023 年第三季度的状态报告,共包含 32 个条目。
这一季度是夏季,因此包含了许多有趣的来自谷歌编程之夏的新闻。当然,我们也有我们通常的团队报告,许多项目与我们分享了它们的最新动态。为 FreeBSD 14 的第一次发布做了许多重要的工作。
祝你阅读愉快。
Lorenzo Salvadore,代表状态团队。
目录
来自各个官方和半官方团队的条目,详见管理页面。
联系方式:FreeBSD 核心团队 <core@FreeBSD.org>
FreeBSD 核心团队是 FreeBSD 的治理机构。
FreeBSD 核心团队感谢 Hans Petter Selasky 多年来的贡献。我们对他的离世感到悲痛,并与社区共同悼念。
悼念文章。
核心团队继续与 FreeBSD 基金会会晤,讨论 FreeBSD 的管理、开发和未来的下一步。核心团队与基金会董事会及其员工进行了两次会议。他们讨论了基金会如何帮助核心团队和整个项目。
核心团队与 Ports 管理团队讨论了引入一个开发者在团队中的时间限制的提案。该提案得到了 Ports 管理团队的批准,并将于 2024 年初生效,届时将定期进行潜在成员计划,以确保 Ports 管理团队有持续的新成员流动。
正在进行工作,将对 FreeBSD 15 中 32 位平台的支持标记为“弃用”。
Matrix 实例和 Element-web 客户端的测试仍在进行中。计划在九月的 EuroBSDCon 之后发布 Beta 版本。
核心团队将说明如果开发者成为了提交者,如何进行 PGP 密钥更新。
核心团队成员在 EuroBSDcon 期间与 FreeBSD 基金会在科英布拉会面,讨论项目的方向。
链接: FreeBSD 基金会 URL: https://freebsdfoundation.org/
技术路线图 URL: https://freebsdfoundation.org/blog/technology-roadmap/
捐赠 URL: https://freebsdfoundation.org/donate/
基金会合作伙伴计划 URL: https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/
FreeBSD 期刊 URL: https://freebsdfoundation.org/journal/
基金会活动 URL: https://freebsdfoundation.org/our-work/events/
联系人:Deb Goodkin <deb@FreeBSDFoundation.org>
FreeBSD 基金会是一家 501(c)(3)非营利组织,致力于支持和推动全球 FreeBSD 项目和社区。个人和公司的捐赠资助和管理软件开发项目、会议和开发者峰会。我们还向 FreeBSD 贡献者提供差旅资助,购买和支持硬件以改善和维护 FreeBSD 基础设施,并提供资源以提高安全性、质量保证和集群管理工作。我们发布营销材料以推广、教育和宣传 FreeBSD,促进商业供应商与 FreeBSD 开发者之间的合作,并最终代表 FreeBSD 项目执行合同、许可协议和其他需要认可法律实体的安排。
在本季度,我们协助 FreeBSD 庆祝其 30 周年!这一激动人心的时刻推动我们加速努力,推动 FreeBSD 在增长和创新方面取得进展,这使我们集中精力确定可以投入资源的关键领域。在 9 月份的董事会会议上,我们优化了我们的目标,重点放在增加 FreeBSD 的采用和可见性、多元化我们的资金来源,以及投资于项目的社区健康和长期稳定性。我们正在确定目标受众和市场,同时为这些目标制定可衡量的结果。
在本状态报告中,你将更多地了解我们如何助力 FreeBSD 增长和进行创新工作。我们将重点介绍我们通过内部软件开发人员和外部项目资金支持所做的所有技术工作。你将了解我们在推动 FreeBSD 面向社区外受众的宣传工作。最后,你将看到我们为与现有和潜在商业用户建立联系所付出的巨大努力。
我们要向那些慷慨捐助以支持我们工作的人表示衷心的感谢。除了许多个人贡献之外,我们特别感谢 NetApp、Netflix 和 ARM 的重要捐赠。仅在第三季度,我们就收到了 183,842 美元的捐款,使我们今年的总额达到了 375,000 美元。今年我们的预算约为 2,230,000 美元,其中包括增加用于 FreeBSD 宣传和软件开发的支出。我们一半以上的预算用于直接改进 FreeBSD 并保持其安全。通过一个专注于合作伙伴关系的专门人员,我们可以有效强调投资我们努力的重要性,并强调 FreeBSD 对公司的长期可行性。你的支持对我们的使命至关重要,我们深感你对 FreeBSD 社区的支持。请考虑向我们 2023 年的筹款活动捐款!https://freebsdfoundation.org/donate/ 对于我们更大的商业捐赠者,请查看我们更新的FreeBSD 基金会合作伙伴计划。
在本季度,合作与研究取得了三个关键领域的进展:
首先,企业工作组开始蓬勃发展,参与人数增至 58 人,并在四个工作流中展开积极项目。这些领域分别是云原生、Samba、bhyve 可管理性以及对 AI 工作负载的支持。对其他几个领域也有兴趣,我预计到年底和明年第一季度,我们将在多个关注领域看到有意义的功能更新。
其次,我们在与其他开源社区成员和组织的合作方面取得了良好的进展,特别是与开源倡议合作,推动 FreeBSD 社区的提案和技术。与开源倡议的开放政策联盟合作,我们正在提交回应美国政府关于如何支持开源安全性和可持续性的信息请求。作为其中的一部分,Greg Wallace 参与了由开放政策联盟在最近在北卡罗来纳州罗利举行的 All Things Open 大会上组织的一个小组讨论。Greg Wallace 还一直在追踪美国政府如何将 CHERI 纳入其有关默认安全性的政策建议中,例如来自美国和全球政府安全机构的最新报告。在第 28 页,CHERI 被列为关键的“安全设计”策略之后,仅次于 Rust。
最后,我们继续加强与越来越多使用 FreeBSD 的公司的合作关系。多个会议有助于促进这些关系,包括 EuroBSDCon、开源峰会和 All Things Open。我们还制定了一个新的计划,支持与美国政府合作的供应商/云用户。该计划的详细信息将在 FreeBSD 供应商峰会上宣布。
我们的许多努力都致力于 FreeBSD 项目的宣传。这可能涉及突出显示有趣的 FreeBSD 工作、制作文学和视频教程、参加活动或进行演讲。我们制作文学的目标是教导人们 FreeBSD 的基础知识,并帮助他们更容易地采用或做出贡献。除了参加和在活动中发表演讲之外,我们鼓励并帮助社区成员组织自己的 FreeBSD 活动、进行演讲或设置 FreeBSD 展台。
FreeBSD 基金会赞助了许多全球各地的会议、活动和峰会。这些事件可以是与 BSD 相关的、开源的或面向少数群体的技术事件。我们支持以 FreeBSD 为重点的事件,以帮助提供一个分享知识、共同开发项目和促进开发人员与商业用户之间合作的场所。所有这些都有助于提供一个健康的生态系统。我们参与非 FreeBSD 活动,以推广和提高 FreeBSD 的知名度,增加 FreeBSD 在不同应用中的使用,并招募更多的项目贡献者。我们不断将新的事件添加到我们的年度日程中。今年七月,我们在俄勒冈州波特兰举办的 FOSSY,一场新的开源大会上举办了研讨会并设置了展台。除了参加和策划会议,我们还在不断推动新的培训计划,并更新我们的指南选择,以促进更多人尝试 FreeBSD。
查看一些我们的宣传工作:
于 2023 年 7 月 13 日至 16 日在俄勒冈州波特兰的FOSSY举办研讨会并设置展台。
于 2023 年 7 月 27 日至 29 日在台湾新北市举办的 COSCUP 的友好级赞助商
在 EuroBSDCon 2023(2023 年 9 月 14 日至 17 日,葡萄牙科英布拉)上发表演讲,并赞助并设置了展台
参加了Open Source Summit, Europe,于 2023 年 9 月 19 日至 21 日在西班牙毕尔巴鄂
继续筹划2023 年 11 月 FreeBSD 供应商峰会,于 2023 年 11 月 2 日至 3 日在加利福尼亚州圣何塞举行
继续管理我们的谷歌编程之夏项目
发布了七月简报
认识 FreeBSD 谷歌编程之夏学生
我们通过出版专业制作的 FreeBSD Journal 来向全世界宣传 FreeBSD。正如我们先前提到的,FreeBSD Journal 现在是一份免费出版物。了解更多并访问最新杂志,https://www.freebsdfoundation.org/journal/。你可以在https://freebsdfoundation.org/our-work/events/找到我们参加的事件和即将举行的事件的更多信息。
在 2023 年第三季度,有 282 个 src(源代码)、652 个 port 和 24 个 doc tree(文档)的提交由 FreeBSD 基金会赞助。一些由基金会赞助的工作在单独的报告条目中有所说明:
技术团队的成员参加了在葡萄牙科英布拉举办的 EuroBSDCon 2023。Li-Wen Hsu 提供了一项教程,帮助新手为 FreeBSD 做出贡献。在会议之前,FreeBSD 开发者峰会举行,团队在会上提供了一份关于他们最近工作的简短更新。
六个暑期实习/项目已经结束:
Jake Freeland在夏季期间致力于一个Capsicum 项目,用于跟踪违规行为,调整各种守护程序,如syslogd(8),并编写文档。
En-Wei Wu 完成了另一个无线实习,以改进和扩展 wtap,即 net80211(4) Wi-Fi 模拟器。
致力于一个文档和测试项目,例如构建在线手册编辑器并为某些用户空间工具添加测试用例。
Christos Margiolis 完成了他的项目,改进 kinst DTrace 提供者,通过实现内联函数追踪并将 kinst 移植到 arm64 和 riscv。
为了准备 FreeBSD 14.0,Muhammad Moinur(Moin)Rahman 提交了 700 多个修复或对最近的 OpenSSL 和 LLVM 更新受影响的 port 的解决方法。
有关当前和过去基金会合同工作的更多信息,请访问基金会项目页面。
以下是本季度完成的其他基金会赞助的工作的样本:
改进了 riscv64 CPU 的标识和功能检测
从头开始重写了intro(9)手册页面
为 FreeBSD 14.0 做准备,提交了各种有关freebsd-update(8)的修复
向 LinuxKPI、iwlwifi 和 net802.11 代码提交了许多(37 个)更新和修复
将 SSH 升级到 OpenSSH 9.3p2,然后升级到 9.4p1
修补了 ssh-keygen 以在没有参数的情况下生成 Ed25519 密钥
添加了 Linux membarrier(2)系统调用的清洁室实现
在 amd64 和 arm64 上将 MAXCPU 增加到 1024
为受影响的机器提交了自动 Zenbleed 失效/数据泄漏防护的修复(通过 chicken bit)
回顾了内核中整个调度优先级的使用情况,以改进 rtprio() 系统调用的进行中的工作,并在某些情况下使其更有用。
基金会提供硬件和两名员工来帮助支持 FreeBSD 集群。通过你的捐赠,基金会与集群管理团队协调,购买了五个新的软件构建器、三个新的 Web 服务器、一个新的防火墙/路由器、两个软件包镜像和两个用于持续集成的新服务器。除了一个软件包镜像外,所有新硬件都将位于美国东海岸。
基金会提供一名全职员工和资金,以改进 FreeBSD 项目的持续集成、自动化测试和总体质量保证工作。你可以在专门的报告条目中详细了解有关 CI 工作的信息。
基金会拥有 FreeBSD 商标,并且我们有责任保护这些商标。我们还为核心团队提供法律支持,以调查出现的问题。
请访问https://freebsdfoundation.org,了解有关我们如何支持 FreeBSD 以及我们如何帮助你的更多信息!
链接:
联系人:FreeBSD 发布工程团队,<re@FreeBSD.org>
FreeBSD 发布工程团队负责制定和发布 FreeBSD 官方项目的发布计划,宣布代码冻结以及维护相应分支等工作。
在今年的第三季度,FreeBSD 发布工程团队开始了即将到来的 14.0-RELEASE 循环的工作。截至本文撰写时,已发布 BETA3,将很快推出 BETA4。
发布工程团队继续为main和stable/13分支提供每周的开发快照构建。
赞助商:Tarsnap 赞助商:https://www.gofundme.com/f/gjbbsd/ 赞助商:FreeBSD 基金会
链接:
联系人:
Jenkins 管理员 <jenkins-admin@FreeBSD.org>
Li-Wen Hsu <lwhsu@FreeBSD.org>
IRC #freebsd-ci 频道,位于 EFNet 上
在 2023 年第三季度,我们与项目贡献者和开发人员合作,以满足其测试需求。与此同时,我们与外部项目和公司合作,通过在 FreeBSD 上进行更多测试来增强其产品。
重要已完成的任务:
为 stable/14 分支添加作业
更新“Tinderbox”视图的 CI 结果,现在包括测试结果和当前失败或不稳定系列的“起点”。
这主要由基金会实习生Yan-Hao Wang完成。他的其他贡献在本报告的其他条目中有所说明。
进行中的任务:
设计和实施预提交 CI 构建和测试以及基于拉取/合并请求的系统(以支持workflow 工作组)
概念验证系统正在进行中。
设计和实施使用 CI 集群构建发行工件,就像发行工程一样
简化为贡献者和开发人员设置 CI
测试环境
设置 CI 阶段环境并在其中放置实验性作业
改进硬件测试实验室并添加更多用于测试的硬件
打开或排队的任务:
收集和整理CI 任务和想法
为运行测试的 VM 客户端设置公共网络访问
实施使用裸机硬件运行测试套件
添加构建针对-CURRENT 的 drm port 的测试
计划运行 ztest 测试
与托管 CI 提供商合作,以更好地支持 FreeBSD
有关更多进行中的信息,请查看与 freebsd-testing@相关的票务,请随时加入我们的努力!
赞助商:FreeBSD 基金会
链接:
联系人:René Ladan <portmgr-secretary@FreeBSD.org>
联系人:FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>
Ports 管理团队负责监督 Ports 的整体方向、构建软件包以及人事事务。以下是上一季度发生的情况。
根据 INDEX 文件,Ports 目前包含 34,600 个 port 。目前有 3,000 个开放的 port 问题报告(PR),其中有 730 个未分配。上一季度主分支有 130 位贡献者进行了 11,454 次提交,2023Q3 分支有 37 位贡献者进行了 828 次提交。与上一季度相比,这意味着未分配 PR 数量略有减少,主分支提交次数增加了 10%,但季度分支的反向移植较少。 port 的数量也略有增长。
在 Q3 期间,我们欢迎 Joel Bodenmann(jbo@)作为新的 port 贡献者,向 mizhka@授予了 port 提交权限,他已经是 src 贡献者,并在一年的沉寂后将 knu@ 和 uqs@ 的提交权限进行了保留。
在 Q3 期间,Ports 管理团队讨论和处理了以下事项:
在子包和闪电演讲中取得了一些进展,由 pizzamig@ 在 EuroBSDCon 上进行了演讲
对 Ports 树的一些部分进行了全面改进(LIB_DEPENDS、PREFIX、MANPREFIX、MANPATH)
对 FreeBSD 13.1 的支持已从 Ports 中删除,因为它在 8 月 1 日已经达到了寿命终点。
在基础设施方面发生了以下事情:
添加了对 ebur128 和 guile 的 USES
将 Mono、Perl 和 PostgreSQL 的默认版本分别更新为 5.20、5.34 和 15
对 ebur128、guile 和 pycryptography 的默认版本进行了添加,分别为"rust"、2.2 和"rust"
发生的主要 port 更新有:
将 pkg 更新到 1.20.7
将 Chromium 更新到 117.0.5938.132
将 Firefox 更新到 118.0.1
将 KDE 更新到 5.27.8
将 Rust 更新到 1.72.0
将 Wine 更新到 8.0.2
在上一季度,pgkmgr@ 进行了 18 次实验性运行,测试了各种 port 升级、 port 默认版本更新和 pycryptography 更改。
跨足多个类别的项目,涵盖了从内核和用户空间到 Ports 或外部项目的各个方面。
链接:
联系人:Jason Bacon <jwb@FreeBSD.org>
sysutils/desktop-installer port 已经存在了十多年,可以快速配置裸露的 FreeBSD 系统,使用任何桌面环境或窗口管理器。然而,FreeBSD 基础和 Ports 缺少一些终端用户在桌面操作系统中期望的常见功能。
桌面安装程序的电池监视脚本已经增强,以在各个充电/放电水平显示弹出通知。
deskutils/qmediamanager,与sysutils/devd-mount和sysutils/npmount一起,可以在从 devd 接收到通知时挂载插入的媒体,并显示一个弹出窗口,为用户提供显示文件系统信息、打开文件管理器、重新格式化、将磁盘镜像复制到设备或卸载的选项。它提供了一种便捷且安全的方式来处理外部媒体,如 USB 存储设备。
第四个新 port - deskutils/freebsd-update-notify - 在新的基本更新可用时或经过可配置的时间限制后显示一个弹出窗口通知。如果用户选择继续进行更新,则使用auto-update-system(1)(sysutils/auto-admin的特性)更新整个系统(软件包、 port 和基本系统)。
这些新工具使 FreeBSD 桌面体验更接近于最受欢迎的桌面操作系统的便利性。
这些工具实际上是个原型,稳定可靠,但需要审查。用户对默认行为和配置选项的反馈将不胜感激。
链接:
联系人:Sheng-Yi Hong <aokblast@FreeBSD.org>
在上一季度报告中说明的 LLDB 内核模块改进项目实现了 FreeBSD 内核在 LLDB 上的 DynamicLoader 插件。
所有工作都已完成,即该插件可以正确加载从内核核心转储中提取的所有内核模块及其调试文件。
该插件已在 x86-64 和 arm64(EC2)上进行了测试,用于可重定位类型内核模块和共享库类型内核模块。这两个平台都表明该插件运行良好。
目前,该插件准备合并到 LLVM 代码库中的LLVM PullRequest中。
赞助方:2023 谷歌编程之夏
影响基础系统及其中程序的变更。
链接:
联系人:Pierre Pronchery <pierre@freebsdfoundation.org>
这是对将 OpenSSL 3 整合到基础系统的上一个季度报告的后续。
自上一报告以来最明显的更新无疑是 3.0.10 和 3.0.11 版本,修复了低到中等严重性的 CVE 问题(CVE-2023-2975、CVE-2023-3446、CVE-2023-3817、CVE-2023-4807)。
然而,这些并不是唯一的更改,本季度解决了一些与整合相关的特定问题,其中大多数是在使用在基础系统中使用 OpenSSL 3 构建 port 时发现的。
修复包括:
使用 libcrypto.so 共享对象正确链接引擎和遗留提供程序,以便符号能正确可见。为此,在构建系统中需要一个小技巧。
更正 FIPS 提供程序的源文件列表。
确保priority
和umask
功能可以继承登录进程的属性。这在从具有非默认优先级的进程暂时以其他用户身份登录时很有用,以确保由该用户启动的进程仍具有相同的优先级级别。
链接:
联系人:Olivier Certner <olce.freebsd.statusreports@certner.fr>
登录类是一种主要用于在登录时设置各种进程属性和属性的机制,取决于登录的用户以及他所属的登录类。登录类通常指定资源限制、环境变量和进程属性,如调度优先级和 umask。有关更多信息,请参见login.conf(5)。
priority
和umask
功能现在接受inherit
特殊值,明确要求从登录进程继承属性。例如,在从具有非默认优先级的进程暂时以其他用户身份登录时,可以确保由该用户启动的进程仍具有相同的优先级级别。
用户现在可以在其本地配置文件( ~/.login_conf )中覆盖priority
功能的全局设置(在 /etc/login.conf 中)。但请注意,如果用户无特权,则不能增加其优先级,并且在这种上下文中使用inherit
毫无意义,因为始终首先应用全局设置。
修复:
修复了一个错误,当priority
功能指定实时优先级时,使用的最终优先级存在偏差(实时类别中的数值最高优先级(31)永远无法设置)。
安全性:防止 setuid/setgid 进程应用来自某个用户的 ~/.login_conf 的指令(由于权限不足而无法应用的该目
录中的指令可能会突然变得可应用于这样的进程)。
我们还更新了相关的手册页面以反映新功能,并改进了login.conf(5)中priority
和umask
功能的说明。
由于Konstantin Belousov和Warner Losh的协助,该系列中的某些补丁已经得到了审查。其他补丁正在等待审查(欢迎志愿者进行审查!),这不太可能费时费力。
我们计划通过在未明确指定priority
功能的情况下将其重置为 0 的操作,来提高一致性,这在 15 多年的umask
情况下一直如此。
赞助方:Kumacom SAS(进行开发工作) 赞助方:The FreeBSD Foundation(进行一些审查)
有关内核子系统/功能、驱动程序支持、文件系统等的更新。
联系人:Marshall Kirk McKusick <mckusick@FreeBSD.org>
该项目在使用日志软更新时为 UFS/FFS 文件系统提供了快照功能。该项目的详细信息在2022 年第四季度报告中有说明。
该项目有两个关键阶段:
该项目的第一个阶段是使在使用日志软更新时能够创建快照,并在活动文件系统上使用它们执行后台转储。通过使用 -L 参数请求后台转储,使用 dump(8)。该阶段于 2022 年第四季度完成,并在 13.2 版本中提供,详见2023 年第一季度报告。
该项目的第二个阶段是在运行日志软更新的文件系统上使用快照进行后台检查。该阶段于 2023 年第三季度完成,及时包含在 14.0 版本中,并在 13.2-STABLE 版本中提供。
赞助方:The FreeBSD Foundation
链接:
联系人:Raghav Sharma <raghav@FreeBSD.org>
本季度,我们完成了内核的 SquashFS 驱动程序工作。我们现在可以在 FreeBSD 13.2-RELEASE 或更高版本上挂载 SquashFS 文件,并执行所有基本的只读文件系统操作。
工作代码包括:
为目录读取支持实现 vop_lookup()和 vop_readdir()钩子。
为文件读取支持实现 vop_read()和 vop_strategy()钩子。
为符号链接读取支持实现 vop_readlink()钩子。
我们还为 SquashFS 实现了扩展属性接口函数。现在只剩下实现它们的内核接口钩子。
此外,还进行了许多错误修复。一个主要问题是找出为什么我们无法列出根目录的第一个条目,原来 SquashFS 可能具有inode_number
为零,而内核由于某种原因在列出 dirents 时跳过了零。目前,我们通过传递虚构的inode_number
(而不是零)给 dirent 来解决了这个问题。
代码审查目前正在进行中,由我的导师 Chuck Tuffli 负责。
我很高兴地说,SquashFS 将在即将发布的 FreeBSD 版本中找到其位置。
赞助方: 2023 谷歌编程之夏
链接:
开始审查栈 URL: https://reviews.freebsd.org/D40626
联系人:Olivier Certner <olce.freebsd.statusreports@certner.fr>
FreeBSD 实现了三种内置的安全策略,限制了特定用户可以看到哪些进程,旨在防止信息泄漏和不必要的交互。
第一种可以防止非特权用户看到或与其实际 UID 不同的进程进行交互。可以通过将 sysctl security.bsd.see_other_uids
设置为 0(默认值为 1)来激活。
第二种可以防止非特权用户看到或与其凭据中没有用户是其成员的进程进行交互。可以通过将 sysctl security.bsd.see_other_gids
设置为 0(默认值为 1)来激活。
第三种可以防止非特权用户的进程看到或与处于严格子 Jail中的进程进行交互。 Jail子系统已经阻止这样的进程看到不是其后代的 Jail中的进程(参见 jail(8),特别是“分层 Jail”一节)。此策略的一个可能的用途是与上面的第一种策略结合使用,以隐藏在具有与祖先 Jail中的某个用户相同的实际 UID 的子 Jail中的进程,因为在这些不同的 Jail中具有相同 UID 的用户在逻辑上被视为不同的用户。可以通过将 sysctl security.bsd.see_jail_proc
设置为 0(默认值为 1)来激活。
在审查这些策略的代码并进行实际测试之后,我们注意到了一些问题和限制,这促使我们对此进行了工作。
由 security.bsd.see_jail_proc
sysctl 控制的策略已经接收了以下修复和改进:
强化 security.bsd.see_jail_proc
策略,防止未经授权的用户试图在随机情况下杀死、更改优先级或调试具有相同(真实)UID 的子 Jail中的进程,即使这些进程对它们不可见,只要猜测的进程 PID 正确,就会成功。
使该策略可以被 MAC 策略覆盖,就像其他策略一样。
由 security.bsd.see_other_gids
控制的策略已经修复,以考虑进程的真实组而不是其有效组,以确定试图访问进程的用户是否是进程所属组的成员。其原因是一些用户应该继续看到它们启动的进程,即使它们通过 setgid 位获得进一步的权限。反之,他们不应该看到由特权用户启动的临时进入用户的主组的进程。这种新行为与 security.bsd.see_other_uids
对用户 ID 始终执行的行为一致(即考虑某个进程的真实用户 ID 而不是有效 ID)。
我们已更新与这些安全策略相关的手册页,包括 security(7)、sysctl(8) 和 ptrace(2)。还翻新了一些实施或利用这些策略的内部函数的手册页。
在 Mitchell Horne、Pau Amma、Benedict Reuschling 和 Ed Maste 的帮助下,大多数提交的更改已经被审查并获得批准,因此它们应该很快就会到达代码树。补丁系列始于 审查 D40626。从那里,点击“Stack”选项卡以查看实施更改的所有审查列表。
作为后续步骤,我们正在考虑默认启用 security.bsd.see_jail_proc
策略(即 sysctl 的默认值将变为 0),除非有异议。
赞助方:Kumacom SAS(开发工作) 赞助方:The FreeBSD Foundation(大部分审查)
链接:
Linuxulator 状态维基页面 URL: https://wiki.freebsd.org/Linuxulator
Linux 应用程序状态维基页面 URL: https://wiki.freebsd.org/LinuxApps
联系人:Dmitry Chagin <dchagin@FreeBSD.org>
该项目的目标是提高 FreeBSD 执行未经修改的 linux(4) 二进制文件的能力。
截至 22dca7acf775,已经实现了 xattr 系统调用。这使得可以使用 Linux rsync。
截至 bbe017e0415a,已经实现了 ioprio 系统调用。这使得可以使用 debootstrap 安装 Ubuntu 23.04。
更新特定于平台的功能并为新的硬件平台提供支持。
链接: FreeBSD 源代码中的 DPAA2 URL: https://cgit.freebsd.org/src/tree/sys/dev/dpaa2
GitHub 上的 DPAA2 URL: https://github.com/mcusim/freebsd-src
联系人:Dmitry Salychev <dsl@FreeBSD.org>
联系人:Bjoern A. Zeeb <bz@FreeBSD.org>
DPAA2 是一种硬件级网络架构,存在于一些 NXP SoC 中,其中包含硬件块,包括管理复杂(MC,用于操纵 DPAA2 对象的命令接口)、线速 I/O 处理器(WRIOP,分发数据包、排队、丢弃决策)、队列和缓冲区管理器(QBMan,Rx/Tx 队列控制、Rx 缓冲区池)等。管理复杂运行 NXP 提供的固件,该固件提供 DPAA2 对象作为对这些块的底层硬件进行简化访问的抽象层,以简化对底层硬件的访问。
改进了 DPAA2 通道之间的隔离性。
修复了在大量网络负载下的恐慌。
FDT/ACPI MDIO 支持。
NFS 根挂载不再在通过 DPAA2 进行的 netboot 上挂起。
已开始与 MC 通过它们自己的命令门户(DPMCP)通信的驱动程序。
已经开始在 dev/sff 上进行工作,以支持 SFF/SFP 模块,以便在超过 1 Gbit/s 的链路上测试 DPAA2 驱动程序。
进行大量网络负载测试(2.5 Gbit/s、10 Gbit/s)和消除瓶颈。
支持基于缓存的内存软件门户。
驱动程序资源的释放以正确卸载 dpaa2.ko。
进一步支持硬件支持的其他部分(DPSW、DCE 等)。
赞助方:Traverse Technologies(提供 Ten64 硬件进行测试)
链接: 项目提案 URL: http://fuz.su/~fuz/freebsd/2023-04-05_libc-proposal.txt simd(7) URL: https://man.freebsd.org/cgi/man.cgi?query=simd&sektion=7&manpath=FreeBSD+15.0-CURRENT
联系人:Robert Clausecker <fuz@FreeBSD.org>
SIMD 指令集扩展,如 SSE、AVX 和 NEON,在现代计算机上普遍存在,并为许多应用程序提供性能优势。该项目的目标是提供常见 libc 函数的 SIMD 增强版本(主要是 string(3) 中说明的函数),加速大多数 C 程序的执行。
对于每个经过优化的函数,将提供最多四个实现:
一个仅对 amd64 进行了优化但没有使用任何 SIMD 的 标量 实现,
一个使用 SSE 和 SSE2 的 基准 实现,或者使用所有 SSE 扩展直到 SSE4.2 的 x86-64-v2 实现,
一个使用 AVX 和 AVX2 的 x86-64-v3 实现,以及
一个使用 AVX-512F/BW/CD/DQ 的 x86-64-v4 实现。
用户将能够通过设置 ARCHLEVEL
环境变量来选择使用哪个级别的 SIMD 增强。
尽管当前的项目仅涉及 amd64,但今后可能会将其扩展到其他架构,如 arm64。
在过去的几个月里,这个项目取得了显著的进展。对 bcmp(3)、index(3)、memchr(3)、memcmp(3)、stpcpy(3)、strchr(3)、strchrnul(3)、strcpy(3)、strcspn(3)、strlen(3)、strnlen(3) 和 strspn(3) 进行了 SIMD 增强的版本已经完成。memcpy(3)、memmove(3)、strcmp(3)、timingsafe_bcmp(3)(参见 D41673)和 timingsafe_memcmp(3)(参见 D41696)的函数正在进行中。不幸的是,这项工作没有包含在 FreeBSD 14.0 中,但计划包含在 FreeBSD 14.1 中。
赞助方:The FreeBSD Foundation
链接:
URL: https://wiki.freebsd.org/SummerOfCode2023Projects/IntegrateMfsBSDIntoTheReleaseBuildingTools
URL: https://reviews.freebsd.org/D41705
URL: https://freebsdfoundation.org/blog/meet-the-2023-freebsd-google-summer-of-code-students-soobin-rho/
联系人:Soobin Rho <soobinrho@FreeBSD.org>
"mfsBSD 是一个工具集,用于创建基于 FreeBSD 的小型但功能齐全的 mfsroot 发行版,将所有文件存储在内存中(MFS)[Memory File System] 并从硬盘驱动器、USB 存储设备或光学介质加载。它可用于各种用途,包括无磁盘系统、恢复分区以及远程覆盖其他操作系统。"
Martin Matuška 是 mfsBSD 的创作者。他还是原始(2009 年)mfsBSD 白皮书的作者,以上摘录自该白皮书。上游的 mfsBSD 在 GitHub 上的仓库 中维护。
该项目将 mfsBSD 集成到 FreeBSD 发布工具集中,通过在 /usr/src/release/Makefile 中创建 mfsBSD 镜像( .img 和 .iso 文件)的附加目标。在集成之前,mfsBSD 仅存在于 FreeBSD 发布工具链之外,并且仅会生成 -RELEASE 版本。
有了这个项目,mfsBSD 镜像将会出现在官方 FreeBSD 发布页面。你还可以通过调用 cd /usr/src/release && make release WITH_MFSBSD=1
来构建 mfsBSD,然后会在 /usr/obj/usr/src/${ARCH}/release/ 中创建 mfsbsd-se.img 和 mfsbsd-se.iso。
代码已经准备就绪,目前正在进行审查。如果你想参与审查流程,请随时加入!这是 我的修订。
赞助方:Google, Inc. (GSoC 2023)
更新云特定功能并为新的云平台提供支持。
链接: OpenStack URL: https://www.openstack.org/
FreeBSD 上的 OpenStack URL: https://github.com/openstack-on-freebsd
联系人:Chih-Hsin Chang <starbops@hey.com>
联系人:Li-Wen Hsu <lwhsu@FreeBSD.org>
OpenStack 是一款开源的云操作系统,对于在云平台上部署各种资源类型非常有价值。然而,将 OpenStack 的控制平面运行在 FreeBSD 主机上一直是一个挑战。我们项目的任务是使 FreeBSD 能够无缝地作为 OpenStack 主机运行。
在本季度,我们专注于整个概念验证(POC)的最后一部分,即 VM 控制台集成。目标是让用户通过 OpenStack 客户端获取串行控制台,以访问运行在基于 FreeBSD 的 OpenStack 集群上的 VM 实例。这也很重要,因为现在我们在 Neutron 中没有托管 DHCP 服务的 port 。用户需要手动配置正确的 IP 地址,以使 VM 实例具有网络连接。然而,bhyve(8) 并不会本地公开串行控制台,因此我们需要通过网络导出 nmdm(4) 设备。这是通过一个名为 socat-manager
的自定义代理完成的,是的,我们利用 socat(1) 在由 OpenStack nova-compute
分配的特定 port 上监听,以集成到其工作流程中。借助另一个关键部分,即 bhyve 的自定义 Libvirt 钩子,我们可以连接两个端点并使控制台对用户可访问。在开发钩子脚本时,我们发现 Libvirt 专门为 bhyve 提供的钩子接口 没有很好地实现。幸运的是,Libvirt 开发人员 及时解决了问题,我们计划在将来发布修复时完善我们的钩子脚本。
我们还解决了在 上一季度报告 中提到的我们的开发环境中的嵌套 bhyve 问题(在 Linux KVM 之上运行 bhyve VM)。这是由两个 VT-x 功能的 APIC 模拟引起的:VID
和 PostIntr
。
我们主机的 CPU 具有这两个功能,因此我们需要在 L1 guest 中禁用它们,L1 guest 充当 bhyve 主机,在 /boot/loader.conf 中,以使 L2 guest 不挂起。对于我们能够在一个完全虚拟化的环境中进行项目工作至关重要,因为缺乏物理资源。这对于对项目感兴趣的人同样重要,降低了尝试在其环境中进行整个 POC 的门槛,而不需要太高的设置要求。
展望第四季度,我们的重点是用修订后的文档完成 POC 并移植到 FreeBSD 14.0-RELEASE。缺少相应 FreeBSD 软件包的依赖项将逐个移植。我们还计划将我们的工作与 OpenStack 2023.1 Antelope 进行合并。我们邀请对我们的文档感兴趣的人探索并为该项目的成功做出贡献。
赞助商:The FreeBSD Foundation
链接: FreeBSD 维基上的 Microsoft Azure 文章 URL: https://wiki.freebsd.org/MicrosoftAzure
FreeBSD 维基上的 Microsoft HyperV 文章 URL: https://wiki.freebsd.org/HyperV
联系人:Microsoft FreeBSD Integration Services Team <bsdic@microsoft.com>
联系人:The FreeBSD Azure Release Engineering Team <releng-azure@FreeBSD.org>
联系人:Wei Hu <whu@FreeBSD.org>
联系人:Souradeep Chakrabarti <schakrabarti@microsoft.com>
联系人:Li-Wen Hsu <lwhsu@FreeBSD.org>
在本季度,我们主要致力于 ARM64 架构支持,构建并发布基于 UFS 和 ZFS 的镜像到 Azure 社区库。在项目的测试公共库中,名为 `FreeBSDCGTest-d8
a43fa5-745a-4910-9f71-0c9da2ac22bf`,有一些测试镜像可用:
FreeBSD-CURRENT-testing
FreeBSD-CURRENT-gen2-testing
FreeBSD-CURRENT-arm64-testing
FreeBSD-CURRENT-zfs-testing
FreeBSD-CURRENT-zfs-gen1-testing
要使用它们,创建虚拟机时:
在 Select an Image
步骤中,在 Other items
中选择 Community Images
搜索 FreeBSD
我们的目标是为 14.0-RELEASE 提供以上所有这些镜像。
正在进行的任务:
自动化镜像构建和发布过程,并合并到 src/release/ 中。
将所有支持的 VM 镜像构建和发布到 Azure Marketplace
将快照构建发布到 Azure 社区库
上述任务由 The FreeBSD Foundation 赞助,由 Microsoft 提供资源。
Wei Hu 和 Souradeep Chakrabarti 在 arm64 中解决了几个关键 bug:
根本原因在 e7a9817b8d32: Hyper-V: vmbus: implementat bus_get_dma_tag in vmbus 中得以识别和解决。
并继续改进 Microsoft Azure Network Adapter (MANA) 支持。
待处理任务:
在 Microsoft Learn 上更新 FreeBSD 相关文档
在 Azure Pipelines 中支持 FreeBSD
将 Azure 代理 port 更新到最新版本
将 Azure 代理的本地修改 上游
赞助方:对于 Microsoft 的人员和为其他方提供资源的一切,由 The FreeBSD Foundation 赞助。
链接:
FreeBSD/EC2 Patreon URL: https://www.patreon.com/cperciva
联系人:Colin Percival <cperciva@FreeBSD.org>
FreeBSD 可以在 x86(Intel 和 AMD)和 ARM64(Graviton)EC2 实例上使用。工作正在进行,以确保即将推出的实例类型得到支持。
现在,每周 FreeBSD 快照都包括用于 14.0 和 15.0 的实验性 ZFS-root AMI。这个变化将出现在 FreeBSD 14.0-RELEASE 中。
正在进行的工作包括开始发布实验性的 "cloud-init" AMI。预计这将在 FreeBSD 14.0-RELEASE 推出时实现。
这项工作得到了 Colin 的 FreeBSD/EC2 Patreon 的支持。
文档、手册页或新的外部书籍/文件中的重要更改。
链接:FreeBSD 文档项目 URL: https://www.freebsd.org/docproj/
链接:FreeBSD 文档项目新贡献者入门指南 URL: https://docs.freebsd.org/en/books/fdp-primer/
链接:文档工程团队 URL: https://www.freebsd.org/administration/#t-doceng
联系人:FreeBSD Doceng Team <doceng@FreeBSD.org>
doceng@ 团队是处理与 FreeBSD 文档项目相关的一些元项目问题的团体;有关更多信息,请参阅 FreeBSD Doceng Team Charter。
在本季度:
文档门户的搜索功能已从 DuckDuckGo 移至我们自己的搜索引擎;有关更多信息,请参阅 此提交。
根据 grahamperrin@ 的请求,他的文档提交权限已被保留。
根据 pluknet@ 的请求,他的文档提交权限已被保留。
Handbook 中已添加了新的 USES
标记:
链接:在 Weblate 上翻译 FreeBSD URL: https://wiki.freebsd.org/Doc/Translation/Weblate
链接:FreeBSD Weblate 实例 URL: https://translate-dev.freebsd.org/
2023 年第三季度状态
17 种团队语言
189 注册用户
四名新的翻译者加入了 Weblate:
minso 在韩语(ko)和法语(fr_FR)方面。
strgalt-t 在德语(de_DE)方面。
bsdmeg 在德语(de_DE)方面。
mvsf 在葡萄牙语(pt_BR)方面。
语言
中文(简体)(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%)
我们要感谢所有贡献者,翻译或审核文档。
并请在你的本地用户组中宣传此努力,我们始终需要更多的志愿者。
联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>
下一个要处理的部分将是文件系统部分:UFS、OpenZFS、其他文件系统。
联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>
这个工作组的想法是撰写一个新的 FAQ。将与 FreeBSD 14.0 一同发布。
联系人:Sergio Carlavilla <carlavilla@FreeBSD.org>
负责创建新的 FreeBSD 文档门户并重新设计 FreeBSD 主网站及其组件的工作组。FreeBSD 开发者可以在 FreeBSD Slack 频道 #wg-www21 上关注并加入这个工作组。工作将分为三个阶段:
重新设计 Web 上的手册页 使用 mandoc 生成 HTML 页面的脚本。 (已完成,已由 Doceng 批准,部署日期尚未确定) https://man-dev.FreeBSD.org 上的公共实例。
重新设计 FreeBSD 主网站 新设计,响应式和深色主题。 (几乎完成,在 EuroBSDCon 上进行了演示)
重新设计 Web 上的 Ports 页面 用于创建应用程序门户的 Ports 脚本。 (进行中)
链接:
FreeBSD 在线文档编辑器 URL: https://github.com/Wang-Yan-Hao/FreeBSD-Online-Document-Editor
FreeBSD 在线 Man 手册编辑器 URL: https://github.com/Wang-Yan-Hao/man_page_editor
联系人:Yan-Hao Wang <bses30074@gmail.com>
联系人:Li-Wen Hsu <lwhsu@FreeBSD.org>
目前,我们的文档翻译过程涉及使用 Weblate 和直接编辑 doc 存储库。我们意识到这个过程可能有些繁琐,因此我们正在努力提供一个更方便的替代方案,类似于维基社区的做法。介绍在线文档编辑器和 Man 手册编辑器,这是一个用户友好的所见即所得(WYSIWYG)静态站点,用于翻译文档和 man 手册。我们的目标是在一个平台上 consolide 所有翻译功能,使翻译过程尽可能简单。
然而,我们仍然需要这两个项目的帮助,具体如下:
文档编辑器和 Man 手册编辑器是使用简单的 JavaScript 开发的。我们正在寻找一位 Web 开发人员来评估代码的效率,因为我(Yan-Hao Wang)在前端开发方面并不精通。
我们还在寻找一位网络安全开发人员,协助我们识别和解决这两个项目中的安全问题。这对于确保这些项目的安全托管并减轻潜在漏洞至关重要。
由于目前没有现有的 JavaScript 库可以渲染 mandoc,我不得不创建自己的库。然而,在编辑过程中仍然存在一些隐藏的错误。我们需要一位 JavaScript 开发人员来帮助纠正这些渲染问题。
赞助:FreeBSD 基金会
链接: FreeBSD 专家系统 URL: [https://github.com/Wang-Yan
-Hao/freebsd_expert_system](https://github.com/Wang-Yan-Hao/freebsd_expert_system)
联系人:Yan-Hao Wang <bses30074@gmail.com>联系人:Li-Wen Hsu <lwhsu@FreeBSD.org>
在今天的世界中,机器学习和深度学习技术变得越来越普遍,就像 ChatGPT 的普及一样。我们正在开发一个 ChatGPT 插件,可以访问最新的 FreeBSD 数据,将 ChatGPT 转变为 FreeBSD 专家系统。我们已经编写了数据清理的脚本并构建了一个嵌入式模型来搜索相关信息。
然而,我们需要在这个项目的以下方面得到帮助:
虽然我不是机器学习或深度学习方面的专家,但我们在这些领域遇到了许多挑战,例如数据清理的充分性以及最终插件开发过程中的不确定性。我们将感激在这方面的指导。
赞助:FreeBSD 基金会
影响 Ports 的变化,无论是触及大部分树的全面变化还是单独的 port 本身。
链接:
KDE/FreeBSD 主动性 URL: https://freebsd.kde.org/
FreeBSD —— KDE 社区维基 URL: https://community.kde.org/FreeBSD
联系人:Adriaan de Groot <kde@FreeBSD.org>
KDE on FreeBSD 项目为 FreeBSD ports 树打包了 CMake、Qt 和来自 KDE Community 的软件。该软件包括一个名为 KDE Plasma(适用于 X11 和 Wayland)的完整桌面环境,以及可以在任何 FreeBSD 计算机上使用的数百个应用程序。
KDE 团队(kde@)是 desktop@ 和 x11@ 的一部分,构建软件堆栈,使 FreeBSD 成为一台美观且可用作日常驱动图形桌面工作站的计算机。下面的说明主要说明了与 KDE 相关的 port ,但也包括对整个桌面堆栈重要的项目。
Qt5 现在进入了长期支持阶段,仅在极少数情况下进行更新。在本季度进行了到 5.15.10 的更新。Qt6 现在已经使用正常的上游发布进行了更新,7 月底发布了 6.5.2 版本,之后又发布了 6.5.3 版本。
本季度 CMake 没有更新,因此我们现在至少滞后了一个次要版本。最新版本的变更日志对 FreeBSD 的影响不大,因此没有升级的特殊原因。
sysutils/polkit 和 sysutils/consolekit2 都已更新,为 FreeBSD 桌面提供了改进的安全策略和控制台处理。x11/sddm 已更新,提供更好的图形化登录管理器。
multimedia/pipewire 已更新到 0.3.81 版本。这为 KDE 和 GNOME 等桌面提供了多媒体支持。
KDE Gear 每季度发布一次,KDE Plasma 每月更新一次,KDE Frameworks 每月也有新版本发布。这些(大型)更新在它们的上游发布后不久就会到来,不会单独列出。
KDE Frameworks 已达到 5.110 版。KDE Frameworks 5 系列正在逐渐结束,尽管在上游进入长期支持之前还需要大约六个月。
KDE Plasma Desktop 已更新到 5.27.8 版。与框架一样,上游工作正在减少,以支持 KDE Plasma 6。
KDE Gear 已更新到 23.08.1 版。
KDE 生态系统包括各种 port —— 大多数由 kde@ 维护,所有这些 port 都建立在共享的 Qt 和 KDE Frameworks 基础上。kde@ 团队根据需要更新它们。例如,本季度 tcberner@ 和 arrowd@ 更新或修复了(远不止于此的)以下一系列 port :
感谢 jhale@,devel/qtcreator 已更新到 11.0.3 版,为创建 Qt 和 KDE 应用程序的功能丰富的集成开发环境提供了另一个选择。
Web 浏览器庞大,并且具有相当大的安全性。备受尊敬的 www/qt5-webkit WebKit port 已计划删除,并且已将其用户移至 WebEngine。我们依赖的 WebKit 分支已不再得到积极维护。
链接:
elementary OS URL: https://elementary.io/
开发仓库 URL: https://codeberg.org/olivierd/freebsd-ports-elementary
联系人:Olivier Duchateau <duchateau.olivier@gmail.com>
Pantheon 桌面环境是为 elementary OS 设计的。它基于 GNOME 技术(如 Mutter、GTK 3 和 4),使用 Vala 编写。其目标是为最终用户提供完整的桌面环境。
要求使用 13.2-RELEASE 或更高版本,因为几个核心组件依赖于 deskutils/xdg-desktop-portal。
该仓库包含一个名为 elementary.mk 的文件,用于 Mk/Uses 框架、官方应用程序和依赖于 x11-toolkits/granite7 的精选 port 。
我已经提交了几个补丁,以保持这些 port 的最新状态:
以下 port 的 bug 报告 仍然在 bugzilla 上保持打开状态,等待更新:
x11-toolkits/granite7: 更新到 7.3.0
deskutils/elementary-calendar: 更新到 7.0.0
x11/elementary-terminal: 更新到 6.1.2
同时,我还致力于更新 GNOME 栈(特别是 WebKitGTK、libwnck、Mutter、Vala)。我注意到了一些特别是与 x11/plank 相关的回归问题(与监视打开的应用程序有关)。
在开发仓库中新增了三个新应用程序:
deskutils/atlas,地图查看器
deskutils/nimbus,天气小部件
audio/leopod,播客客户端
链接: FreeBSD Office 项目 URL: https://wiki.freebsd.org/Office
FreeBSD Office 邮件列表 URL: https://lists.freebsd.org/subscription/freebsd-office
联系人:FreeBSD Office 团队 ML <office@FreeBSD.org>
联系人:Dima Panov <fluffy@FreeBSD.org>
联系人:Li-Wen Hsu <lwhsu@FreeBSD.org>
FreeBSD Office 团队致力于开发一系列办公相关的软件套件和工具,如 OpenOffice 和 LibreOffice。
在本季度,工作重点是为所有 FreeBSD 用户提供最新稳定版本的 LibreOffice 套件和配套应用程序。
在 2023Q3 期间,我们为 LibreOffice port 推送了维护补丁,并将最新的 7.6.2 版本及其所有配套库,如 MDDS、libIxion 等,带入了 ports 树。LibreOffice port 的所有预发布开发都在 LibreOffice WIP 仓库 中进行。
与 LibreOffice 一起,我们还将 Boost 更新到最新的 1.83 版本。所有对 Boost 的移植感兴趣的人都可以向 Boost WIP 仓库 提交补丁。
我们正在寻找帮助完成以下任务的人:
打开的 bug 列表 包含所有需要关注的已提交问题
欢迎在邮件列表和 Bugzilla 中提供补丁、评论和反馈。
链接:
项目 GitHub 页面 URL: https://github.com/pgj/freebsd-wifibox
net/wifibox port URL: https://cgit.freebsd.org/ports/tree/net/wifibox
联系人:PÁLI Gábor János <pali.gabor@gmail.com>
Wifibox 是一个实验性项目,用于探索在 FreeBSD 主机系统上部署虚拟化 Linux 客户端以驱动无线网络卡的方法。已有一些指南说明如何手动设置此项,而 Wifibox 的目标是将这些想法实现为一个易于使用的单一软件包。
它使用 bhyve(8) 运行嵌入式 Linux 系统。这有助于实现低资源占用。它需要具有 I/O MMU(AMD-Vi、Intel VT-d)的 x64 CPU,约 150 MB 物理内存,并且为客户端虚拟磁盘镜像提供一些可用的磁盘空间,根据情况可以仅为约 30 MB。它与 FreeBSD 12 及更高版本兼容,但某些网卡可能需要 FreeBSD 13。
客户端使用 Alpine Linux 构建,这是一个基于 musl libc 和 BusyBox 的面向安全的轻量级发行版,并导入了来自 Arch Linux 的一些自定义扩展和补丁。它附带了一些用于更好地管理正在使用的硬件的诊断工具。最新版本具有 Linux 6.1,但也提供 Linux 6.5 作为替代。
配置文件与主机系统共享。客户端使用 wpa_supplicant(8) 或 hostapd(8)(取决于配置)因此可以导入主机的 wpa_supplicant.conf(5) 或 hostapd.conf(5) 文件而无需进行任何更改。
配置后,客户端可以公开 wpa_supplicant(8) 和 hostapd(8) 控制套接字,从而使主机可以直接使用相关实用程序,如 wpa_cli(8) 或 wpa_gui(8)(来自 net/wpa_supplicant_gui 软件包)或 hostapd_cli(8)。
一切都打包在一个单一的软件包中,可以轻松安装和卸载。这带有一个 rc(8) 系统服务,它会在启动时自动启动客户端,并在关闭时停止客户端。
可以配置为 IPv6 流量转发,这是一个当前为实验性选项,但默认已打开。
Wifibox 主要经过了对 Intel 芯片组的测试,并显示出很好的性能和稳定性。因此,在 FreeBSD 完善对这些芯片组的支持之前,它可能是一个过渡性的解决方案。
已确认 Wifibox 与 Atheros、Realtek 和 Mediatek 芯片组一起工作,欢迎反馈其他芯片组的情况。Broadcom 芯片(MacBook Pro 通常使用)也可以使用,但已知存在稳定性问题。
链接:
GCC 项目 URL: https://gcc.gnu.org/
GCC 10 发布系列 URL: https://gcc.gnu.org/gcc-10/
GCC 11 发布系列 URL: https://gcc.gnu.org/gcc-11/
GCC 12 发布系列 URL: https://gcc.gnu.org/gcc-12/
GCC 13 发布系列 URL: https://gcc.gnu.org/gcc-13/
联系人:Lorenzo Salvadore <salvadore@FreeBSD.org>
将默认的 GCC 版本更新到 GCC 13 的过程已经开始,并进行了测试运行。感谢运行测试运行的 Antoine Brodin 以及所有其他参与的开发人员和 port 维护人员。
同样的测试运行包含了上一季度状态报告中预期的其他补丁。特别是包含了更新以下内容的补丁:
lang/gcc11 到版本 11.4.0;
lang/gcc12 到版本 12.3.0;
lang/gcc13 到版本 13.2.0。
读者可能还记得我计划在 GCC 13.1.0 发布后立即将默认版本更新为 GCC 13,但可以注意到 GCC 开发人员在我努力处理 GCC port 时更快地发布了 13.2.0 版本。
在测试运行中报告的大多数错误都是由同一错误引起的:error: expected identifier before '__is_convertible'
。似乎问题是 FreeBSD 12 的 libcxx 与 GCC 13 标头之间的不兼容性。请查看测试运行中的讨论 获取更多信息,并提供你的反馈。
链接:
Valgrind 主页 URL: https://www.valgrind.org/
Valgrind 新闻 URL: https://www.valgrind.org/docs/manual/dist.news.html
联系人:Paul Floyd <pjfloyd@wanadoo.fr>
devel/valgrind-devel 正在更新的过程中。这包含了即将在十月份正式发布的 Valgrind 3.22 版本中的大部分内容。
memcheck
已经增强了一些检查。它现在会报告使用大小为零的 realloc
。这样的用法是不可移植的,并已被弃用(C23 将使其成为未定义行为)。memcheck
现在验证用于 memalign
、posix_memalign
、aligned_alloc
以及所有 operator new
和 operator delete
的对齐和大小重载的值。读取 DWARF
调试信息现在以一种懒惰的方式进行,这可以提高性能。
通常有许多小的 bug 修复。
对于 FreeBSD,现在支持 FreeBSD 15。现在支持两个额外的 _umtx_op
操作,UMTX_OP_GET_MIN_TIMEOUT
和 UMTX_OP_SET_MIN_TIMEOUT
。修复了对具有 guest pid 或 -1 的 sysctl kern proc pathname 使用的问题,之前返回的是 Valgrind 主机的路径。现在 sysctl 将返回 guest 的路径。已添加对 close_range
系统调用的支持。
链接:
Gitlab 16.3 新特性 URL: [https://about.gitlab.com/releases/2023/08/22/gitlab-16-3-released/] (https://about.gitlab.com/releases/2023/08/22/gitlab-16-3-released/)
联系人:Matthias Fechner <mfechner@FreeBSD.org>
GitLab 是一个 DevOps 平台。它为团队带来了高效的速度,充满信心的开发过程,无需牺牲安全性,并提供对 DevOps 成功的全面可见性。
版本 16.3 现在在 FreeBSD 上可用,请查看 www/gitlab-ce port 。升级非常重要,因为版本 16.3 将是以后所有升级的要求。只有从 GitLab 16.3 才能升级到 16.4。
可以在 https://gitlab.fechner.net/mfechner/Gitlab-docu/-/blob/master/install/16.3-freebsd.md?ref_type=heads 找到。升级的文档可在 https://gitlab.fechner.net/mfechner/Gitlab-docu/-/blob/master/update/16.1-16.3-freebsd.md?ref_type=heads 找到安装文档。
我将等到 16.4 版本升级(预计在 20.9 或 22.9 左右发布,不确定),直到创建 ports 的 quarterly 分支 2023Q4,以避免破坏不使用主分支 (latest) 的系统。GitLab 用户应始终选择主分支,如安装手册中所述。
链接:
项目存储库 URL: https://gitlab.com/alfix/portoptscli
联系人:Alfonso Sabato Siciliano <asiciliano@FreeBSD.org>
联系人:FreeBSD 可访问性邮件列表 <freebsd-accessibility@FreeBSD.org>
FreeBSD 提供了 Ports,为用户和管理员提供了一种安装应用程序的简单方法。在构建和安装之前可以配置一个 port 。make config
命令使用 ports-mgmt/dialog4ports 和 ports-mgmt/portconfig 通过文本用户界面(TUI)交互式设置 port 。
不幸的是,屏幕阅读器在 TUI 中表现不佳;这是一个众所周知的可访问性问题。FreeBSD 提供了数以万计的 port; port 配置是一个关键功能,但对于视力受损的用户而言是不可访问的。
PortOptsCLI(Port Options CLI)是一个通过命令行界面设置 port 选项的新实用程序。确切地说,PortOptsCLI 提供了导航配置对话框(复选框和/或单选按钮)并通过交互方式设置其项目的命令。它也适用于语音合成器;目前已与 accessibility/orca 进行了测试。可以通过 ports-mgmt/portoptscli port 或软件包安装 PortOptsCLI 。
欢迎提供建议和新想法。如果可能,请将报告发送到 FreeBSD 可访问性邮件列表,以在公共位置共享和跟踪讨论。
许多项目基于 FreeBSD 或将 FreeBSD 的组件纳入其项目中。由于这些项目可能对更广泛的 FreeBSD 社区感兴趣,因此我们有时会在季度报告中包含这些项目提交的简要更新。FreeBSD 项目对这些提交中的任何声明的准确性或真实性不作表示。
链接:
BSD Cafe 项目主页 URL: https://wiki.bsd.cafe/
BSD Cafe Mastodon 实例 URL: https://mastodon.bsd.cafe/
联系人:Stefano Marinelli <stefano@dragas.it>
我们很高兴向大家介绍 BSD Cafe 项目的首个组成部分!
数月前,当我首次注册 bsd.cafe 域名时,我构想了一个主题酒吧,在那里朋友、熟人和顾客可以聚在一起进行关于 *BSD 系统、Linux 和开源技术的非正式对话。就像任何酒吧一样,我们的讨论可以涵盖各种主题,同时保持相互尊重的精神。
BSD Cafe 将成为由 *BSD 驱动的各种工具和服务的中心。
我们的首次亮相是一个全新的 Mastodon 实例(开源微博客软件和服务),作为通向联合宇宙的门户,联合宇宙是许多使用 ActivityPub 去中心化社交网络协议的服务联合体。现在已开放注册。该服务器遵循明确定义的指南,促进积极的行为,并明确禁止任何形式的仇恨。包容性、尊重和建设性对话是该实例的基石。
我们的主要服务器目前托管在芬兰的一个小型虚拟机上,运行在 FreeBSD 上。服务被划分为 VNET jails,在本地区域网络中通过专用桥连接。此外,我们实施了 VPN 系统,并具有将单个 jails 迁移到更强大机器的灵活性。
为了进行多媒体数据和缓存托管,我们使用了一个独立的物理服务器(同样基于 FreeBSD,在一个 jail 中),由 Cloudflare 管理。这里的目标是缓存和地理分布数据,从而有效减少主 VPS 上的网络拥塞。
我们的反向代理(前端)、邮件服务器、媒体服务器和实例本身都可以通过 IPv6 访问。
在初始阶段,这个 Mastodon 实例没有预加载的内容。我们的意图是让它根据用户的兴趣和关注者有机地发展。在这个阶段,我们已经克制了先发制人的封锁。我们强烈鼓励用户及时报告任何他们认为需要关注的事情。
我们邀请你加入我们的 https://mastodon.bsd.cafe/,以培养一个重视建设性互动并拥抱包容性的社区,一个为所有人提供安全而宁静的空间。
此外,我们建立了一个网站,地址是 https://wiki.bsd.cafe/,将提供有关我们的工具、服务、规则、正常运行时间等的概述。
最近,已进行了 Miniflux 安装,因此 BSD Cafe 用户可以将其用作个人 RSS 订阅阅读器。更多信息:https://wiki.bsd.cafe/miniflux-bsd-cafe。
链接:
Pot 在 GitHub 上的组织 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 进行编排。
在本季度,完成了 Pot 0.15.6,增加了自定义 pf(4) 规则配置钩子。
此外,发布了 Nomad Pot Driver 0.9.1,该驱动程序允许在 Nomad 作业说明中设置 Pot 属性。
Potluck 的目标是成为 FreeBSD 和 Pot 的 Dockerhub:Pot 的风味和完整的容器镜像的存储库,可用于 Pot 以及许多情况下的 Nomad。
提供了相当多的新容器镜像,例如 Caddy S3 代理、Mastodon 实例 和 Redis 容器。总共有 50 个容器可供使用,可以在 Potluck 镜像注册表 中下载为现成的镜像(如果你信任我们的构建过程),或者可以从 Potluck GitHub 仓库 中存储的 Pot 风味文件中自行构建。
2023 年 7 月 / 8 月的 FreeBSD Journal 包含了 Luca 的 使用 pot 和 nomad 进行 Jail编排 文章,解释了如何使用 Pot 和 Potluck 与 Nomad 一起在多个主机上进行容器编排。
最后但同样重要的是,一个补丁(90b1184d93c8)为 devel/sccache port 添加了构建集群支持。
一如既往,欢迎反馈和补丁。
赞助商:Nikulipe UAB,Honeyguide Group
最后修改于:2023 年 11 月 7 日,由 Lorenzo Salvadore
这是第二份 2023 年状态报告,共有 37 个条目。
正如您可能注意到的,我们比上个季度有更多的报告。这是个好消息,也显示了 FreeBSD 社区的活跃程度,我们一直在努力提供高质量的软件。
特别需要注意的是,夏季已经开始了,请不要错过由我们的谷歌代码之夏学生分享的令人惊叹的项目。
祝您阅读愉快。
Lorenzo Salvadore,代表 Status 团队。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FreeBSD 团队报告
FreeBSD 核心团队
FreeBSD 基金会
FreeBSD 发布工程团队
集群管理团队
持续集成
Ports
项目
Cirrus-CI
FreeBSD 内核中的 BATMAN 支持
LinuxBoot 上的 FreeBSD 支持
用户空间
基于 OpenSSL 3 的更新
Linux 兼容层更新
服务 Jail-自动将 rc.d 服务置于监狱中
使用 ktrace(1)进行安全隔离
NVMe over Fabrics
内核
启动性能改进
引导加载程序的 CI 测试工具
FreeBSD 内核的物理内存压缩
增加 MAXCPU
FreeBSD 内核的 SquashFS 移植
Pf 改进
网络接口 API(IfAPI)
使 Netgraph 无锁化
架构
AMD64 的 SIMD 增强
将 mfsBSD 集成到发布构建工具中
云计算
FreeBSD 作为 Tier 1 的 cloud-init 平台
FreeBSD 上的 OpenStack
FreeBSD 在 Microsoft HyperV 和 Azure 上
FreeBSD 在 EC2 上
文档
文档工程团队
ports
FreeBSD 上的 KDE
FreeBSD 上的 GCC
Puppet
FreeBSD 上的 MITRE Caldera
FreeBSD 上的 Wazuh
第三方项目
PkgBase.live
容器和 FreeBSD:Pot,Potluck 和 Potman
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
以下是来自各个官方和半官方团队的条目,这些信息可以在管理页面找到。
联系方式:FreeBSD 核心团队 core@FreeBSD.org
FreeBSD 核心团队是 FreeBSD 的管理机构。
202305 开发者峰会
核心团队在 2023 年 5 月 17 日至 18 日的 FreeBSD 开发者峰会上进行了状态更新的展示。可在https://wiki.freebsd.org/DevSummit/202305 上查看幻灯片。
FreeBSD 14
核心团队正在与其他团队合作,以确保 FreeBSD 14.0-RELEASE 具有最高的质量。
核心团队对将 riscv64sf(64 位 RISC-V 软浮点)标记为在 14 版本中再不支持表示认可。
与 FreeBSD 基金会的会议
核心团队将与 FreeBSD 基金会继续定期举行会议,讨论 FreeBSD 的管理、开发和未来发展的下一步计划。核心团队与基金会的董事会成员和雇员进行了两次会议。他们讨论了基金会如何帮助核心团队和整个项目。
Matrix 即时通讯解决方案
核心团队在 202305 开发者峰会的进行中,提出了一个新的项目通讯解决方案。
目前,由 clusteradm 在 matrix-dev.FreeBSD.org 上设置了一个测试实例。所有开发者都可以使用自己的 Kerberos 凭证访问该实例,并可以通过 Matrix 的联邦功能加入一些公共聊天室。请注意,该实例仅用于测试和评估,因此不保证备份或可用性。
核心团队仍在讨论此服务的范围和管理方式,并收集社区的反馈意见。
行为准则委员会
行为准则委员会(conduct@)现在由核心团队负责管理。
提交权限
核心团队批准了 Christos Margiolis (christos@)的 src 提交权限。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD 基金会网址:https://www.freebsdfoundation.org
技术路线图网址:https://freebsdfoundation.org/blog/technology-roadmap/
捐赠网址:https://www.freebsdfoundation.org/donate/
基金会合作计划网址:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/
FreeBSD 杂志网址:https://www.freebsdfoundation.org/journal/
基金会新闻和活动网址:https://www.freebsdfoundation.org/news-and-events/
联系人:Deb Goodkin deb@FreeBSDFoundation.org
FreeBSD 基金会是一个 501(c)(3) 非营利组织,致力于在全球支持和推广 FreeBSD 项目和社区。个人和公司的捐赠用于资助和管理软件开发项目、会议和开发者峰会。我们还为 FreeBSD 贡献者提供差旅补助,购买和支持硬件以改善和维护 FreeBSD 基础设施,并提供资源来改进安全性、质量保证和发布工程工作。我们发布营销材料以推广、教育和支持 FreeBSD 项目,促进商业供应商和 FreeBSD 开发者之间的合作,并最终代表 FreeBSD 项目执行合同、许可协议和其他需要被认可的法律安排。
祝 FreeBSD 30 岁生日快乐!
我们自豪地支撑这个出色的操作系统和充满活力的社区已经超过 23 年了,并且我们热切期待在未来的多年里继续支持它们。在本次报告中,我们将概述我们在多个领域对 FreeBSD 的贡献。我们将涉及一些具有详细报告的项目开发倡议。此外,我们还将展示我们对 FreeBSD 的支持、促进社区参与的努力以及扩大合作伙伴关系的努力。最后,我们将深入探讨我们持续增加资金的工作,以便在项目中填补更多的差距。
筹款
在这个季度,我们在与 FreeBSD 商业用户进行合作方面取得了重大进展。为了加强与现有和潜在商业用户的合作伙伴关系,我们聘请了 Greg Wallace 担任合作伙伴和研究总监。他的主要目标是扩大我们与商业用户的合作。自担任该职务以来,Greg 已经开始着手工作,仅在一个季度内就与众多公司进行了会面。这些互动为我们了解 FreeBSD 的使用情况、用户面临的挑战以及项目可以改进的领域提供了宝贵的见解。通过了解这些方面,我们可以做出明智的决策,确定在哪些方面投入资金,并认识到 FreeBSD 的独特优势。此外,这个角色还包括进行研究,以确定目标市场,探索 FreeBSD 的新机会,并确保我们的声音在相关讨论中得到听取。有关 Greg 的目标和成就的更多详细信息,请参阅他下面的状态更新。
基金会向所有对我们的工作作出财务捐赠的人表示衷心的感谢。除了许多个人捐赠外,我们还很高兴收到 NetApp 和 Blackberry 的较大捐赠。此外,我们还从 Tarsnap、iXsystems 和 LPI 获得了 FreeBSD 开发者峰会的赞助。这些赞助在抵消我们的费用方面提供了极大的帮助,并使我们能够向参与者提供实惠的注册费用。
今年我们的预算约为 2,230,000 美元,其中包括增加用于 FreeBSD 推广和软件开发的支出。我们预算的一半以上用于直接改进 FreeBSD 并保持其安全性。
通过有一个专门负责合作伙伴关系的人,我们可以有效地强调投资我们的努力的重要性,并强调项目的长期可行性。
您的支持在我们的使命中发挥着至关重要的作用,我们深表对您对 FreeBSD 社区的承诺表示感谢。请考虑向我们的 2023 年筹款活动捐款!https://www.freebsdfoundation.org/donate/
对于更重要的商业捐赠者,我们还有 FreeBSD 基金会合作计划,该计划成立于 2017 年。
合作计划
大家好,我是 Greg Wallace。我于四月初加入基金会,担任合作伙伴关系和研究总监。这篇博客介绍了我和我的角色。对于合作伙伴关系,我的重点是与使用 FreeBSD 的公司建立联系。我已经与几家公司会面,了解他们如何使用 FreeBSD。其中一些会面已经引发了有关潜在合作伙伴关系的讨论。我继续了解使用 FreeBSD 的有趣公司,并与他们取得联系。
我的目标是与每一家使用和构建 FreeBSD 的公司取得联系,倾听他们的故事。如果您是其中之一,而我们尚未建立联系,请在我的日历上安排一次会话。
本季度其他合作伙伴关系相关活动:
我与基金会的同事合作,为向行业分析师进行演示准备了许多特定行业的用例幻灯片。
我还在寻求与以下机构的资助机会:
NSF 安全可信的网络空间(SaTC)
Sovereign Tech 基金
NGI。
在研究方面,我的广泛目标是确保这个社区的所有专业知识都能在全球关于计算性能、安全性和能源效率的对话中得到体现。作为一个社区,我们在这项工作中有很多贡献可以提供。
到目前为止,我一直在跟踪和参与以下主题:
如果您对研究方面有想法,或者对在这个领域合作感兴趣,请给我发送电子邮件或安排通话。
操作系统改进
在 2023 年第二季度,共有 339 个 src 提交,155 个 ports 提交和 20 个文档提交被认定为由 FreeBSD 基金会赞助。关于一些由基金会赞助的工作以及其他工作的描述在单独的报告条目中:
持续集成
FreeBSD 作为 Tier 1 的 cloud-init 平台
基于 OpenSSL 3 的更新
FreeBSD 上的 OpenStack
使用 ktrace(1)进行安全隔离
AMD64 的 SIMD 增强
以下是其他由基金会赞助的工作的一部分:
fsck_ffs(8)的错误修复
killpg(2)的错误修复
hwpmc 的改进
vmm 的改进
针对 LLVM 16 和 OpenSSL 3.0 的 port 修复和解决方案
将 kinst 移植到 RISC-V 以及相关的 DTrace 工作
将 libfido2 更新到 1.9.0 版本
各种 LinuxKPI 802.11 的改进
各种 RISC-V 的改进
从版本 4.9.3 升级到版本 4.99.4 的 tcpdump 的供应商导入和更新。
关于当前和过去由基金会承包的工作的状态,可以在基金会项目页面上查看。
基金会技术团队的成员在加拿大渥太华举行的开发者峰会上进行了演讲。这包括主持谷歌代码之夏、FreeBSD 基金会技术审查和工作流工作组会议。Pierre Pronchery 谈到了 BSD 之间的驱动程序兼容性问题,而 En-Wei Wu 则讨论了在与基金会签订的合同下完成的 wtap 工作。
持续集成和质量保证
基金会提供了全职员工和资金,用于改进 FreeBSD 项目的持续集成、自动化测试和整体质量保证工作。您可以在专用的报告条目中了解更多关于持续集成工作的内容。
宣传
我们的很多工作都致力于推广 FreeBSD 项目。这可能涉及突出显示有趣的 FreeBSD 工作、制作文献和视频教程、参加活动或进行演讲。我们制作的文献的目标是教授人们 FreeBSD 的基础知识,并帮助他们更轻松地采用或贡献。除了参加和演讲活动外,我们鼓励并帮助社区成员举办自己的 FreeBSD 活动、进行演讲或管理 FreeBSD 展台。
FreeBSD 基金会赞助全球范围内的许多会议、活动和峰会。这些活动可能与 BSD 相关,也可能是面向弱势群体的开源或技术活动。我们支持以 FreeBSD 为重点的活动,以便为知识分享、项目合作和开发者与商业用户之间的合作提供场所。这些都有助于提供一个健康的生态系统。我们支持非 FreeBSD 活动,以促进和提高 FreeBSD 的认知度,增加在不同应用中使用 FreeBSD 的程度,并吸引更多的项目贡献者。我们很高兴恢复了大多数以亲自参加活动。除了参加和计划活动外,我们还在不断努力推进新的培训计划,并更新我们的指南,以鼓励更多的人尝试 FreeBSD。
以下是我们进行的一些宣传和教育工作:
协助组织并参加了于 2023 年 5 月 17 日至 18 日在加拿大安大略省渥太华举行的开发者峰会
在于 2023 年 5 月 17 日至 20 日在加拿大安大略省渥太华举行的 BSDCan 活动中,主持了一个展台,并担任 Tote Bag 赞助商
可以在博客上找到相关行程报告
在 BSDCan 庆祝了项目的 30 周岁生日,并提供了特别版本的 FreeBSD 杂志的印刷本
成功争取到于 2023 年 7 月 13 日至 16 日在美国俄勒冈州波特兰举行的 FOSSY 上举办 FreeBSD 研讨会和演讲
成功争取到于 2023 年 9 月 14 日至 17 日在葡萄牙科英布拉举办的 EuroBSDCon 2023 的银牌赞助
成功争取到于 2023 年 10 月 15 日至 17 日在美国北卡罗来纳州罗利举办的 All Things Open 的展位
开始筹划 FreeBSD 秋季供应商峰会
欢迎两名新团队成员:Greg Wallace 和 Pierre Pronchery
在 6 月 19 日庆祝了 FreeBSD 日和项目的 30 周年,并在整个周内发布了特别的视频和博客文章
其他博客文章:
EuroBSDcon 2023 旅行津贴申请现已开放-请注意:申请将于 2023 年 8 月 2 日截止
FreeBSD 在新闻中:
我们通过发布专业制作的 FreeBSD 杂志来丰富全世界关于 FreeBSD 的知识。正如我们之前提到的,FreeBSD 杂志现在是免费发布的。您可以在https://www.freebsdfoundation.org/journal/ 了解更多信息并访问最新的期刊。
您可以在 https://www.FreeBSDfoundation.org/news-and-events/ 了解有关我们参加的活动和即将举行的活动的更多信息。
法律/FreeBSD 知识产权
基金会拥有 FreeBSD 商标,并有责任保护它们。我们还为核心团队提供法律支持,以调查涉及的问题。
您可以在 https://www.freebsdfoundation.org 找到更多关于我们如何支持FreeBSD以及我们如何帮助您的信息!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD 13.2-RELEASE 日程网址:https://www.freebsd.org/releases/13.2R/schedule/
FreeBSD 14.0-RELEASE 日程网址:https://www.freebsd.org/releases/14.0R/schedule/
FreeBSD 发行版本网址:https://download.freebsd.org/releases/ISO-IMAGES/
FreeBSD 开发快照网址:https://download.freebsd.org/snapshots/ISO-IMAGES/
联系人:FreeBSD 发布工程团队 re@FreeBSD.org
FreeBSD 发布工程团队负责制定和发布 FreeBSD 官方项目版本的发布计划,宣布代码冻结并维护相应的分支,等等。
在 2023 年第二季度,团队继续进行了 13.2-RELEASE 的工作。13.2 周期紧密遵循了设定的日程安排,在最后增加了三个额外的 RC 构建,在 4 月中旬发布了最终的 RELEASE 构建并进行了宣布。
与项目管理中的各个团队协调,FreeBSD 发布工程团队重新考虑了即将到来的 14.0-RELEASE 的原始计划,主要是因为有进行中的工作。更新后的计划经过讨论并稍作调整以考虑一些问题,并最终在 FreeBSD 项目网站上发布。新的计划将 14.0-RELEASE 定于 2023 年 10 月。
团队继续为 main
分支、stable/13
分支和 stable/12
分支提供每周开发快照构建。请注意,stable/12
分支将不再提供快照构建。
赞助者:Tarsnap 赞助者:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD 集群管理团队成员网址:https://www.freebsd.org/administration/#t-clusteradm
联系人:FreeBSD 集群管理团队 clusteradm@FreeBSD.org
FreeBSD 集群管理团队负责管理项目依赖的机器,用于同步分布式工作和通信。
在本季度,该团队完成了以下工作:
为 FreeBSD.org 用户帐户提供定期支持。
为所有物理主机和镜像提供定期磁盘和零件支持(和更换)。
在 FreeBSD 项目管理的镜像中启用了 https://www.FreeBSD.org 和 https://docs.FreeBSD.org 的镜像。
对所有主机和容器进行了集群更新新,将它们升级到最新版本的 14-CURRENT、13-STABLE 和 12-STABLE。
正在进行的工作:
主要站点进行大规模网络升级。
在主要站点,新的 Juniper 交换机已经到货,以替换以前的交换机。我们感谢 Juniper 的捐赠。
在主要站点和一些镜像站点上替换旧服务器。
除了损坏的持续集成服务器,我们还有一些老旧的服务器,有磁盘损坏和故障的电源供应器。这项任务是与 FreeBSD 基金会以及捐赠者/赞助商一起进行的。
安装从软件包构建机转用的新持续集成(CI)机器。
审查在 FreeBSD 集群运行的服务的备份配置。
FreeBSD 官方镜像概述
当前的镜像位置是澳大利亚、巴西、德国、日本(两个完整的镜像站点)、马来西亚、南非、台湾、英国(完整的镜像站点)、美国加利福尼亚州、新泽西州(主要站点)和华盛顿州。
这些硬件和网络连接是由以下机构慷慨提供的:
BroadBand Tower,Inc 的云和 SDN 实验室
法兰克福单服务器镜像是欧洲带宽和使用率最高的主要镜像。
我们仍在寻找一个额外的完整镜像站点(五个服务器)在欧洲来替换英国的旧服务器。
我们发现在全球范围内的互联网交换点(澳大利亚、巴西和南非)拥有单一的镜像是一个很好的模式;如果您了解或为其中的一些公司工作,他们可以赞助一个单一的镜像服务器,请与我们联系。美国(西海岸)和欧洲(任何地方)是较为理想的地点。
有关完整镜像站点规格的通用镜像布局,请参阅 full mirror site specs,有关单一镜像站点的信息,请参阅 tiny-mirror。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD Jenkins 实例网址:https://ci.FreeBSD.org
FreeBSD CI artifact 存档网址:https://artifact.ci.FreeBSD.org
FreeBSD Jenkins Wiki 网址:https://wiki.FreeBSD.org/Jenkins
托管 CI Wiki 网址:https://wiki.FreeBSD.org/HostedCI
第三方软件 CI 网址:https://wiki.FreeBSD.org/3rdPartySoftwareCI
与 freebsd-testing@ 相关的事情网址:https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=open&email1=testing%40FreeBSD.org&emailassigned_to1=1&emailcc1=1&emailtype1=equals
FreeBSD CI 存储库网址:https://github.com/freebsd/freebsd-ci
dev-ci 邮件列表网址:https://lists.FreeBSD.org/subscription/dev-ci
联系人:Jenkins 管理员 jenkins-admin@FreeBSD.org
联系人:Li-Wen Hsu lwhsu@FreeBSD.org
联系人:freebsd-testing 邮件列表
联系人:IRC #freebsd-ci 频道 on EFNet
在 2023 年第二季度,我们与项目贡献者和开发者合作,满足了他们的测试需求。同时,我们还与外部项目和公司合作,在 FreeBSD 上进行更多的测试,以增强他们的产品。
重要完成的任务:
将 main 分支和 stable/13 分支的构建环境更改为 13.2-RELEASE,将 stable/12 分支更改为 12.4-RELEASE。
使用 gcc12 的*-build 任务正在向 dev-ci 邮件列表发送故障报告。
在 BSDCan 2023 开发者峰会上展示测试/CI 状态更新。
正在进行的任务:
设计和实施预提交 CI 构建和测试(以支持工作流工作组)。
设计和实施使用 CI 集群构建发布工件,就像发布工程一样。
简化贡献者和开发者的 CI/测试环境设置。
设置 CI 舞台环境并将实验性任务放在其中。
整理 freebsd-ci 存储库中的脚本,为将其合并到 src 存储库做准备。
改进硬件测试实验室并增加更多硬件进行测试。
待处理或排队的任务:
收集和整理 CI 任务和想法。
为运行测试的虚拟机客户端设置公共网络访问。
实施使用裸机硬件运行测试套件。
添加针对-CURRENT 的 drm port 构建测试。
计划运行 ztest 测试。
帮助更多软件在其 CI 流水线中获得 FreeBSD 支持(Wiki 页面:3rdPartySoftwareCI,HostedCI)。
与托管 CI 提供者合作,以获得更好的 FreeBSD 支持。
请参阅与 freebsd-testing@相关的事情,了解更多进行中的信息,并欢迎加入这项工作!
赞助者:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
关于 FreeBSD Ports 的网址:https://www.FreeBSD.org/ports/
贡献 Ports 的网址:https://docs.freebsd.org/en/articles/contributing/#ports-contributing
FreeBSD Ports 监控网址:http://portsmon.freebsd.org/
Ports 管理团队网址:https://www.freebsd.org/portmgr/
Ports Tarball 网址:http://ftp.freebsd.org/pub/FreeBSD/ports/ports/
联系人:René Ladan portmgr-secretary@FreeBSD.org
联系人:FreeBSD Ports 管理团队 portmgr@FreeBSD.org
Ports 管理团队负责监督 Ports 的整体方向、构建软件包以及人员事务。以下是上一个季度的情况。
目前,Ports 中有超过 34,400 个 port。目前有 3,019 个未解决的 port 问题(PR),其中有 746 个未被分配。上个季度 main
分支有来自 151 位提交者的 10,439 次提交,2023Q2 分支有来自 55 位提交者的 745 次提交。与上个季度相比,这意味着 port 数量略有增加,未解决的 PR 数量略有减少, port 提交数量有较大增加。
在本季度,我们欢迎 Tom Judge (tj@) 回归,同时告别了 Steve Wills (swills@)。Steve 也是 portmgr 的一员。作为 portmgr 开发计划的一部分,我们欢迎 Ronald Klop (ronald@)、Renato Botelho (garga@)和 Matthias Andree (mandree@) 的加入。
Portmgr 已经恢复了对将子软件包引入树中的工作,但仍有一些事项需要进一步完善。
在软件方面,pkg 已更新至 1.19.2,Firefox 更新至 114.0.2,Chromium 更新至 114.0.5735.198,KDE Gear 更新至 23.04.2。在上个季度,antoine@运行了 23 次 exp-runs 来测试软件包更新,将 CPU_MAXSIZE 提升至 1024,修复了 devel/cmake-core 的 armv7 失败,并在 USES=meson 中添加了 --auto-features=enabled
选项。最后,Ports 已更新以支持 FreeBSD-CURRENT 中的 LLVM 16 和 OpenSSL 3。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
涵盖多个类别的项目,从内核和用户空间到 Ports 或外部项目。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD Cirrus-CI Repositories 网址:https://cirrus-ci.com/github/freebsd/
FreeBSD src CI 网址:https://cirrus-ci.com/github/freebsd/freebsd-src
FreeBSD doc CI 网址:https://cirrus-ci.com/github/freebsd/freebsd-doc
联系人:Brooks Davis brooks@FreeBSD.org
联系人:Ed Maste emaste@FreeBSD.org
联系人:Li-Wen Hsu lwhsu@FreeBSD.org
Cirrus-CI 是一个托管的持续集成服务,支持在 Linux、Windows、macOS 和 FreeBSD 上进行开源项目的 CI 服务。它是我们自己 Jenkins CI 基础设施的补充,支持其他用例,包括测试 GitHub 的 pull requests 和 FreeBSD 的 forks。我们在 2019 年为 FreeBSD src 添加了 Cirrus-CI 配置,并在 2020 年为 doc 添加了配置。许多其他托管在 GitHub 上的 FreeBSD 项目(如 drm-kmod、kyua、pkg 和 poudriere)也使用了 Cirrus-CI。
在上一个季度,Cirrus-CI 配置接受了持续的维护更新(转换到最新的 FreeBSD RELEASE 镜像)。在 src 中,我们添加了一些额外的检查。这些检查确保在需要时更新生成的文件(make sysent
和 make makeman
),并检查是否缺少目录。我们添加了使用 Clang/LLVM 16 工具链包进行构建的作业,与现在在基本系统中的 Clang 版本相匹配。现在,对于所有提交,GCC 作业默认在 GitHub 镜像上运行。
赞助者:DARPA 赞助者:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
维基页面网址:https://wiki.freebsd.org/SummerOfCode2023Projects/CallingTheBatmanFreeNetworksOnFreeBSD
源代码(Pull Request)网址:https://github.com/obiwac/freebsd-gsoc/pull/1
联系人:Aymeric Wibo obiwac@FreeBSD.org
BATMAN (Better Approach to Mobile Ad-hoc Networking)。BATMAN 是由 Freifunk 项目开发和使用的一种用于多跳自组织网络(主要是无线网络)的路由协议。Freifunk 是德国的一个倡议,旨在基于网络中立性原则在城市范围内构建开放的 Wi-Fi 网络。BATMAN 的目标是成为一个完全分散的协议;网络中的任何一个节点都不需要了解或关心整个网络的拓扑结构。
在 Linux 中,由 batman-adv 内核模块提供支持 BATMAN 的功能。而这个项目的目标是将类似的支持带到 FreeBSD,包括开发内核模块本身,以及创建 BATMAN 网络所需的用户空间网络库和工具。
目前,创建接口并与其进行交互已经可以在 Linux 和 FreeBSD 的用户空间中工作,尽管数据包传输(部分)可以工作,但仍然不完整。该项目还在 ifconfig(8) 中添加了对 batadv 接口的支持。
导师:Mahdi Mokhtari
赞助商:2023 谷歌代码之夏项目
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
联系人:Warner Losh imp@bsdimp.com
链接:
LinuxBoot 项目网址:https://www.linuxboot.org/
BSDCan 2023 kboot 演讲幻灯片链接:https://docs.google.com/presentation/d/1N5Jp6XzYWv9Z9RhhETC-e6tFkqRHvp-ldRDW_9h2JCw/edit?usp=sharing
LinuxBoot 是一个致力于创建干净、健壮、可审计和可重复启动的启动固件的项目。最初是谷歌的一个特定项目,现已扩展到包括使用 Linux 来启动最终操作系统的任何启动环境。现在许多平台都支持这个环境,并且在某些情况下它是唯一可用的启动环境。此外,一些嵌入式设备上有一个硬编码的 LinuxBoot 环境,很难更改,因此能够重新启动到 FreeBSD 是有意义的。
旧的 Sony PlayStation 3 port 使用了一个名为 kboot
的引导加载程序来从其 Linux 内核启动 FreeBSD port(都是在 LinuxBoot 项目之前)。该代码已经大大扩展,并且通过易于替换的体系结构插件通用化。正常的 FreeBSD /boot/loader 被构建为 Linux 二进制文件,它读取 FreeBSD 内核、模块和可调整参数,并将它们放入内存,就像它在预启动环境中运行一样,然后使用 kexec_load(2) 将该映像加载到 Linux 内核中,并进行特殊的重新启动到该映像。对于支持 UEFI 的系统,它会传递 UEFI 内存表和指向 UEFI 运行时服务的指针给新内核。
它支持从主机文件系统、主机块设备上的任何 loader(8) 支持的文件系统(包括跨多个设备的池)、RAM 磁盘映像以及通过网络下载的文件加载文件。可以混合使用这些功能。例如,可以从主机文件系统加载配置覆盖,同时内核从专用存储(如 NVME)或 RAM 磁盘映像加载。它支持在 stdin/stdout 上运行的主机控制台。它支持显式位置,例如 /dev/nvme0ns1:/boot/loader/gerbil.conf
,用于加载文件系统的位置。它还支持 ZFS 引导环境,包括一次性引导功能。
有关 kboot 的更多详细信息,以及它支持的内容和一些常规背景,可以在 Warner 的 BSDcan 演讲中找到(上面链接的幻灯片)。
FreeBSD/aarch64 现在可以在 LinuxBoot 环境中从 Linux 启动,支持和功能与 loader.efi(8) 相当。内存布局传递用于 GICv3 补丁。需要为 aarch64 内核提供 GICv3 补丁(https://reviews.freebsd.org/D40902)。
FreeBSD/amd64 的支持正在进行中,可能已完成了 80%。由于 amd64 是一个较早的 port,amd64 引导环境对引导加载程序提供内核数据有更多要求。由于内核无法从长模式访问这些数据,所有 BIOS 环境中的数据来源都必须由引导加载程序提供。虽然 UEFI 和 ACPI 提供了让内核获取这些数据的方式,但许多数据仍然必须由引导加载程序提供。内核在初始化过程中会发生崩溃,因为这些前提条件尚未被发现和实现。
PowerPC 已经构建,但其状态未知。作者尝试获取合适的 PlayStation 3 证明过于耗时。
任务清单:
编写 loader.kboot(8) 文档,包括如何使用 loader.kboot,创建镜像以及当前支持的用例。
完成 amd64 平台的支持。
统一 kboot 和 efi 的 elf 架构特定元数据代码,目前是从 efi 复制的。由于它们大部分相同,但仍存在编译时的差异,因此需要进行统一。此外,构建基础设施使得共享变得复杂。
添加 riscv64 平台的支持。
进行 PowerPC 平台的测试(在重构开始后未进行测试)。
创建一个脚本,将 EDK-II 镜像(例如来自 QEMU)重新打包为一个包含在 FreeBSD 上构建的 Linux 内核的 linux-boot 镜像,以进行 CI 测试。
从 coreboot LinuxBoot 进行测试。
由 Netflix, Inc 赞助。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
影响操作系统基本系统和其中程序的修改。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接: OpenSSL 下载网址:https://www.openssl.org/source/
OpenSSL 3.0 已发布!网址:https://www.openssl.org/blog/blog/2021/09/07/OpenSSL3.Final/
openssl-fipsinstall 网址:https://www.openssl.org/docs/man3.0/man1/openssl-fipsinstall.html
联系人: Pierre Pronchery pierre@freebsdfoundation.org
Pierre 被委派将 OpenSSL 3 导入基础系统。
OpenSSL 是一个通用密码学和安全通信库。它提供了 SSL 和 TLS 网络协议的开源实现,在电子邮件、即时消息、VoIP(网络电话)等应用中被广泛使用,尤其是在全球网络(即 HTTPS)中。假设 Apache 和 nginx Web 服务器使用 OpenSSL,它们在 Web 流量中的综合市场份额超过 50%,这巩固了 OpenSSL 作为互联网基础设施的领导地位和关键重要性。
自 2016 年 8 月首次发布以来,OpenSSL 1.1 分支已被大多数 Linux 和 BSD 系统采用,并通过长期支持(LTS)政策得到上游维护者的支持。然而,官方支持计划在今年 9 月中旬结束,因此迫切需要考虑采用其继任者 OpenSSL 3.0 分支进行 LTS。
OpenSSL 已大幅超越其前身 SSLeay,现在拥有超过 50 万行代码(SLOC)分布在两千多个文件中。或许由此产生的结果是,它的构建系统相对复杂,通常需要 Perl,而 FreeBSD 自 FreeBSD 5.0-RELEASE 以来已经移除了 Perl。幸运的是,可以按照 FreeBSD 的方式导入和设置 OpenSSL 3.0.9,现在它已作为 FreeBSD 14.0-RELEASE 的计划的一部分包含在基本系统中。
形容 OpenSSL 3 为一个重大发布是轻描淡写的。首先,其问题的许可模型终于得到解决,完全转向了 Apache License 2.0。其次,OpenSSL 3 引入了提供者模块的概念。虽然已将过时的加密算法隔离到遗留模块中,但也可以将实现限制为 FIPS 的标准部分,并使用 fips 模块。然后,后者可以受益于专门的认证过程,并得到官方认证(就像写作时发布的 3.0.8 版本一样)。
此外,更新后的库进行了版本升级,因为使用 OpenSSL 1.1 的应用程序需要重新编译以使用 3.0 版本。许多 API 函数已被弃用,并用更新的、更通用的替代方案替换,但仍然可以显式地请求旧的 API,并由 OpenSSL 3 相应地提供它们。在 FreeBSD 中利用了这种可能性来帮助过渡,其中许多库和应用程序只是简单地配置为请求 OpenSSL 1.1 API。这些组件将逐步在未来更新,以使用 OpenSSL 3 的本机 API。
虽然更新会对处理小输入块大小时产生一定的性能影响,但在处理 1 KB 及以上大小的块时,影响较小。另一个挑战在于 FIPS 提供者模块,目前需要一些手动步骤才能使其正常工作。我们目前正在寻找一种解决方案,以便默认情况下在 FreeBSD 中提供一个功能齐全的 FIPS 提供者。
赞助商: The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
Linuxulator 状态 Wiki 页面网址:https://wiki.freebsd.org/Linuxulator
Linux 应用程序状态 Wiki 页面网址:https://wiki.freebsd.org/LinuxApps
联系人: Dmitry Chagin dchagin@FreeBSD.org
该项目的目标是改进 FreeBSD 执行未经修改的 linux(4) 二进制文件的能力。
截至 cbbac5609115,已实现在 amd64 上信号传递时保留 fpu xsave 状态。这使得可以在其中运行具有抢占式调度程序的现代 golang。
新的功能是在 namei(9)中添加了指定替代 ABI 根路径的功能。以前,要动态重新查找每个需要路径名转换的 linux(4)系统调用,需要一些不太美观的代码,并使用 kern_alternate_path()
,该函数在解析目标中带有前导/的符号链接时不起作用。现在,非本机 ABI(即 linux(4))在 exec 时使用一次 pwd_altroot()
调用来指定其根目录(例如 /compat/ubuntu
),并忽略路径名转换。这样可以在 Ubuntu 兼容性环境中进行 chroot,而无需手动修复此类符号链接。
总共修复了 10 多个错误;glibc-2.37 测试套件报告的失败测试少于 70 个。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
D40369: 扩展 /usr/bin/service
以设置环境变量的可能性 网址: https://reviews.freebsd.org/D40369
D40370: 自动加入 rc.d 服务的基础设施 网址: https://reviews.freebsd.org/D40370
D40371: 自动服务 jail:为在自动服务 jail 中实现服务的全部功能进行一些设置 网址: https://reviews.freebsd.org/D40371
联系人:Alexander Leidinger netchild@FreeBSD.org
Service Jail 扩展了 rc(8) 系统,允许自动将 rc.d 服务加入 jail。服务 jail 继承父主机或 jail 的文件系统,但默认情况下使用 jail 的所有其他限制(进程可见性、受限网络访问、文件系统挂载权限、sysvipc 等)。附加配置允许继承父级的 IP 地址、sysvipc、内存页锁定和使用 bhyve 虚拟机监视器(vmm(4))。
如果您想将例如 local_unbound 加入服务 jail 并允许 IPv4 和 IPv6 访问,只需更改 rc.conf(5)为:
尽管这不具有手动 jail 设置与单独的文件系统和 IP/VNET 相同的安全性好处,但设置要简单得多,同时提供像隐藏同一用户的其他进程等 jail 的某些安全性好处。
链接中的补丁是我在 2019 年所提供的重写。主要区别在于使用了一个 ENV 变量来进行更合理的跟踪,因此需要更改 service(8)。
我的意图是在 stable/14 分支之前提交 D40369。在发布 14.0 之前,我不会提交 D40370 或 D40371,并且两者都将受益于更多人的审查。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
ktrace 分支 网址: https://github.com/jakesfreeland/freebsd-src/tree/ff/ktrace
联系人:Jake Freeland jfree@FreeBSD.org
使用 ktrace(1) 进行 Capiscum 化
本报告介绍了对 ktrace(1) 的扩展,用于记录未进行 Capiscum 化的程序的能力违规情况。
在 Capiscum 化的第一步是确定您的程序在哪里引发了能力违规。您可以通过查看源代码并删除与 Capiscum 不兼容的代码来解决此问题,但这可能很繁琐,并要求开发人员熟悉在能力模式中不允许的所有内容。
另一种寻找违规的替代方法是使用 ktrace(1)。ktrace(1) 工具记录指定进程的内核活动。能力违规发生在内核内部,因此 ktrace(1) 可以使用 -t p
选项记录和返回有关程序违规的额外信息。
传统上,需要将程序放入能力模式,然后它们才能报告违规。当输入受限制的系统调用时,它将失败并返回 ECAPMODE: Not permitted in capability mode
。如果开发人员进行错误检查,那么他们的程序可能会以该错误终止。这种行为使得违规跟踪变得不方便,因为 ktrace(1)只会报告第一个能力违规,然后程序将终止。
幸运的是,ktrace(1) 的新扩展可以在程序没有进入能力模式时记录违规。这意味着任何开发人员都可以在其程序上运行能力违规跟踪而无需修改,以查看它引发违规的位置。由于程序实际上从未进入能力模式,因此它仍将获取资源并正常执行。
违规跟踪示例
下面显示的 cap_violate 程序尝试引发 ktrace(1)可以捕获的每种类型的违规:
前 7 个 system call not allowed
条目并不是显式地来自 cap_violate
程序代码。相反,它们是由 FreeBSD 的 C 运行时库引发的。当您使用 -t np
选项跟踪 namei 转换和能力违规时,这一点变得明显:
在实际情况下,能力模式总是在 C 运行时库的初始化后进入,因此程序永远不会触发这前 7 个违规行为。我们之所以看到它们,是因为 ktrace(1)在程序启动之前开始记录违规行为。
这个演示清楚地表明,违规跟踪并不总是完美的。它是检测受限制系统调用的有用指南,但可能并不总是模拟程序在能力模式下的实际行为。在能力模式下,违规等同于错误;它们是停止执行的指示。违规跟踪忽略了这一建议,无论如何继续执行,因此可能会报告无效的违规行为。
下一个示例从 unzip(1) 实用程序(在进行 Capsicum 化之前)跟踪违规行为:
unzip(1) 的违规跟踪输出更类似于开发人员在首次跟踪自己的程序时所看到的情况。大多数程序都会链接到库。在这种情况下,unzip(1)链接到 libarchive(3),这在追踪中反映了出来:
unzip(1) 的违规行为可以在 C 运行时违规行为之后找到:
在这种情况下,unzip(1) 正在重新创建 zip 归档中包含的文件结构。违规行为是因为在能力模式下不能使用 AT_FDCWD 值。这些违规行为的大部分可以通过在进入能力模式之前打开 AT_FDCWD(当前目录)并将该描述符传递给 openat(2)、fstatat(2)和 mkdirat(2)作为相对引用来解决。
虽然违规行为跟踪可能不会自动将程序 Capsicum 化,但它是开发者工具箱中的另一种工具。在 ktrace(1)下运行程序只需要几秒钟的时间,结果几乎总是一个不错的起点,用于使用 Capsicum 对程序进行沙盒化。
赞助:FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:nvmf2 branch 网址: https://github.com/bsdjhb/freebsd/tree/nvmf2
联系人: John Baldwin jhb@FreeBSD.org
NVMe over Fabrics(NVMe-oF)允许通过网络通信使用 NVMe 协议与存储设备交互。这类似于使用 iSCSI 通过网络导出存储设备并使用 SCSI 命令进行通信。
NVMe over Fabrics 目前定义了用于光纤通道、RDMA 和 TCP 的网络传输。
在 nvmf2 分支中的工作包括一个用户空间库(lib/libnvmf
),其中包含用于传输的抽象和 TCP 传输的实现。它还对 nvmecontrol(8)进行了更改,以添加“discover”、“connect”和“disconnect”命令来管理与远程控制器的连接。
该分支还包含一个内核中的 Fabrics 实现。nvmf_transport.ko
包含一个在 nvmf 主机(即 SCSI 中的 initiator)和各个传输之间的传输抽象。nvmf_tcp.ko
包含一个 TCP 传输层的实现。nvmf.ko
包含一个 NVMe over Fabrics 主机(initiator),它连接到远程控制器并将远程命名空间导出为磁盘设备。类似于 NVMe over PCI-express 的 nvme(4)驱动程序,命名空间通过 /dev/nvmeXnsY
设备导出,这些设备仅支持简单操作,同时还通过 CAM 导出为 ndaX 磁盘设备。与 nvme(4)不同,nvmf(4)不支持 nvd(4)磁盘驱动程序。nvmecontrol(8) 可用于处理远程命名空间和远程控制器,例如获取日志页、显示识别信息等。
请注意,nvmf(4) 目前还相对简单,有些错误情况仍在待办事项中。如果发生错误,队列(和后端网络连接)将被丢弃,但设备将保留,并暂停 I/O 请求。可以使用 nvmecontrol reconnect
命令连接一组新的网络连接以恢复操作。与使用持续型守护程序(iscsid(8))在错误后重新连接的 iSCSI 不同,重新连接必须手动进行。
当前的代码非常新,可能不太稳定。它肯定还没有准备好用于生产环境。有兴趣在 NVMe over Fabrics 上进行测试的有经验的用户,可以自行承担风险并开始测试。
下一个主要任务是实现一个 Fabrics 控制器(SCSI 中的 target)。可能首先是在用户空间中实现一个简单的控制器,然后再实现一个“真实”的控制器,将数据处理外包给内核,但与 ctld(8)有一定的集成,以便通过 iSCSI 或 NVMe 导出各个磁盘设备,或者通过使用单个配置文件和守护程序来管理所有这些。这可能需要在 ctld 中进行一些重构,使其不那么依赖 iSCSI。在控制器侧的工作还将验证在传输无关层中目前未经充分测试的 API 设计决策。在此步骤之后,可能才有意义将任何 NVMe over Fabrics 的更改合并到树中。
赞助:Chelsio Communications
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在内核子系统/功能、驱动程序支持、文件系统等方面的更新。
链接:
Wiki 页面 网址: https://wiki.freebsd.org/BootTime
BSDCan 演讲幻灯片 网址: https://www.bsdcan.org/events/bsdcan_2023/sessions/session/116/slides/44/BSDCan23-Firecracker.pdf
联系人: Colin Percival cperciva@FreeBSD.org
Colin 正在协调加快 FreeBSD 启动过程的工作。
最近的工作从 EC2 转向了 Firecracker 虚拟机管理器,该管理器提供了一个非常简化的环境;简化启动过程使得更容易识别剩余时间,并确定是否可以进一步优化。
通过对 FreeBSD 和 Firecracker 进行一些实验性补丁,现在可以在不到 20 毫秒的时间内启动 FreeBSD 内核。
Colin 在 BSDCan 上的“将 FreeBSD 移植到 Firecracker”演讲中讨论了最近的改进。
这项工作得到了他的 FreeBSD/EC2 Patreon 的支持。
赞助者: https://www.patreon.com/cperciva
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
联系人: Sudhanshu Mohan Kashyap smk@FreeBSD.org
FreeBSD 支持多种体系结构、文件系统和磁盘分区方案。我正在尝试编写一个 Lua 脚本,该脚本将允许测试所有支持的第一和第二级支持的体系结构组合的引导加载程序,并提供关于任何不兼容组合和预期功能的报告。如果时间允许,还可以进一步探索将脚本集成到现有的构建基础设施中(如 Jenkins 或 Github Actions),以生成测试结果的综合摘要。
目前,开发人员所做的任何更改可能会影响操作系统在某些特定环境中的启动能力。这些脚本确保更改不会导致已测试环境的回归。这些脚本的设计高效且比目前所需的完整构建更便宜。这些特性允许开发人员经常使用脚本,并在 CI 流水线中集成而不会产生过多的成本。
目前脚本相关的工作似乎进展顺利,但在未来我需要找到各种 QEMU 配置以测试不同的环境。如果有任何工作中的 QEMU 配方适用于当前发布版本的 FreeBSD,请随时通过邮件发送至 smk@FreeBSD.org。
赞助者: 2023 谷歌代码之夏项目
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
谷歌代码之夏项目维基页面 网址:https://wiki.freebsd.org/SummerOfCode2023Projects/PhysicalMemoryAntiFragmentationMechanisms Differential revision 40575 网址:https://reviews.freebsd.org/D40575 Differential revision 40772 网址:https://reviews.freebsd.org/D40772
联系人:Bojan Novković bnovkov@FreeBSD.org
大多数现代 CPU 架构通过支持大于标准页面大小的页面来提供性能提升。不幸的是,由于高度的物理内存碎片化,分配这种页面可能会失败。这项工作实现了物理内存压缩作为一种主动减少运行系统碎片化的手段。这项工作是正在进行的谷歌代码之夏项目的一部分,其目标是向虚拟内存子系统添加各种物理内存抗碎片化措施。
Differential D40575 实现了用于量化物理内存碎片化程度的众所周知的度量标准。 Differential D40772 实现了物理内存压缩,并添加了一个守护程序,监视系统并在需要时执行压缩。
计划的未来工作包括设计适当的基准测试套件,运行测试,并根据评审和测试结果调整代码。这仍然是一个正在进行的工作,因此非常欢迎进行任何测试、评审和反馈。
赞助者:2023 谷歌代码之夏项目
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
D36838:amd64:将 MAXCPU 从 256 增加到 1024 网址:https://reviews.freebsd.org/D36838
联系人:Ed Maste emaste@FreeBSD.org
默认的 amd64 和 arm64 FreeBSD 内核配置目前支持最多 256 个 CPU。可以通过设置 MAXCPU
内核选项来构建支持更大核心数的自定义内核。然而,拥有超过 256 个 CPU 的普通系统正在变得越来越多,并且在 FreeBSD 14 的支持生命周期中将变得越来越常见。我们希望将默认的最大 CPU 数增加到 1024,以便在 FreeBSD 14 上“开箱即用”地支持这些系统。
为了支持更大的默认 MAXCPU,进行了一些更改,包括将 cpuset_t
的用户空间最大值修复为 1024。还进行了一些更改,以避免静态的 MAXCPU
大小的数组,将它们替换为按需内存分配。
需要进一步的工作来继续减少由 MAXCPU
大小确定的静态分配,并解决在非常高核心数系统上的可伸缩性瓶颈,但目标是在 FreeBSD 14 发布时提供对大型 CPU 数量的支持,具有稳定的 ABI 和 KBI。
赞助者:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
Wiki 页面 网址:https://wiki.freebsd.org/SummerOfCode2023Projects/PortSquashFuseToTheFreeBSDKernel
源代码 网址:https://github.com/Mashijams/freebsd-src/tree/gsoc/squashfs
联系人:Raghav Sharma raghav@FreeBSD.org
SquashFS 是一个只读文件系统,可以非常高效地压缩整个文件系统或单个目录。自 2009 年以来,Linux 内核内置了对它的支持,并在嵌入式 Linux 发行版中非常常见。该项目的目标是为 FreeBSD 内核添加 SquashFS 支持,以实现从内存中的 SquashFS 文件系统引导 FreeBSD。
目前,该驱动程序与 FreeBSD 13.2 版本兼容。该驱动程序能够正确解析 SquashFS 磁盘文件,并支持工作中的 mount(8)。Linux SquashFS 支持许多压缩选项,如 zstd、lzo2、zlib 等,根据用户的喜好选择,我们的驱动程序也支持所有这些压缩方式。
计划的未来工作包括添加对目录、文件、扩展属性和符号链接的读取支持。该项目仍在 Chuck Tuffli 的指导下进行中,并预计将在谷歌代码之夏项目结束时完成。
赞助者:2023 谷歌代码之夏项目
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
D40911 网址:https://reviews.freebsd.org/D40911
D40861 网址:https://reviews.freebsd.org/D40861
D40862 网址:https://reviews.freebsd.org/D40862
D40863 网址:https://reviews.freebsd.org/D40863
D40864 网址:https://reviews.freebsd.org/D40864
D40865 网址:https://reviews.freebsd.org/D40865
D40866 网址:https://reviews.freebsd.org/D40866
D40867 网址:https://reviews.freebsd.org/D40867
D40868 网址:https://reviews.freebsd.org/D40868
D40869 网址:https://reviews.freebsd.org/D40869
D40870 网址:https://reviews.freebsd.org/D40870
联系人:Kajetan Staszkiewicz vegeta@tuxpowered.net
联系人:Naman Sood naman@freebsdfoundation.org
联系人:Kristof Provost kp@FreeBSD.org
pf(4)是 FreeBSD 中包含的防火墙之一,也可能是最受欢迎的。pf 最初由 OpenBSD 项目创建,后来移植到 FreeBSD。
OpenBSD 语法的向后兼容
Kajetan 引入了"scrub"操作的 OpenBSD 语法在"match"和"pass"规则中。现有规则仍然受支持,但现在也支持 OpenBSD 风格的"scrub"配置。
pfsync 协议版本
现在可以配置 pfsync(4)协议版本,允许在支持不同内核版本之间的状态同步的同时进行协议更改。主要好处是允许协议更改以实现新功能。
pfsync:在 IPv6 上传输
pfsync 流量现在也可以通过 IPv6 进行传输。Naman 完成了 Luiz Amaral 开始的工作。
SCTP
正在进行支持 pf 中的 SCTP 工作。该支持包括对端口号的过滤、状态跟踪、pfsync 故障转移以及返回 ABORT 块以拒绝连接。
赞助:InnoGames GmbH 赞助:Orange Business Services 赞助:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
原始项目页面 网址:link:https://wiki.freebsd.org/projects/ifnet
联系人:Justin Hibbits jhibbits@FreeBSD.org
IfAPI(原名 DrvAPI)项目始于 2014 年,其目标是隐藏网络驱动程序中的 ifnet(9) 结构。相反,所有对成员的访问都将通过访问器函数进行。这允许更改网络堆栈而无需重新编译驱动程序,还有可能让单个驱动程序支持多个 FreeBSD 版本。
目前,在基本系统中已经实现了这一目标,但是还需要更新一些 port 来使用 IfAPI。有一个工具可以自动完成大部分的转换,即 tools/ifnet/convert_ifapi.sh
。文档也正在准备中,但可能需要帮助。ifnet(9)需要进行大量的清理,因为目前其中的一些信息已经过时了。
赞助:Juniper Networks, Inc.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
维基页面网址:https://wiki.freebsd.org/SummerOfCode2023Projects/LocklessSynchronizationBetweenNodesInNetgraph
仓库网址:https://github.com/zinh88/epoch-netgraph
联系人:Zain Khan zain@FreeBSD.org
Netgraph 帮助我们通过将内核对象(称为节点)排列在连接的图中,使用钩子连接它们,从而实现自定义或复杂的网络功能。节点可以对传入的数据包执行一组明确定义的操作,并将输出发送到另一个连接的节点。将数据包“发送”给相邻节点也可以看作在那个相邻节点上调用函数。
在非 SMP 世界中,一个线程(或该线程)总是将节点视为空闲(未繁忙),以便可以立即调用其函数。并发引入了繁忙节点的可能性。此外,数据包的传输也需要注意图的结构的变化,例如:由于不存在的钩子或节点,寻址节点的路径可能不会保持完整,这可能导致引用已被释放的对象的情况。为了防止这种情况,现有的源代码使用了拓扑读写互斥锁来保护数据流不受重构事件的影响(以及重构事件不受其他重构事件的影响)。
我们希望恢复并发 CPU 不存在时存在的相同的数据流程。也就是说,每次发生重构事件时,数据应该根本不需要等待。同时,我们显然也不希望给内核理由导致崩溃。
FreeBSD 拥有一套自己的并发安全数据结构和机制。其中一个机制就是 Epoch。基于 Epoch 的回收涉及等待现有的读侧临界区完成,然后再修改或回收数据结构。
由于正在修改基本系统,这也将影响之前所做的设计选择,例如消息排队、引用计数等。
这个项目涉及大量的测试。目前,一些拓扑保护锁已经被移除,并且只测试了简单的图(在 VM 上运行 FreeBSD)。真正的测试应该在至少有 4 个 CPU 核心的硬件上运行,我会在得到一台这样的设备时进行测试。
赞助:2023 谷歌代码之夏项目
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
更新特定平台的功能,并为新的硬件平台提供支持。
链接:
SIMD 调度框架草案 网址:https://reviews.freebsd.org/D40693
项目提案 网址:http://fuz.su/~fuz/freebsd/2023-04-05_libc-proposal.txt
联系人:Robert Clausecker clausecker@FreeBSD.org
SIMD 指令集扩展,如 SSE、AVX 和 NEON,在现代计算机上普遍存在,并为许多应用程序提供性能优势。该项目的目标是为常见的 libc 函数(主要是 string(3)中描述的函数)提供 SIMD 增强版本,加速大多数 C 程序的执行。
对于每个优化的函数,将提供多达四种实现:
标量实现,针对 amd64 进行了优化,但没有使用 SIMD。
基准实现,使用 SSE 和 SSE2 或者使用 x86-64-v2,涵盖了 SSE4.2 之前的所有 SSE 扩展。
使用 AVX 和 AVX2 的 x86-64-v3 实现。
使用 AVX-512F/BW/CD/DQ 的 x86-64-v4 实现。
用户可以通过设置 AMD64_ARCHLEVEL 环境变量来选择要使用的 SIMD 增强级别。
虽然当前的项目只涉及 amd64 架构,但未来可能会扩展到其他架构,如 arm64。
赞助:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
维基文章 网址:https://wiki.freebsd.org/SummerOfCode2023Projects/IntegrateMfsBSDIntoTheReleaseBuildingTools
项目存储库(integrate-mfsBSD-building 分支)网址:https://github.com/soobinrho/freebsd-src/tree/integrate-mfsBSD-building
联系人:Soobin Rho soobinrho@FreeBSD.org
什么是 mfsBSD?
"mfsBSD 是一个工具集,用于创建基于 FreeBSD 的小型但功能齐全的 mfsroot 发行版,它将所有文件存储在内存中(MFS)[内存文件系统],并从硬盘、USB 存储设备或光盘加载。它可以用于各种目的,包括无盘系统、恢复分区以及远程覆盖其他操作系统。"
Martin Matuska 既是 mfsBSD 白皮书的作者,也是 mfsBSD 存储库的维护者。
目的
该项目在 src/release makefile 中为当前版本和稳定版本的 mfsBSD 映像创建额外的目标。目前,只生产发布版本的 mfsBSD 映像,这意味着它们往往与基本工具不同步。该项目旨在解决这个问题。
位置
这是 2023 年的谷歌代码之夏项目。因此,官方的编码期限是从 2023 年 5 月 29 日到 2023 年 8 月 28 日。作为开源社区的初学者,作者欢迎在项目存储库中提出所有的意见、建议和拉取请求,该存储库将是整个期间内所有代码的位置。
导师:Juraj Lutter和 Joseph Mingone
赞助:2023 谷歌代码之夏项目
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
更新特定于云环境的功能,并为新的云平台提供支持。
链接:
cloud-init 网站网址:https://cloud-init.io/
cloud-init 文档网址:https://cloudinit.readthedocs.io/en/latest/
cloud-init 正在进行的重构网址:https://github.com/canonical/cloud-init/blob/main/WIP-ONGOING-REFACTORIZATION.rst
联系人:Mina Galić freebsd@igalic.co
cloud-init 是在云中配置服务器的标准方式。不幸的是,除了 Linux 以外的操作系统对 cloud-init 的支持一直相对较差,而在 FreeBSD 上缺乏 cloud-init 支持阻碍了希望将 FreeBSD 作为一级平台的云提供商。为了解决这个问题,该项目旨在使 FreeBSD 的 cloud-init 支持与 Linux 支持相当。更广泛的计划是在所有 BSD 上提供支持。
这个季度进展缓慢,但我已经完成了一个新的里程碑:
瞬时网络类别已被重写并与平台无关。这些类别被多个云提供商用于在检索实际配置之前初始化临时网络。
cloud-init 已经在 Vultr 上成功测试。我希望在下一个 RELEASE 版本中,我能说服 Vultr 将他们的 FreeBSD 镜像切换到 cloud-init。
除此之外,我还扩展了 BSD 上的 rsyslog 支持。我还为 cloud-init 的 ds-identify 添加了一个 rc 脚本,这应该使零配置设置的速度提高几个数量级:ds-identify 首先运行,并快速猜测机器正在运行的云提供商。然后 cloud-init 仅使用该猜测,而不是在所有可能的云提供商列表中进行迭代和失败。构建自定义映像的人可以轻松禁用此功能(通过删除 /usr/local/etc/rc.d/dsidentify
),并自己提供一个特定的列表,从引导中节省几毫秒的时间。
接下来的步骤将是继续处理网络重构任务,并为 FreeBSD 添加 LXD 支持,以便可以将其包含在 CI 测试中。后者将涉及对 LXD 的工作,以及对 FreeBSD virtio 子系统的工作。
与往常一样,我非常欢迎早期测试者检查 net/cloud-init-devel,并报告 bug。自上次报告以来,cloud-init 的 bug 跟踪器已从 Launchpad 迁移到 GitHub,因此这可能会减少一些摩擦。
赞助商:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
OpenStack 网站 网址:https://www.openstack.org/
FreeBSD 上的 OpenStack 网址:https://github.com/openstack-on-freebsd
联系人:Chih-Hsin Chang starbops@hey.com
联系人:Li-Wen Hsu lwhsu@FreeBSD.org
该项目旨在将关键的 OpenStack 组件,如 keystone、nova 和 neutron,移植到 FreeBSD,使其可以作为 OpenStack 主机运行。
我们已经开始移植 nova-novncproxy
和 nova-serialproxy
,以增加访问实例控制台的方式。为了降低想要尝试该项目的人的门槛,我们还将开发环境从物理机迁移到虚拟机。但在 Linux KVM 之上运行 bhyve 虚拟机仍然存在问题。关于这个问题的详细解释可以在这里找到。其他的成就包括:
解决实例内部的网络连接问题
能够生成多个实例
从 Python 3.8 移植到 3.9。
在下个季度,我们将继续改进控制台代理服务,以使整体工作流更加流畅。
在文档存储库中还可以找到构建 POC 站点的逐步文档。每个 OpenStack 组件的修补版本都在同一 GitHub 组织下。
有兴趣帮助该项目的人可以先按照安装指南检查文档。欢迎提供反馈和帮助。
赞助商:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
Microsoft Azure 上的 FreeBSD Wiki 文章网址:https://wiki.freebsd.org/MicrosoftAzure
Microsoft HyperV 上的 FreeBSD Wiki 文章网址:https://wiki.freebsd.org/HyperV
联系人:Microsoft FreeBSD Integration Services 团队 bsdic@microsoft.com
联系人:freebsd-cloud 邮件列表
联系人:The FreeBSD Azure Release Engineering Team releng-azure@FreeBSD.org
联系人:Wei Hu whu@FreeBSD.org
联系人:Souradeep Chakrabarti schakrabarti@microsoft.com
联系人:Li-Wen Hsu lwhsu@FreeBSD.org
在本季度,我们主要在 ARM64 架构支持以及构建和发布到 Azure 社区库的镜像方面进行了工作。项目的测试公共库中提供了一些测试镜像,命名为FreeBSDCGTest-d8a43fa5-745a-4910-9f71-0c9da2ac22bf
:FreeBSD-CURRENT-testing FreeBSD-CURRENT-gen2-testing FreeBSD-CURRENT-arm64-testing
要使用它们,在创建虚拟机时: . 在 Select an Image
步骤中,在 Other items
中选择 Community Images (PREVIEW)
. 搜索 FreeBSD
正在进行中的任务:
自动化镜像构建和发布过程,并合并到 src/release/。
构建和发布基于 ZFS 的镜像到 Azure Marketplace
所有所需的代码都合并到主分支,可以通过指定 VMFS=zfs 来创建基于 ZFS 的镜像。
需要将构建过程更加自动化,并与发布工程合作开始生成快照。
构建和发布 Hyper-V gen2 VM 镜像到 Azure Marketplace
构建和发布快照版本到 Azure 社区库
以上任务由 The FreeBSD Foundation 赞助,并由 Microsoft 提供资源。
Microsoft 的 Wei Hu 和 Souradeep Chakrabarti 正在进行由 Microsoft 赞助的几项任务:
将 Hyper-V 客户机支持移植到 aarch64 -https://bugs.freebsd.org/267654 -https://bugs.freebsd.org/272461
待办任务:
更新 Microsoft Learn 上与 FreeBSD 相关的文档
在 Azure Pipelines 中支持 FreeBSD
将 Azure 代理 port更新到最新版本
同步上游本地修改 Azure 代理
赞助商:Microsoft 负责 Microsoft 人员的赞助和其他资源,The FreeBSD Foundation 负责其他方面的赞助。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD/EC2 Patreon 网址:https://www.patreon.com/cperciva
联系人:Colin Percival cperciva@FreeBSD.org
FreeBSD 可在 x86(Intel 和 AMD)和 ARM64(Graviton)EC2 实例上使用。继续努力确保即将推出的实例类型得到支持,包括最近宣布的 M7a“EPYC”实例,预计将在 FreeBSD 14.0-RELEASE 中得到支持。
最近,每周的 FreeBSD 快照从“UEFI”引导模式更改为“UEFI Preferred”引导模式,允许它们获得 UEFI 提供的引导性能改进,同时仍然支持与 UEFI 不兼容的“裸机”和“前代”实例类型。这一变化将在 FreeBSD 14.0-RELEASE 中出现。
EC2 引导脚本最近已更新以支持 IMDSv2。这一变化将在 FreeBSD 14.0-RELEASE 中出现。
如果 FreeBSD 13.2 的用户需要这些更新中的任何一项,作者可以提供 FreeBSD“13.2-RELEASE 加更新” AMI。
此工作得到 Colin 的 FreeBSD/EC2 Patreon 的支持。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
文档、手册页面或新的外部书籍/文件中值得注意的变化。
链接:FreeBSD 文档项目 网址:https://www.freebsd.org/docproj
链接:FreeBSD 文档项目新贡献者入门指南 网址:https://docs.freebsd.org/en/books/fdp-primer/
链接:文档工程团队 网址:https://www.freebsd.org/administration/#t-doceng
联系人:FreeBSD 文档工程团队 doceng@FreeBSD.org
doceng@ 团队负责处理与 FreeBSD 文档项目相关的一些元项目问题;有关更多信息,请参阅 FreeBSD Doceng Team Charter(FreeBSD Doceng 团队章程)。
在本季度:
已任命 fernape@ 为新的 Doceng 团队成员。
由于 www/gohugo 是我们文档基础设施的关键部分,该 port 的维护权已转移到 doceng@。我们与前任维护者达成了一致意见。
改进了翻译工作流程(在下面的章节中描述)。
Porter's Handbook(Port 开发者手册)
已记录 USES=nextcloud。
FDP Primer
FreeBSD 文档项目新贡献者入门指南添加了一个新的章节,重点关注 Weblate。这个全面的章节提供了逐步指导,帮助加入 FreeBSD 翻译团队,无论是在线在 Weblate 上翻译还是离线。它提供了有关高效翻译、校对和测试过程的宝贵见解和实用建议。此外,这一章节还为贡献者提供了必要的知识,以正式提交他们的翻译到文档存储库,确保无缝集成他们的工作。
FreeBSD 在 Weblate 上的翻译
链接:在 Weblate 上翻译 FreeBSD 网址:https://wiki.freebsd.org/Doc/Translation/Weblate
链接:FreeBSD Weblate 实例 网址:https://translate-dev.freebsd.org/
2023 年第二季度状态
15 种语言
183 名注册用户
FreeBSD Weblate 实例现在运行在专用服务器上,大大提高了速度,并增强了翻译工作的效率。我们衷心感谢 ebrandi@提供的硬件升级。
语言
简体中文(zh-cn)(进度:7%)
繁体中文(zh-tw)(进度:3%)
荷兰语(nl)(进度:1%)
法语(fr)(进度:1%)
德语(de)(进度:1%)
印度尼西亚语(id)(进度:1%)
意大利语(it)(进度:5%)
韩语(ko)(进度:32%)
挪威语(nb-no)(进度:1%)
波斯语(fa-ir)(进度:3%)
波兰语(进度:1%)
葡萄牙语(pt-br)(进度:22%)
僧伽罗语(si)(进度:1%)
西班牙语(es)(进度:33%)
土耳其语(tr)(进度:2%)
我们要感谢所有贡献者,无论是翻译还是审查文档。
请帮助在您的当地用户组宣传这项工作,我们总是需要更多的志愿者。
FreeBSD 手册工作组
联系人:Sergio Carlavilla carlavilla@FreeBSD.org
FreeBSD 网站改版- WebApps 工作组
联系人:Sergio Carlavilla carlavilla@FreeBSD.org
负责创建新的 FreeBSD 文档门户网站,并重新设计 FreeBSD 主网站及其组件的工作组。FreeBSD 开发人员可以在 FreeBSD Slack 频道# wg-www21 上关注和加入工作组。工作分为四个阶段:
文档门户的重新设计
创建一个新的设计,响应式设计,并具有全局搜索功能。(已完成)
网页上手册页面的重新设计
使用 mandoc 生成 HTML 页面的脚本。(已完成)在 https://man-dev.FreeBSD.org 上提供公共实例。
网页上 Ports 页面的重新设计
Ports 脚本以创建一个应用程序门户。(正在进行中)
FreeBSD 主网站的重新设计
新设计,响应式设计和深色主题。(正在进行中)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
影响 Ports 的变化,无论是涉及大部分树的全面性变化,还是个别 port 本身的变化。
链接:
KDE/FreeBSD 计划网址:https://freebsd.kde.org/
FreeBSD — KDE 社区维基网址:https://community.kde.org/FreeBSD
联系人:Adriaan de Groot kde@FreeBSD.org
KDE on FreeBSD 项目将 CMake、Qt 和来自 KDE 社区的软件打包到 FreeBSD 的 Ports 中。这些软件包括了一个完整的桌面环境,名为 KDE Plasma(适用于 X11 和 Wayland),以及数百个可在任何 FreeBSD 机器上使用的应用程序。
KDE 团队(kde@)是 desktop@和 x11@的一部分,构建软件堆栈,使 FreeBSD 成为漂亮且可用作日常图形桌面工作站的系统。下面的说明主要描述了与 KDE 有关的 port,但也包括整个桌面堆栈中重要的项目。
基础设施
Qt5 port 进行了各种更新:
devel/qt5-webengine 在使用 Clang 16 进行构建时进行了修复。这是为了准备即将发布的 FreeBSD 14。
devel/qt5-qmake 进行了修复,以解决在否则不安装 Qt 的系统上安装 qmake 会导致奇怪错误的问题。
Qt6 port 进行了各种更新:
devel/qt6-tools 在使用 Clang 16 进行构建时进行了修复。这是为了准备即将发布的 FreeBSD 14。
accessibility/at-spi2-core port ——桌面上的辅助技术的重要组成部分——更新到版本 2.48.0。
accessibility/at-spi2-core port 现在更好地支持非 X11 桌面。这对于基于 Wayland 的系统是一个改进。感谢 Jan Beich 的工作。
graphics/poppler port ——许多 PDF 查看器的基础——更新到版本 23.05。
ports-mgmt/packagekit-qt port 是新添加的,为 FreeBSD 上的图形化包管理器铺平了道路。
KDE 堆栈
KDE Gear 每个季度发布,KDE Plasma 每月更新,KDE Frameworks 每月发布一次。这些(大规模)更新在其上游发布后不久就会实现,不会单独列出。
KDE Frameworks 更新至 5.105、.106 和.107。
KDE Gear 更新至 23.04.0,然后是.1 和.2,包含错误修复。
KDE Plasma Desktop 更新至版本 5.27.4,然后是.5 和.6,包含错误修复。
相关 port
弃用:
graphics/ikona,一个使用 Rust 和 Qt 绑定编写的图标查看器,已经被上游弃用。
polish/kadu,曾在波兰很受欢迎的聊天应用程序,已被弃用,上游消失了。
sysutils/plasma5-ksysguard,一个系统监控应用程序,已经被上游弃用,将不再更新。
更新:
astro/kstars,一个交互式天文馆,更新至版本 3.6.4。
devel/qcoro,一个 C++ 协程实现,更新至版本 0.9.0。
devel/qtcreator,一个用于 Qt、C++ 等的集成开发环境,更新至版本 10.0.2。
games/gcompris-qt,一个针对 3-12 岁儿童的教育套件,更新至版本 3.2。
graphics/kphotoalbum,一个照片相册和显示实用程序,更新至版本 5.10.0。
net-im/tokodon,一个 Mastodon 社交网络客户端,加入了 KDE Gear。
textproc/kdiff3,一个文本差异工具,更新至版本 1.10.1。
新增软件:
devel/kommit,一个 Git 客户端,已添加。它是先前 gitklient 的改名。
multimedia/kasts 是 KDE 社区的一个新的播客收听和享受应用程序。
textproc/arianna 是 KDE 社区的一款面向移动设备的电子书阅读器,使阅读 FreeBSD 文档变得愉悦。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
GCC 项目 网址:https://gcc.gnu.org/
GCC 10 版本系列 网址:https://gcc.gnu.org/gcc-10/>
GCC 11 版本系列 网址:https://gcc.gnu.org/gcc-11/
GCC 12 版本系列 网址:https://gcc.gnu.org/gcc-12/
GCC 13 版本系列 网址:https://gcc.gnu.org/gcc-13/
联系人:Lorenzo Salvadore salvadore@FreeBSD.org
上游发布了 GCC 13。如前面的状态报告中宣布的,我计划尝试在第一个 GCC 13 版本中更新 GCC_DEFAULT,因此本季度的大部分工作都是为此做准备。
随着 GCC 13.1 的发布(第一个 GCC 13 版本:我提醒一下,GCC 从 1 开始计算小版本号),在 ports 中创建了两个新 port:
lang/gcc13,跟踪 GCC 13 版本;
lang/gcc14-devel,跟踪新的 GCC 14 上游分支的快照。
*-devel port
已启用对 .init_array 和 .fini_array 的支持。FreeBSD 自 83aa9cc00c2d 提交开始就支持这两个功能。
i386、amd64 和 aarch64 上的默认 bootstrap 选项从 LTO_BOOTSTRAP 回滚为 STANDARD_BOOTSTRAP:
LTO 引导在这些架构上产生了太多的失败
对于希望使用 LTO_BOOTSTRAP 的用户,LTO_BOOTSTRAP 仍然可用。
这些更改将被应用到生产 port 中。
生产 port
上游已发布了 GCC 13,为此创建了新 port lang/gcc13。GCC 11 和 GCC 12 已在上游更新,计划发布 GCC 10 的新版本。现在需要更新所有相应的 port。
为了方便 port 维护者和用户的工作,我计划同时测试和更新以下所有更改:
更新 lang/gcc10、lang/gcc11、lang/gcc12;
将 GCC_DEFAULT 更新为 13;
在生产 port 上启用.init_array 和.fini_array;
将生产 port 从 LTO_BOOTSTRAP 切换回 STANDARD_BOOTSTRAP。
这将带来以下优势:
更少的 exp 运行进行更多的测试;
对于 ports 用户来说,需要的构建更少。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
Puppet 网址: https://puppet.com/docs/puppet/latest/puppet_index.html
联系人:Puppet 团队 puppet@FreeBSD.org
Puppet 是一款自由软件的配置管理工具,由一个可信的源(Puppet Server)组成,它用领域特定语言描述机器的预期配置,以及在每个节点上运行的代理(Puppet Agent),用于强制实际配置与预期配置相匹配。可以设置一个可选的数据库(PuppetDB)用于报告和描述高级模式,其中一个机器的配置依赖于另一个机器的配置。
Puppet 团队正在维护 Puppet 和相关工具的 ports。
最近发布了 Puppet 8,并已添加到 ports 树中。
Puppet 6 已达到生命周期终点,并已被弃用。它现在已过期。因此,建议使用 Puppet 6 的用户更新到 Puppet 7 或 Puppet 8。
目前,Puppet 7 仍然是 ports 中依赖于 Puppet 的 port 的默认版本。Puppet 社区正在努力确保各种 Puppet 模块与最新代码兼容,在撰写本报告时,更新到 Puppet 8 可能会有一些挑战。情况每天都在好转,我们预计在几个月后,当模块更新的浪潮结束时,将切换到 Puppet 8 作为 Puppet 的默认版本。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
MITRE Caldera 网址: https://caldera.mitre.org/
Red Canary 网址: https://www.redcanary.com/
联系人:José Alonso Cárdenas Márquez acm@FreeBSD.org
MITRE Caldera 是一个网络安全平台,旨在轻松自动化对手仿真,协助手动红队活动,并自动化事件响应。
它建立在 MITRE ATT&CK® 框架上,是 MITRE 的一个积极研究项目。
MITRE Caldera(security/caldera)于 2023 年 4 月添加到了 ports 中。这个 port 包含了对 MITRE Caldera atomic 插件使用的 Atomic Red Team 项目的支持。
这项工作的主要目标是提高 FreeBSD 作为信息安全或网络安全有用平台的可见性。
此外,您可以使用 https://github.com/alonsobsd/caldera-makejail 或 https://github.com/AppJail-makejails/caldera 来测试MITRE Caldera 基础设施。AppJail 是一个用于从命令行管理 jail 容器的好工具。
欢迎有兴趣参与该项目的人提供帮助。
当前版本:4.2.0
待办事项:
添加 Caldera 测试基础设施 makejail。
将 FreeBSD 添加到 MITRE Caldera 官方支持的平台中,请参见 https://github.com/mitre/caldera/pull/2752。
将 FreeBSD 添加到 Red Canary 官方支持的平台中,请参见 https://github.com/redcanaryco/atomic-red-team/pull/2450。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
Wazuh 网址: https://www.wazuh.com/
联系人:José Alonso Cárdenas Márquez acm@FreeBSD.org
Wazuh 是一个免费且开源的平台,用于威胁预防、检测和响应。它能够保护在本地部署、虚拟化、容器化和云环境中的工作负载。
Wazuh 解决方案由部署在被监控系统上的终端安全代理和收集和分析代理收集的数据的管理服务器组成。Wazuh 的特性包括与 Elastic Stack 和 OpenSearch 的完全集成,通过这些工具,用户可以浏览安全警报。
Wazuh 在 FreeBSD 上的移植由 Michael Muenz 开始。他在 2021 年 9 月将 Wazuh 首次添加到 ports 树中,即 security/wazuh-agent。在 2022 年 7 月,我接手了这个 port 的维护,并开始移植其他 Wazuh 组件。
目前,所有的 Wazuh 组件都已经移植或适配:security/wazuh-manager、security/wazuh-agent、security/wazuh-server、security/wazuh-indexer 和 security/wazuh-dashboard。
在 FreeBSD 上,security/wazuh-manager 和 security/wazuh-agent 是从 Wazuh 源代码编译而来的。security/wazuh-indexer 是一个适配后的 textproc/opensearch,用于存储代理数据。security/wazuh-server 包含针对 FreeBSD 的配置文件适配。运行时依赖项包括 security/wazuh-manager、sysutils/beats8 (filebeat) 和 sysutils/logstash8。security/wazuh-dashboard 使用了一个适配后的 textproc/opensearch-dashboards 和从 wazuh-kibana-app 源代码生成的 FreeBSD 版本的 wazuh-kibana-app 插件。
这项工作的主要目标是提高 FreeBSD 作为信息安全或网络安全有用平台的可见性。
此外,您可以使用 https://github.com/alonsobsd/wazuh-makejail 或 https://github.com/AppJail-makejails/wazuh 来轻松测试 Wazuh 单节点基础设施(All-in-one)。AppJail 是一个用于从命令行管理 jail 容器的好工具。
欢迎有兴趣参与该项目的人提供帮助。
当前版本:4.4.4
待办事项:
添加 Wazuh 集群模式基础设施 makejail(正在进行中)
将 FreeBSD 添加到 Wazuh Inc 官方支持的平台中,请参见 https://github.com/wazuh/wazuh-kibana-app/pull/5413
添加 FreeBSD SCA 策略(正在进行中)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
许多项目构建在 FreeBSD 之上或将 FreeBSD 组件纳入其项目中。由于这些项目可能对更广泛的 FreeBSD 社区感兴趣,因此我们有时在季度报告中包含这些项目提交的简要更新。FreeBSD 项目对这些提交中的任何声明的准确性或真实性不作任何陈述。
链接:
网站网址: https://alpha.pkgbase.live/
源代码网址: https://codeberg.org/pkgbase
联系人:Mina Galić freebsd@igalic.co
PkgBase.live,一个非官方的 FreeBSD PkgBase 项目存储库,已经恢复正常运行。
PkgBase.live 这项服务灵感来自于 https://up.bsd.lv/,它为 STABLE 和 CURRENT 分支提供了 freebsd-update(8) 的服务。up.bsd.live 本身已经暂停运行,所以这就更有理由重新启动 PkgBase.live。
目前,我们为以下平台提供构建:
FreeBSD 13.2-RELEASE
FreeBSD 13-STABLE
FreeBSD 14-CURRENT
每个平台又分为以下架构:
amd64
aarch64
armv7
i386
你可能会注意到 RISCv64 目前暂时不可用。
硬件是在 Vultr 上的一台强大的 VPS。服务器和运行构建作业和提供软件包的 jail 是“自托管”的,这意味着它们安装并且保持更新,使用的是 PkgBase。
由于我们还没有弄清楚如何在 FreeBSD jails 中配置 Vultr 的 IPv6,PkgBase.live 目前不支持 IPv6。如果您对此有经验,请与我们联系!
除了用户和测试者外,我们仍然非常鼓励其他人进行复制和模仿。
PkgBase 的硬件由 FreeBSD 社区的一名成员慷慨赞助。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
Pot 在 GitHub 上的组织 网址: https://github.com/bsdpot
联系人:Luca Pizzamiglio (Pot) pizzamig@FreeBSD.org
联系人:Bretton Vine (Potluck) bv@honeyguide.eu
联系人:Michael Gmelin (Potman) grembo@FreeBSD.org
Pot 是一个支持通过 Nomad 进行编排的 FreeBSD Jail 管理工具。
在本季度,发布了 Pot 0.15.5 版本,其中包含了一些来自多位贡献者的错误修复和特性,用于设置属性(即 Jail 的 sysctl 变量)。它将在 2023Q3 季度软件包集中提供。
Potluck 的目标是成为 FreeBSD 和 Pot 的 Dockerhub:一个 Pot 流派和完整容器映像的存储库,可在 Pot 中使用,并在许多情况下支持 Nomad。
所有 Potluck 容器都已重新构建为基于 FreeBSD 13.2 的映像,并使用 Pot signify 进行签名。
编写了《使用 Ansible、Pot 等在 FreeBSD 上构建虚拟数据中心的初学者指南》,其中解释了如何使用 Ansible playbooks 部署基于 Pot 和 Potluck 的复杂环境,包括示例节点(如 MariaDB、Prometheus、Grafana、nginx、OpenLDAP 或 Traefik),以及由 Nomad 和 Consul 管理的容器编排。
Pot 团队提交的一个改进 Nomad 安全性的补丁(Nomad 是支持通过 sysutils/nomad-pot-driver 进行 Pot 编排的调度程序和编排工具)已被上游接受,并将成为 Nomad 1.6.0 的一部分。
如常,欢迎提供反馈和补丁。
赞助商:Honeyguide Group
警告
这个页面目前是机器翻译。
报告原文:FreeBSD Status Report First Quarter 2024
下文是 2024 年的第一份状态报告,共包含 21 项内容。
新年带来了许多有趣的新项目,例如新的 libsys
库,它将系统调用与 libc
和 libpthread
分离,以及 FreeBSD 图形安装器的开发工作,这将有助于使我们的操作系统更加用户友好。当然,常规项目仍在继续,例如 cloud-init、OpenStack 和 GCC Ports的相关工作。正如往常一样,我们的主要团队与我们分享了他们的进展。
祝您阅读愉快!
Lorenzo Salvadore 代表状态团队敬上。
以下是来自各个官方和半官方团队的报告,见于 管理页面。
联系人:FreeBSD 核心团队 <core@FreeBSD.org>
FreeBSD 核心团队是 FreeBSD 的管理机构。
FreeBSD 13.3 于 2024 年 3 月 5 日发布。
发布公告在:
https://www.freebsd.org/releases/13.3R/announce/
项目团队与发布工程团队一同将 13.3 版本发布献给 Glen Barber,感谢他多年来作为发布工程师的贡献。
核心团队宣布了 FreeBSD 中 32 位平台支持的未来,计划在接下来的几个主要版本中逐步淘汰 32 位平台支持。
核心团队批准了 Bojan Novković 的 src 提交权限。
核心团队重新激活了 Mark Peek、Mark Murray 和 Lawrence Stewart 的 src 提交权限。
链接:
FreeBSD 基金会 URL: https://freebsdfoundation.org/
技术路线图 URL: https://freebsdfoundation.org/blog/technology-roadmap/
捐赠 URL: https://freebsdfoundation.org/donate/
基金会合作伙伴计划 URL: https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/
FreeBSD 期刊 URL: https://freebsdfoundation.org/journal/
基金会活动 URL: https://freebsdfoundation.org/our-work/events/
联系人:
Deb Goodkin <deb@FreeBSDFoundation.org>
FreeBSD 基金会是一个 501(c)(3) 非营利组织,致力于支持和推广 FreeBSD 项目及全球社区,推动 FreeBSD 的发展。我们通过技术和非技术方式实现这一目标。我们完全依靠个人和企业的捐赠支持,基金用于以下方面:
软件开发项目,增强 FreeBSD 的功能和特性
赞助和组织会议及开发者峰会,提供协作机会并推广 FreeBSD
购买和支持硬件,改善和维护 FreeBSD 基础设施
提供资源,提升安全性、质量保证和持续集成工作
支持宣传、教育和推广 FreeBSD 所需的材料和人员
促进商业供应商与 FreeBSD 开发者之间的合作
代表 FreeBSD 项目执行合同、许可证协议及其他需要法律实体的安排
我们以雄心勃勃的目标开启了新年,通过确定操作系统中的支持特性和功能来推动 FreeBSD 项目进展,并加大宣传力度以提高 FreeBSD 的知名度。敬请关注我们的博客,了解更多关于 2024 年的目标和计划。
我们还发布了 2024 年预算。为了让预算过程更加透明,我们撰写了一篇博客文章,详细介绍了资金的分配、新增的项目支出类别及资金流向的更多细节。
在 2024 年第一季度,有 180 个 src、65 个 ports 和 18 个 doc 树提交由 FreeBSD 基金会赞助。
本季度开始了三个新项目:
开始改进 FreeBSD 的音频栈,为音频开发者提供实用工具和框架,以便在 FreeBSD 上更轻松地进行声音开发。详情请参阅 Christos Margiolis 的 音频栈改进 报告条目。
Olivier Certner 开始了他与基金会的第二个合同,此次主要目标是使 unionfs 在 FreeBSD 上更稳定和实用。其他工作可能包括重新设计 VFS 查找、改进内存不足处理、实现文件系统更改的批量检测通知系统(如 inotify)以及改进控制台的可用性。
本季度还启动了一个新项目,为 OpenZFS 文件系统添加分层速率限制。Pawel Dawidek 将添加类似配额的配置限制功能,但将限制读/写操作的数量及读/写带宽。
本季度有六个项目在继续进行:
有关将 OpenStack 组件移植到 FreeBSD 的工作,可以在 Chih-Hsin Chang 的 OpenStack on FreeBSD 报告条目中阅读。
改进对 FreeBSD 的 cloud-init 支持的工作继续推进。您可以在 Mina Galić 的 FreeBSD as a Tier 1 cloud-init Platform 报告条目中了解她的工作。
Advanced Micro Devices (AMD) 与 FreeBSD 基金会之间的一个新联合项目启动,旨在开发一个完整的 FreeBSD AMD IOMMU 驱动程序。这项工作将使 FreeBSD 完全支持超过 256 个内核,并支持 CPU 映射等功能,且将包括对 bhyve 的集成。对技术细节感兴趣的朋友可以关注 Konstantin Belousov 提交的标有 AMD 和 FreeBSD 基金会赞助的内容。
有关 FreeBSD 新图形安装器的状态,请参阅 Pierre Pronchery 的 Graphical Installer for FreeBSD 报告条目。
将 Vector Packet Processor (VPP) 移植到 FreeBSD 的工作仍在进行中。VPP 是一个开源的高性能用户空间网络栈,提供适用于软件定义网络 (SDN) 和网络功能虚拟化 (NFV) 应用的快速数据包处理功能。该项目开发人员 Tom Jones 将发布一篇详细介绍 VPP 移植经验的文章,敬请期待。
Björn Zeeb 和 Cheng Cui 继续他们的无线工作。本季度主要集中在 LinuxKPI 802.11 和 net80211 的漏洞修复和稳定性改进,这些改进大多已包含在 13.3 版本中。
以下是 2024 年第一季度完成的其他基金会赞助开发的部分示例:
FreeBSD 在收到 22 个贡献者提案后被接受为 Google Summer of Code 2024 项目;5 月 1 日将公布获奖项目数量
OpenSSH 更新至 9.6p1 和 9.7p1
停止支持 bsdlabel
导入 bhyve/arm64 的内核部分
各种 RISC-V 的改进
完成了在纽约互联网公司(NYI)芝加哥站点建立新集群的合同。您可以在基金会的博客上了解该项目的详细信息。
作为 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 运行时扩展工作组。
最近推出的硬件供应商支持调查将为一个硬件支持指南提供数据,反映所有受访者的集体经验,帮助大家识别优先支持 FreeBSD 的硬件供应商,并协助合作伙伴关系部门在优先供应商上加大推广力度。
最后,请告诉全世界您使用 FreeBSD 及其原因。这没有错误的方式——可以在您的博客、最喜欢的社交媒体上发布,将 FreeBSD 列入公司开源页面,或联系基金会发布案例研究等。
欧洲领先的网络安全公司 Stormshield 提供了如何展示使用 FreeBSD 的范例。他们的博客页脚写道:“作为开源的强烈支持者,Stormshield 是 FreeBSD 社区的活跃成员(也是赞助者)……每当我们修改开源软件、制作补丁或添加功能时,我们都会将其提供给社区以供集成。”
2024 年第一季度标志着基金会宣传团队的新纪元的开始。我们很高兴地欢迎 Kim McMahon 加入担任宣传与社区高级总监,同时也新增了两名技术写作人员,以增加我们发布的 FreeBSD 相关内容的频率和深度。以下是我们在第一季度为支持 FreeBSD 所做的一些扩展工作:
开始规划将于 2024 年 5 月 29 日至 30 日在加拿大渥太华举行、与 BSDCan 同地举行的 2024 年 5 月 FreeBSD 开发者峰会。
在 2024 年 2 月 6 日至 7 日于英国伦敦举办的 State of Open Con 24 上向新老朋友介绍了 FreeBSD。
在 2024 年 3 月 14 日至 17 日于加利福尼亚州帕萨迪纳举办的 SCaLE21x 上举办了 FreeBSD 简介的半日工作坊并设立展位。感谢 Gordon Tetlow 对工作坊的帮助。
基金会团队还致力于统一 FreeBSD 基金会和核心团队之间关于 FreeBSD 改进和优势的宣传信息。
基金会团队成员担任了 2024 年 Google Summer of Code 的管理员。今年是 Google Summer of Code 20 周年,也是 FreeBSD 项目被接受为指导组织的第 20 年。项目共收到 23 份实习申请。
提供了 FreeBSD 13.x 的概述,包括 13.3 版本的内容。
完成了 2024 年 FreeBSD 社区调查的最终报告,预计将在四月底发布。
与 Innovate UK 和 Digital Security by Design (DSbD) 合作,举办了首届年度 Digital Security by Design (DSbD) 生态系统灯塔奖,表彰在 CheriBSD 方面的创新者。
撰写或参与了多个思想领导和新闻文章,包括:
发布了新版的 2024 年 3 月 FreeBSD 更新。
发布了 FreeBSD Journal 的 2023 年 11 月/12 月 和 2024 年 1 月/2 月 期,并提供 HTML 版的文章。
感谢每一位在上个季度为我们提供财务支持的人士,帮助我们资助支持 FreeBSD 项目的工作。2024 年开局良好,本季度共筹集到 $250,855。感谢您对 FreeBSD 的投资!
请考虑通过捐赠来支持我们在 2024 年的工作:https://freebsdfoundation.org/donate/。
或者,了解我们的合作机会:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/。
基金会拥有 FreeBSD 商标,并负有保护它们的责任。我们还为核心团队提供法律支持,帮助解决遇到的相关问题。
请访问 https://freebsdfoundation.org 以了解我们如何支持 FreeBSD 以及如何帮助您!
链接:
FreeBSD 13.3-RELEASE 发布公告 URL: https://www.freebsd.org/releases/13.3R/announce/
FreeBSD 14.1-RELEASE 计划 URL: https://www.freebsd.org/releases/14.1R/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 官方项目的发布计划、公告代码冻结并维护相应的分支等工作。
在今年第一季度,团队管理了 13.3-RELEASE 版本,最终于三月发布了正式版本和公告。14.1-RELEASE 周期的规划工作也已开始。
发布工程团队还持续为 main、stable/14 和 stable/13 分支提供每周的开发快照构建。
链接:
集群管理团队成员 URL: https://www.freebsd.org/administration/#t-clusteradm
联系方式:
集群管理团队 <clusteradm@FreeBSD.org>
FreeBSD 集群管理团队成员负责管理项目所依赖的机器,以确保分布式工作的同步和沟通。
本季度,团队完成了以下工作:
为 FreeBSD.org 用户账户提供常规支持。
为所有物理主机和镜像提供常规磁盘和部件支持(以及更换)。
当前的镜像站点分布在澳大利亚、巴西、德国、日本(两个完整镜像站点)、马来西亚、南非、瑞典、台湾、英国(完整镜像站点)和美国(加利福尼亚、芝加哥、新泽西(主站点)和华盛顿)。
以下组织慷慨提供了硬件和网络连接支持:
Bytemark Hosting(正在退役)
BroadBand Tower, Inc 的云与 SDN 实验室
Teleservice Skåne AB(自 2023 年第四季度以来新增)
我们随时欢迎新的官方镜像站点。我们已经注意到在全球的互联网交换点 (IXP) 上托管单一镜像的好处,例如我们在澳大利亚、巴西和南非的现有镜像。如果您与有意赞助单一镜像服务器的组织有联系,或了解相关信息,请联系我们。我们特别关注美国西海岸和欧洲的镜像站点位置。
有关完整镜像站点规格,请参阅通用镜像布局;有关单一镜像站点的详细信息,请参阅 tiny-mirror。
链接:
FreeBSD Jenkins 实例 URL: https://ci.FreeBSD.org
FreeBSD CI Tinderbox 视图 URL: https://https://tinderbox.freebsd.org
FreeBSD CI 构件存档 URL: https://artifact.ci.FreeBSD.org
托管 CI Wiki 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=*
open*&email1=testing%40FreeBSD.org&emailassigned_to1=1&emailcc1=1&emailtype1=equals
FreeBSD CI 仓库 URL: https://github.com/freebsd/freebsd-ci
dev-ci 邮件列表 URL: https://lists.FreeBSD.org/subscription/dev-ci
联系方式:Jenkins 管理员 <jenkins-admin@FreeBSD.org>
联系方式:Li-Wen Hsu <lwhsu@FreeBSD.org>
联系方式:freebsd-testing 邮件列表
联系方式:EFNet 上的 IRC #freebsd-ci 频道
在 2024 年第一季度,我们与项目贡献者和开发人员合作,满足他们的测试需求。同时,我们与外部项目和公司合作,通过在 FreeBSD 上进行更多测试来增强其产品。
已完成的重要任务:
在 clusteradm 的帮助下,测试虚拟机的主机通过回收退役机器的部件完成了磁盘和内存升级。
更新了 stable/13 任务的构建环境至 13.3-RELEASE。
将主分支的 i386 构建切换为基于 amd64 的交叉构建。
正在进行的任务:
将 FreeBSD 基金会购买的新硬件加入 CI 集群
设计并实现基于预提交的 CI 构建和测试,以及基于 pull/merge 请求的系统(以支持 工作流工作组)
概念验证系统正在进行中。
设计并实现使用 CI 集群来构建发布构件,最先从快照构建开始,模拟发布工程操作
简化贡献者和开发人员的 CI/测试环境设置
设置 CI 阶段环境并将实验性任务放入其中
重新设计硬件测试实验室并增加测试所需的硬件
待处理或排队的任务:
收集和整理 CI 任务和想法
为运行测试的虚拟机来宾设置公共网络访问
实现使用裸机硬件运行测试套件
增加针对 -CURRENT 的 drm Ports构建测试
计划运行 ztest 测试
帮助更多软件在其 CI 流程中获得 FreeBSD 支持(Wiki 页面:3rdPartySoftwareCI、HostedCI)
与托管 CI 提供商合作,以获得更好的 FreeBSD 支持
有关更多正在进行的工作信息,请参阅 freebsd-testing@ 相关工单,并欢迎您加入我们的工作!
赞助方:FreeBSD 基金会
链接:
关于 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 压缩包 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 软件包管理团队 进行了 17 次实验运行,以测试各种 ports 升级、默认版本更新、子包支持和基础系统更改。
这些项目涵盖多个领域,从内核和用户空间到 Ports 集合或外部项目。
联系人:Christos Margiolis <christos@FreeBSD.org>
FreeBSD 的音频栈长期以来未受到足够的关注和开发,尽管质量很高,但仍有改进空间,包括缺乏音频开发框架、缺少用户空间实用工具以及内核驱动相关的漏洞等。此项目旨在涵盖这些方面,更多是一个总体改进项目,而非实现特定功能。
目前我的重点是音频栈的内核部分,最受关注的补丁可能是 D43545。我也正在计划移除较过时的 sound(4) 中的 "snd_clone" 音频设备克隆框架,并以 DEVFS_CDEVPRIV(9) 取而代之 (D44411)。
未来任务包括:
寻找更好(理想情况下为自动)的方式来处理 snd_hda(4) 的针脚配置。
编写蓝牙设备管理工具。
在必要时改进文档和测试套件。
这里 有更详细的说明。
您也可以在 freebsd-multimedia@ 中关注开发过程,我会定期发布报告:
赞助商:FreeBSD 基金会
链接:
bhyve 生产用户电话会议 URL: https://callfortesting.org
FreeBSD Wiki - 企业工作组 URL: https://wiki.freebsd.org/EnterpriseWorkingGroup
FreeBSD Wiki - EWG - bhyve 和 jails 管理工具 URL: https://wiki.freebsd.org/ChrisMoerz/bhyve_management
Jan Bramkamp 的 s6rc 项目 URL: http://static.bultmann.eu/s6-talk/
GitHub 上的 vmstated URL: https://github.com/christian-moerz/vmstated
YouTube - vmstated 讲解视频 URL: https://www.youtube.com/watch?v=f60NCrunXyw
联系人:
Chris Moerz <freebsd@ny-central.org>
每周的 bhyve 生产用户电话会议中,参与者最近讨论了 bhyve 的 I/O 性能。虽然提出了多种测量和比较方法,但很明显当前没有正式的分析报告。因此,我们开始着手此项工作,以更好地了解各种配置选项对客户机 I/O 性能的影响。我们创建了一组 shell 脚本,利用 FreeBSD 客户机在多种配置下运行 benchmarks/fio 进行 I/O 性能测量。这使我们可以比较带宽、延迟、IOPS 等多个标准。
目前,我们正在测试:
不同的存储后端(如 ahci-hd、nvme、virtio-blk)
不同的内存设置
不同的 CPU 固定选项
不同的存储块大小
不同的虚拟磁盘访问块大小
我们还将不同 CPU 制造商的测试结果进行比较,并对比客户机与主机的性能,以更好地了解虚拟化对性能的影响。
我们计划继续在 Michael Dexter 主持的每周 bhyve 生产用户电话会议中讨论结果——如果您有兴趣,欢迎加入。此外,我们希望能在第三季度的 EuroBSDCon 上展示这些结果。
去年,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) 配置文件,为虚拟机配置提供了高度的灵活性。vmstatedctl 提供了类似 jail 的命令集,用于启动、停止和获取客户机的状态信息。状态转换可以通过 shell 脚本轻松挂接,以便在相关状态变化时运行额外的网络或存储设置和拆卸命令。
初始版本已在 Ports 系统中发布为 sysutils/vmstated,且更新即将提交;不过,最新版本可在 GitHub 上找到。我们正在考虑扩展这项工作;如果您有兴趣,欢迎加入我们!补丁、建议和反馈等都非常欢迎!
如果您想了解更多关于我们的工作,欢迎参加 Michael Dexter 主持的每周 bhyve 生产用户电话会议,或通过 电子邮件 联系我。
我们成功更新了《手册》和《Porter 手册》的部分内容(感谢 Ed Maste、Joseph Mingrone、Pau Amma 和 Rodney W. Grimes):
FreeBSD 手册中虚拟化章节的若干改进和扩展
使用 bhyve_config(5) 配置文件
bhyve 的 jailing
实验性的快照和恢复功能
设置 Windows 客户机
我们还提交了一个审查 (D43940),作为改进 bhyve 手册页的初步步骤
这首先以结构更新的方式启动,将许多 -s
标志选项分开
一旦提交,我们可以进行更广泛的内容更新
我们非常欢迎反馈意见——无论是现有内容的改进,还是您认为我们应关注的其他内容!
链接: AsiaBSDCon 2024 演示幻灯片 gbsddialog 预览视频
联系人:Pierre Pronchery <pierre@freebsdfoundation.org>
当测试一个新的操作系统时,首先需要克服的障碍是如何安装它。安装过程也是新用户对操作系统的第一印象。当前,操作系统安装程序的技术标准肯定涉及图形化流程。这不仅适用于主流系统,也适用于与 FreeBSD 类似的其他 UNIX 系统,如 RedHat Enterprise Linux、Ubuntu、Debian GNU/Linux 甚至 Devuan GNU+Linux。无论用户的技术水平如何,这都是操作系统在公众眼中比较的依据。
实际上,不同项目已经将 FreeBSD 衍生为桌面导向的操作系统。其中只有 GhostBSD 是一个维护中的项目,提供图形化的安装流程。本项目的目标是为 FreeBSD 提供一个类似于现有安装程序的图形安装程序,作为其基础系统的一部分。然而,GhostBSD 的安装程序 依赖于基于 Python 的 Gtk+ 界面,这在采用 FreeBSD 的常规镜像生成流程时会显著增加安装介质的大小,也会导致 FreeBSD Ports树中引入和维护新的项目。
因此,基于对现有 bsdinstall(8) 和 bsdconfig(8) 工具的理解,我设想了一个 BSD 许可的 Xdialog(1) 替代品。类似于使用 -X 参数调用 bsdconfig 进入图形模式,可以直接替换 bsddialog(1),从而实现图形化安装,同时共享现有安装程序的基础架构。为避免与 x11/xdialog Ports中的 Xdialog 当前实现混淆,我将替代程序命名为 gbsddialog(1)。此外,Xdialog 相当陈旧(最后更新于 2006 年),在视觉上也显示了其过时性。
在 14.0 版本发布后,我创建了一个概念验证原型。随后 FreeBSD 基金会 给我提供了两个月的时间,以完成一个可用的实现。通过一些简化处理,我很高兴能在 AsiaBSDCon 2024 的 WIP 会议上展示了这一成果,包括一个可用的图形安装程序。
大多数必要的补丁已经在 FreeBSD 的 Phabricator 上提供审核:
我尝试将这些补丁按集成时的潜在摩擦程度排序。
本项目的最重要目标是改进 bsdinstall,无论最终能否成功集成。从上述补丁中可以看出,D44279、D44280、D44670 有望改善安装程序的整体外观,即便是在文本模式下。此外,D44671 和 D44672 提高了安装程序在脚本化或定制时的整体灵活性。D44673 和 D44674 使其与 bsdconfig -X 功能相当,甚至允许图形化安装 jail。
一些部分仍然缺失,或使用了尚不适合集成的简化方案:
避免了 "fetchmissingdists" 目标,将所有组件打包在安装介质上;
"checksum" 和 "extract" 目标不得不使用更简单的代码重新实现,导致普通安装程序的用户体验下降;
安装介质的创建生成了一个额外的巨大镜像(接近 8 GB),疑似受到 makefs(8) 中一个 bug 的影响。
相应的代码可以在我的 GitHub fork 中的 khorben/bsdinstall-graphical4 分支找到。根据合并操作的复杂性,结合(希望)逐步集成的更改,可能会添加新的分支以跟踪进展。(实际上,已经存在一个 khorben/bsdinstall-graphical5 分支。)
总的来说,安装程序需要进一步发展以达到新的成熟水平。在此项目期间,我收到了一些对安装程序的普遍抱怨,甚至有呼声要求彻底重写。确实,当前代码库存在许多问题和限制。缺少图形安装程序只是众多问题之一,还包括错误恢复、无法导航到上一步、缺乏安装进度概览、缺少基于网络的安装程序等问题。与此同时,这仍是我们熟悉的安装程序,我认为它仍然可以被改进和提升。
特别感谢 Ed Maste 和 Joe Mingrone 提供的机会,以及 Philippe Audeoud、Tobias C. Berner、Olivier Certner、Jessica Clarke、Olivier Cochard-Labbé、Baptiste Daroussin、Brad Davis、Michael Dexter、Li-Wen Hsu、Mateusz Piotrowski、Alfonso Siciliano、Emmanuel Vadot 和 Robert Watson 的反馈、审查和鼓励。(如果遗漏了任何人,请理解我绝无此意!)
赞助:FreeBSD 基金会
影响基础系统及其中程序的更改。
联系人:Brooks Davis <brooks@FreeBSD.org>
libsys 项目将系统调用从 libc.so 和 libpthread.so(即 libthr.so)中移除,转而使用一个独立的 libsys.so。这样做的目的包括:
隔离语言运行时与系统调用实现的细节。
更好地支持系统调用的日志记录和回放框架。
支持消除在运行时链接器和 libsys
中调用系统调用的能力,除非是受信代码。
这项工作最初受到 2016 年 CheriBSD 中一个隔离原型的启发。Ali Mashtizadeh 和 Tal Garfinkel 接手了这个工作,并尝试将其上游化 (D14609)。不幸的是,我们未能通过 Phabricator 审查解决所需的大规模重组,因此这项工作停滞了。去年,CHERI 项目再次发现需要在 CheriBSD 中为一个基于库的隔离框架引入系统调用分离,因此我从头开始重建了这个补丁,并在此过程中提交了数十项 libc
清理工作。第一批更改已于 2 月 5 日提交。从那时起,我对如何链接 libsys
以及每个库提供哪些符号做了一些改进。
感谢 Konstantin Belousov 的多轮审查和反馈,以及运行时链接器的修复。感谢 Mark Johnston 的运行时链接器调试,感谢 Dimitry Andric 提供的消毒器修复。感谢所有报告错误并帮助调试问题的人。
libsys
的 ABI 尚未被认为是稳定的(可以安全假设 __sys_foo()
会得到支持,因此语言运行时现在可以使用它)。
使用地址消毒器的程序必须链接 -lsys
(在发布时已在基础系统中解决)。
添加 libsys.h 文件。(参见 D44387 和堆栈中的其他审查。)
更新 intro(2) 文档以包括 libsys
。
完成 ABI 的最终定稿。我可能会减少我们暴露的 _
(下划线)前缀符号的数量。
是否将 libsys
合并到 MFC(合并到主干)中?目前不清楚这是否可行,但或许可以 MFC 一些对语言运行时有用的部分。
将不使用 libc
的语言运行时移植为使用 libsys
进行系统调用,而不是自定义接口。
探索类似 OpenBSD 中的 msyscall(2)(现已废弃)和 pinsyscalls(2) 的系统调用使用限制(这些与我们的 libsys
可能不完全匹配)。
赞助商:AFRL, DARPA
联系人:Gleb Popov <arrowd@FreeBSD.org>
PackageKit 是一个小型 D-Bus 守护进程,作为“应用商店”类应用程序的后端,最著名的如 Plasma Discover 和 Gnome Software Center。最新的 PackageKit 版本引入了一个 libpkg 后端,这意味着你现在可以在 FreeBSD 上使用启用了 PackageKit 的程序来管理软件。Plasma Discover 已经切换到使用 PackageKit,因此只要你更新你的 Ports/包,就可以开箱即用。
如果你在使用 PackageKit 时遇到崩溃或错误,请通过 在上游打开问题 来告知我。如果你有兴趣贡献,也有很多工作可以做!
赞助商:Serenity Cybersecurity, LLC
更新内核子系统/功能、驱动支持、文件系统等。
链接: 分类无线问题报告 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) 可用。即将发布的 14.1-RELEASE 也将受益于这一工作。自那以后,反馈总体上是积极的,并且 iwlwifi(4) 支持的芯片组(最高到 BE200)似乎大多数情况下已经稳定,但仍然较慢。
大量的测试得到了 FreeBSD 基金会和许多用户的支持。非常感谢所有测试、报告问题、更新 PR 和帮助其他用户的人。
我也开始慢慢地“分类”更多(旧的)无线问题报告,并将继续在今年进行一些清理工作。
如果你有问题或反馈,请使用 freebsd-wireless 邮件列表。这样大家都能看到并参与讨论,回答也会公开存档。
赞助商:minipci.biz(BE200 硬件)
更新平台特定功能,并为新硬件平台带来支持。
链接: 我的 Wiki 页面,包含一些状态链接 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) LED(需验证)。
开始测试使用 MMCCAM 和 GENERIC 的 eMMC,但遇到了一些问题(需要进一步调查,固件更新似乎没有问题)。
测试了三个 PCIe 插槽中的一个以及 USB,均正常。
对于 Ten64:
大部分基本工作在一段时间前就已经完成,并且它通常是可用的。
检测 VSC8514 PHY 的功能在去年年底已经加入。
用作默认平台来测试 DPAA2 更改和 SFP/SFP+ 代码。
此外,Pierre-Luc Drouin 已经彻底改进了 Vybrid I2C 支持,现在能够在 FDT 和 ACPI 基础系统上都能成功附加和工作(已提交)。
赞助商:Traverse Technologies(Ten64 硬件,过去的支持)
更新特定于云的平台功能,并为新云平台提供支持。
链接: FreeBSD 在 Microsoft Azure 上的文章 URL: https://wiki.freebsd.org/MicrosoftAzure FreeBSD 在 Microsoft HyperV 上的文章 URL: https://wiki.freebsd.org/HyperV
联系人:Microsoft FreeBSD 集成服务团队 <bsdic@microsoft.com> 联系人:freebsd-cloud 邮件列表 联系人:FreeBSD Azure 发布工程团队 <releng-azure@FreeBSD.org> 联系人:Wei Hu <whu@FreeBSD.org> 联系人:Souradeep Chakrabarti <schakrabarti@microsoft.com> 联系人:Li-Wen Hsu <lwhsu@FreeBSD.org>
在本季度,我们解决了所有阻塞性问题,并发布了 13.3-RELEASE 在 Azure 市场。
正在进行的任务:
自动化镜像构建和发布过程,并合并到 src/release/。
构建并发布快照版本到 Azure 社区画廊。
上述任务由 FreeBSD 基金会赞助,微软提供资源支持。
开放任务:
更新 Microsoft Learn 上的 FreeBSD 相关文档。
在 Azure Pipelines 中支持 FreeBSD。
将 Azure agent 更新至最新版本。
赞助商:Microsoft(为微软内部人员提供支持及资源) 赞助商:FreeBSD 基金会(为其他所有方面提供支持)
链接: cloud-init 网站 URL: https://cloud-init.io/ cloud-init 文档 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
)控制。
最近几周的改进如下:
我编写了一个小型 测试框架(使用 sh 编写,正在逐步移植到 OpenTofu/Terraform),它安装最新版本的 net/cloud-init-devel 或 net/cloud-init,并运行一些标准的 cloud-init 测试。
为此,我创建了一个 专用的公共仓库,其中包含适用于 FreeBSD 13 和 14(amd64 和 aarch64)的最新版本 net/cloud-init-devel 和 net/cloud-init。
我已经将 Linux 的 vsock 测试框架 移植到 FreeBSD。
我为 VirtIO Socket 驱动 创建了一个骨架,基于 HyperV Socket 驱动。
在此过程中,我对 HyperV 套接字进行了多个 改进,其中一些已被接受,另一些仍需进一步修改。
我已经测试并发布了最新的 24.1 系列 cloud-init,cloud-init 团队和我终于修复了一些长期存在的错误,例如将 /run/cloud-init
移动到 BSD 的 /var/run/cloud-init,以及修复了 homedir
到 user_groups
参数的功能。
此次发布还包括来自社区的 OpenBSD 代码路径的多个修复,而不仅仅是我个人的工作。
我还开始了 OpenBSD 的官方移植工作,但 该工作已暂停。
未来工作的广泛概述:
完成 FreeBSD 的 VirtIO Socket 驱动。
修复 Go 运行时以支持 FreeBSD 上的 VirtIO。
将 lxd-agent 的依赖移植到 FreeBSD。
将 lxd-agent 移植到 FreeBSD。
这些工作将在 BSD 上进行更多 cloud-init 改进和在不同云提供商上进行更多测试的过程中穿插进行。
赞助商:FreeBSD 基金会
链接: OpenStack URL: https://www.openstack.org/ OpenStack 在 FreeBSD 上的实现 URL: https://github.com/openstack-on-freebsd
联系人:Chih-Hsin Chang <starbops@hey.com> 联系人:Li-Wen Hsu <lwhsu@FreeBSD.org>
OpenStack on FreeBSD 项目旨在将 OpenStack 云基础设施与 FreeBSD 操作系统无缝集成。该项目利用 FreeBSD 的独特功能,同时确保与 OpenStack 标准的兼容性。
在 2024 年第一季度,我们在 OpenStack on FreeBSD 项目上取得了显著进展。包括提交了 BSDCan 2024 的提案,并参加了 2024 年 AsiaBSDCon,以 分享我们的移植经验并为项目赢得曝光。在 AsiaBSDCon 获得的反馈尤其有价值,帮助我们改进了项目的方向。在此期间,我们还回顾了项目的第一阶段任务并做出了必要的调整。我们还计划了第二和第三阶段,并将其与项目的长期目标对齐。一个技术成就就是验证了 bhyve 串口控制台通过 TCP 的功能,这是项目基础设施的重要部分。此外,我们还创建了一个 演示视频 展示了项目的进展和特性。
展望未来,下一季度的重点工作包括确认实施 FreeBSD 特权管理用户空间工具的可行性,利用 mac(4) 和 priv(9),简化安装步骤,通过迁移到 FreeBSD ports,并将 OpenStack Ironic 移植到 FreeBSD。这些任务将增强项目的功能和兼容性。
赞助商:FreeBSD 基金会
文档树、手册页或新外部书籍/文档中的显著变化。
链接:FreeBSD 文档项目 URL: https://www.freebsd.org/docproj/ 链接:FreeBSD 文档项目新贡献者入门指南 URL: https://docs.freebsd.org/en/books/fdp-primer/ 链接:文档工程团队 URL: https://www.freebsd.org/administration/#t-doceng
联系人:FreeBSD Doceng 团队 <doceng@FreeBSD.org>
doceng 团队 负责处理与 FreeBSD 文档项目相关的一些元项目问题;更多信息,请参阅 FreeBSD Doceng 团队章程。
在过去一个季度中:
Edward Tomasz Napierała 和 Tom Rhodes 的文档提交权限被暂时保管。
链接:在 Weblate 上翻译 FreeBSD URL: https://wiki.freebsd.org/Doc/Translation/Weblate 链接:FreeBSD Weblate 实例 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的变化。
链接:FreshPorts URL: https://freshports.org/ 链接:FreshPorts 博客 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 Ports的历史记录,从 2017 年 5 月开始。还可以查看依赖关系、flavors、配置选项和可用的包。这些信息对 Ports的用户和开发者都非常有用。
FreshPorts 的原始功能之一是 Ports更新通知。您可以创建一个 Ports列表,并接收关于这些 Ports的通知。此新功能还可以在某个 Ports有新包可用时通知您。应用场景:已知的安全漏洞已被修复。FreshPorts 会告诉您该 Ports已经修复,您可以等待包的发布。这个新功能会在包可用时通知您。
详情请参见:
FreshPorts 已经运行超过 23 年。未来,必须由其他人接手。我最近已经开始了这个过程。FreshPorts 涉及多个方面:
FreeBSD 管理(更新操作系统和包)
前端代码(网站 - 主要是 PHP)
后端代码(提交处理 - Perl、Python、Shell)
数据库设计(PostgreSQL)
数据库变化较少,需要的维护工作比应用程序和操作系统要少。网站几乎能自我运行。偶尔 FreeBSD Ports 基础设施发生变化时,可能会破坏某些功能或需要做出修改,但这类修复很少具有紧迫性,因此并不会占用大量时间。这并不是一个巨大的时间投入,但会有很多学习机会。虽然 FreshPorts 不是一个复杂的应用程序,但也并不简单。
如果您有兴趣参与贡献,请加入 FreshPorts-coders 邮件列表,并告诉我们您愿意帮助的部分。
链接:GCC 项目 URL: https://gcc.gnu.org/ 链接:GCC 10 版本系列 URL: https://gcc.gnu.org/gcc-10/ 链接:GCC 11 版本系列 URL: https://gcc.gnu.org/gcc-11/ 链接:GCC 12 版本系列 URL: https://gcc.gnu.org/gcc-12/ 链接:GCC 13 版本系列 URL: https://gcc.gnu.org/gcc-13/
联系人:Lorenzo Salvadore <salvadore@FreeBSD.org>
将 GCC 默认版本更新为 13 已经完成。感谢 Antoine Brodin 执行了实验性运行,感谢所有其他开发者和 Ports维护者的参与。
如前报告所述,接下来的目标是减少 GCC Ports中的开放错误数。现已有一些工作开始处理现存的错误。
特别是,长时间未更新的 lang/gcc14-devel Ports,之前因为没有任何 BOOTSTRAP 选项而导致构建问题。感谢其他开发者和贡献者的帮助(特别感谢 Mark Millard),我发现根据官方文档,没有引导的构建 GCC 需要一个可用的 GCC 二进制文件,因此我修改了 lang/gcc14-devel Ports,要求设置 BOOTSTRAP 选项。但后来有声明称,通过 clang 和 libc++ 启动 GCC 的过程是 官方支持的,但这并不是一个高优先级的任务。
目前,lang/gcc14-devel 是唯一一个要求设置 BOOTSTRAP 选项的 GCC Ports。计划是让所有版本大于或等于 14 的 GCC Ports(即未来的 GCC Ports)都要求设置该选项:即使没有引导的构建在某种程度上是官方支持的,但由于它在上游的低优先级,它增加了维护 GCC Ports的负担,结果却不大。如果较低版本开始遇到无法构建的问题,我也将要求它们使用引导。
链接:Valgrind 官方网站 URL: https://www.valgrind.org/ 链接:Valgrind 更新日志 URL: https://www.valgrind.org/docs/manual/dist.news.html 链接:arm64 Ports URL: https://github.com/paulfloyd/freebsdarm64_valgrind
联系人:Paul Floyd <pjfloyd@wanadoo.fr>
如标题所示,Valgrind 已经成功移植到 FreeBSD arm64(或 aarch64)。接下来的步骤是进行审查并推送到上游。
Valgrind 3.23 预计将在 2024 年 4 月发布,devel/valgrind 会在那之后更新。
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 项目不对这些提交中的任何声明的准确性或真实性作出任何保证。
链接:Pot 在 GitHub 上的组织 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 进行编排。Potluck 旨在成为 FreeBSD 和 Pot 的 Dockerhub,类似于 Docker 在 Linux 上的作用:提供一个 Pot 风味和完整容器镜像的仓库,用于与 Pot 一起使用,在许多情况下也可以与 Nomad 一起使用。
在本季度,没有发布新的 Pot 版本。
然而,Potluck 活跃度较高。除了为 FreeBSD 14 重新构建镜像外,新的 Adminer 容器也已由首次贡献者 Sidicer 提交。此外,许多其他功能、更新和修复已被提交到如 HAProxy-Consul、Grafana、PostgreSQL-Patroni 或 Prometheus 等容器中。
针对 Mastodon 容器,已发布一篇 博客文章,解释如何使用它来运行自己的实例。
如往常一样,欢迎提供反馈和补丁。
赞助商:Nikulipe UAB、Honeyguide Group
最后修改时间:2024年4月25日,由 Lorenzo Salvadore 进行修改
警告
这个页面目前是机器翻译。
这是 2023 年第四份状态报告,涉及 18 个项目。
这是 2023 年最后一个季度。正如你可能已经注意到的那样,这份状态报告比通常要晚一些,报告数量也比上个季度要少。事实上,请记住每年的最后一个季度对我们社区的许多成员来说:是庆祝圣诞节和新年的时节,这意味着社区成员将把更多时间花在与家人团圆上,而在他们花在其挚爱的志愿软件项目上的时间将会更少。因此,报告内容较少且报告往往较晚到达。但最终,它们都在这里了。
祝你阅读愉快。
洛伦佐·萨尔瓦多,代表状态团队。
各种官方和半官方团队的项目,可在管理页面中找到。
联系:FreeBSD 核心团队 core@FreeBSD.org
FreeBSD 核心团队是 FreeBSD 的治理机构。
FreeBSD 项目致力于将 14.0-RELEASE 献给 Hans Petter Selasky。
FreeBSD 14.0 在 2023 年第四季度末发布。
发布说明可以在下面找到
多年来担任发布工程师的 gjb@ 离任了。
cperciva@ 接替成为了新的发布工程师。karels@ 担任新的副发布工程师。
核心团队感谢 gjb@ 的长期任职以及由他创建的许多及时的发行版。
在 2023 年底,核心团队与基金会合作进行了 2024 年社区调查。
链接: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 项目。
我们在 2023 年最后一个季度以以下方式发展 FreeBSD:
在 2023 年第四季度,有 236 个 src、47 个 port 和 33 个 doc 提交,其赞助商标为为 FreeBSD 基金会。部分由该基金会赞助的工作在单独的报告条目中进行说明。
amd64 的 SIMD 增强。
三名新开发者开始工作。Cheng Cui 全职从事无线网络工作。Cheng 项目的主要目标是协助 Bjoern Zeeb 在 iwlwifi 中支持 802.11ac。Tom Jones 开始将 Vector Packet Processor (VPP) 移植到 FreeBSD。VPP 是一个开源的、高性能的用户空间网络堆栈,提供适用于软件定义网络和网络功能虚拟化应用的快速数据包处理。Olivier Certner 加入了 FreeBSD 基金会担任普通 FreeBSD 开发人员。Olivier 迄今为止的一些贡献包括:
审查、修复和加固几项旨在限制进程能见度的安全策略,这些策略基于用户身份、组成员资格(子 jail 成员资格)
提交修复登录类代码的修复程序,包括允许非特权用户绕过资源限制的修复程序
为受影响的 AMD Zen2 处理器实施针对 Zenbleed 问题的安全硬件修复。
这是 2023 年最后一个季度完成的其他基金会赞助一些工作:
arm64:添加 Armv8 rndr 随机数生成器
修复和改进 net80211、LinuxKPI、iwlwifi
OpenSSL: 更新至 3.0.11、3.0.12
为准备 FreeBSD 升级所做的各种 freebsd-update 修复
ssh: 更新至 OpenSSH 9.5p1
各种 IOMMU 修复
各种 makefs/zfs 修复
要了解我们在 2023 年全年的软件开发工作,请访问 https://freebsdfoundation.org/blog/2023-in-review-software-development/
我们批准了超过 $100,000 的预算,用于集群更新。这项工作始于 2023 年末,将持续到来年:购买和运送 15 台新服务器到 NYI 慷慨捐赠的 4 个机架(位于芝加哥的新设施)中。系统规格由集群管理团队确定,包括:
5 台软件包构建服务器
3 台网页服务器
2 台软件包镜像站
2 台 CI 服务器
2 台防火墙/路由器
1 台管理员堡垒机
更多有关我们 2023 年基础设施支持的信息,请访问:https://freebsdfoundation.org/blog/2023-in-review-infrastructure/.
作为我们持续支持 FreeBSD 项目的一部分,基金会聘请全职员工致力于改进项目的持续集成系统和测试基础设施。完整的进度可以在季度状态报告中找到。
在第四季度,我与以下人员、公司和组织取得了联系:Phil Shafer(在 Juniper Networks 工作),我们在 All Things Open 会议上见面。他告诉我对 libxo 库以及他在相关问题上的持续工作,比如重写和过滤输出以允许正则表达式提供更丰富的选项。然后谈论了 Juniper,我还在供应商峰会上遇到了 Simon Gerraty,并聆听了他有关 SecureBoot 的讲话。按字母顺序,我还会见了 AMD 的 Ampere、Center for Internet Security(CIS)、Innovate UK 的Michael Dexter、Metify,Microsoft、NetApp 的一些人员(感谢您的邀请!!),NetScaler、NIST、Nozomi Networks、NVIDIA、Open Container Initiative 社区的成员,OpenSSF,RG Nets,Doug Rabson。
十分感谢能有机会参加 NetApp 年度大会。我在十月份与 NetApp 及其合作伙伴和客户的专家就人工智能、无缝人工智能数据管道、混合云和绿色计算等主题进行了交流。我抓住机会发放了一些 FreeBSD 领带别针 🙂,并与一个 FreeBSD 用户和企业工作组成员建立了联系,他的公司是 NetApp 的客户。
在第四季度,我们宣布了新的 FreeBSD SSDF 认证计划,以帮助 FreeBSD 的商业用户遵守新的美国政府采购法规。该计划收到了 NetApp、Metify 和 NIST 的宝贵反馈,这个想法的起源要归功于我与开源政策专家的合作,特别是通过 OSI 的开放政策联盟。
开放容器倡议技术监督委员会在十二月投票通过 Doug Rabson 的提议,创建一个工作组来扩展 OCI 运行时规范,来支持 FreeBSD。非常感谢所有参与其中的人!FreeBSD 的 OCI 运行时扩展是最需求的功能之一,我很高兴能在协调这一努力中扮演了一个小角色。
十一月的供应商峰会是一个很棒的活动。非常感谢 John Baldwin 和 Anne Dickison 为组织和协调所做的一切工作。我从这次活动中收获颇丰。个人亮点包括与各类用户的交流、CHERI 讨论、最终用户小组讨论以及 Allan 关于成为一个首要上游公司的演讲。关于我们在 2023 年加强伙伴关系和增加资金的努力的完整回顾,请查看:https://freebsdfoundation.org/blog/2023-in-review-partnerships-and-research/。
组织和参加活动,创建教育性技术内容,扩大在媒体中对 FreeBSD 的报道,这是上个季度我们为支持 FreeBSD 所做的一些工作样本。
帮助组织并赞助了 2023 年 11 月在圣何塞 NetApp 举行的厂商峰会。许多人认为这是迄今为止最好的峰会之一。请务必查看视频。
在北卡罗来纳州的 All Things Open 向新人和老朋友介绍 FreeBSD。
提供了 FreeBSD 14 的概述:安全性、性能和互操作性;介绍 FreeBSD 14
与核心团队合作,发布了 2024 年 FreeBSD 社区调查
参加了关于 FreeBSD 的采访:What the Dev Podcast: FreeBSD 项目的演变
立即发布 2023 年 9 月/10 月期 FreeBSD Journal,所有文章均提供 HTML 版本。
要了解我们在 2023 年为 FreeBSD 做了哪些倡导工作的详细回顾,请查看倡导年度回顾: https://freebsdfoundation.org/blog/2023-in-review-advocacy/ 或每月通讯: https://freebsdfoundation.org/our-work/latest-updates/?filter=newsletter.
感谢每位上个季度为支持我们的项目工作而给予财务支持的人。您让我们更接近我们的目标,我们对您对 FreeBSD 的投资表示感激!我们仍在通过邮件收到捐赠,将在二月中旬公布最终数字。
请考虑在 2024 年通过在此处捐款来支持我们的努力:https://freebsdfoundation.org/donate/。
或者,查看我们在此处的合作机会:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/。
基金会拥有 FreeBSD 商标,我们有责任保护它们。我们还为核心团队提供法律支持,以调查出现的问题。
访问 https://freebsdfoundation.org 了解有关我们如何支持 FreeBSD 以及如何帮助您的更多信息!
链接:FreeBSD 13.3-RELEASE 计划 网址:https://www.freebsd.org/releases/13.3R/schedule/ FreeBSD 发行版本 网址:https://download.freebsd.org/releases/ISO-IMAGES/ FreeBSD 开发快照 网址:https://download.freebsd.org/snapshots/ISO-IMAGES/
联系:FreeBSD 发行工程团队,< re@FreeBSD.org>
自由 BSD 发布工程团队负责制定和发布自由 BSD 的官方项目发布时间表,宣布冻结代码,并维护各自的分支,等等。
在年度第四季度期间,团队继续进行 14.0-RELEASE 的工作,最终在 11 月发布了最终的发布版本并宣布。已开始计划即将到来的 13.3-RELEASE 和 14.1-RELEASE 周期。
发布工程团队继续为主要和稳定/13 分支提供每周开发快照版本构建,并在 14.0-RELEASE 之后开始为稳定/14 进行每周构建。
经过十多年担任发布工程主管后,Glen Barber 已经退休; 他的副手 Colin Percival 已经成为主管,而 Mike Karels 已经担任副发布工程师。
链接:集群管理团队成员网址:https://www.freebsd.org/administration/#t-clusteradm
联系人:集群管理团队clusteradm@FreeBSD.org
FreeBSD 集群管理团队成员负责管理项目依赖的机器,用于同步分布式工作和通讯。
在本季度,团队已开展以下工作:
提供对 FreeBSD.org 用户账户的常规支持。
为所有物理主机和镜像提供常规磁盘和部件支持(及更换)。
在 FreeBSD 项目管理的镜像中启用 https://www.FreeBSD.org 和 https://docs.FreeBSD.org 的镜像。
群集刷新,升级所有主机和 jails 到 15-CURRENT、14-STABLE、13-STABLE 和 12-STABLE 的最新版本。
随着 12-STABLE 分支接近生命周期结束,开始逐步淘汰基础架构。
除了这些项目,Modirum 慷慨赞助 Philip 十月大部分时间,我们成功在十一月 14.0-RELEASE 之前及时将 pkgbase 带入“预览”生产阶段。
我们还在瑞典 Sjöbo 安装了一个新的欧洲镜像站点,由 Teleservice Skåne AB 赞助。 现在,在欧洲的流量大致平均分布在我们位于德国法兰克福的现有镜像站点(由 Equinix 赞助)和瑞典的新镜像站点之间。 在运行超过十年后,我们计划在 2024 年第一季度停用我们在英国的镜像站点。 我们要感谢 Bytemark Hosting 长久以来支持这个镜像站点。
下一个季度,得到 FreeBSD 基金会的支持,我们计划在芝加哥建立一个新的主要集群站点。
目前的位置包括澳大利亚、巴西、德国、日本(两个完整的镜像站点)、马来西亚、南非、瑞典、台湾、英国(完整的镜像站点)、美国加利福尼亚州、新泽西州(主站点)和华盛顿。
该硬件和网络连接由慷慨捐赠者提供:
Bytemark Hosting(已于 2024 年第一季度停用)
广域网和 SDN 实验室在 BroadBand Tower, Inc
TeleService Skåne AB (自 2023Q4 起新推出)
链接: FreeBSD Jenkins 实例网址: https://ci.FreeBSD.org FreeBSD CI Tinderbox 查看网址: https://tinderbox.freebsd.org FreeBSD CI 构件存档网址: https://artifact.ci.FreeBSD.org 托管的 CI Wiki 网址: https://wiki.FreeBSD.org/HostedCI 第三方软件 CI 网址: https://wiki.FreeBSD.org/3rdPartySoftwareCI 与 freebsd-testing@ 相关的支票网址: https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=_ open_&email1=testing%40FreeBSD.org&emailassigned_to1=1&emailcc1=1&emailtype1=equals FreeBSD CI 代码库网址: https://github.com/freebsd/freebsd-ci dev-ci 邮件列表网址: https://lists.FreeBSD.org/subscription/dev-ci
联系人:Jenkins 管理员 < jenkins-admin@FreeBSD.org> 联系人:Li-Wen Hsu < lwhsu@FreeBSD.org> 联系人:freebsd-testing 邮件列表 联系人:IRC #freebsd-ci 频道在 EFNet 上
在 2023 年第四季度,我们与项目贡献者和开发人员合作,以满足他们的测试需求。与此同时,我们还与外部项目和公司合作,通过在 FreeBSD 上进行更多测试来增强其产品。
重要已完成任务:
将工作添加到使用 GCC 13 构建 amd64 架构(感谢 jhb@)
为 stable-14 添加 powerpc64le 作业配置(感谢 alfredo@)
将主分支和 stable/14 分支的作业构建环境更新为 14.0-RELEASE
进行中的任务:
设计和实现预提交 CI 构建和测试以及基于拉取/合并请求的系统(以支持工作流工作组)
概念验证系统正在进行中
设计和实现使用 CI 集群来构建发布工件,就像发布工程所做的那样,从快照构建开始
简化为贡献者和开发者设置 CI/测试环境
设置 CI 阶段环境并将实验性任务放入其中
重新设计硬件测试实验室并增加更多硬件进行测试
合并 https://reviews.freebsd.org/D38815
合并 https://reviews.freebsd.org/D36257
打开或排队的任务:
收集和整理 CI 任务和想法
为运行测试的 VM 客户机设置公共网络访问
使用裸设备硬件来运行测试套件
添加 drm ports 构建针对-CURRENT 的测试
计划运行 ztest 测试
帮助更多软件在其 CI 流水线中获得 FreeBSD 支持(Wiki 页面:第三方软件 CI, HostedCI)
与托管的 CI 提供商合作,以获得更好的 FreeBSD 支持
请查看与 freebsd-testing@相关的工单以获取更多的 WIP 信息,并毫不犹豫地加入这一努力!
赞助商:FreeBSD 基金会
链接:关于 FreeBSD Ports 网址:https://www.FreeBSD.org/ports/ 贡献至 Ports 网址:https://docs.freebsd.org/en/articles/contributing/#ports-contributing
Ports 管理团队 网址: https://www.freebsd.org/portmgr/ Ports 压缩包 网址: 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。本季度主分支有 157 位提交者提交了 9,424 次提交,2023Q4 分支有 71 位提交者提交了 781 次提交。与上一季度相比,这意味着主分支提交次数大幅减少(从 11,454 减少)和季度分支的回溯次数略有减少(从 828 减少)。ports 的数量也略有下降(从 34,600 减少)。
Q4 主分支有约 9424 次提交。最活跃的提交者是:
在 Q4,我们欢迎 Michael Osipov(michaelo)和 Timothy Beyer(beyert)作为新的提交者,但遗憾的是我们也不得不告别 bland、sbruno、hselasky 和 gjb。
我们邀请了 arrowd、flo 和 riggs 成为接下来几个月 portmgr-lurkers 的一部分。
FreeBSD 12.x 的支持在季度末被移除。
第四季度末还引入了子软件包到 ports 树中。类似于 flavors 被引入时,新子软件包需要 portmgr 的批准才能被推送到树中。使用子软件包可以从单次构建的 port 中创建多个软件包。
基础设施方面发生了以下事情:
为 14.0-RELEASE 构建了软件包
Poudriere 已更新至 release-3.4
不再维护的 www/qt5-webkit 已被移除。
postgresql11, php80, mysql57, percona57, ghostscript9 已被移除。
以下默认版本已更改:
Perl 升级到 5.36
Ghostscript 升级到 10
Corosync 升级到 3
发生的主要 ports 更新包括:
ports-mgmt/pkg 更新至 1.20.9
ports-mgmt/poudriere 更新至 3.4.0(子软件包支持)
KDE-bits to plasma-5.27.10, frameworks-5.112, gear-23.08.4, and beta-2
www/chromium to 120.0.6099.129
www/firefox to 121.0 (rc1)
语言/rust 到 1.74.1
…还有更多…
在上个季度内,pkgmgr@ 运行了 26 次实验性运行,测试各种 ports 升级,ports 默认版本更新,子包支持和基础系统更改。
Links: Bugmeister team URL: https://www.freebsd.org/administration/#t-bugmeister FreeBSD Bugzilla URL: https://bugs.freebsd.org/bugzilla/
Contact: Bugmeister <bugmeister@FreeBSD.org>
我们的 Bugzilla 实例最近进行了维护:
每周提醒邮件现在包括 mfc-*标志查询的正确值;
仪表板页面删除了一个过时的查询。(我们不再使用“patch-ready”关键词;这太繁琐了。因此,对该字段的查询是无用的。)
将最大报告的 PR 数量上限从 10000 提高到 12500。
此外,我们 Bugzilla 上的 Wiki 文档已更新:
页面 https://wiki.freebsd.org/Bugzilla/SearchQueries 已经进行了重大改版:
特别是,已添加关于如何搜索标志值的文档。(这可能以前尚未完成。) 示例:搜索设置了标志'mfc-stable14'的 PR;
这个页面可能会引起所有提交者和贡献者的兴趣;
页面 https://wiki.freebsd.org/Bugmeister/BugmeisterQA 也已更新; 虽然与上述类似,但更具体地适合 bugmeister 和审查者的兴趣。
同样,特定于 FreeBSD 12 的 PR 正在被清除,因为 12 已经在 20231231 之前不再受支持。
我们正在进一步努力记录 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 想要感谢许多人协助进行错误修复,包括 Mina Galić、Graham Perrin、Lorenzo Salvadore 和 Fernando Apesteguìa 等人。
除此之外,bugmeister 想要感谢所有帮助处理 PR 的 FreeBSD 提交者。在过去的几个月里,我们似乎更接近稳定状态了。
变更影响基本系统和其中的程序。
链接:D40370:自动监禁 rc.d 服务的基础设施 URL:https://reviews.freebsd.org/D40370 D40371:自动服务 jails:一些设置以实现自动服务 jails 的全部功能 URL:https://reviews.freebsd.org/D40371 D42779:Service Jails 的手册/ rc 文章更新 URL:https://reviews.freebsd.org/D42779
联系人:Alexander Leidinger < netchild@FreeBSD.org>
服务 jails 扩展 rc(8) 系统,以允许自动监禁 rc.d 服务。 服务 jail 继承父主机或 jail 的文件系统,但默认情况下使用其他所有限制 (进程可见性、受限网络访问、文件系统装载权限、sysvipc 等)。 附加配置允许继承父级的 IP、sysvipc、内存页面锁定以及使用 bhyve 虚拟机监视器( vmm(4))。
如果想将例如 local_unbound 放入一个服务 jail 并允许 IPv4 和 IPv6 访问,只需更改 rc.conf(5) 为:
注意:所有基本系统服务都在补丁中进行了覆盖,要么使用 name_svcj_options 或者硬编码禁用了服务 jails 功能,其中它没有意义(例如纯服务会更改运行时配置,但不会启动守护程序,或者在其中运行有些事情无法以明智的方式在 jail 内运行)。 因此,上面的 local_unbound_svcj_options 行是多余的,仅仅作为总配置数量的一个示例。
虽然这种方法不具备与手动 jail 设置相同的安全性好处(使用单独的文件系统和 IP/VNET),但它设置起来要容易得多,同时提供了类似 jail 的一些安全性好处,如隐藏同一用户的其他进程。
自上次服务 jails 状态报告以来,已添加以下内容:
在服务 jails 框架内支持 NFS(未经测试)。
监狱化除了 start 和 stop 之外的其他服务命令的可能性,
在补丁 D40371 中为所有基础系统服务的服务 jails 选项/配置,
在手册中对服务 jails 进行第一步的文档化。
不是所有的服务都经过测试,但所有的服务都有配置。
欢迎进行任何测试和反馈(即使只是简单的“服务 X 在服务 jail 中工作”)。
更新到内核子系统/功能、驱动程序支持、文件系统等。
联系人: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 操作次数
'表 2。经过的运行时间|经过的运行时间(秒)
'正如你所看到的,带有 packrat 的情况运行速度稍快,且 RPC 较少。虽然这个测试是在我的小型局域网上运行的,但希望在 WAN 上进行 NFSv4.1/4.2 挂载会显示更大的性能差异。我会注意到,packrat 缓存通过将 FreeBSD 的/usr/src 的 tarball 展开到 NFSv4.1/4.2 挂载点来初始化。'
这将是一个非常实验性的功能,但希望它能更有效地允许 NFS 挂载的使用,特别是在 WAN 情况下,比如移动笔记本电脑。
仍然有工作要做,特别是在 NFSv4.1/4.2 客户端重新启动后恢复委托的工作。希望下一个状态报告将包括一个允许用户测试下载补丁的网址。
更新平台特定功能并支持新的硬件平台。
联系人:Robert Clausecker < fuz@FreeBSD.org>
作为改善 FreeBSD ports 集合在 armv7 架构下质量的长期项目的一部分,已经解决了基本系统和各种 ports 中的一些问题。通过此举,成功从 2023 年第四季度分支的 ports 集合构建的二进制软件包数量从 30018(截至 2023-10-04)增加到 31118(截至 2023-11-24)。
发现并解决了影响软件包构建的两个内核错误(PR 267788 和 PR 274705),仅这两个错误就导致了大约 900 个构建失败的软件包。其它导致构建失败的常见原因包括
缺乏适用于 FreeBSD 特定 armv7 支持代码
数据对齐问题(armv7 是我们不支持未对齐内存访问的少数架构之一)
在构建过程中出现地址空间耗尽(通常与 LTO 相关;PR 274705 解决了许多情况)
armv7 FreeBSD 上缺乏 OpenMP 支持
如果您是在 armv7 上使用 FreeBSD ports 集合的用户,请在出现任何问题时毫不犹豫地在我们的错误跟踪器上提交错误报告。
链接:FreeBSD 基金会博客文章网址:https://freebsdfoundation.org/blog/a-sneak-peek-simd-enhanced-string-functions-for-amd64/ simd(7) 网址:https://man.freebsd.org/cgi/man.cgi?query=simd&sektion=7&manpath=FreeBSD+15.0-CURRENT 目前正在接受测试的工作网址:https://github.com/clausecker/freebsd-src/commits/acceptance-testing
联系人:Robert Clausecker fuz@FreeBSD.org
用于增强 libc 并为 amd64 实现字符串函数的 SIMD 实现项目现已结束。总共为 17 个 libc 函数编写了 SIMD 实现,必要时补充了标量实现。通过此重写,64 个字符平均长度的字符串函数的性能平均提高了 5.54 倍。此外,还有 9 个其他库函数被重写以调用 SIMD 增强的例程,带来好处,而无需额外的汇编实现。有关详情,请参阅上面链接的 FreeBSD 基金会博文。
SIMD 工作的部分已经在 CURRENT 分支中找到。其余部分目前正在接受验收测试,如果没有问题将会合并。计划将所有的改进都回退到 14-STABLE,以便包括在 FreeBSD 14.1 中。
赞助方:FreeBSD 基金会
更新云特定功能并为新云平台提供支持。
链接: OpenStack 网址: https://www.openstack.org/ 在 FreeBSD 上的 OpenStack 网址: https://github.com/openstack-on-freebsd
联系人: 张智欣 < starbops@hey.com> 联系人: 许立文 < lwhsu@FreeBSD.org>
在第四季度,我们成功地将最初虚拟化的 OpenStack 平台迁移到运行 FreeBSD 14.0-STABLE 的物理机器上。移植的 OpenStack 组件包括 Keystone、Glance、Placement、Neutron 和 Nova。在这个过程中,我们抓住机会更新了安装文档和依赖项列表。
未来,我们鼓励对这个项目感兴趣的用户和开发人员根据此文档在其 FreeBSD 环境中轻松重新创建 OpenStack 平台。欢迎报告在 GitHub 项目页面上遇到的任何问题或困难。您的贡献将有助于完善我们的安装文档和整体移植工作。
在即将到来的季度,我们的重点将转向将迁移过程中生成的各种补丁和解决方案以更有结构的代码形式整合到项目中。此外,我们计划为每个 OpenStack 组件开发一个 FreeBSD 包,进一步简化安装流程。
赞助方: FreeBSD 基金会
链接: Microsoft Azure 上的 FreeBSD 维基文章 网址: https://wiki.freebsd.org/MicrosoftAzure Microsoft HyperV 上的 FreeBSD 维基文章 网址: https://wiki.freebsd.org/HyperV
联系人: Microsoft FreeBSD Integration Services Team < bsdic@microsoft.com> 联系人: freebsd-cloud 邮件列表 联系人: The FreeBSD Azure Release Engineering Team < releng-azure@FreeBSD.org> 联系人: Wei Hu < whu@FreeBSD.org> 联系人: Souradeep Chakrabarti < schakrabarti@microsoft.com> 联系人: Li-Wen Hsu < lwhsu@FreeBSD.org>
本季度,我们解决了所有阻塞问题,并在 Azure Marketplace 上发布了 14.0-RELEASE,提供完整的架构(amd64、arm64)和 VM 生成(gen1、gen2)支持,根文件系统支持 UFS 和 ZFS。
进行中的任务:
自动化镜像构建和发布过程,并合并到 src/release/。
将快照构建发布到 Azure 社区画廊。
以上任务由 FreeBSD 基金会赞助,微软提供资源。
打开任务:
在 Microsoft Learn 更新 FreeBSD 相关文档
在 Azure Pipelines 中支持 FreeBSD
更新 Azure 代理 port 到最新版本
上游本地修改的 Azure 代理
Port Linux 虚拟机扩展 for Azure
赞助商:Microsoft 为 Microsoft 用户提供支持,为其他用户提供资源 赞助商:自由协会 (The FreeBSD Foundation) 负责其他所有任务
链接:FreeBSD/EC2 Patreon 网址:https://www.patreon.com/cperciva
联系:Colin Percival cperciva@FreeBSD.org
FreeBSD 可在 amd64(Intel 和 AMD)和 arm64(Graviton)EC2 实例上使用。正在进行工作,以确保支持即将推出的实例类型;最近为支持“第七代”Intel 和 AMD 实例进行了必要的更改。
FreeBSD 14.0-RELEASE 随附实验性 ZFS-root AMI 和“cloud-init” AMI。计划推出其他“flavored” FreeBSD AMI,包括“AMI Builder”和“minimal”(无调试符号)。
修复了发布构建过程中的一个错误,导致 14.0-RELEASE AMIs 在/etc/rc.conf 中出现重复行,未来的发布不应受影响。
修复了 ec2-aws-imdsv2-get 实用程序中的一个错误,导致 14.0-RELEASE AMIs 不支持二进制用户数据文件,未来的发布不应受影响。
这项工作得到了 Colin 的 FreeBSD/EC2 Patreon 的支持。
文档树、手册页面或新的外部图书/文档的重要变化。
链接:FreeBSD 文档项目 URL:https://www.freebsd.org/docproj/ 链接:FreeBSD 文档项目新贡献者入门指南 URL:https://docs.freebsd.org/en/books/fdp-primer/ 链接:文档工程团队 URL:https://www.freebsd.org/administration/#t-doceng
联系方式:FreeBSD Doceng 团队 doceng@FreeBSD.org
doceng@团队是处理与 FreeBSD 文档项目相关的一些元项目问题的主体;欲了解更多信息,请参阅 FreeBSD Doceng 团队章程.
在上个季度:
格伦·巴伯从文档工程部门辞职。文档工程部门感谢 gjb@的服务。
Ceri Davies 的提交权限已根据他的要求暂时保留。文档工程部门感谢 ceri@的贡献。
mhorne@ to be mentored by carlavilla@ to obtain a documentation commit bit.
该手册已更新,显示 FreeBSD 14.0 是最新版本。
链接:在 Weblate 上翻译 FreeBSD 网址:https://wiki.freebsd.org/Doc/Translation/Weblate 链接:FreeBSD Weblate 实例网址:https://translate-dev.freebsd.org/
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%)
我们要感谢所有为翻译或审阅文档做出贡献的人。
请帮助在您当地的用户组推广这一工作,我们始终需要更多的志愿者。
联系人:Sergio Carlavilla carlavilla@FreeBSD.org
下一部分要处理的是文件系统部分:UFS、ZFS、其他文件系统
联系人:Sergio Carlavilla carlavilla@FreeBSD.org
与 FreeBSD 14.0 一起发布了新的常见问题解答。
联系人:Sergio Carlavilla carlavilla@FreeBSD.org
负责创建新的 FreeBSD 文档门户和重新设计 FreeBSD 主网站及其组件的工作组。FreeBSD 开发人员可以在 FreeBSD Slack 频道# wg-www21 上关注并加入工作组。工作将分为三个阶段:
重新设计网页脚本的手册页面,使用 mandoc 生成 HTML 页面。(已完成,已获 Doceng 批准,部署日期尚未确定)https://man-dev.FreeBSD.org 上的公共实例
重新设计 FreeBSD 主网站,全新设计,响应式和暗色主题。(几乎完成,在 EuroBSDCon 上展示)
重设计 Web Ports 页面上的脚本,创建一个应用程序门户。(正在进行中)
链接:FreeBSD 在线文档编辑器 网址:https://github.com/Wang-Yan-Hao/FreeBSD-Online-Document-Editor FreeBSD 在线手册页面编辑器 网址:https://github.com/Wang-Yan-Hao/man_page_editor
聯絡人:Yan-Hao Wang bses30074@gmail.com 聯絡人:Li-Wen Hsu lwhsu@FreeBSD.org
本報告提供了 FreeBSD 在線編輯器和手冊頁編輯器項目的持續概述,概述了近期努力改進文檔和手冊頁編輯流程。為了優化項目的結構完整性,我們聘請了一位專業的前端程序員的專業知識。我們計劃很快發布編輯器,目前有一些需要額外支援的任務。
我們正在積極尋找一位合格的個人,來對項目進行全面的前端安全審查。
在确保其健壮性和效率的情况下,对 JavaScript 代码进行细致的检查是至关重要的。我们正在寻找具有专业知识的人来彻底检查代码库,识别任何问题,并提出增强性能的建议。
由于目前没有现成的 JavaScript 库可以渲染 mandoc,我不得不自己创建一个。然而,在编辑过程中仍会出现一些隐藏的错误。我们正在寻求帮助来解决这些渲染问题。
链接: Wiki 网址: https://wiki.freebsd.org
联系: Wiki 管理员 < wiki-admin@FreeBSD.org>
计划正在进行中,以在 Discord 上向我们的观众介绍 Wiki(在我们的 FreeBSD 社区中有太多的“孤立群体”)。有关更多信息,请在 FreeBSD Discord 上联系 Setesh。
正在进行更新维基软件本身的初步工作。继续运行 MoinMoin 需要一个带有 downrev 版本的 Python 的 jail。MoinMoin 项目本身似乎在重新设计的中途停滞了;至少需要完全升级后端数据库。
正在考虑的替代方案包括 MediaWiki 和 DocuWiki;请参阅 https://wiki.freebsd.org/Wiki/NextGeneration。大部分讨论发生在 Matrix 上;如果您想参与,请联系 wiki-admin@FreeBSD.org。
影响 Ports 集合的变化,无论是触及大部分树木的全面变化,还是个别的 ports 本身。
链接:KDE/FreeBSD 倡议 URL:https://freebsd.kde.org/ FreeBSD — KDE 社区维基 URL:https://community.kde.org/FreeBSD
联系人:Adriaan de Groot < kde@FreeBSD.org>
KDE on FreeBSD 项目为 FreeBSD ports 树打包了 CMake、Qt 和来自 KDE 社区的软件。软件包括一个完整的桌面环境,称为 KDE Plasma(适用于 X11 和 Wayland),以及数百个可以在任何 FreeBSD 机器上使用的应用程序。
KDE 团队是 desktop@ 和 x11@ 的一部分,负责构建软件堆栈,使 FreeBSD 既美观又适合作为日常使用的图形桌面工作站。下面的说明主要描述了 ports 的 KDE,但也包括了对整个桌面堆栈重要的项目。
CMake 已经更新了多次,现在是最新的上游版本 3.28.1。FreeBSD 的 ports 再次完全更新。
Qt5 现在处于长期支持状态,更新很少。KDE 补丁集是 Qt 的社区支持分支,从 KDE 社区汇集上游补丁和修复,并更新到了 5.15.12。在 Qt5ports 中有几处弃用(见下文)。
Qt6 和 KDE 即将推出的 KDE Plasma 6 大版本(计划于 2024 年第一季度发布)是 KDE 团队的下一个重要里程碑。Qt6 已更新至 6.6.1 版本,同时还更新了 Qt 的 Python 绑定库 PySide。KDE Frameworks 6 的 Alpha 版本已添加到 ports 树中。
KDE Gear 每季度发布一次,KDE Plasma 每月更新一次,KDE Frameworks 也每月发布新版本。这些(大型)更新会在上游发布后不久到来,不会单独列出。
KDE Frameworks 达到了 5.112 版本。KDE Frameworks 5 系列即将完成,尽管它还需要几个月才能进入上游的长期支持。
KDE Plasma 桌面更新到了版本 KDE Plasma 5.27.10。
KDE Gear 更新到了 23.08.4 版本。
KDE Frameworks 6 (alpha) 5.247 在 ports 树中已更新。
KDE Plasma Desktop 6 (beta 2) 5.91.0 在 ports 树中已更新。
KDE 生态系统包括各种定制 — 大多由 kde@ 维护,都建立在 Qt 和 KDE 框架的共享基础上。KDE 团队根据需要更新它们。本季度,KDE 团队要再次感谢 Tobias C. Berner、Gleb Popov 和 Jason E. Hale 保持更新。
许多定制已经被“调味”以支持 Qt5 和 Qt6 镜像在 BSD 树中。
特别提及:
新的 port x11/xwaylandvideobridge。根据设计,X11 应用程序无法访问 Wayland 客户端的窗口或屏幕内容。视频桥改善了对 Discord、MS Teams、Skype 等屏幕共享工具的 Wayland 支持。屏幕共享完全由 Wayland 用户控制。
更新 multimedia/mlt7 到 7.20.0。
更新 sysutils/bsdisks 到 0.33。
修复 devel/llvm15 中的错误,使 devel/kdevelop 再次正常工作。
www/qt5-webengine 和 www/qt6-webengine 的安全修复。
Web 浏览器非常庞大,并且具有相当大的安全漏洞。在 2023 年的最后一天,这个备受尊敬的 www/qt5-webkit WebKit port 被移除。
链接:GNOME 网址:https://www.gnome.org/ 开发仓库网址:https://codeberg.org/olivierd/freebsd-ports-gnome
联系人:FreeBSD GNOME 团队 gnome@FreeBSD.org 联系人:Olivier Duchateau duchateau.olivier@gmail.com
GNOME 是一个完整的桌面环境,主要基于 GLib、GTK3/GTK4 和 libadwaita。它提供两个窗口管理器或合成器:x11-wm/mutter 和 x11-wm/metacity。
目前在 ports 集合中,x11/gnome-shell 不再得到上游支持。由于这是一项繁重的工作,为了让用户能够使用 GNOME 44,我决定拆分此更新,因为它影响了几个 ports。
作为 x11/budgie 和 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)或 package:sysutils/gnome-control-center 中的在线帐户面板崩溃。
尽管如此,桌面的其余部分是可用的,最新发布的 GNOME Shell 版本(44.7)是可用的。我已经开始提交我的第一个要审查的补丁(以及那些在 Bugzilla 中)。
我还移植了 GNOME Flashback 会话模块。它依赖 x11-wm/metacity 和 x11-toolkits/libwnck3。
我还维护一份文档,我们可以看到各种可用的桌面。
GNOME 45 几乎完成了,除了 GNOME Shell 扩展。这个版本我将专注于 Wayland 支持( bug #258042 和 bug #271836)。
欢迎测试和补丁,特别是针对 WebKitGTK。
下个月我计划做的事情包括:
允许在显示管理器(gdm)中选择会话,这与我们的补丁有关的回归。
修复 sysutils/gnome-control-center 中共享网络(VNC,SSH)面板,并为 bug#275900 进行回溯。
继续更新应用程序和库以适配 GNOME 45。
链接:GCC 项目 网址:https://gcc.gnu.org/ GCC 10 发布系列 网址:https://gcc.gnu.org/gcc-10/ GCC 11 发布系列 网址:https://gcc.gnu.org/gcc-11/ GCC 12 发布系列 网址:https://gcc.gnu.org/gcc-12/ GCC 13 发布系列 网址:https://gcc.gnu.org/gcc-13/
联系:Lorenzo Salvadore < salvadore@FreeBSD.org>
正在前进更新 GCC 默认版本至 13。感谢安托万·布罗丁进行实验运行,以及所有其他参与者和 ports 维护者。
正如您可能还记得上一季度一样,额外的补丁与默认版本更新一起进行了测试。它们中的一些已经被合并:
lang/gcc11 已切换回 STANDARD_BOOTSTRAP,并已更新至 11.4.0;
lang/gcc13 已更新至版本 13.2.0。
大约一半的已知 bug 已经修复,但另一半仍然存在。如果您维护受影响的 ports 之一,请尝试修复您的 port(们),或者使您的 port 可以使用基础编译器构建。
本季度还有许多关于 GCC 的 bug 报告。一旦默认的 GCC 版本更新完成,所有这些 bug 将得到解决。
许多项目建立在 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 进行编排。
在本季度期间,发布了 Pot 0.16.0,其中包含许多功能和修复,包括一个新设置,用于防止 VNET 花盆之间的直接流量,以及用于配置花盆停止行为的新属性。还对 potnet(0.5.0)和 nomad-pot-driver(0.10.0)进行了维护/稳定性发布。
Potluck 的目标是成为 FreeBSD 和 Pot 的 Dockerhub,就像 Dockerhub 是 Linux 和 Docker 的存储库一样:一种 Pot 口味和完整容器映像的存储库,可用于与 Pot 以及许多情况下的 Nomad 一起使用。
上个季度增加的新容器映像之一是 Zincsearch,这是一种轻量级的 Elasticsearch 替代品,使用 Go 语言编写。
Mastodon 容器目前正在为公共 mastodon.africa 实例提供动力。
另外,我们获得了更多的曝光:BSD Now 第 536 集的标题是“Pot-flavored Jails”。
一如既往,欢迎反馈和补丁。
赞助商: Nikulipe UAB, Honeyguide Group
上次修改时间: 2024 年 2 月 2 日 由 Lorenzo Salvadore 修改
这里是 2022 年的第三季度报告,包括 24 份报告。这比上一季度略少。
我注意到,在过去,我们的季度报告要多得多:经常超过 30 份,有时甚至超过 40 份。因此,我想鼓励你们所有的人提交报告:报告对于分享你的工作、寻找帮助、让更多的人审视你的变化、让更多的人了解你的工作是非常有用的。有更多的人审查你的修改,让更多的人测试你的软件,让你在需要的时候接触到更多的人。当你需要向所有的 FreeBSD 社区讲述一些事情时,你可以接触到更多的读者。告知所有的 FreeBSD 社区以及其他许多情况。请不要害羞,也不要担心您的母语不是英语,或者您不精通 AsciiDoc 的语法:季刊团队将很乐意帮助您解决任何需要。
另一方面,如果你真的没有什么可报告的,那么也许你想加入下面描述的一个有趣的项目,或者你会从其中的一个项目中得到启发,去做一个新的项目。也许你会受到其中一个项目的启发,去做一些新的事情,从而在未来有一些报道。
我们祝愿大家有一个愉快的阅读体验。
Lorenzo Salvadore,代表状态报告小组。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
本报告的渲染版可在此查阅:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
目录
FreeBSD 团队报告
FreeBSD 核心团队
FreeBSD 基金会
FreeBSD 发布工程团队
集群管理团队
持续集成
ports
项目
OpenStack 与 FreeBSD
作为一级云计算平台的 FreeBSD
用户空间
bhyve 调试服务器的改进
重写 pjdfstest
正在进行的 LLDB 多进程调试支持工作
DTrace:指令级动态跟踪
内核
ENA FreeBSD 驱动程序更新
wtap(4) 增强
英特尔无线走向 11ac
更多的无线更新
使用日志式软更新在文件系统上启用快照
架构
FreeBSD/Firecracker
文档
文档工程团队
ports
Calendar-data: 增加了许可证
KDE 与 FreeBSD
GCC 有新的维护者,GCC 12.2 和更多
sysutils/lsof 重大升级
第三方项目
容器和 FreeBSD:Pot, Potluck 和 Potman
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FreeBSD 核心团队是 FreeBSD 的管理机构。
已完成的项目
新的核心团队秘书
核心小组的所有成员公开表示感谢 Muhammad Moinur Rahman (bofh) 在过去两年中担任核心小组的秘书。
核心小组批准 Sergio Carlavilla(carlavilla)为新的核心小组秘书。
处理 GDPR 删除请求的程序
在基金会律师的帮助下,核心小组已经审查了处理 GDPR 删除请求的程序。该文件目前正在撰写中,将会在完成后公布。
新的隐私政策
核心团队正在与 FreeBSD 基金会紧密合作,以更新隐私政策,使之与当前的法律和类似网站的做法保持一致,例如我们的网站。
Bruce Evans 纪念牌
核心团队经投票一致同意为 Bruce Evans 设立纪念牌,提及他是 FreeBSD 的联合创始人。
EuroBSDCon 核心团队办公时间
9 月 1 6 日星期五,新的核心团队在 EuroBSDcon 2022 开发者峰会上发表了演讲。核心团队做了自我介绍,并谈了一下他们这一届的计划。与会人员对细节进行了讨论、问答和建议。
Commit 权限
核心小组批准了重启 Konrad Witaszczyk(def@)的源代码提交权限。现在 Konrad 在剑桥大学工作,负责开发 CheriBSD。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD 基金会的网址: https://www.FreeBSDFoundation.org
技术路线图网址: https://FreeBSDFoundation.org/blog/technology-roadmap/
捐赠网址: https://www.FreeBSDFoundation.org/donate/
基金会合作伙伴计划网址: https://www.FreeBSDFoundation.org/
FreeBSD 杂志网址: https://www.FreeBSDFoundation.org/journal/
基金会新闻和活动网址: https://www.FreeBSDFoundation.org/
FreeBSD 基金会是符合 501(c)(3) 的非盈利组织,致力于支持和推广 FreeBSD 项目和全球社区。来自个人和企业的捐款被用来资助和管理软件开发项目、会议和开发者峰会。我们还为 FreeBSD 贡献者提供旅行补助,购买和支持硬件以改善和维护 FreeBSD 基础设施,并提供资源以改善安全、质量保证和发布工程工作。我们出版营销材料来推广、教育和宣传 FreeBSD 项目,促进商业供应商和 FreeBSD 开发者之间的合作,最后,在执行合同、许可协议和其他需要一个公认的法律实体的法律安排时代表 FreeBSD 项目。
筹款工作
首先,我想向所有为我们的工作提供资金捐助的人表示衷心的感谢。我们的资金 100% 来自于你们的捐款,所以每一笔捐款都可以帮助我们继续在许多方面支持 FreeBSD,包括在这份状况报告中资助和发表的一些工作。
我们主要在五个方面支持 FreeBSD:软件开发是我们资助的最大领域,通过员工开发人员和承包商来实现新的功能,支持一级平台,审查补丁,并修复问题。您可以在这份报告中了解到我们在操作系统改进方面所做的一些工作。宣传 FreeBSD 是我们支持的另一个领域,通过会议、网上和现场的演讲,以及教程和操作指南来传播 FreeBSD 的信息。我们购买并支持用于支持该项目工作的 FreeBSD 基础设施的硬件。基金会组织的虚拟和现场活动帮助联系和吸引社区成员分享他们的知识并进行项目合作。最后,我们在需要时为项目提供法律支持并保护 FreeBSD 的商标。
我们今年的目标是为 200 万美元左右的支出预算筹集至少 140 万美元。当我们进入 2022 年的最后一个季度时,我们的捐款总额为 167,348 美元,所以我们仍然需要您的帮助。如果你今年还没有捐款,请考虑 https://freebsdfoundation.org/donate/。我们还有一个针对大型商业捐助者的合作伙伴计划。你可以在https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/ 找到更多信息。
系统改进
在 2022 年的第三季度,有 300 个 src,36 个 port,和 13 个 doc 树的提交将 FreeBSD 基金会列为赞助商。其中一些工作有专门的报告条目。
作为一级云计算平台的 FreeBSD
对英特尔 11ac 的无线支持
LLDB 多进程调试支持
FreeBSD 上的 OpenStack
使用日志式软更新的文件系统上的快照
其他赞助的工作是很难简明扼要地总结的。它从复杂的新功能到跨越 src 源代码的各种 bug 修复都不相同。以下是一个小样本,可以让大家了解上一季度的工作。
240afd8 makefs: 增加对 ZFS 的支持
这允许人们采用一个阶段性的目录树,并创建一个由 ZFS 池组成的文件,其中有一个或多个数据集,包含目录树的内容。这对于创建虚拟机镜像非常有用,而不需要使用内核来创建池;“zpool create”需要 root 权限,目前在 jail 中禁用。makefs -t zfs 还通过使用固定的种子来生成伪随机数,提供可重复的镜像,用于生成 GUID 和加盐哈希。
36f1526 在 arm64 上增加实验性的 16k 页面支持
在 arm64 上添加了初始的 16k 页面支持。它被认为是实验性的,不能保证与用户空间或以当前 4k 页大小构建的内核模块兼容。测试表明,在内核工作负载中取得了良好的效果,这些工作负载包括分配和释放大量的内存,因为在最好的情况下,只需要调用虚拟机子系统的四分之一。
1424f65 vm_pager: 删除默认的页表
它现在没有被使用。保留了 OBJ_DEFAULT 标识符,但将其作为 OBJT_SWAP 的别名,以方便树外代码的使用。
a889a65 eventtimer:修复定时器重载代码中的几个 race
在 handleevents() 中,在获取下一个事件的时间之前锁定定时器状态。一个并发的 callout_cc_add() 调用可能正在改变下一个偶数时间,而竞赛可能导致 handleevents() 编程一个过时的时间。导致 callout 运行得更晚(不受限制的时间,最多到闲置的硬时钟周期为 1s)比要求的时间晚。
Bhyve 问题支持
基金会与 John Baldwin 签订了合同,以便在出现问题时为 Bhyve 奉献时间,特别是安全问题。以下是他在该合同中对 2022q3 年的工作总结:
bb31aee bhyve virtio-scsi: 避免对访客请求的越界访问。
62806a7 bhyve virtio-scsi: 整理警告和调试打印文件。
7afe342 bhyve e1000: 净化传输环索引。
c94f30e bhyve: 验证用于映射穿透式 BAR 的主机 PA。
16bedf5 pci: 添加辅助程序以遍历设备的 BAR。
baf753c bhyve: 支持其他命名直通设备的方案。
fa46f37 bhyve e1000: 跳过有小头的数据包。
e7439f6 bhyve xhci: 在初始化端点时缓存 MaxPStreams 的值。
RISC-V 的改进
在本季度末,基金会与 Mitchell Horne 签订了合同,增加和改进对 RISC-V 硬件的支持。Mitchell 还将进行一般的维护工作,如修复错误,处理报告,为新的代码修改提供审查,以及改善源代码的可读性和文档。
持续集成和质量保障
基金会提供了一名全职工作人员,并资助了一些项目,以改善持续集成、自动测试以及 FreeBSD 项目的整体质量保障工作。您可以在专门的条目中阅读本季度的 CI 活动。
FreeBSD 推广与教育
我们的大部分工作是致力于项目的宣传。这可能涉及到突出有趣的 FreeBSD 工作,制作文献和视频教程,参加活动,或做演讲。我们制作文献的目的是教给人们 FreeBSD 的基本知识,并帮助他们在采用或贡献的道路上更加容易。除了参加活动和发表演讲之外,我们还鼓励和帮助社区成员举办他们自己的 FreeBSD 活动,发表演讲,或者担任 FreeBSD 的工作人员。
FreeBSD 基金会在全球范围内赞助了许多会议、活动和峰会。这些活动可以是与 BSD 相关的,也可以是开源的,或者是面向未被代表的群体的技术活动。我们支持以 FreeBSD 为中心的活动,以帮助提供一个分享知识的场所,在项目上一起工作,并促进开发者和商业用户之间的合作。这都有助于提供一个健康的生态系统。我们支持非 FreeBSD 的活动,以促进和提高对 FreeBSD 的认识,增加 FreeBSD 在不同应用中的使用,并招募更多的贡献者加入该计划。我们将继续参加个人和虚拟的活动,并计划 11 月的供应商峰会。除了参加和策划虚拟活动之外,我们还在不断地开展新的培训活动,并更新我们的指南选择,以方便让更多的人尝试使用 FreeBSD。
请看我们上一季度所做的一些宣传和教育工作:
在 7 月 28 日至 30 日于加州洛杉矶举行的 Scale 19x 会议上举办了一个 FreeBSD 研讨会并设立了一个展位。您可以在 SCALE19X 会议报告中了解更多关于我们的参与情况。
赞助并出席 7 月 30-31 日在台湾举行的 COSCUP 会议
参加了 EuroBSDCon 开发者峰会,赞助并出席了 9 月 15-18 日在奥地利维也纳举行的 EuroBSDcon 2022。
赞助并出席了 2022 年 9 月 29-30 日在洛基山举行的“计算机领域女性庆典”。可以在这里找到 Deb 的演讲的幻灯片。
发布 FreeBSD 基金会 2022 年夏季更新
继续以管理员和导师的身份参与 Google Summer of Code。在这里可以看到对一些 Google Summer of Code 学生的采访。
介绍了一个新的 FreeBSD 资源页面,可以按主题类型、内容类型和难度进行搜索。
新的博客文章:
特邀文章:科研中的 FreeBSD
为 2022 年及以后的 FreeBSD 做宣传
八月基金会筹款更新
在 Linux 和 FreeBSD 之间共享双许可证的驱动程序
新的和更新的操作指南和快速指南:
FreeBSD 快速指南: 在 FreeBSD 上播放视频
FreeBSD 上的二进制包管理
我们通过出版专业的 FreeBSD 杂志来帮助大家了解 FreeBSD。正如我们之前提到的,FreeBSD 杂志现在是一份免费出版物。了解更多信息并访问最新的期刊:https://www.FreeBSDfoundation.org/journal/。
你可以在 https://www.FreeBSDfoundation.org/news-and-events/ 找到更多关于我们参加的活动和即将举行的活动。
法律/FreeBSD 知识产权
基金会拥有 FreeBSD 的商标,保护这些商标是我们的责任。我们还为核心团队提供法律支持,以调查出现的问题。
前往 https://www.FreeBSDFoundation.org 了解更多关于我们如何支持 FreeBSD 以及我们如何帮助您的信息!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD 12.4-RELEASE 计划表链接: https://www.freebsd.org/releases/12.4R/schedule/
FreeBSD 13.2-RELEASE 计划表链接: https://www.freebsd.org/releases/13.2R/schedule/
FreeBSD 14.0-RELEASE 计划表链接: https://www.freebsd.org/releases/14.0R/schedule/
FreeBSD development 计划表链接: https://download.freebsd.org/snapshots/ISO-IMAGES/
FreeBSD 发布工程团队负责制定和发布 FreeBSD 官方项目版本的发布时间表,宣布代码冻结并维护相应的分支,以及其他一些工作。
在 2022 年的第三季度,发布工程小组继续为 main、 stable/13 和 stable/12 分支提供每周的开发快照构建。
此外,即将到来的 12.4、13.2 和 14.0 发布周期的时间表也在项目网站上公布。
赞助商:Rubicon Communications, LLC (“Netgate”) 赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
集群管理团队成员链接: https://www.freebsd.org/administration/#t-clusteradm
FreeBSD 集群管理团队的成员负责管理该项目所依赖的机器,以同步其分布式工作和通信。在本季度,该团队进行了以下工作:
为 CI 系统增加了额外的存储空间。这将有助于存储更多的工件。
在所有官方镜像中部署了 VuXML。它加快了 pkg 的审计功能。
一个新的(和额外的)监控系统已经到位。
一些旧的和有问题的机器已经退役。
将几个服务移到了较新的硬件上。
定期进行集群范围内的软件升级
定期支持 FreeBSD.org 用户账户
对所有物理主机和镜像机进行定期的磁盘和部件支持(和更换)。
正在进行的工作。
git infra: 增加 --filter
支持。
与 PowerPC 团队合作,改进软件包构建者、通用和参考机器。
在我们的主站点进行站点审计:清点备件和其他占用我们机柜空间的杂物。
与 Juniper 讨论为我们的主站点捐赠新的交换机的问题。
计划在我们的主站点进行大规模的网络升级。
集群更新(更多的扩展项目)。截至 2022-09-30,大多数集群机器都在运行 FreeBSD 13-STABLE 或 14-CURRENT。只有少数机器还在使用 FreeBSD 12-STABLE。
我们正在欧洲寻找一个额外的全镜像站点(五台服务器)。请看适合我们需求的通用镜像布局。我们也欢迎提供额外的单服务器镜像,特别是在欧洲。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
FreeBSD Jenkins Instance 网址: https://ci.FreeBSD.org
FreeBSD CI artifact archive 网址: https://artifact.ci.FreeBSD.org
FreeBSD Jenkins wiki 网址: https://wiki.freebsd.org/Jenkins
Hosted CI wiki 网址: https://wiki.freebsd.org/HostedCI
3rd Party Software CI 网址: https://wiki.freebsd.org/3rdPartySoftwareCI
Tickets related to freebsd-testing@ 网址: https://preview.tiny网址.com/y9maauwg
FreeBSD CI Repository 网址: https://github.com/freebsd/freebsd-ci
dev-ci Mailing List 网址: https://lists.freebsd.org/subscription/dev-ci
联系:freebsd-testing Mailing List
联系:IRC #freebsd-ci channel on EFNet
FreeBSD CI 团队负责维护 FreeBSD 项目的持续集成系统。CI 系统检查提交的修改是否能够成功构建,然后对新构建的结果进行各种测试和分析。这些构建的工件被归档到工件服务器中,以备进一步测试和调试的需要。CI 团队成员检查失败的构建和不稳定的测试,并与该领域的专家合作,修复代码或调整测试基础设施。
在 2022 年第三季度,我们继续与项目中的贡献者和开发者合作,以满足他们的测试需求,同时也继续与外部项目和公司合作,改进他们的产品和 FreeBSD。
重要的已完成任务:
扩大工件存储空间,以增加更多类型的工件和更长的保留期。
在 EuroBSDcon 2022 开发者峰会上展示测试/CI 状态更新
增加 main-powerpc-images 和 main-powerpcspe-images
正在进行的工作任务:
设计并实施预提交的 CI 构建和测试(以支持工作流工作组)
设计和实现使用 CI 集群来构建发布工件,就像发布工程那样
测试和合并 FreeBSD-ci repo 中的拉动请求
为贡献者和开发者简化 CI/测试环境的设置
设置 CI 阶段环境,并将实验性工作放在上面
整理 freebsd-ci 代码库中的脚本,为合并到 src 代码库做准备
更新 wiki 上的文档
已有或等待执行的任务:
收集和整理 CI 任务和想法
为运行测试的虚拟客体设置公共网络接入
实现使用裸机硬件来运行测试套件
添加 drm port,并针对 -CURRENT 编译测试
计划运行 ztest 测试
增加更多外部工具链相关的工作
提 - 高硬件实验室的成熟度,增加更多测试用的硬件
帮助更多的软件在其 CI 管道中获得 FreeBSD 支持 (Wiki 页面: 3rdPartySoftwareCI, HostedCI)
与托管 CI 供应商合作以获得更好的 FreeBSD 支持
请参阅 freebsd-testing@ 相关信息以了解更多的 WIP 信息,不要犹豫,加入我们一起努力吧!
赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
About FreeBSD Ports 网址:https://www.FreeBSD.org/ports/
Contributing to Ports 网址: https://docs.freebsd.org/en/articles/contributing/#ports-contributing
FreeBSD Ports Monitoring 网址: http://portsmon.freebsd.org/
Ports Management Team 网址: https://www.freebsd.org/portmgr/
Ports Tarball 网址: http://ftp.freebsd.org/pub/FreeBSD/ports/ports/
ports 管理团队负责监督 ports 的整体方向、建筑配套和人事事务。下面是上一季度的情况。
目前,在 Ports 中有超过 30,500 个 port。目前有不到 2,800 个开放的 port PR,其中 750 个是未分配的。上一季度,主分支上有 151 个提交者提交了 9,137 份代码,2022Q3 分支上有 61 个提交者提交了 589 份代码。与两个季度前相比,这意味着 port 的数量略有增加,但也意味着(未分配的)port PR 的数量略有增加,提交的数量略有减少。
在上一季度,我们欢迎 Felix Palmen (zirias@) 成为新的 ports committer,欢迎 Akinori MUSHA (knu@) 回来,并向 Olli Hauer (ohauer@) 道别。我们还欢迎 Luca Pizzamiglio (pizzamig@) 成为 portmgr 的正式成员。
在上个季度中,对 Ports 树进行了一些大的修改。
从每个 Makefile 的顶部删除了“Created by” 一行,因为其中很多都已经过时了。
WWW: 已经从每个 pkg-descr 中移到了每个 Makefile 中作为一个变量; 以下是 Stefan Eßer (se@) 所写的,他做了这项工作。
对一个 port 功能的描述,应以提供进一步信息的网页的 网址 结束,例如使用或配置的最佳实践。这些信息可以用 pkg query -e 来显示已安装的包,或 pkg rquery -e 来显示可用的包。网址 曾经被附加到 ports 的 pkg-descr 文件的末尾,并以“WWW:”为前缀,这样工具就可以从描述中提取 网址。随着时间的推移,许多这样的 网址 都变得过时了,因为 port 的更新通常只修改 Makefile,而不是 pkg-descr 文件。通过将这些 网址 的定义移到 Makefile 中,维护者更有可能将 网址 与其它的 port 变更一起更新,而工具也能更容易地访问它们。现在,网址 被分配给 Makefile 中的 WWW 宏,并可以通过 port 目录中的 make -V WWW 进行查询。处理软件包文件中的描述的工具仍然能够工作,因为最后的“WWW:”行是由 Makefile 中的 WWW 值生成的。
在 EuroBSDCon 期间,portmgr@ 对改善内核模块包的情况进行了讨论。讨论了各种可能性。
以下是发生在幕后的情况:
一个新的 USES,“vala”,被添加进来。
Go 的默认版本被提升到了 1.19。
CMake 现在是一个元 port
增加了对 Qt 6 的初步支持,版本为 6.3.2
Vim 不再在系统中安装 vimrc 了。
一些主要的 ports 得到了更新:
pkg 1.18.4
Chromium 106.0.5249.91
Firefox 105.0.1
火狐长期支持版本 102.3.0
KDE 应用程序 22.8.1
KDE 框架 5.98
Rust 1.63.0
SDL 2.24.0
Xorg 服务器 21.1.4 (大修)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
跨越多个类别的项目,从内核和用户空间到 Ports 或外部项目。
链接:
OpenStack 网址: https://www.openstack.org/
OpenStack on FreeBSD 网址: https://github.com/openstack-on-freebsd
OpenStack 是一个开源的云操作系统,适用于不同类型的资源,如虚拟机和裸机。用户可以在这个开放的云平台上催生 FreeBSD 实例,但目前还不能在 FreeBSD 主机上运行 OpenStack 控制面板。这个项目的目标是移植 OpenStack 的关键组件,使 FreeBSD 能够作为 OpenStack 主机运行。
学术界和工业界的研究小组从 2022 年中期开始对支持 CHERI 的 Morello 板进行了评估。像 OpenStack 这样的资源协调平台可以提高配置、管理和回收这些板子的速度和成本。
从 2022 年 1 月开始,Chih-Hsin Chang 一直在努力将几个 OpenStack 组件移植到 FreeBSD 上运行,包括:
Keystone(身份服务)
Glance (图像服务)
Placement (资源跟踪和库存服务)
Neutron (网络服务)
Nova (计算服务)
其中一些项目仍在大力开发中。例如,由于 Neutron 的设计,DHCP 服务器被放在 Linux 网络命名空间内。有必要在 FreeBSD 上找到一个替代品,例如 vnet,并对其进行调整。大多数情况下,移植的策略是通过绕过障碍物来尽可能地减少影响。但是像 oslo.privsep 这样的东西值得进行真正的移植。oslo.privsep 根植于 Linux 的能力,可以进行权限分离工作。现在我们只是在 oslo.privsep 中绕过了任何与 Linux 功能相关的操作。所以目前在源代码和配置中存在大量的 hack 行为。所有这些连同编译和安装步骤将被收集在项目库中。
在第四季度,Chih-Hsin 计划专注于移植 Neutron 和 Nova,以完成虚拟机的生命周期操作。亮点包括:
DHCP 集成
FreeBSD 桥接驱动/代理
Bhyve + Libvirt 集成
赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
cloud-init Website 网址: https://cloud-init.io/
cloud-init Documentation 网址: https://cloudinit.readthedocs.io/en/latest/
cloud-init ongoing refactorization 网址: link:https://github.com/canonical/cloud-init/blob/main/WIP-ONGOING-REFACTORIZATION.rst
cloud-init 是在云中配置服务器的标准方式。不幸的是,对 Linux 以外的操作系统的云计算支持相当差,而 FreeBSD 缺乏对云计算的支持,这对那些希望提供 FreeBSD 作为一级平台的云计算供应商来说是一个障碍。为了补救这种情况,这个项目旨在使 FreeBSD 的云端启动支持与 Linux 的支持相提并论。更广泛的计划是提升对所有 BSD 的支持。
这个项目的成果包括完成对某些网络类的提取,实现 ifconfig(8) 和 login.conf(5) 解析器,实现 IPv6 配置,为 Azure 创建 devd.conf(5) 规则,以及 FreeBSD Handbook 关于生产 FreeBSD 的文档。
在这个过程中,任何在模块和文档中发现的与 BSD 相关的错误也将被修复。
有兴趣帮助这个项目的人可以通过 net/cloud-init-devel 来帮助测试新的功能和修复,这个项目将每周更新一次。此外,我们也非常欢迎能够使用 OpenBSD 和 NetBSD 并有相关经验的人提供帮助。
赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
影响基本系统和其中程序的变化。
bhyve 调试服务器的增强
链接:
链接:Wiki project page
链接:Differential
这个项目的目标是增强 bhyve 的调试服务器的功能。现有的几个与单步走有关的功能与英特尔特定的虚拟机机制有关,这严重损害了 bhyve 在其他 x86 平台上的调试功能。第一个目标是将单步支持扩展到 AMD 主机上。第二个目标是使用客户操作系统的硬件调试寄存器增加对硬件观察点的支持。
该项目是在谷歌的夏季代码计划下进行的,大约在 7 月底完成。这个项目的维基还包含了关于几个已实现机制的详细文档。
这些变化可以总结为以下几点:
支持在 AMD 平台的虚拟机内放置软件断点。
支持在 AMD 平台上对虚拟机进行单步操作。
支持在英特尔和 AMD 平台的虚拟机中放置硬件观察点。
欢迎任何反馈、评论和讨论,我们将不胜感激。
赞助商:谷歌代码之夏
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
重写 pjdfstest
链接:
Github 网址: https://github.com/musikid/pjdfstest
Blog 网址: https://musikid.github.io/blog/rewrite-pjdfstest/
可配置性增强,以便更好地与其他文件系统一起使用。
速度更快,主要得益于上述可配置性。
更好的测试案例隔离,使故障易于调试。
所有测试用例不再需要 root 权限。
测试用例可以在调试器中运行。
可维护性增强,减少重复操作。
仍有几个悬而未决的 PR 需要完成,但我们希望能把这些工作做完,并很快把 pjdfstest 加入到 ports 中。在那里,它将被 /usr/tests 用于 ZFS 和 UFS,以及被外部开发者用于其他文件系统。
赞助商:谷歌代码之夏
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
正在进行的关于 LLDB 多进程调试支持的工作
链接:
Moritz Systems Project Description 网址: https://www.moritz.systems/blog/multiprocess-support-for-lldb/
Progress Report 1 网址: https://www.moritz.systems/blog/implementing-non-stop-protocol-compatibility-in-lldb/
Progress Report 2 网址: https://www.moritz.systems/blog/full-multiprocess-support-in-lldb-server/
根据上游的描述,“LLDB 是下一代高性能调试器。它是作为一组可重用的组件构建的,这些组件高度利用了更大的 LLVM 项目中的现有库,例如 Clang 表达式解析器和 LLVM 反汇编器。”
FreeBSD 在基本系统中包括 LLDB。之前赞助的项目改进了 LLDB,使其成为基础系统中可信的调试器,尽管它与 GNU GDB 的当代版本相比仍有一些限制。这个项目于 2022 年 4 月开始。它的目标是实现对多个进程同时调试的全面支持。
在项目开始时,LLDB 对多进程调试的支持非常有限。目前,服务器已经能够使用 GDB 远程串行协议的多进程扩展来监控多个进程。为该协议实现客户端对应的工作正在进行。
一旦该项目完成,LLDB 将能够同时跟踪任意数量的分叉进程(相当于 GDB 的 detach-on-fork off)。
赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DTrace:指令级动态跟踪
链接:
Wiki article 网址: https://wiki.freebsd.org/SummerOfCode2022Projects/InstructionLevelDynamicTracing
Final code review 网址: https://reviews.freebsd.org/D36851
kinst 是一个新的 DTrace 提供者,允许任意的内核指令追踪。
该提供程序目前只针对 amd64 实现,但我们计划在未来将其移植到其他架构上。
kinst 探针是由 libdtrace 按需创建的,几乎可以为内核中的每一条指令创建探针。探针的形式如下:
其中 module
是包含指定函数的内核模块,function
是要追踪的内核函数,offset
是特定指令的偏移量。省略 offset
会使函数中的所有指令都被追踪。省略 module
会导致 DTrace 搜索该函数的所有内核模块。
例如,要追踪 amd64_syscall() 中的第二条指令,首先确定第二条指令的偏移量:
偏移量为 1。然后,要追踪它:
D 语言中还增加了一个新的关键字 regs
,提供了对探针启动时的 CPU 寄存器的只读访问。例如,当 kinst::amd64_syscall:1 探针启动时,追踪帧指针的内容(amd64 上的寄存器 %rbp):
kinst 的工作方式与 FBT(函数边界跟踪)提供者类似,它在目标指令上放置一个断点,并钩住内核的断点处理程序。它比 FBT 更强大,因为它可以用来在一个函数中的任意点上创建探针,而不是在函数边界。因为 kinst 必须能够追踪任意指令,所以它没有在软件中模拟大多数指令,而是使被追踪的线程在返回到原始代码之前执行一个指令的副本。
计划中的未来工作包括将 kinst 移植到更多的平台上,特别是 arm64 和 riscv,以及开发可以使用 kinst 追踪使用内核调试符号的内联函数调用的工具。
赞助商:谷歌公司(GSOC 2022)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
内核
内核子系统/功能、驱动支持、文件系统等方面的更新。
ENA FreeBSD 驱动程序更新
链接:
ENA README 网址: https://github.com/amzn/amzn-drivers/blob/master/kernel/fbsd/ena/README.rst
ENA(弹性网络适配器)是亚马逊网络服务(AWS)的虚拟化环境中可用的智能网卡。ENA 驱动程序支持多个发送和接收队列,可以处理高达 100Gb/s 的网络流量,这取决于它所使用的实例类型。
自上次更新以来已完成:
ENA 驱动 v2.6.0 和 v2.6.1 的上游,包括。
修复了第 6 代实例重置后的性能下降问题。
修复了启用 KASSERT 时的错误网图断言。
代码清理和风格修正。
记录的改进。
修复了 ENI 指标的检索问题。
赞助商:Amazon.com Inc
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
wtap(4) 增强
链接:
Add sta, hostap and adhoc mode to wtap wlan simulator
更多细节,请查看项目的 wiki 页面。
赞助商:Google Summer of Code 赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
英特尔无线向 11ac 发展
链接:
Intel iwlwifi status FreeBSD wiki page 网址: https://wiki.freebsd.org/WiFi/Iwlwifi
这个正在进行的项目旨在使用 LinuxKPI 兼容代码和本地 net80211 和内核代码支持 FreeBSD 上最新的 Intel 无线芯片组。此外,在 LinuxKPI 802.11 兼容代码中支持 11n 和 11ac 标准的工作正在进行中,并在本地 net80211 无线堆栈中填补 11ac 的空白。
对于英特尔 iwlwifi 无线驱动程序,在过去几个月中没有重大更新。我们将固件更新到最新的公开可用版本,并修复了一些最明显的错误。支持 D3 节电代码的工作也在进行中。
LinuxKPI 兼容代码也得到了一些改进和修复,这些改进和修复有时只在某些世代的 iwlwifi 芯片组上可以看到。
net80211 和 LinuxKPI 兼容代码对 11n 和 11ac 的改变到目前为止几乎没有公开可见,以避免破坏基本支持。基于较新的 802.11 标准的常量更新和其他没有用户可见效果的变化被合并了,功能上的变化将在未来几个月内跟进,最初隐藏在编译时或运行时选项后面。
为了跟踪这个分支的用户的利益,以及帮助进行更多的测试,改进和更新大部分被合并回 stable/13。
要了解最新的开发状况,请关注 freebsd-wireless 邮件列表和查看 wiki 页面。
赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
更多无线更新
链接:
Bjoern’s Wireless Work In Progress landing page 网址: https://people.freebsd.org/~bz/wireless/
Realtek rtw88 status FreeBSD wiki page 网址: https://wiki.freebsd.org/WiFi/Rtw88
Realtek rtw89 status FreeBSD wiki page 网址: https://wiki.freebsd.org/WiFi/Rtw89
MediaTek mt76 status FreeBSD wiki page 网址: https://wiki.freebsd.org/WiFi/Mt76
QCA ath11k status FreeBSD wiki page 网址: https://wiki.freebsd.org/WiFi/Ath11k
目前的发展主要是由英特尔的 iwlwifi 驱动再次推动(见其他报告)。俗话说“互相帮助”,所以 Realtek 的 rtw89 驱动的工作有助于发现困扰 iwlwifi 用户的 LinuxKPI 的错误。在这份状态报告中,主题主要是更多的驱动程序,它们确实需要更多的 LinuxKPI 支持。
各种工作正在进行中:
Realtek 的 rtw88 PCI 正在进行中,在 EuroBSDCon 上与 Hans Petter Selasky 进行了富有成效的讨论后,rtw88 USB WiFi 加密狗的 LinuxKPI USB 支持工作将继续进行。
Realtek 的 rtw89 驱动已经提交给 main,但还没有连接到构建中。扫描工作已经开始,但数据包还没有通过。有了这个驱动,就可以为拥有该芯片组的用户提供测试便利,以确定更多未实现的 LinuxKPI 位(其中一些也会帮助其他驱动),并减少我的工作。
下一个驱动可能是基于联发科的 mt76 驱动(用于 7921 和 7915),我已经在编译并开始测试。
根据要求,我也在开发支持 STA 模式的 ATH11K,因为一些供应商似乎用这些芯片运送笔记本电脑。
虽然其中一些工作显然得益于 FreeBSD 基金会赞助的 iwlwifi 和较新的标准支持,但其中很多只是自由时间的工作。如果你对这些驱动程序中的任何一个感兴趣,我将非常感激,如果有更多的人能够帮助其中的一个或另一个。这可能是定期测试主程序的更新,编写文档和更新 wiki 页面,跟踪 PR,尝试补丁,帮助个别 LinuxKPI 位的工作,无论是否有 802.11 的工作,或者只是调试个别驱动和/或芯片组的问题。如果你有兴趣帮助上述任何一项工作,请给我发邮件。
对于最新的发展状况,请关注 freebsd-wireless 邮件列表并查看 wiki 页面(如果存在)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在使用日志式软更新的文件系统上启用快照
链接:
Milestone 1 Core Changes 网址: https://reviews.freebsd.org/D36491
这个项目将使 UFS/FFS 文件系统的快照在使用日志式软更新运行时可用。
UFS/FFS 文件系统有拍摄快照的能力。因为快照的拍摄是在软更新编写之后加入的,它们与软更新完全集成。当日志式软更新在 2010 年被添加时,它们从未与快照整合。因此,快照不能在运行有日志的软更新的文件系统上使用。
随着 FreeBSD 对 ZFS 的支持,快照变得不那么重要了,因为 ZFS 可以快速而容易地进行快照。然而,在两种情况下,UFS 快照仍然是重要的。第一是它们允许可靠地转储实时文件系统,从而避免了可能的数小时的停机时间。第二种情况是,它们允许运行后台 fsck。类似于 ZFS 中对刷新的需求,fsck 需要定期运行以发现未被发现的磁盘故障。快照允许 fsck 在实时文件系统上运行,而不是需要安排停机时间来运行它。
这个项目有两个目标:
在运行日记式软更新时启用快照,并确保它们可以被用于在实时文件系统上进行后台转储。这个目标应该在 2022 年底前完成。
扩展 fsck_ffs,使其能够使用快照对运行有日记软更新的文件系统进行后台检查。这个目标预计将在 2023 年第三季度完成。
赞助:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
架构
更新特定平台的功能并引入对新硬件平台的支持。
FreeBSD/Firecracker
链接:
Firecracker VM
Firecracker 是由 Amazon Web Services 开发的开源“微型虚拟机”;它是为“无服务器”计算环境的需要而设计的,并特别注重安全和极简主义。
从 2022 年 6 月开始,Colin Percival 一直在努力将 FreeBSD 移植到 Firecracker 环境中运行,并得到了其他 FreeBSD 开发者的大力协助。在这份季度报告中,一组补丁正在等待审查,这些补丁共同增加了所需的支持,使 FreeBSD 能够在 Firecracker 的补丁版本中运行。
在第四季度,Colin 打算完成对 FreeBSD 的相关补丁的提交,发布内核和磁盘镜像,以便其他 FreeBSD 用户可以尝试使用 Firecracker,并更新和合并 Firecracker 的补丁,增加 PVH 启动支持(被 FreeBSD 使用)。
这项工作已经产生了“附带”的好处,揭示了加速 FreeBSD 启动过程的方法;由于其低开销和最小的环境,Firecracker 是进行这项工作的绝佳环境。
这项工作得到了 Colin 的 FreeBSD/EC2 Patreon 的支持。
赞助商:https://www.patreon.com/cperciva
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
文档
在文档、手册页或新的外部书籍/文档中值得注意的变化。
文档工程团队
链接:FreeBSD 文档项目
链接:为新的贡献者提供的 FreeBSD 文 档项目入门手册
链接:文档工程团队
doceng@ 团队是一个处理与 FreeBSD 文档工程相关的一些元项目问题的机构;更多信息请参见 FreeBSD Doceng 团队章程。
在上个季度:
0mp@ 卸任了 Doceng 的秘书,fernape@ 加入成为新的秘书。Doceng 感谢 0mp@ 的服务。
eadler@ 的文档位在他的要求下被收走保管。
为文档库添加了一个 git 提交信息模板。
待定和讨论中的项目:
删除网站和文档门户中过时的翻译。
FreeBSD 的文档项目入门
FDP 中增加了关于商标处理的信息。
port 开发者手册
更新了关于移植 Haskell 程序的文档。
记录了将 WWW 从 pkg-descr 移到 Makefile 的过程。
在 ports 框架中导入 Qt 6 库之后,增加了与之相关的文档。
FreeBSD 网站的翻译
链接:在 Weblate 上翻译 FreeBSD
链接:FreeBSD Weblate 实例
2022 年第三季度状况
12 种语言
148 个注册用户
Gasol Wu 加入了中文翻译团队。
Alvaro Felipe Calle 加入了西班牙语翻译团队。
语种
中文(简体) (zh-cn) (进度: 8%)
中文(繁体)(zh-tw)(进度:4%)。
荷兰语 (nl) (进展: 1%)
法语 (fr) (进展: 1%)
德文 (de) (进展: 1%)
印度尼西亚语 (id) (进展: 1%)
意大利语 (it) (进展: 4%)
挪威语 (nb-no) (进展: 1%)
波斯语 (fa-ir) (进展: 3%)
葡萄牙语 (pt-br) (进展: 16%)
西班牙文 (es) (进展: 15%)
土耳其语 (tr) (进展: 2%)
我们要感谢每一个作出贡献、翻译或审阅文件的人。
请在您当地的用户群中推广这项工作,我们总是需要更多的志愿者。
FreeBSD 手册页面门户网站
Manual Pages Portal 已经被重新设计为使用 mandoc(1) 进行渲染。门户网站的预览版已经推出。我们已经收集了反馈,并在可能的情况下进行了处理。还有一些剩余的非阻塞问题。Doceng@ 希望继续推进向这个新门户的迁移。
感谢所有审查和提供反馈的人。
FreeBSD 网站改版——WebApps 工作组
负责创建新的 FreeBSD 文档门户和重新设计 FreeBSD 主网站及其组件的工作小组。FreeBSD 开发者可以在 FreeBSD Slack 频道 #wg-www21 上关注并加入该工作组。这项工作将分为四个阶段。
重新设计文档门户
创建一个新的设计,具有响应性和全局搜索功能。(完成)
重新设计网络上的手册页面
使用 mandoc 生成 HTML 页面的脚本。(完成)
重新设计网络上的“ports”页面
用 ports 脚本来创建一个应用门户。(工作正在进行中)
重新设计 FreeBSD 的主网站
新设计,响应式和暗色主题。(未开始)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
影响 Ports 的变化,无论是涉及大部分的全面变化,还是个别 port 本身。
链接:
GitHub calendar-data 仓库的 网址: https://github.com/freebsd/calendar-data
port deskutils/calendar-data 包含了 BSD 日历程序的日历文件,由 se@ 维护。这个 ports 的数据存在于 GitHub 仓库,目前主要由 salvadore@ 维护。
大约两年前,基础仓库中的日历文件被从那里删除,并在 GitHub 上创建了一个新的仓库;也可以参见这篇关于创建相关 ports 的 Phabricator 评论。这一改进使得日历文件可以独立于基础系统进行更新。
不幸的是,在创建存储库的时候,忘记了给它添加许可证。这个问题在本季度通过这个由 salvadore@ 提交并由 imp@ 合并的拉动请求得到了解决。由于这些数据最初来自 src 仓库,所以同样的许可证也适用。如果你在过去为日历文件贡献了不同的许可预期,请通知我们,这样我们就可以为你的贡献提供相应的许可,或者删除它们。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
KDE FreeBSD 网址: https://freebsd.kde.org/
KDE Community FreeBSD 网址: https://community.kde.org/FreeBSD
KDE on FreeBSD 项目将来自 KDE Community 的软件,以及依赖关系和相关软件打包到 FreeBSD ports 上。这些软件包括一个叫做 KDE Plasma 的完整桌面环境(适用于 X11 和 Wayland)和数百个可以在任何 FreeBSD 机器上使用的应用程序。
KDE 团队 (kde@) 是 desktop@ 和 x11@ 的一部分,他们建立了软件堆栈,使 FreeBSD 成为漂亮的、可用于日常驱动的基于图形的桌面机器。下面的说明主要描述的是 KDE 的 ports,但也包括对整个桌面栈很重要的项目。
Qt6 可用
KDE ports 中的大新闻并不直接与 KDE 有关。Qt6 已经可用了,它为我们准备好了下一代基于 Qt 的应用程序。
现在可以用 USES=qt:6 来选择新的 Qt 版本。一些 ports 已经进行了调整以使用新的版本。
KDE 本身没有受到影响:针对 Qt6 的 KDE 框架的上游工作还没有完成。大多数 KDE Frameworks 会在 Qt6 上编译,但这对 FreeBSD 的 port 来说并不重要。使用 devel/qt6 可以得到 Qt 6.4.0,在本季度末发布。
KDE Stack
KDE Gear 每季度发布一次,KDE Plasma 每月更新一次,KDE Frameworks 每月也有一个新版本。这些(大型)更新在其上游发布后不久就登陆了,并没有单独列出。
KDE Frameworks 5 现在是 5.98 版本(从 2022 年 9 月开始每月最新发布)。
KDE Gear 现在是 22.08.1 版(2022 年 9 月的更新)。
KDE Plasma 现在是 5.24.6 版(2022 年 7 月的更新)。
请注意,KDE Plasma 5.25 已经在上游发布了,但在登陆 ports 之前还在等待修正 (例如,KDE 的 bug 跟踪中的这个 KActivityManager bug)。
相关的 port
accessibility/qt5-speech 现在支持多个后端,以及无后端的语音合成。
devel/cmake 被重新组织了,因此 devel/cmake 现在是一个安装了 devel/cmake-core 和其余 CMake 套件的 metaport。(感谢 diizzy@) CMake ports 也被更新到了 3.24 版,并在整个树上的 ports 中做了相应的改动。
net/qt5-network 改善了与 libressl 的兼容性。
x11/plasma-wayland-protocols 在下一季度的 KDE Plasma 桌面更新之前已经更新。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GCC:新的维护者,GCC 12.2 等等
链接:
GCC 项目网址:https://gcc.gnu.org
GCC 11 发布系列的网址:https://gcc.gnu.org/gcc-11/
GCC 12 发布系列的网址:https://gcc.gnu.org/gcc-12/
salvadore@ 采用了所有对应于 gcc 支持版本的现有 ports,即:lang/gcc10、lang/gcc11、lang/gcc11-devel、lang/gcc12、lang/gcc12-devel 和 lang/gcc13-devel。目前 -devel port 每周都会更新,除非是编译失败导致无法更新。当然,在后一种情况下,会尽快修复和/或向上游报告构建失败的情况。
GCC 12.2 已经发布了。传统上,FreeBSD 会等待 GCC 的第二个次要版本的发布,将其作为默认的 GCC 版本,因此大部分需要用 GCC 编译的软件已经被移植到最新的主要版本。因此,将 GCC 默认版本更新为 12 版的工作已经开始。非常感谢已经运行了第一个 exp-run 的 antoine@ 以及所有参与这个过程的贡献者、维护者和提交者。https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=2659548
关于 LTO 的讨论一直在进行,有很多不同的观点。如果有兴趣,你可以阅读该主题的最新贡献:lang/gcc11: Needs build time warning for /tmp consumption 和 lang/gcc11: build gets stuck。提醒一下。LTO_BOOTSTRAP 是一个默认启用的选项。如果您在自己的机器上联编 port,而它的资源消耗是不可接受的,禁用这个选项会让您得到更轻的编译。
jbeich@ 提交了一个补丁,以暴露非默认的 -stdlib=libc++ 支持,这个补丁已经成功地提交给所有相关的 port (gcc >= 11)。链接:https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265962
diizzy@ 刷新了 MASTER_SITE_GCC 变量中的镜像列表,同时删除了 ftp 镜像。GCC 主站点被用作后备站点。链接: https://reviews.freebsd.org/D36372
仍然需要对这三个变化提供帮助,以便与上游的 GCC 一起工作 (需要对 GCC 源码和上游的专业知识,而不是对 ports 框架的专业知识)。
upstreaming lang/gcc11/patch-gets-no-more
upstreaming lang/gcc11/patch-arm-unwind-cxx-support
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=256874
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
链接:
lsof 项目 repo 网址: https://github.com/lsof-org/lsof
联系:
sysutils/lsf 进行了一次重大升级,不再在 /dev/kmem
中查找数据,而是使用用户空间的 API。这在源代码上花了很长时间,但终于完成了。自 13.0-RELEASE 以来,它第一次修复了 lsof(8) 与 ZFS 一起工作。
这将使今后的维护工作更加容易。
内核人员:如果你做了破坏 lsof 的改动,请提交 GitHub 拉取请求到 https://github.com/lsof-org/lsof。请测试对 lsof 使用的接口的任何改动,并确保它们仍然工作。现在这些都应该是用户地接口,但请测试。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
第三方项目
许多项目都建立在 FreeBSD 的基础上,或者将 FreeBSD 的组件纳入他们的项目中。由于这些项目可能会引起更广泛的 FreeBSD 社区的兴趣,我们有时会在季度报告中加入这些项目提交的简短更新。FreeBSD 项目对这些提交的信息的准确性和真实性不做任何陈述。
容器和 FreeBSD:Pot, Potluck and Potman
链接:
Pot 组织在 github 上的 网址: https://github.com/bsdpot
Pot 是一个 jail 管理工具,也支持通过 Nomad 进行协调。
在上一季度,pot 0.15.3 已经发布。它包含了许多改进,比如 mount-out 可以移除或卸载之前 mount-in 的文件夹或文件系统,信号和 exec 命令,更好的 jail 生命周期处理,以及许多 bug 修复。
Nomad 驱动的新版本 nomad-pot-driver 0.9.0 也已经发布,支持信号和 exec,并进行了稳定性修复。
Potluck 的目标是成为 FreeBSD 和 pot,就像 Dockerhub 之于 Linux 和 Docker 一样:一个 pot 风味和完整的容器镜像的存储库,可用于 pot 和许多情况下 Nomad 的使用。
自从上次的状态报告以来,已经提交了许多变化,包括对核心镜像的许多修复和改进,如 grafana、postgresql-patroni 或 loki。此外,所有的镜像都已经针对 FreeBSD 13.1 和 12.3 进行了重建,并包含了当前正在使用的软件包的季度版本。
最后,Luca 在 EuroBSDCon 2022 上举办了 Pot 的实施和生态系统的讲座——一个天真的 FreeBSD 容器实施可以走多远。
一如既往,我们欢迎反馈和补丁。
NFS 操作次数 | 获取属性 | 查找 | 读取 | 写入 | 总 RPC |
---|---|---|---|---|---|
带 packrat | 不带 packrat |
---|---|
来自各个官方和半官方团队的条目,可以在页面找到。
联系:FreeBSD 核心团队
FreeBSD——基金会-合作伙伴关系-计划:
联系:Deb Goodkin
联系:FreeBSD 发布工程团队,
联系:集群管理团队
联系:Jenkins Admin
联系:Li-Wen Hsu
联系:René Ladan
联系:FreeBSD Ports Management Team
联系:Chih-Hsin Chang 联系:Li-Wen Hsu
联系:Mina Galić
联系:Bojan Novković
联系:Alan Somers
早在 2007 年,Pawel Jakub Dawidek 编写了 pjdfstest,一个 POSIX 文件系统的一致性测试工具。他最初写这个工具是为了验证 ZFS 对 FreeBSD 的移植,但后来它也被用于其他文件系统和其他操作系统。
今年,Sayafdine Said 在 Google 的赞助下重写了它。新版本有几个改进:
联系:Kamil Rytarowski
联系:Michał Górny
联系:Christos Margiolis
联系:Mark Johnston
联系:Michal Krawczyk
联系:David Arinzon
联系:Marcin Wojtas
联系:En-Wei Wu
联系:Li-Wen Hsu
联系:Bjoern A. Zeeb
wtap(4) 是 Monthadar Al Jaberi 和 Adrian Chadd 在 2012 年推出的一个 net80211(4)Wi-Fi 模拟器。它最初支持 802.11s 网状模式,并被用于验证。在 2022 年谷歌代码之夏期间,En-Wei 一直致力于为它带来 sta、hostap、adhoc 和监控模式。这项工作还包括用 atf(7) 编写的 wtap(4) 为 net80211(4) 添加基本测试。
联系:Bjoern A. Zeeb
联系:Bjoern A. Zeeb
联系:Kirk McKusick
联系:Colin Percival
联系:FreeBSD Doceng 团队
联系:Sergio Carlavilla
联系人:Sergio Carlavilla
联系:Stefan Eßer
联系:Lorenzo Salvadore
联系:Warner Losh
联系:Adriaan de Groot
联系:
联系:Lorenzo Salvadore
Larry Rosenman
我感谢 Warner Losh , Mateusz Guzik , 和 Ed Maste 帮助我完成这一重大改变。
联系:Luca Pizzamiglio (Pot)
联系:Stephan Lichtenauer (Potluck)
联系。Michael Gmelin (Potman)
带有 packrat
433506
99254
0
0
371736
不带 packrat
2359913
97954
10748
0
2318810
5561
6203
这是 2023 年第一季度的首份状态报告,共包括 25 个报告。除了我们习惯的团队报告,还包含云项目的一些新闻,以及 src、ports 和 doc 方面的进展等内容。
我们还介绍了 13.2-RELEASE 的一些信息,该版本被推迟到了 2023Q2 的开头。不过,由于这份报告的发布时间在 FreeBSD 新版本发布之后,因此该版本现在已经可以安装了。RELEASE 版本的用户现在可以受益于许多改进,例如更好的 iwlwifi(4)驱动程序支持或新的 rtw88(4)驱动程序。这些主题在过去的状态报告中也有涉及。
祝你愉快阅读。
状态团队代表 Lorenzo Salvadore
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这份报告的网页版本可以在此处查看:
https://www.freebsd.org/status/report-2023-01-2023-03/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
目录
FreeBSD 团队报告
FreeBSD 核心团队
FreeBSD 基金会
FreeBSD 发行工程团队
集群管理团队
持续集成
ports
状态团队
用户空间
daemon(8) 改进
内核
在 13.2 上启用使用日志软更新的文件系统的快照
改进 kinst DTrace 提供程序
原生 Linux timerfd
架构
在 AArch64 上启用内核地址检测器
bsd-user:上游和状态报告
云
将 FreeBSD 作为一级 cloud-init 平台
在 FreeBSD 上的 OpenStack
文档
文档工程团队
FreeBSD 俄语文档项目
ports
Freshports:SQL 注入攻击和帮助请求
DRM 驱动程序(即 GPU 驱动程序)
FreeBSD 上的 KDE
FSX
FreeBSD 上的 GCC
Valgrind - 准备 Valgrind 3.21
第三方项目
PkgBase.live
容器和 FreeBSD:Pot、Potluck 和 Potman
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
这里是来自各个官方和半官方团队的条目,可在管理页面中找到。
FreeBSD 核心团队
联系方式:FreeBSD 核心团队 core@FreeBSD.org
FreeBSD 核心团队是 FreeBSD 的管理机构。
项目
核心团队章程:草稿
2023 年第一次核心团队会议上,来自 12 月份在美国博尔德举行的会议的代表向整个团队呈报了他们的结论。团队将继续讨论这些问题,并与 FreeBSD 基金会一道努力。
FreeBSD 年度开发者调查
核心团队与 FreeBSD 基金会决定,由 FreeBSD 基金会负责进行年度开发者调查。
Matrix 即时通讯方案
核心团队继续评估 Matrix 作为 FreeBSD 开发者的即时通讯方案。一个实例已经准备好并正在进行测试。【译者注:Matrix 是一个开源的、去中心化的即时通讯协议和网络】
提交权限
核心团队批准了 Cheng Cui(cc@)的 src 提交权限。
核心团队批准恢复了 Joseph Koshy(jkoshy@)的 src 提交权限。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FreeBSD 基金会
链接:
FreeBSD 基金会网址:https://www.freebsdfoundation.org
技术路线图网址:https://freebsdfoundation.org/blog/technology-roadmap/
捐赠网址:https://www.freebsdfoundation.org/donate/
基金会合作伙伴计划网址:https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/
FreeBSD 杂志网址:https://www.freebsdfoundation.org/journal/
基金会新闻和事件网址:https://www.freebsdfoundation.org/news-and-events/
联系人:Deb Goodkin deb@FreeBSDFoundation.org
FreeBSD 基金会是一个 501(c)(3)非营利组织,致力于支持和推广全球的 FreeBSD 项目和社区。个人和企业的捐赠资金将用于资助和管理软件开发项目、会议和开发者峰会。我们还为 FreeBSD 贡献者提供旅行补助金,购买和支持硬件以改进和维护 FreeBSD 基础设施,并提供资源以改进安全、质量保证和发布工程方面的工作。我们出版营销材料以推广、教育和宣传 FreeBSD 项目,促进商业供应商和 FreeBSD 开发者之间的合作,并最终代表 FreeBSD 项目执行合同、许可协议和其他需要认可法律实体的法律安排。
募捐工作
我们终于得到了 2022 年的筹款数额,总共筹集了 $1,231,096!虽然我们没有达到预定目标,导致我们不得不从我们的长期投资中撤回了约 $74,000。
除了从我们的用户和贡献者那里获得了许多捐赠外,我们还从 Juniper、Meta、Arm、Netflix、Beckhoff、Tarsnap、Modirum、Koum 家族基金会和 Stormshield 等公司获得了较大的捐赠。我代表基金会向所有个人和企业,包括捐赠者,对你们在 2022 年的财政贡献表示衷心感谢!
今年我们的预算约为 2,230,000 美元,其中包括增加对 FreeBSD 宣传和软件开发的支出。超过一半的预算被分配给与改进 FreeBSD 和保持其安全性直接相关的工作。为了给 2023 年的预算提供资金,我们提高了筹款目标,并计划使用一些投资资金。当我们收到第一笔百万美元的捐款时,我们的计划是每年最多使用其中的 10% 来增加我们改进 FreeBSD 的工作,所以这已经是我们几年来资金计划的一部分。【译者注:我也没看懂最后一句话是什么意思】
2023 年的预算正在董事会的审批过程中,并将在获批后发布。
本季度我们收到了来自 Juniper、Tarsnap、微软和 Stormshield 的捐赠。所以,我们已经有了一个很好的开端!但是,我们绝对需要更多的支持来支持我们 2023 年的计划。
如果您想帮助我们继续努力,请考虑向我们的 2023 年筹款活动捐款!https://www.freebsdfoundation.org/donate/
我们还有一个针对更大的商业捐赠者的合作伙伴计划。您可以在https://freebsdfoundation.org/our-donors/freebsd-foundation-partnership-program/了解详情。
系统优化
在 2023 年第一季度,有 226 个 src、39 个 port 和 12 个 doc 提交的改动中,有一些是由 FreeBSD 基金会赞助的。其中一些受赞助的工作在单独的报告条目中有所描述,包括:
持续集成
在使用日志软更新的文件系统上启用快照
将 FreeBSD 作为一级 cloud-init 平台
FreeBSD 发布工程团队
改进 kinst DTrace provider
在 FreeBSD 上使用 OpenStack
基金会赞助的其他工作包括:
修复和更新 OpenSSH 到 9.2p1 和 9.3p1 版本
厂商将 libpcap 导入和更新到 1.10.3 版本【译者注:"vendor import" 意味着该更新是由软件供应商导入的,可能是为了提高该软件库与其它软件之间的兼容性。】
改进 tmpfs、msdosfs 和 makefs
添加新的 kqueue1 系统调用
更新 man 页面
修复 dtrace 和 bhyve 问题
LinuxKPI 的工作
持续集成和质量保证
基金会为 FreeBSD 项目提供流量全职员工和资金,以改进持续集成、自动化测试和整体质量保证工作。您可以在专门的报告中阅读有关 CI 工作的更多信息。FreeBSD 基金会目前资助的一个项目是开发一组脚本,帮助 src 开发人员自行进行 CI 测试。其中的主要目标之一是在提交前提供更多的可见性。第一个里程碑式的代码审查已经提交。
FreeBSD 的宣传和教育
我们的大部分工作都致力于推广 FreeBSD 项目。这可能包括推广有趣的 FreeBSD 项目,制作文献和视频教程,参加活动或者进行演讲。我们制作的文献旨在教授人们 FreeBSD 基础知识,帮助他们更容易地使用或者为项目做出贡献。除了参加活动和演讲,我们还鼓励和帮助社区成员自行组织 FreeBSD 活动、演讲或者承担 FreeBSD 展台。
FreeBSD 基金会赞助了全球许多会议、活动和峰会。这些活动可能与 BSD 相关,也可能与开源或者技术有关,面向的人群可能是被较少关注的群体。我们支持以 FreeBSD 为主题的活动,帮助为分享知识、共同开发项目以及促进开发者和商业用户之间的协作提供场所,从而提供健康的生态环境。我们支持非 FreeBSD 相关的活动,以促进和提高对 FreeBSD 的认识,扩大 FreeBSD 在不同应用领域的使用,并招募更多项目贡献者。我们现在大部分时间都是亲自参加活动,并开始计划于 2023 年 5 月举办的 BSDCan 开发者峰会。除了参加和计划活动外,我们还在不断制定新的培训计划,更新我们的指南,以帮助更多人尝试使用 FreeBSD。
看看我们的宣传和教育工作:
在 2023 年 2 月 4-5 日比利时布鲁塞尔举办的 FOSDEM 上设置了展台。查看旅行报告。
在 2023 年 2 月 7-8 日英国伦敦举办的“开放状态”(State of Open Con)上设立了桌子。阅读更多信息。
在 2023 年 3 月 9-12 日加利福尼亚州帕萨迪纳举办了 SCALE 20x 的工作坊和展台。查看旅行报告。
在 2023 年 3 月 23 日,赞助了在北卡罗来纳州夏洛特市举办的“开源 101”活动。
赞助并开始策划于 2023 年 5 月 17-18 日在安大略省渥太华举行的 2023 年 5 月开发者峰会。
获得了媒体合作伙伴赞助地位,并为 2023 年 10 月 15-17 日在北卡罗来纳州罗利举办的“All Things Open”提交了工作坊申请。
提交了在 2023 年 7 月 13-16 日在俄勒冈州波特兰举办的 FOSSY 的工作坊提案。
FreeBSD 项目被接纳为谷歌代码之夏的参与组织。
我们举办了 GSoC Office Hours,以帮助有问题的潜在参与者。
发布了三月份的通讯。
其他博客文章
新的开放职位:FreeBSD 用户空间软件开发人员 - 注意:此招聘已关闭。
BSDCan 2023 旅行补助申请现已开放 - 注意:申请已关闭。
FreeBSD 在新闻中的表现
我们通过出版专业制作的 FreeBSD Journal 来帮助全球了解 FreeBSD。正如我们之前提到的,FreeBSD Journal 现在是免费的出版物。您可以在 https://www.freebsdfoundation.org/journal/ 了解更多信息并访问最新问题。
您可以在 https://www.FreeBSDfoundation.org/news-and-events/ 了解我们参加的活动和即将举行的活动。
法律/FreeBSD 知识产权
基金会拥有 FreeBSD 商标,并有责任保护它们。我们还为核心团队提供法律支持,以调查出现的问题。【译者注:基金会至今为止并未就 FreeBSD 在中国境内的商标被抢注一事给出解决方案】
请访问 https://www.freebsdfoundation.org 了解有关我们如何支持 FreeBSD 以及如何帮助您的更多信息!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FreeBSD 发布工程团队
链接:
FreeBSD 13.2-RELEASE 日程安排网址:https://www.freebsd.org/releases/13.2R/schedule/
FreeBSD 14.0-RELEASE 日程安排网址:https://www.freebsd.org/releases/14.0R/schedule/
FreeBSD releases 版本网址:https://download.freebsd.org/releases/ISO-IMAGES/
FreeBSD 开发快照网址:https://download.freebsd.org/snapshots/ISO-IMAGES/
联系人:FreeBSD 发布工程团队,re@FreeBSD.org
FreeBSD 发布工程团队负责制定和发布 FreeBSD 官方项目的发布时间表,宣布代码冻结并维护相应的分支,等等。
在 2023 年第一季度,发布工程团队开始着手筹备即将到来的 13.2-RELEASE 版本。截至本文写作时,13.2 版本的开发已经按照最初设定的时间表进行,只不过增加了第四、第五和第六个 RC 版本的构建,将最终版本的发布时间从 3 月底推迟到了 4 月初。
发布工程团队继续为主分支、stable/13 分支和 stable/12 分支提供每周开发快照版本的构建。
赞助商:Rubicon Communications,LLC(“Netgate”)
赞助商:Tarsnap
赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
集群管理团队
链接: 集群管理团队成员链接:https://www.freebsd.org/administration/#t-clusteradm 联系方式:集群管理团队 clusteradm@FreeBSD.org
FreeBSD 集群管理团队负责管理项目所依赖的机器,以同步分布式工作和通信。
在本季度中,该团队开展了以下工作:
定期支持 FreeBSD.org 用户账户。
为所有物理主机和镜像提供定期的磁盘和零件支持(和更换)。
改进 PowerPC 软件包构建器。
借助 FreeBSD 基金会获得的新部件,构建器现在具有新的带散热片和带有更多缓存的 NVME。它有助于解决散热问题,现在他们正在更快地构建软件包。
将动态资源从主网站中解耦。
与 doceng 和 webmaster 协调工作,从网站 www.FreeBSD.org 和 docs.FreeBSD.org 中解耦动态资源。
正在进行的工作
在我们的主站点进行大规模的网络升级。
新的 Juniper 交换机已经到达我们的主站点,以替换以前的交换机。我们感谢 Juniper 的捐赠。
替换我们主站点和几个镜像中的旧服务器。
除了已经损坏的 CI 服务器外,我们还有一些带有损坏磁盘和有故障电源的旧服务器。这项任务与 FreeBSD 基金会和捐助者/赞助商协作。
部署基础设施以镜像网站。
由于 FreeBSD 网站现在基本上是静态的,我们已经开始部署基础设施,在由 FreeBSD 项目管理的镜像中在全球范围内镜像 www.FreeBSD.org 和 docs.FreeBSD.org。
为内部 FreeBSD.org 搜索需求(如邮件列表和文档)创建新的搜索数据库引擎。
FreeBSD 官方镜像概述
当前位置包括澳大利亚、巴西、德国、日本(两个完整的镜像站点)、马来西亚、南非、台湾、英国(完整的镜像站点)和美国(加利福尼亚州、新泽西州[主站点]和华盛顿州)。
硬件和网络连接由以下机构慷慨地提供:
法兰克福单服务器镜像是欧洲带宽和使用率方面的主要镜像。
我们仍在寻找一个额外的全镜像站点(五台服务器)来取代英国的全镜像站点中的旧服务器。
我们发现在全球互联网交换点拥有单个镜像的模式非常好(在澳大利亚,巴西和南非);如果您知道或在这些机构工作,可以赞助单个镜像服务器,请与我们联系。美国(西海岸)和欧洲(任何地方)是首选地点。
请查看完整镜像站点规格的通用镜像布局和单个镜像站点的 Tiny Mirror。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
连续集成
链接:
FreeBSD Jenkins 实例网址:https://ci.FreeBSD.org
FreeBSD CI 构件存档网址:https://artifact.ci.FreeBSD.org
FreeBSD Jenkins wiki 网址:https://wiki.FreeBSD.org/Jenkins
托管 CI wiki 网址:https://wiki.FreeBSD.org/HostedCI
第三方软件 CI 网址:https://wiki.FreeBSD.org/3rdPartySoftwareCI
与 freebsd-testing@ 相关的工单网址:https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=open&email1=testing%40FreeBSD.org&emailassigned_to1=1&emailcc1=1&emailtype1=equals
FreeBSD CI 代码库网址:https://github.com/freebsd/freebsd-ci
dev-ci 邮件列表网址:https://lists.FreeBSD.org/subscription/dev-ci
联系人:Jenkins 管理员 jenkins-admin@FreeBSD.org
联系人:Li-Wen Hsu lwhsu@FreeBSD.org
联系人:freebsd-testing 邮件列表
联系人:IRC EFNet 上的 #freebsd-ci 频道
2023 年第一季度,我们与项目的贡献者和开发人员合作,满足他们的测试需求。同时,我们与外部项目和公司合作,通过在 FreeBSD 上进行更多测试来增强他们的产品。
重要的已完成的任务:
添加了 FreeBSD-main-aarch64-KASAN_test 及其支持任务。
添加了 FreeBSD-stable-13-amd64-KASAN_test 及其支持任务。
FreeBSD-main-amd64-gcc12_build 现在会将失败的报告发送给可能相关的提交者。
trasz@ 修复或解决了非 x86 架构测试中的各种问题。
在 AsiaBSDCon 2023 开发者峰会上呈现测试/CI 状态更新。
正在进行的任务:
设计并实施预提交 CI 构建和测试(以支持工作流工作组)。
设计并实施使用 CI 集群来构建发布产品,就像发布工程所做的那样。
简化为贡献者和开发者设置 CI/测试环境的步骤。
设置 CI 阶段环境并在其中放置实验性任务。
整理 freebsd-ci 存储库中的脚本,为合并到 src 存储库做准备。
改进硬件测试实验室并添加更多硬件进行测试。
合并 https://reviews.freebsd.org/D38815。
合并 https://reviews.freebsd.org/D36257。
开放或等待中的任务:
收集和分类 CI 任务和想法。
为运行测试的 VM 客户机设置公共网络访问。
实现使用裸金属硬件运行测试套件。
添加对 -CURRENT 的 drm port 构建测试。
计划运行 ztest 测试。
帮助更多软件在其 CI 流水线中获得 FreeBSD 支持(Wiki 页面:3rdPartySoftwareCI、HostedCI)。
与托管 CI 服务提供商合作,以获得更好的 FreeBSD 支持。
请参阅与 freebsd-testing@ 相关的工单,以获取更多正在进行的信息,也欢迎加入我们的努力!
赞助:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ports
链接:
FreeBSD Ports 简介:https://www.FreeBSD.org/ports/
贡献 Ports:https://docs.freebsd.org/en/articles/contributing/#ports-contributing
FreeBSD Ports 监控:http://portsmon.freebsd.org/
Ports 管理团队:https://www.freebsd.org/portmgr/
Ports 压缩包:http://ftp.freebsd.org/pub/FreeBSD/ports/ports/
联系人:René Ladan portmgr-secretary@FreeBSD.org
联系人:FreeBSD Ports 管理团队 portmgr@FreeBSD.org
Ports 管理团队负责监督 Ports 的整体方向、构建软件包(通过其附属项 pkgmgr),以及人员问题。以下是本季度的情况。
目前,我们的 Ports 中大约有 33,500 个 port。对于这些 port,共有 3,021 个待解决的 bug 报告,其中 764 个未分配。今年前三个月,主分支有 163 名提交者提交了 9,021 个 commit,2023Q1 分支有 55 名提交者提交了 701 个 commit。与 2022Q4 相比,这意味着在 port 数量、ports PR、ports commit 和活跃的 port 提交者数量略有增加。
在本季度,我们欢迎了 Robert Clausecker (fuz@)、Vladimir Druzenko (vvd@)、Robert Nagy (rnagy@),并欢迎 Norikatsu Shigemura (nork@) 回归,同时告别了 Marius Strobl (marius@)。Portgmr 在成功地担任 lurkership 后,新增了 Muhammad Moinur Rahman (bofh@) 为新成员。
在 portmgr 双周会议期间,讨论了以下话题:
改善内核模块二进制包的情况
如何衡量 ports 对它们的依赖项的影响以及如何维护高影响力的 ports。
在本季度,进行了 32 次 exp-run 来测试 port 更新、更新默认版本(LLVM 到 15、MySQL 到 8.0、Ruby 到 3.1)以及在基础设施中更新 byacc。此外,Go 的默认版本更改为 1.20,Lazarus 的默认版本更改为 2.2.6。
引入了四个新的 USES:
budgie
用于支持与 Budgie 桌面相关的 port
ldap
提供对 OpenLDAP 的支持,新的默认版本为 2.6
nextcloud
用于支持 Nextcloud 应用程序
ruby
用于提供对 Ruby ports 的支持(前身为 bsd.ruby.mk)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
状态团队
链接:
FreeBSD 状态报告网址: https://www.freebsd.org/status/
FreeBSD 状态报告流程网址: https://docs.freebsd.org/en/articles/freebsd-status-report-process/
归档状态报告的 GitHub 仓库网址: https://github.com/freebsd/freebsd-quarterly
联系: status@FreeBSD.org
新的工作计划已经启动
在今年的第一季度,状态团队开始实施在 2022 年底宣布的新的工作流。以下是一些详细信息。
新的电子邮件地址
上一季度,我们宣布创建了新的电子邮件地址:
• status@FreeBSD.org, 用于直接与状态团队互动;
• status-submissions@FreeBSD.org, 用于发送报告提交;
• freebsd-status-calls@FreeBSD.org, 一个邮件列表,您可以订阅以获得有关状态报告提交截止日期的提醒。
不幸的是,邮件列表目前无法正常工作。该问题已报告,但尚未找到解决方案。但是,通过一种变通方法,第二和最后一个提醒可以发送到该列表。
自动化
为了确保没有报告遗漏,一些自动化措施已经被引入:
在 Phabricator 上,引入了一个 Heral 规则,自动阻止任何与状态报告目录相关的代码评审:即使报告提交者忘记将状态团队添加为评审人,Salvadore@(状态团队成员)也会阻止补丁的合并。同样的规则还会阻止任何将状态团队列为评审人的评审,以确保提交之前至少有一个状态团队成员审核了补丁。
一个 GitHub action 自动将新引入的状态报告标签添加到任何涉及状态报告目录的 pull request 中。该 GitHub action 应该可以轻松地由任何人进行修改,以便根据修改文件的路径自动应用更多标签。
计划引入更多自动化。
文档重组
状态报告的 README 和 How To 已经更新并合并为一个独特的文档:FreeBSD 状态报告过程。您可以查看该文档以了解有关报告提交和发布的详细信息。随着状态团队继续实施其新工作流程,该文档将定期更新。特别是,有关自动化的新材料即将推出。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
影响基础系统和其中程序的更改。
改进 daemon(8)
链接: daemon(8) 网址: https://man.freebsd.org/daemon/8
Libera IRC 网址: https://libera.chat/
联系人: Ihor Antonov ihor@antonovs.family
联系人: Kyle Evans kevans@FreeBSD.org
一项持续改进的工作正在进行,旨在提高 daemon 实用工具的代码质量和监督能力。daemon 是一个工具,可以将任何运行中的进程守护化(发送到后台)或监督它,如果它崩溃则自动重启。Daemon 在 port 中被广泛使用,并可以在基础系统中更多地使用。
本季度添加了 long_opts
支持,代码库经过了初始的重构阶段,以准备进行进一步的更改。目前还没有功能性的更改,但是更多的更改即将到来。如果遇到意外的错误,请直接联系或在 Libera IRC 的 #freebsd-dev 上进行反馈。
下一季度计划的工作项:
使用 kqueue 作为所有事件源【译者注:利用 kqueue 作为事件驱动的框架,来监听并响应所有的事件】
修复 Bug #268580
修复 Bug #236117
修复 Bug #254511
修复 Bug #212829
procctl PROC_REAP_ACQUIRE
我们正在寻求反馈、错误报告(旧和新)和功能请求。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在内核子系统、驱动程序支持、文件系统等方面的更新。
在 13.2 上启用基于日志软更新的文件系统快照
联系人:Marshall Kirk McKusick mckusick@freebsd.org
在 2023 年第一季度,能够在运行日志软更新时对 UFS/FFS 文件系统进行快照,并使用它们对活动文件系统进行后台转储的功能被合并到 releng/13.2,将在 FreeBSD 13.2-RELEASE 中发布。
使用 -L
参数请求后台转储。
这个项目的详细信息在 2022 年第四季度的报告中有说明。
赞助:FreeBSD 基金会 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
改进 kinst DTrace provider
链接:
libdtrace: 实现内联函数跟踪网址:https://reviews.freebsd.org/D38825
dtrace(1): 添加 -d 参数以在 post-dt_sugar 后转储 D 脚本网址:https://reviews.freebsd.org/D38732
联系人:Christos Margiolis christos@FreeBSD.org
联系人:Mark Johnston markj@FreeBSD.org
kinst 是由 christos@ 和 markj@ 创建的新的 DTrace provider,允许对内核函数进行任意指令跟踪。kinst 已经添加到 FreeBSD 14.0 的基本系统中。
2022Q3 状态报告简要介绍了 kinst。我们现在正在进行内联函数跟踪(请参见上面的 D38825 审阅)-这是一个备受期待的 DTrace 功能-通过使用内核 DWARF 和 ELF 信息找到每个内联副本的调用点,并使用该信息转换 D 语法,将 kinst 探针转换为以下形式:
变为:
示例:
dtrace(1) 新增了一个 -d
参数 ,它在 libdtrace 应用语法转换后会将 D 脚本进行转储。
其他的目标包括:
在 D 中实现一个 locals
结构,用于存储跟踪函数的局部变量。例如,在 kinst::foo:<x>
中,我们可以通过在 D 脚本中使用 print(locals→bar)
来打印局部变量 bar。
将 kinst 移植到 RISC-V / ARM64。
赞助者:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
原生的 Linux timerfd
链接:
Differential revision 网址: https://reviews.freebsd.org/D38459
联系人: Jake Freeland jfree@FreeBSD.org
timerfd 是一组 Linux 标准系统调用,可操作间隔定时器。这些定时器类似于每个进程的定时器,但由文件描述符表示,而不是进程。这些文件描述符可以传递给其他进程,在 fork(2) 时保留,并可以通过 kevent(2)、poll(2) 或 select(2) 进行监视。
FreeBSD 已经存在一个 timerfd 实现,用于 Linux 兼容性,但此差异修订使接口本地化。这个更改的目标是为了方便在包含 timerfd 的程序的 FreeBSD 移植过程。
此特定实现避免向系统调用表中添加新名称。相反,timerfd_create() 被 specialfd() 系统调用包装。timerfd_gettime() 和 timerfd_settime() 调用由 ioctl() 包装。
希望支持 FreeBSD 的开发人员应避免使用 timerfd。首选使用 kqueue() EVFILT_TIMER 过滤器来建立任意定时器。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
更新平台特定功能并为新硬件平台带来支持。
AArch64 上的内核地址消毒剂(Kernel Address Sanitizer)
联系人:Kyle Evans kevans@FreeBSD.org
内核地址消毒剂是一种检测 bug 的设施,它使用编译器(在本例中为 LLVM)插入的仪器和运行时状态跟踪的组合来检测 C 代码中的 bug。它们可以自动检测许多类型的 C 语言编程 bug,例如使用后释放和使用未初始化的变量,否则可能需要大量工作才能确定。它们特别适用于与回归测试套件或模糊工具(如 syzkaller)组合使用。与 Valgrind 等工具不同,必须重新编译软件才能启用给定的内核地址消毒剂,但内核地址消毒剂可以在内核中使用。启用了内核地址消毒剂的内核会在运行时产生显着的性能开销,包括 CPU 利用率和内存使用。
自 89c52f9d59fa 以来,先前仅限于 amd64 的内核地址消毒剂已经被移植到了 arm64。
此前已在多种机器上进行了测试,包括:
各种 Ampere Altra 机器
QEMU
微软的“Volterra”Devkit
bhyve(正在进行中)。
欢迎和感激在其他硬件上进行进一步测试。
赞助:Juniper Networks,Inc.
赞助:Klara,Inc.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
bsd-user:上游支持和状态报告
【译者注:bsd-user 是 QEMU(Quick Emulator)项目的一部分,它是一个用户空间模拟器,可以在不同的操作系统之间进行二进制指令的转换,从而实现在一个操作系统上运行另一个操作系统的程序。具体来说,bsd-user 是 QEMU 中用于模拟 BSD 系统调用的部分。通过 bsd-user,用户可以在基于 BSD 的操作系统之间运行二进制程序,而无需重新编译它们。】
链接:
QEMU 项目网址:https://qemu.org
FreeBSD bsd-user qemu fork 网址:https://github.com/qemu-bsd-user/qemu-bsd-user
QEMU 项目的 GitLab 镜像网址:https://gitlab.com/qemu-project/qemu
联系人:Warner Losh imp@FreeBSD.org
在这一季度中,Warner Losh 在 qemu-project 仓库上提交了两个 patch 集(第三个还在等待中)。Doug Rabson 提交了一些优化,以保存 qemu-user 模拟器的句柄供未来的 exec 使用。联系了一些希望在 NetBSD 上让 bsd-user 工作的人。代码之夏上游的项目表现出了一些兴趣。
上游的努力
本季度 sysctl 系统调用被上游了。Doug 的一些更改也被上游了(见下文)。在 NetBSD 和 OpenBSD 上进行一些清理以及在运行时动态生成系统调用仍在等待上游。
Doug Rabson 的更改
在他的容器工作的一部分中,Doug 提交了一些更改,允许内核缓存用于运行程序的模拟器。这使得内核可以使用缓存的模拟器直接 exec 新二进制文件。这简化了 bsd-user 并消除了它与 linux-user 之间的一个差异。Doug 还提供了一个重要的修复,防止 aarch64 运行失败。
Bug 修复和改进
除了 Doug 的修复外,这一季度 Warner 还进行了一些清理工作:
Warner 移除了仿真器中存在的“运行在任何 BSD 代码上”的最后几个部分。
虽然基本的系统调用可以在所有 BSD 之间进行仿真,但它们的系统调用接口已经分化太多,太过丰富,因此短期内无法实现。
Warner 原计划只移除 NetBSD 和 OpenBSD 的部分,但至少 NetBSD 的人员对构建这些东西表现出了兴趣。
现在,NetBSD 的人员已经有了联系方式并知道了方向,Warner 希望他们会提交一个 pull 请求,用于在 NetBSD 上构建 bsd-user。
Warner 添加了 SIGSYS 支持,以便我们能够更早地捕获未实现的系统调用,并改进了有关它们的报告,以获取更多关于失败原因的数据。
Warner 在 blitz
分支中清理了一些代码。
我们已经在使用的 blitz
分支中合并了上游最新的 8.0rc1。
代码之夏项目
对于 Qemu 的 project 列表中添加的 bsd-user upstreaming 任务,有很大的兴趣。运气好的话,我们将有一个学生来完成上游化所有运行简单程序所需的系统调用的工作。运气更好的话,我们将能够运行任何执行与 clang 相同的操作的程序(其中一个目标是使其编译 helloworld)。如果我们有机会得到这个位置,未来的季度报告将提供详细信息。
需要帮助
我们始终需要关于 bsd-user 的帮助。
欢迎为新系统调用提交 pull 请求。
自动生成我们手动完成的许多工作的自动化将会有所帮助(例如系统调用参数跟踪)。
热情的志愿者想要帮助我进行上游(如果您不想提交代码,许多任务都很简单和快速)。
与 NetBSD 人员协调和清理他们提出的内容。
需要修复 bug(特别是线程的 bug)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
更新云计算特定功能并引入对新云平台的支持。
FreeBSD 作为一级 Cloud-init 平台
链接:
cloud-init 网站 网址: https://cloud-init.io/
cloud-init 文档 网址: https://cloudinit.readthedocs.io/en/latest/
cloud-init 持续重构 网址: https://github.com/canonical/cloud-init/blob/main/WIP-ONGOING-REFACTORIZATION.rst
联系人:Mina Galić freebsd@igalic.co
Cloud-init 是云中配置服务器的标准方式。不幸的是,除 Linux 外,其他操作系统的 cloud-init 支持相对较差,而 FreeBSD 上缺乏 cloud-init 支持则妨碍了那些希望将 FreeBSD 作为一级平台提供的云服务提供商。为了解决这个问题,该项目旨在使 FreeBSD 的 cloud-init 支持与 Linux 支持相当。更广泛的计划是提高所有 BSD 的支持。
由于个人原因,本季度进展非常缓慢,也因为缺乏正确资源的访问。我一直在尝试移植 Infiniband 功能。这证明很困难,因为它推翻了我的观点,即 ifconfig(8) 是在 FreeBSD 上了解网络接口所需的全部内容。
在等待资源的同时,我调试了引导 pamic 并解决了它:499171a98c88。这使得可以在 LXD 上引导 FreeBSD,即 cloud-init 的 CI 平台。我们仍然需要解决高 CPU 使用率问题,但已经有一个已接受的审核:D38898。
一个 cloud-init 的同事在 Azure 工作,他成功让我使用 Azure 上的 HPC VM。不幸的是,这只是一个有限的时间,并不足以弄清楚如何在 FreeBSD 上启用 Infiniband,这是由 Linux 上的 Azure Agent 处理的任务,但 FreeBSD 的 sysutils/azure-agent 相当缺乏。
对此项目感兴趣的人可以提供来自其 Infiniband 系统的 ifconfig(8)、ibstat(8)、ibv_devinfo(1) 等复制。我也非常希望获得配有 Infiniband NIC 的硬件访问权限,或者听到在 Azure HPC 上成功使用 FreeBSD 的人的消息。
如果对该平台感兴趣,我将把一些精力用于修复 Azure Agent。
赞助商:FreeBSD 基金会
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在 FreeBSD 上运行 OpenStack
链接:
OpenStack 网址: https://www.openstack.org/
FreeBSD 上的 OpenStack 网址: https://github.com/openstack-on-freebsd
联系人:Chih-Hsin Chang starbops@hey.com
联系人:Li-Wen Hsu lwhsu@FreeBSD.org
该项目旨在移植关键的 OpenStack 组件,以便 FreeBSD 可以作为 OpenStack 主机运行。
在 2023 年第一季度,最重要的消息是我们能够在 OpenStack 平台上使用 bhyve(8) 生成 FreeBSD 实例。但仍存在一些需要解决的主要限制,包括:
没有自助网络(仅支持平面网络)【译者注:即在 FreeBSD 上使用 OpenStack 平台时,没有自动创建虚拟网络的能力。只能使用 "flat network",这意味着所有虚拟机都连接到同一网络中,并且需要手动进行网络配置。】
实例内没有网络连接
仅支持 FreeBSD RAW 镜像(已测试 FreeBSD-13.1-RELEASE-amd64.raw)
无法调整磁盘大小
没有控制台集成(需要手动使用 cu(1)命令)
在文档存储库中可以找到构建 POC 站点的逐步文档。每个 OpenStack 组件的修补版本都在同一个 GitHub 组织下。
此外,我们在三月底参加了 AsiaBSDCon 2023,并在开发者峰会上就当前项目状态发表了短暂的演讲。我们在活动中得到了宝贵的反馈,下一季度将专注于以下事项:
解决 Open vSwitch 网络问题
将每个 OpenStack 组件转换为 FreeBSD port
有兴趣帮助该项目的人可以首先按照安装指南检查文档。以下是该项目的一个开放任务:
oslo.privsep 库的 FreeBSD 特定实现
欢迎提供反馈和帮助。
赞助商:The FreeBSD Foundation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
文档、手册页面或新外部书籍/文档的重要更改。
链接:
FreeBSD 文档项目网址: https://www.freebsd.org/docproj/
FreeBSD 文档项目新贡献者指南网址: https://docs.freebsd.org/en/books/fdp-primer/
文档工程团队网址: https://www.freebsd.org/administration/#t-doceng
联系方式:FreeBSD 文档工程团队 doceng@FreeBSD.org
doceng@ 团队是处理 FreeBSD 文档项目中一些元项目问题的机构。有关详细信息,请参见 FreeBSD 文档工程团队章程。
在最近的季度中:
Pau Amma 获得了 doc 提交权限。
提议将 Lorenzo Salvadore 作为 doc 提交者。carlavilla@ 和 dbaio@ 将担任他的导师。
Ryusuke SUZUKI 从 doceng 中退出。doceng 感谢 ryusuke@ 的贡献。
待处理和讨论的事项:
添加了有关许可证的新文档。
Port 开发者手册:
已向手册添加了三个新的 Uses
开关:
新的 Uses = ruby。
新的 Uses = ldap。
新的 Uses = budgie。
此外:
修复了 NVIDIA 的安装和配置选项。
改进了高级网络章节。
在 Weblate 上的 FreeBSD 翻译
链接:在 Weblate 上翻译 FreeBSD
链接:FreeBSD Weblate 实例
Q4 202 2 状态
12 种语言
150 名注册用户
语言
简体中文(zh-cn) (进度:14%)【译者注:实际进度应该是 0%。本社区项目因为种种原因无法合并,现在需要人手来合并,要求了解 adoc 和 markdown 语法,能找到对应英语的中文翻译译文】
繁体中文(zh-tw) (进度:11%)
荷兰语(nl) (进度:1%)
法语(fr) (进度:1%)
德语(de) (进度:1%)
印尼语(id) (进度:1%)
意大利语(it) (进度:10%)
韩语(ko) (进度:11%)
挪威语(nb-no) (进度:1%)
波斯语(fa-ir) (进度:6%)
葡萄牙语(pt-br) (进度:29%)
锡兰语(si) (进度:1%)
西班牙语(es) (进度:37%)
土耳其语(tr) (进度:5%)
我们要感谢所有翻译或审核文档的贡献者。
请帮助在您的本地用户组推广此项目,我们总是需要更多的志愿者。
FreeBSD 手册工作组
联系方式:Sergio Carlavilla carlavilla@FreeBSD.org
已更新第 1 到 6 章。第 7 章正在进行中。
FreeBSD 网站翻新-WebApps 工作组
联系人:Sergio Carlavilla carlavilla@FreeBSD.org
工作组负责创建新的 FreeBSD 文档门户网站和重新设计 FreeBSD 主要网站及其组件。FreeBSD 开发人员可以关注并加入 FreeBSD Slack 频道 #wg-www21 的工作组。该工作将分为四个阶段:
重新设计文档门户网站
创建一个新的设计,具有响应式和全局搜索功能。(已完成)
重新设计 Web 上的手册页面
使用 mandoc 生成 HTML 页面的脚本。(已完成)公共实例在 https://man-dev.FreeBSD.org上
重新设计 Web 上的 Ports 页面
Ports 脚本用于创建应用程序门户网站。(正在进行中)
重新设计 FreeBSD 主要网站
新的设计,响应式和暗色主题。(正在进行中)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FreeBSD 俄语文档项目
链接:
FAQ 网址: https://docs.freebsd.org/ru/books/faq/
网址: https://www.freebsd.org/ru/
联系人:Andrey Zakhvatov andrey.zakhvatov@gmail.com
FreeBSD 俄语文档项目的目标是提供最新的 FreeBSD 文档(FAQ,Handbook,Web)的俄语翻译。为了让说俄语的人们使用高质量的官方技术材料,并增加这个操作系统在全球的接受度。我们希望这项活动能够得到俄语社区的支持,并带来更多的翻译材料。
FAQ 的翻译已经更新并与最新的原版同步。网页更新方面也有一些微小的进展。
如果你想帮助翻译,可以查看官方的翻译指南。我们会感激你帮助翻译以下材料:
网页(简单的)
Handbook 章节(目前只有 X11 部分正在进行中)
文章
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
影响到 Ports 的更改,无论是影响整个结构的全面变化,还是单个 port 本身的变化。
链接:
FreshPorts 网址: freshports.org
FreshPorts 博客网址: https://news.freshports.org/
联系人:Dan Langille dvl@FreeBSD.org
FreshPorts 和 FreshSource 已经报道了 FreeBSD 提交记录 20 年了。它们涵盖了所有提交,而不仅是 port。
FreshPorts 跟踪提交并从 portMakefiles 中提取数据,以创建对 port 维护者和 port 用户都有用的信息数据库。
例如,https://www.freshports.org/security/acme.sh/ 显示了 security/acme.shport 的历史记录,从 2017 年 5 月的创建到现在。还提供了依赖关系、风格、配置选项和可用包等。所有这些对 port 的用户和开发人员都很有用。
SQL 注入攻击
三月份,发现了一次 SQL 注入攻击,网站已被修补。通知已通过我们的 Twitter 账户、我们的状态页面以及网站每个页面顶部的通知发送。立即关闭了攻击向量[译者注:攻击向量(attack vector)是指攻击者利用安全漏洞或弱点,进入目标系统或者攻击目标的途径和手段】,并很快进行了修补。网站上还添加了额外的预防性补丁。我们所知道的所有问题都已经修复。用户已被通知并建议更改密码。
详情请见:
https://news.freshports.org/2023/03/24/sql-inejection-issues-fixed/
https://news.freshports.org/2023/03/24/freshsource-code-fixes/
需要帮助
FreshPorts 已经成立超过 22 年了。最后必须有其他人将其接过来。FreshPorts 有几个方面:
FreeBSD 管理员(更新操作系统和软件包)
前端代码(网站 - 大多数是 PHP)
后端代码(提交处理 - Perl、Python、shell)
数据库设计(PostgreSQL)。
与应用程序和操作系统相比,数据库的更改不经常发生,并且需要很少的维护。网站几乎自己运行。偶尔会出现对 FreeBSDport 基础架构的更改会破坏某些内容或需要进行修改,但很少有紧急情况需要修复。这不是一个巨大的时间承诺。有很多东西需要学习。虽然 FreshPorts 不是一个复杂的应用程序,但也不是微不足道的。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DRM 驱动程序(即 GPU 驱动程序)
链接:
GitHub 上的 Git 存储库网址:https://github.com/freebsd/drm-kmod
联系人:Emmanuel Vadot manu@FreeBSD.org
联系人:Jean-Sébastien Pédron dumbbell@FreeBSD.org
联系人:图形团队 freebsd-x11@FreeBSD.org
GPU 由 DRM 驱动程序驱动。它们是专门为 Linux 开发的,使用宽松的许可证。我们的使命是将这些驱动程序移植到 FreeBSD,以确保现代 GPU 得到充分支持。
我们很长时间没有发布报告来分享我们的进展。因此,本状态报告条目将涵盖不止上一季度的情况。
更新到了 Linux 5.15 LTS 和 Linux 5.16
截至本状态报告,graphics/drm-kmod 元 port 仍在 FreeBSD 13.1 及更高版本上安装来自 Linux 5.10(发布于 2020 年 12 月 13 日)的 DRM 驱动程序。该驱动程序版本不支持最近的 GPU,特别是英特尔第 12 代 Alder Lake。在过去的几个月中,我们致力于更新 DRM 驱动程序,以支持更现代的 AMD 和 Intel GPU。
drm-kmod Git 存储库主分支首先更新到 Linux 5.15(于 2021 年 10 月 31 日发布)。这是 Linux 中的 LTS 分支,我们想利用这个机会。因此,在那个时候,我们走了两条路:
创建了一个 5.15-lts 分支,用于将所有错误修复从 Linux 5.15.x 补丁版本中回溯。这项工作现在在 drm-515-kmodport 中可用。
继续从随后的 Linux 版本进行移植工作。主分支现在位于 Linux 5.16(于 2022 年 1 月 9 日发布)。
来自 Linux 5.15 LTS 的英特尔驱动程序支持第 12 代 GPU(Alder Lake)。它似乎在 FreeBSD 上运行良好,但我们迄今为止只进行了轻微的测试。我们仍然需要更多的测试,这就是为什么 graphics/drm-kmod 仍然安装 graphics/drm-510-kmod 而不是 graphics/drm-515-kmod 的原因。最后,FreeBSD 应该可以在这一代 GPU 和几款新的 AMD GPU 上运行桌面,尽管在实际测试和使用中肯定会出现问题。
在此过程中,我们将固件更新为 linux-firmware 20230210。
Linux 5.17 和未来的工作
Linux 5.17 中的 DRM 驱动程序(发布于 2022 年 3 月 20 日)已经被移植,但这项工作仍然停留在自己的分支中。
有几个问题阻碍了进一步的测试和合并到主分支中:
我们当前与 vt(4)的集成,即控制台/终端驱动程序,与基于 Linux 的 fbdev KPI 的 DRM 驱动程序的期望相去甚远。在英特尔和 AMD 驱动程序中都发生了变化,这意味着 vt(4)会在更新到 5.17 版本时出现问题。
初始的 Linux 5.17 版本不包含被反向移植到 Linux 5.15 LTS 的修复程序。它在先前提到的英特尔第 12 代 GPU 上似乎非常不稳定。
为了解决我们的 vt(4)集成层的问题,我们开始编写一个新的 vt 后端,专门使用 DRM 驱动程序公开的 fbdev 回调。该后端将随着 DRM 驱动程序而提供,而不是随 FreeBSD 内核提供,以使得随着驱动程序的发展更易于维护。这仍然是一项正在进行中的工作,特别是锁定的正确使用比较棘手。
关于 5.17 更新中对英特尔第 12 代支持不佳的问题,Linux 5.17.x 补丁程序中反向移植的错误修复可能不会作为此项工作的一部分进行移植。相反,我们将专注于 Linux 5.18(发布于 2022 年 5 月 22 日)和随后的版本。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FreeBSD 上的 KDE
链接:
KDE FreeBSD 网址:https://freebsd.kde.org/
KDE 社区 FreeBSD 网址:https://community.kde.org/FreeBSD
联系人:Adriaan de Groot kde@FreeBSD.org
KDE on FreeBSD 项目为 FreeBSD 的 port 打包了 CMake、Qt 和 KDE 社区的软件。该软件包括一个完整的桌面环境 KDE Plasma(适用于 X11 和 Wayland)以及数百个可在任何 FreeBSD 机器上使用的应用程序。
KDE 团队(kde@)是 desktop@ 和 x11@ 的一部分,构建软件堆栈,使 FreeBSD 美观易用,成为日常使用的基于图形界面的桌面机器。以下说明主要说明了 KDE 的 port,但也包括整个桌面堆栈的重要内容。
基础设施
Qt5 port 更新到了 KDE patch collection 5.15.8 发行版。
Qt6 port - KDE 尚未使用这些 port,但有许多 port 可以使用 Qt6 并具有 Qt6 flavor,已更新到了 6.4.2 版本。新增了 Qt6 发行版的 WebEngine 的 Python 绑定。
Cmake port 已更新到 3.25.1 版本,FreeBSD 软件包的 CPack 生成器已修复。
graphics/poppler port——许多 PDF 阅读器使用 - 已更新到 23.01 版本。
sysutils/bsdisks port——用作应用程序的 shim,这些应用程序需要 Linux udisk,这意味着大多数桌面环境——已更新到 0.29 版本。
KDE 软件堆栈
KDE Gear 每季度发布一次,KDE Plasma 每月更新一次,KDE Framework 每月都有新版本发布。这些(大型)更新会在上游发布后不久到达,不会单独列出。
KDE Framework 更新到 5.104 版本。
KDE Gear 更新到 22.12.3 版本。
KDE Plasma Desktop 更新到了 5.27 版本。由于支持堆栈中的未解决问题和 KDE Plasma 早期版本中的误置补丁,这是一个迟来的更新。感谢 arrowd@ 和 Serenity Cybersecurity, LLC 排解了这个问题。
新的 devel/ktextaddons port 已添加到 ports 中。这是 KDE PIM 套件的一部分,并计划在未来某个版本中成为新的 KDE Framework。
相关的软件包
音频播放器 amarok 是 KDE 最受欢迎的播放器之一,但已被标记为 ports 中弃用,它不再得到上游的维护。
星空模拟软件 kstars 更新至 3.6.3 版本。
git 的图形用户界面 gitqlient 更新至 1.6.1 版本,并支持新的 git 命令。
二进制文件的十六进制查看器和编辑器 okteta 更新至 0.26.10 版本。
带有 Qt 支持的 C++ 协程库 qcoro 更新至 0.8.0 版本。
绘画和图形工作应用 krita 更新至 5.1.5 版本。
图形可视化库 quickqanava 发布了一个真正的版本,并在 ports 中进行了更新。
IRC 客户端 kvirc 被更新至最新的提交版本。虽然没有真正的发布版本,但有一些 bug 修复。
视频和音频播放器 haruna 更新至 0.10.3 版本。
一款 Matrix 客户端 neochat 更新以追踪新版本的 net-im/libquotient。由于与较旧的 FreeBSD 版本的兼容性问题,KDE-FreeBSD 团队宣布 FreeBSD 12 发行版“已被有效地停止支持”。
Rocket Chat 客户端 ruqola 更新至 1.9.1 版本。
双因素认证支持应用 keysmith 更新至 23.01.0 版本。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FSX
链接:
GitHub 网址: https://github.com/asomers/fsx-rs
FreshPorts 网址: https://www.freshports.org/devel/fsx/
联系人:Alan Somers asomers@freebsd.org
FSX (File System eXerciser) 工具最初在九十年代由苹果公司开发,一直作为 FreeBSD 的一部分存在,自 5.0 版本以来就一直存在。该工具通过一系列随机生成的操作对文件系统进行压力测试,在每次读取后验证文件数据。然而,它从未作为操作系统的一部分安装;它只存在于源代码中。这使得它在 CI 管道中使用起来很困难。它还有其他一些限制。
因此,在本季度,我使用 Rust 对整个工具进行了重写。新版本与原版本完全兼容,只要种子值相同。然而,未来版本将打破向后兼容性,以添加新功能,如 fspacectl 和 copy_file_range。新版本可以在 ports 中找到,我会逐步移除原版本。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
在 FreeBSD 上的 GCC
链接:
GCC 项目网址: https://gcc.gnu.org
GCC 11 发行系列网址: https://gcc.gnu.org/gcc-11/
GCC 12 发行系列网址: https://gcc.gnu.org/gcc-12/
联系人:Lorenzo Salvadore salvadore@FreeBSD.org
联系人:Gerald Pfeifer gerald@pfeifer.com
本季度的主要消息是从 ports 中清除旧的 GCC 版本:这将允许更有效地处理错误。
废弃旧的 GCC port
ports 仍然包含多个与旧且不受支持的 GCC 版本相关的 port。它们通常作为一些旧 port 的依赖项,最好的方法是将其更新为使用受支持的 GCC 版本或废弃。已创建错误报告以跟踪此问题,并已经开始了解决该问题的工作。感谢所有贡献者的帮助。
废弃 USE_GCC=X+
Gerald 曾长期维护 FreeBSD 上的 GCC port,最近仍在通过帮助简化 ports 中的 GCC 基础架构来为 GCC 的维护做出贡献,例如通过删除处理旧不受支持的 GCC 版本的特殊情况。
本季度他最重要的更改可能是删除对 USE_GCC=X+
结构的支持:任何依赖于 GCC 的 port 都应该设置 USE_GCC=yes
,如果 GCC_DEFAULT
可用的话;如果不是,则应该要求特定版本(例如 USE_GCC=11
);它不能再要求最小版本(例如 USE_GCC=11+
)。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Valgrind——为 Valgrind 3.21 做准备
链接:
Valgrind 官方网站网址: https://www.valgrind.org/
Valgrind 新闻页面网址: https://www.valgrind.org/docs/manual/dist.news.html
联系人:Paul Floyd pjfloyd@wanadoo.fr
devel/valgrind-devel port 于 2023-02-20 提交了一个中间更新,其中包含了即将发布的 Valgrind 3.21 正式版本的大部分内容,正式版本将会在本状态报告之后不久发布。
vgdb 接口得到了一个不错的改进。现在更容易看到哪些内存位被初始化和哪些没有。Helgrind 执行的线程检查也进行了一些修复。
特别是对于 FreeBSD,地址空间限制已经被提高到与 Linux 和 Solaris 上的 amd64 相同。之前是 32G 字节,现在是 128G 字节。kern.proc.pathname.PID
sysctl(3) 已经修复,使其返回 guest exe 的路径而不是 Valgrind 主机的路径。同时,我还修复了一些 _umtx_op
的误报,并以与 kern.proc.pathname.PID
相似的方式纠正了 auxv AT_EXECPATH。还添加了 sctp_generic_sendmsg(2) 和 sctp_generic_recvmsg(2) 的系统调用包装器。
Valgrind 的 port 版本中尚不可用,有一个用于 rfork(2) 的解决方法。之前,由于不支持,它会导致 Valgrind 中止。现在它会以优雅的方式失败并设置 EINVAL 或 ENOSYS。这个系统调用的主要用途是在 posix_spawn(3) 中,它会回退到使用 vfork(2)。
mknodat(2) 系统调用包装器在 i386 上被错误地实现了,现在已经修复。
所有对齐分配函数都进行了重新设计,使其的行为更像 Valgrind 的构建平台,而不是像 Linux glibc。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
许多项目基于 FreeBSD 或将 FreeBSD 组件合并到其项目中。由于这些项目可能会引起更广泛的 FreeBSD 社区的兴趣,因此我们有时会在我们的季度报告中包括这些项目提交的简要更新。FreeBSD 项目不对这些提交中的任何声明的准确性或真实性做出陈述。
PkgBase.live
链接:
网站(archive.org) 网址: https://web.archive.org/web/20221220222828/https://alpha.pkgbase.live/
网站源代码网址: https://codeberg.org/pkgbase/website
联系人: Mina Galić freebsd@igalic.co
PkgBase.live 是一个非官方的 FreeBSD PkgBase 项目存储库。作为一个服务,PkgBase.live 的灵感来自于 https://up.bsd.lv/,为 STABLE 和 CURRENT 分支提供 freebsd-update(8)。
PkgBase 的硬件由 FreeBSD 社区的一位成员慷慨赞助。然而,随着生活和项目的变化,他们不得不废弃硬件,给了我三个月的通知时间。在那段时间里,由于最近搬到了另一个国家,我的生活相当动荡,所以我没有能够找到替代品。
目前,PkgBase.live 已经关闭。
该网站及其 How Did She Do it?!仍然在 Git 中提供。我强烈鼓励模仿。
我也会很乐意接受新的硬件赞助商!
请注意,我已经联系了 FreeBSD 项目,他们正在将 PkgBase 集成到发布工程中。然而,他们还没有准备好,也不能“简单地”接管 PkgBase.live,因为它使用完全不同的过程。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
容器和 FreeBSD:Pot、Potluck 和 Potman
链接: Pot 在 GitHub 上的组织网址: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 进行编排。
在上个季度,Pot 收到了一些次要修复,但尚未发布新版本。
Potluck 旨在成为 FreeBSD 和 pot 的 Dockerhub,提供 pot 风味和完整的容器镜像,可用于与 pot 配合使用,而在许多情况下还可用于 Nomad。
所有 Potluck 镜像都已重新构建以包含最新的 FreeBSD 安全公告,新增了一个 Smokeping 网络延迟监视镜像,对 Jitsi 镜像进行了大量的工作,但不幸的是似乎仍存在一些可靠性问题。
此外,有两篇新的博客文章介绍使用 Potluck 镜像的简单方法,一篇解释如何使用 Minio 作为对象存储和 Prometheus 进行监视来设置 Nextcloud,一篇展示如何使用 OpenLDAP 运行自己的 Matrix Synapse 服务器以进行访问管理。
像往常一样,欢迎反馈和补丁。