FreeBSD 2020 Q4状态报告

2021-01-17 02:58:06

该报告涵盖了10月至12月期间与FreeBSD相关的项目,并且是2020年计划的四份报告中的第四份。

本季度完成了很多工作,包括但肯定不限于与涉及基础和端口的多种架构(例如x86,aarch64,riscv和ppc64)的各种体系有关的领域,以及矢量aio,路由查找和多路径等内核更改方面的工作。 ,替代性random(4)实现,用于内核转储的zstd集成,日志压缩,zfs和pkg(8)的准备,以及wifi的更改,对工具链的更改(如新的elfctl实用程序)以及所有重大更改(如git migration)并将文档从DocBook移至Hugo / AsciiDoctor,以及许多其他内容在引言中没有提及。

该报告包含42个条目,这些条目无法掌握生活,宇宙和一切的答案,如果没有所有人的共同努力也无法完成报告的编写,因此,季度团队要感谢他们,否则,我们将无事可做。

请注意,一月至三月的提交截止日期为3月31日。

希望您会喜欢我们喜欢阅读的乐趣。 Daniel Ebdrup Jensen,代表季度团队。

FreeBSD基金会是一个501(c)(3)非营利组织,致力于在全球范围内支持和促进FreeBSD项目和社区。资金来自个人和公司的捐款,用于资助和管理软件开发项目,会议和开发者峰会,并向FreeBSD贡献者提供旅行补助。基金会购买和支持硬件以改善和维护FreeBSD基础架构,并提供资源以改善安全性,质量保证并释放工程成果;发布营销材料以促进,教育和倡导FreeBSD项目;促进商业供应商和FreeBSD开发人员之间的合作;最后,代表FreeBSD项目执行合同,许可协议和其他需要公认的法律实体的法律安排。

像大多数组织一样,我们将所有员工从家里转移了出去。我们还临时禁止员工出差,因为大多数会议都是虚拟的,因此不会过多影响我们的产出。尽管我们的某些工作和响应可能由于某些优先事项的变化以及部分工作人员的托儿服务有限而受到影响,但我们仍继续为社区和项目提供支持。

我们帮助促进商业用户和FreeBSD开发人员之间的协作。我们还与公司会面,讨论他们的需求,并将该信息带回项目。毫不奇怪,在第四季度期间,由于不在家中住宿,再加上我们公司禁止旅行,因此不存在面对面的会议。但是,该团队实际上可以继续与我们的合作伙伴和商业用户会面。这些会议有助于我们了解使用FreeBSD的某些应用程序。

年度海湾地区供应商峰会是我们帮助规划和组织的一项活动,可促进供应商/开发人员的参与。我们不想让大流行病阻止我们举办这一宝贵的年度活动,所以我们变得虚拟了!从供应商社区收到的关于我们应该如何开展这项活动的反馈,我们决定这样做对他们有好处在11月的3个半天内举行此活动。一个意想不到的结果是,来自世界各地的更多商业用户参加了会议。由于供应商/开发者峰会通常仅受邀请,因此我们向来自世界各地的FreeBSD贡献者开放了此链接,以观看直播。由于这项活动的成功和令人兴奋,我们计划在6月或7月左右再举行一次。

我们想花一点时间对去年加紧为我们的努力提供资金的个人和公司表示感谢。截至撰写本文时,我们已筹集了1,235,926美元,并将在1月中旬完成最后的统计工作.Arm,NetApp,Netflix,Juniper Networks,Beckhoff,VMware,Stormshield,Tarsnap和Google提供了慷慨的财政捐助。对Koum家庭基金会向我们授予的一笔巨款以及Ngnix的员工表示感谢。他们也慷慨解囊。

我们对这些巨大的贡献表示由衷的感谢,这些贡献对我们可以为该项目做出的贡献有最大的影响。但是,对我们而言最有意义的是个人捐赠。这些人之所以给予,是因为他们相信我们将把他们的个人捐款(无论大小)用于改善操作系统和项目。作为您捐赠的管理员,我们要感谢您对我们的信任以及您对使FreeBSD成为产品,教育,研究,计算等的最佳平台的承诺。

您会在我们的报告中找到我们如何使用第四季度的捐款,以及在整个状态报告中如何使用个人报告。

尽管我们知道这是第四季度的状态报告,但我们对2021年的计划感到兴奋,其中包括发展我们的软件开发团队!我们将很快为高级软件开发人员和项目协调员发布两个职位描述。

请考虑捐款以帮助我们在2021年继续发展并增加对FreeBSD的支持:https://www.FreeBSDfoundation.org/donate/。

我们还有合作伙伴计划,旨在为更大的商业捐助者提供更多利益。在https://www.FreeBSDfoundation.org/FreeBSD-foundation-partnership-program/中查找更多信息,并与您的公司共享!

该基金会在上个季度提供了许多项目赠款,您可以在本季度报告的其他条目中阅读有关OpenZFS Zstd支持,Linuxulator应用程序兼容性改进,LLDB目标支持,测试实验室基础结构和WiFi项目的信息。

该基金会在2020年秋季学期从滑铁卢大学(University of Waterloo)招募了六名合作学生以及一名实习生。以前的合作学生Tiger回来了,新的学生Yang和Zac第一次加入了我们。

Tiger致力于改进代码覆盖率引导的内核模糊工具Syzkaller,添加了新的系统调用定义,以便Syzkaller可以扩展其测试的代码。这项工作已经产生了许多FreeBSD内核错误修复程序。 Tiger还为ELF ToolChain二进制实用程序集做出了许多改进,并致力于使用工具针对ELF工具链从其他工具套件运行测试。

Zac对pkg软件包管理工具进行了改进,研究了FreePBX中FreeBSD支持的补丁并对其进行了上游研究,并研究了解决堆栈冲突漏洞的编译器支持。

Yang研究并修复了内核的Skein-1024assembly实现(由ZFS使用)和一个与Capsicum相关的项目的编译错误:将Capsicum应用于sort(1),实现Capsicum服务以执行实用程序,最后与Game of Trees(got)版本控制系统的开发人员合作,使其适应Capsicum支持。

我们的实习生Ka Ho致力于改善FreeBSD的桌面体验,他修复并改进了FreeBSD上的OBS(Open Broadcaster Software)的许多项目,致力于Firefox上的FreeBSD本机音频支持,并增加了用户空间音频程序可以利用的功能枚举音频设备列表。他还移植了fcitx5输入法框架。

基金会的五名工作人员在2020年继续为多项项目的运营任务(包括Git工作组和安全团队)和软件开发做出贡献。

工作人员响应了已报告的安全漏洞和发行版本,准备了补丁程序,并参加了安全咨询过程。我们还积极开展了缓解安全漏洞的工作。 Syzkaller还提供了许多有关内核问题的报告,这些问题导致了基金会发起的错误修复。我们研究了与FreeBSD / arm64有关的几个问题,以使其成为Tier-1架构。

我们参加了代码审查,并支持社区成员将变更集成到FreeBSD中,并对传入的错误报告进行了分类。

我们为许多内核和用户态子系统提供了增强功能,包括x86 pmap层,ELF运行时链接程序和内核加载器,Capsicumsandboxing框架和Casper服务,线程库,一些RISC-Vchanges,构建系统,工具链和freebsd-update ,网络堆栈稳定性改进,机器相关的优化,新的内核接口,DTrace错误修复,文档改进等。

基金会提供了一个专职工作人员并为改善FreeBSD项目的持续集成,自动化测试和整体质量保证工作的项目提供资金。

在2020年第四季度期间,基金会工作人员继续改善和监控该项目的CI基础设施,并与专家合作修复失败的版本和测试发现的回归问题。这项工作集中在CI暂存环境的提交前测试和开发上。另一个主要工作项目是进行VCS迁移,以将src和docsource从Subversion更改为Git。还有许多正在进行的任务,例如分析和改进非x86平台的测试。

该基金会提供了硬件和支持,以改善FreeBSD的基础结构。上个季度,我们继续支持遍布全球的FreeBSD硬件。我们协调了新的NYI Chicago设施和clusteradm之间的工作,开始着手准备为我们计划购买的某些新FreeBSD硬件准备的设施。 NYI慷慨地向项目免费提供此服务。我们还努力与NYI Bridgewater站点的新所有者建立联系,该站点是大多数现有FreeBSDinfrastructure所在的位置。

5个应用服务器来运行任务,例如bugzilla,Wiki,网站,cgi,Phabricator,主机git等。

1台服务器取代了旧的pkg服务器,它将提供更多的IOPS,以避免在一天的高峰时段(磁盘根本无法满足请求量)出现速度下降的情况。

我们的大部分工作都致力于倡导该项目。这包括促进他人使用FreeBSD所做的工作;制作倡导文学,以向人们传授有关FreeBSD的知识,并帮助使开始使用FreeBSD或为项目做出贡献的道路变得更容易;并参加并吸引其他FreeBSD贡献者自愿运行FreeBSD活动,为FreeBSDtables配备人员并进行FreeBSD演示。

FreeBSD基金会赞助了全球许多会议,活动和峰会。这些事件可以是与BSD相关的开源事件,也可以是针对代表性不足的群体的技术事件。我们支持以FreeBSD为重点的活动,以帮助提供一个共享知识的场所,共同开展项目并促进开发人员与商业用户之间的协作。这一切都有助于提供一个健康的生态系统。我们支持非FreeBSD活动,以提高FreeBSD的知名度,提高FreeBSD无关应用程序的使用率,并招募更多的项目贡献者。

尽管由于COVID-19而我们仍无法参加现场会议,但我们仍然能够在新的地点参加虚拟活动并为首次在线FreeBSD供应商峰会提供便利。除了参加和计划虚拟活动之外,我们还将继续致力于新的培训计划,并更新我们的操作指南指南,以帮助吸引更多的人试用FreeBSD。

继续了我们的FreeBSD Fridays系列的101节课程。主题包括Capsicum简介,Bhyve简介,DTrace简介等等。过去会议的视频可以在这里找到。我们将于2021年初举行新的会议。

在FossBytes文章中宣传了基金会成立20周年:FreeBSD基金会成立20周年

继续推广FreeBSD办公时间系列。可以在Project的YouTube频道上找到一小时课程的视频。有关更多信息,请参见本报告的“办公时间”部分。

Netflix在我们最新的贡献者案例研究中提供了有关他们如何以及为何使用FreeBSD的更新。

我们通过出版专业制作的FreeBSD Journal来帮助人们了解FreeBSD。如前所述,FreeBSD Journal现在是免费出版物。在https://www.FreeBSDfoundation.org/journal/上找到更多信息并访问最新的问题。

基金会拥有FreeBSD商标,保护它们是我们的责任。我们还为核心团队提供法律支持,以调查出现的问题。

请访问http://www.FreeBSDfoundation.org,以了解我们如何支持FreeBSD以及如何为您提供帮助!

FreeBSD发行工程团队负责为FreeBSD的正式项目发行设定和发布发行时间表,宣布代码冻结并维护各自的分支。

在2020年第四季度,发布工程团队完成了12.2-RELEASE的工作,这是稳定版/ 12分支的第三版发布,于10月27日发布。感谢所有参与此发布的辛勤工作。

此外,在整个季度中,还发布了针对head,stable / 12和stable / 11分支的多个开发快照构建。最近从项目中的Git树构建了针对13.0-CURRENT的开发快照构建,而针对12.x的其他快照构建了。 and11.x将继续从Subversion构建。随着我们接近2020年底,我们将继续为即将发布的13.0版本进行准备,这将是Git的第一个版本。

FreeBSD集群管理团队由负责管理Project进行分布式工作和通讯同步所依赖的机器的人员组成。在本季度中,团队进行了以下工作:

完成了由马来西亚研究与开发基金会慷慨托管的马来西亚镜像站点的设置。教育网络。现在,来自大洋洲和亚洲部分地区的流量将流向此镜像,而不是像日本和加利福尼亚这样较远的站点。

从2020年10月中旬开始,将集群中的开发人员机器(自由下落,ref *和Universe *)升级为head版本。

在我们的新泽西站点上安装了八台新的x86服务器:五台应用程序服务器,两台软件包生成器和一台镜像服务器。

其中两个应用程序服务器已分别作为真理的Gitsource和cgit Web前端投入生产。

在我们的新泽西站点上安装了两个新的aarch64服务器。两者都正在构建aarch64软件包。

在UK镜像服务器(pkg0.bme.freebsd.org)上重建了ZFS池,以获得更好的I / O并行性。这应该提高下载性能,尤其是在高峰时间。

正在进行的工作:正在搜索更多适合通用镜像布局或微型镜像需求的提供程序。

FreeBSD CI团队维护FreeBSD项目的持续集成系统。 CI系统首先检查已提交的更改是否可以成功构建,然后对新生成的结果进行各种测试和分析。来自这些构建的工件被存储在工件服务器中,以进行进一步的测试和调试需求。 CI团队成员检查失败的构建和不稳定的测试,并与该领域的专家合作以修复代码或调整测试基础结构。这些工作的详细信息可以在每周的CI报告中找到。

在2020年第四季度,我们继续与该项目的贡献者和开发人员合作,以满足他们的测试需求,并继续与外部项目和公司合作,以改进其产品和FreeBSD。

添加了新作业:正在进行中:跟随VCS迁移,更改src作业以使用Git-PR可用谢谢Brandon Bergren(bdragon @)

构建和测试结果将很快发送到dev-ci邮件列表。反馈和分析帮助非常感谢!

有关更多WIP信息,请参见freebsd-testing @相关的票证,请随时参与!港口管理团队负责监督港口树的总体方向,建筑包和人员事务。以下是上一季度发生的情况。

与第三季度相比,PR统计数据基本保持不变。相同数量的人提交的内容略少。港口数量再次稳定增长,这次增长了近4%。

在最后一个季度,我们欢迎Juray Lutter(otis @)成为新的港口服务商,并告别了cpm,jadawin,knu,araujo,mmokhi和scottl。

传统上合并到季度端口分支,这是HEAD树的更为保守的版本,需要Ports安全团队(ports-secteam @)或portgmr @的批准。从已解决的打字错误到将Web浏览器升级到最新版本,已经有大量的针对提交的全面批准。截至去年12月,所有端口提交者都可以自由地自行合并,从而减轻了ports-secteam @的负担。

鉴于专利是一个复杂的主题,其含义在一个司法管辖区与另一个司法管辖区之间有所不同,因此专利限制与许可框架之间的联系已经断开。

在最后一个季度中,添加了一个新的虚拟类别:" education"用于例如帮助用户了解某个主题或帮助进行考试的端口。

@shell和@sample关键字已在Lua中进行了重写,这使根目录兼容(请参阅pkg -r),并确保它们被Capsicum沙盒包装。

与往常一样,antoine @在本季度忙于进行37次实验,测试:第一次是由核心团队在有利于亚洲和澳大利亚的时间段内进行的,涉及的主题包括向git过渡,招募项目团队和核心&# 39个待办事项清单。

第二个由git转换团队主持,回答了与会者对git转换及其对项目工作流程的影响的问题。

第三届会议由Bhyve维护者Peter Grehan和John Baldwinto主持,介绍了最近的开发工作并回答了有关Bhyve的问题。

该项目正在寻找志愿者来主持将来的办公时间会议,并提出主题建议。我们还希望改进系统,使人们可以提前提交问题,以便在有这些问题的电话时,我们可以最大程度地利用主题专家的优势。

您可以在FreeBSD Wiki上找到未来办公时间的时间表以及过去办公时间的视频。

跨多个类别的项目,从内核和用户空间到Ports Collection或外部项目。

FreeBSD项目的一个长期目标是使基本系统迁移到现代的,无复制的或更许可的组件。在本季度中,以下组件已成功删除或更换:

以下组件尚未要求保护。上面链接的Wiki页面上可能列出了一些替代前景。欢迎有兴趣的各方评估重新开始讨论的选项:

以下组件有一名主要研究人员来协调工作。 请注意,部分完成可能意味着组件是部分兼容的,但可以使用评估和修补程序来与要替换的组件保持奇偶校验。 联系人:徐立文< [email protected]> 联系人:Warner Losh< [email protected]> 联系人:Ed Maste< [email protected]> 联系人:Ulrich Sprlein< [email protected]> Git工作组于2020年12月基本上完成了将doc和src(基本系统)树从Subversion迁移到Git的工作。 ......