欢迎阅读未来的季度报告!嗯,至少是 2020 年的第一个季度报告。上一些报告中提到的新时间表仍然有效,这也带我们来到了这份报告,它涉及了 2020 年 1 月到 3 月的时间段。
正如你从这份报告中看到的,我们度过了一个非常活跃的季度,内核、用户空间、文档、 Ports 以及第三方项目都有了重大变化,包括从漏洞修复、安全修复、新特性到性能改进和优化等各方面。
由于这份报告还涉及了疫情的开始,值得注意的是,快速查看 svn 日志会发现,源代码提交的总体数量并没有下降,文档提交也保持稳定,Ports 则呈现上升趋势。
我们希望大家和你们的亲人都能尽可能安全,并希望我们能够通过共同努力一起度过这一难关。
——Daniel Ebdrup Jensen, debdrup@freebsd.org
来自各个官方和半官方团队的报告条目,详见 管理页面。
联系方式:Deb Goodkin <deb@FreeBSDFoundation.org>
FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于支持和促进 FreeBSD 项目及全球社区的发展。资金来自个人和公司捐款,用于赞助和管理软件开发项目、会议和开发者峰会,并为 FreeBSD 贡献者提供旅行赞助。基金会采购并支持硬件,以改善和维护 FreeBSD 基础设施,提供资源来提升安全性、质量保证和发布工程工作;发布营销材料来推广、教育和宣传 FreeBSD 项目;促进商业供应商与 FreeBSD 开发者之间的合作;最后,代表 FreeBSD 项目执行合同、许可协议和其他需要认可法律实体的法律安排。
以下是我们上个季度所做的帮助 FreeBSD 的工作亮点:
2 月,在加利福尼亚州伯克利董事会举行了全天的会议,这也是 FreeBSD 的发源地!我们制定了未来 2 年的战略计划,计划包括我们希望支持的软件开发项目和一些教育计划。
疫情对基金会的影响。我们为所有员工制定了在家工作的政策,并且对员工的旅行实施了临时禁令。我们继续支持社区和项目的工作,但由于某些优先事项的变化和部分员工面临有限的儿童看护服务,我们的一些工作和回应有所延迟。
我们帮助促进商业用户与 FreeBSD 开发者之间的合作。我们还与公司会面,讨论他们的需求并将这些信息反馈给项目组。在第一季度,Deb Goodkin 与商业用户在澳大利亚的 LinuxConfAu、比利时的 FOSDEM 和美国的 SCALE18x 会议中会面。这些会议为我们提供了与商业和个人用户及 FreeBSD 贡献者交流的绝佳机会。这不仅对上述目标有益,还帮助我们了解 FreeBSD 的一些应用场景。除了在会议上与商业用户会面外,我们还通过电子邮件和电话继续进行讨论。
上个季度我们筹集了 57,000 美元!感谢所有捐赠者,尤其是在此经济危机时期,我们非常感动,在当前有许多人、动物和企业需要帮助的情况下,仍有个人和组织支持我们的工作。我们还要特别感谢 Tarsnap、VMWare 和 Stormshield,它们通过白银级的捐赠为我们带来了引领作用。我们希望其他组织能效仿他们,支持我们继续支持 FreeBSD。
我们完全依赖捐赠资金,这些资金用于软件开发工作以改善 FreeBSD、全球范围内的 FreeBSD 宣传、保障 FreeBSD 安全、改进持续集成、赞助 BSD 相关和计算机会议、为项目提供法律支持以及其他许多领域。
请考虑捐款帮助我们继续并扩大对 FreeBSD 的支持:https://www.FreeBSDfoundation.org/donate/。
我们还有伙伴计划,为我们的较大商业捐赠者提供更多的福利。详细信息请访问 https://www.FreeBSDfoundation.org/FreeBSD-foundation-partnership-program/ 并与你的公司分享!
基金会通过我们的全职技术人员、承包商和项目赞助接受者,支持软件开发项目,以改进 FreeBSD 操作系统。他们维护和改进关键的内核子系统,添加新功能并修复问题。
在过去的一个季度中,FreeBSD 基本系统源代码仓库中有 273 个提交标记为 FreeBSD 基金会赞助,占季度基系统提交的约 12%。其中许多是赞助或员工项目的一部分,这些项目在本 FreeBSD 季度报告中有单独的条目,但基金会的员工和承包商(Ed Maste、Konstantin Belousov、Mark Johnston、許立文)也通过持续的错误修复、构建修复和一些不值得单独列出的杂项改进来支持该项目。
Ed 在 FreeBSD 构建基础设施的多个部分做出了杂项改进,主要是由于淘汰过时的 GCC 4.2.1 的工作。这包括删除 LLVM_LIBUNWIND 选项(现在总是设置)以及删除未使用的 gperf、gcov 和 GPL 设备树编译器(dtc)。Ed 提交了 Linuxulator 的 sendfile 支持,该功能由前实习生 Bora Özarslan 提交,并且测试并提交了多个提交的错误修复,涉及 Microchip USB-Ethernet 控制器 if_muge 驱动程序。Ed 还将基本系统中的 OpenSSH 版本更新到 7.9p1,附带额外更新正在进行中,并在本季度处理了多个安全公告。
Konstantin Belousov 和 Mark Johnston 在本季度内,均在基金会赞助下执行了大量的代码审查工作。这些工作帮助了 FreeBSD 社区的开发者以及在使用 FreeBSD 的公司中的开发者将他们的工作整合到 FreeBSD 中。
除了本报告其他部分介绍的工作外,Konstantin 还继续了他往常的错误修复和改进工作。本季度的工作包括低级 x86 支持、修复 sendfile 错误、文件系统和 VFS 错误修复,以及其他几十项杂项改进。额外的工作包括支持 Hygon x86 CPU 的各种提交以及对运行时链接器(rtld)直接执行模式的改进。
Mark Johnston 继续从事 Syzkaller 系统调用模糊测试工具的工作,并修复了 Syzkaller 报告的许多问题。Mark 处理了大量提交的错误报告,并在许多情况下提交了附带的补丁或开发了修复程序。Mark 还处理了几十个 Coverity Scan 报告。
Mark 的其他更改包括 arm64 大系统扩展(LSE)原子操作、低级 arm64 和 x86 工作、虚拟内存(VM)工作,以及 syslog、lagg(4) 链路聚合驱动程序、构建可复现性等方面的错误修复或其他改进。
許立文提交了对基本系统中多个测试的改动,例如关闭已知失败的测试(这些测试由 PR 跟踪)、pkgbase 相关的测试修复和其他改进。
基金会提供了一名全职员工,致力于改善我们的自动化测试、持续集成和整体质量保证工作。
在 2020 年第一季度,基金会的员工继续改进项目的 CI 基础设施,与贡献者合作修复失败的构建和测试案例。我们正在为基金会购买的新机器建立 CI 阶段环境。我们还与项目中的其他团队合作,满足他们的测试需求。例如,我们新增了一个任务,用于在 Linuxulator 上运行 LTP(Linux 测试项目),以验证基金会赞助的 Linux 模拟工作中的改进。我们还与许多外部项目和公司合作,以提高它们对 FreeBSD 的支持。
有关已完成的工作项目和详细信息,请参见本报告中的 FreeBSD CI 部分。
基金会提供硬件和支持,以改善 FreeBSD 的基础设施。在上个季度,我们继续支持全球各地的 FreeBSD 硬件。我们为马来西亚的镜像站购买了一台服务器,并签署了伊利诺伊州新 NYI 联合托管设施的谅解备忘录。NYI 慷慨地将其作为实物捐赠提供给项目。
我们的大部分工作致力于为项目做宣传。这包括推广其他人对 FreeBSD 所做的工作;制作宣传资料,教导人们了解 FreeBSD,并帮助让开始使用 FreeBSD 或贡献项目的路径更容易;以及参加活动并邀请其他 FreeBSD 贡献者自愿组织 FreeBSD 活动、在 FreeBSD 展位上当值以及进行 FreeBSD 演讲。
FreeBSD 基金会赞助了全球多个会议、活动和峰会。这些活动可以是与 BSD 相关的、开源的,或者是面向弱势群体的技术活动。我们赞助与 FreeBSD 相关的活动,帮助提供一个知识分享的场所,推动合作项目,并促进开发者与商业用户之间的合作。这些都有助于提供一个健康的生态系统。我们还支持与 FreeBSD 无关的活动,以推广和提高 FreeBSD 的认知度,增加 FreeBSD 在不同应用中的使用,并吸引更多的贡献者加入项目。
请查看我们上个季度进行的部分宣传与教育工作:
组织并在澳大利亚黄金海岸举办的首次 FreeBSD Mini-Conf LinuxConfAu 2020 上进行了演讲,并赞助了会议本身。回顾可以在这里找到。
在比利时布鲁塞尔的 FOSDEM '20 上进行了 BSD Dev Room 演讲,并与其他社区成员一起在展位上代表 FreeBSD。详细信息请参阅。
在澳大利亚墨尔本代表 FreeBSD 参加了 Apricot 2020,并赞助了该活动。
美国加利福尼亚州圣克拉拉的 USENIX FAST '20 活动的行业合作伙伴赞助商。
赞助了新加坡的 FOSSASIA 2020。
承诺在加利福尼亚州帕萨迪纳的 SCALE 18x 举行 FreeBSD Day。
在 SCALE 18x 举办了“FreeBSD 入门工作坊”,并进行了演讲,代表 FreeBSD 参加了博览会,并举行了“Why FreeBSD is Me”主题的 BoF 讨论会。查看会议回顾。
我们继续制作 FreeBSD 宣传材料,帮助人们推广 FreeBSD。了解更多我们在 2019 年为 FreeBSD 做宣传 的努力。
除了本报告开发项目更新部分的信息外,花点时间查看最新的更新博客:
阅读更多关于我们在会议上的冒险,查看我们的月度通讯中的会议回顾和旅行报告。
我们通过出版专业制作的 FreeBSD 期刊来帮助全球教育 FreeBSD。正如之前所提到的,FreeBSD Journal 现在是免费的出版物。了解更多并访问最新期刊。
你可以在这里找到我们参加的活动和即将举行的活动的更多信息。正如我们中大多数人所经历的那样,SCALE 是我们几个月内最后参加的活动。然而,我们已经在着手制作更多的在线教程和操作指南,以帮助更多人尝试 FreeBSD。与此同时,请查看我们已经提供的操作指南!
我们与新的网站开发者继续合作,帮助我们改进网站。已经开始了工作,使社区成员更容易找到信息,并提高网站的效率。
基金会拥有 FreeBSD 商标,并且有责任保护它们。我们还为核心团队提供法律支持,调查出现的问题。
请访问 http://www.FreeBSDfoundation.org/ 了解我们如何支持 FreeBSD,以及我们如何为你提供帮助!
联系方式:FreeBSD 核心团队 <core@FreeBSD.org>
FreeBSD 核心团队是 FreeBSD 的管理机构。
核心团队批准了 Alfredo Dal'Ava J.nior 的源代码提交权限。Alfredo 一直在进行 powerpc64 支持的工作。Justin Hibbits (jhibbits) 将指导 Alfredo。
核心团队批准了 Ryan Moeller 的源代码提交权限。Ryan 一直在进行 ZoL 移植到 FreeBSD 的工作。Alexander Motin (mav) 和 Matt Macy (mmacy) 将指导 Ryan。
核心团队批准了 Nick O'Brien 的源代码提交权限。Nick 一直在 Axiado 从事 RISC-V 工作。Kristof Provost (kp) 和 Philip Paeps (philip) 将指导 Nick。
核心团队批准了 Richard Scheffenegger 的源代码提交权限。Richard 一直在贡献 TCP 相关工作。Michael Tuexen (tuexen) 将指导 Richard,Rodney Grimes (rgrimes) 将担任共同指导人。
核心团队批准了 Aleksandr Fedorov 的源代码提交权限。Aleksandr 一直在测试和审查 bhyve 网络代码。Vincenzo Maffione (vmaffione) 将指导 Aleksandr,John Baldwin (jhb) 将担任共同指导人。
核心团队请求退役 freebsd-mobile@ 列表,因为它几乎只接收垃圾邮件。postmaster@ 已经完成了核心团队的请求。
核心团队批准了某些项目服务的第三方身份验证,附带一些条件。例如,对于谷歌的身份验证,用户必须使用启用了双因素身份验证的 FreeBSD.org 账户。对于 GitHub,我们将启用并强制为我们的组织启用多因素身份验证。
核心团队发起的 Git 过渡工作组在 2020 年第一季度继续开会,报告仍在等待中。
联系方式:FreeBSD 发布工程团队 <re@FreeBSD.org>
FreeBSD 发布工程团队负责设定和发布 FreeBSD 官方项目版本的发布计划,宣布代码冻结并维护相应的分支等。
FreeBSD 发布工程团队发布了即将到来的 11.4-RELEASE 和 12.2-RELEASE 的时间表。
Glen Barber 花了大量时间更新各种构建工具,增加对来自 Subversion 和 Git 的构建支持。这项工作仍在进行中,因为有很多相互关联的动态部分。
此外,在整个季度中,还发布了多个开发快照构建,涉及 head、stable/12 和 stable/11 分支。
这项工作大部分得到了 Rubicon Communications, LLC(netgate.com)和 FreeBSD 基金会的赞助。
联系方式:集群管理团队 <clusteradm@FreeBSD.org>
FreeBSD 集群管理团队负责管理项目所依赖的机器,这些机器用于同步项目的分布式工作和通信。在本季度,团队完成了以下工作:
升级所有的 ref- 和 universe- 机器
南非镜像(JINX)已上线
美国西雅图镜像(TUK)的包服务已上线
持续的系统管理工作:
为新提交者创建账户。
关键基础设施的备份。
跟进第三方软件的安全更新。
进行中的工作:
设置马来西亚(KUL)镜像
设置巴西(BRA)镜像
设置阿姆斯特丹(PKT)镜像
审查服务 Jail 和服务管理员的操作。
构建 aarch64 和 powerpc64 包的基础设施
PowerPC64 Power9 上的 NVME 问题,阻止双插槽机器作为 pkg 构建器使用。
为 pkg 构建器进行驱动器升级测试(固态硬盘),由 FreeBSD 基金会赞助。
Aarch64 参考机器的启动问题。
新的 NYI.net 赞助的位于芝加哥地区的共址空间。
为 git 工作组准备资源。
联系方式:Jenkins 管理员 <jenkins-admin@FreeBSD.org> 联系方式: 許立文 <lwhsu@FreeBSD.org>
联系方式:freebsd-testing 邮件列表 联系方式:EFNet 上的 IRC #freebsd-ci 频道
FreeBSD CI 团队维护着 FreeBSD 项目的持续集成系统及相关任务。CI 系统定期检查提交的更改是否能够成功构建,并执行各种测试和结果分析。构建任务的工件会存档在工件服务器中,以便进行进一步的测试和调试需求。CI 团队成员会检查失败的构建和不稳定的测试,并与该领域的专家合作,修复代码或调整测试基础设施。这些努力的详细信息可以在 每周 CI 报告 中找到。
在 2020 年第一季度,我们继续与项目中的贡献者和开发者合作,满足他们的测试需求,并继续与外部项目和公司合作,提升他们对 FreeBSD 的支持。
重要更改:
所有的 -head 任务都在使用 clang/lld 工具链
所有的 -head 测试都在使用 base 中的 kyua
RISC-V 任务现在生成完整的磁盘映像并在 QEMU 中运行测试,使用 OpenSBI
freebsd-doc 任务还检查 www.freebsd.org 的构建
新增任务:
进行中的工作:
在 这里 收集和整理 CI 任务和想法
设置 CI 阶段环境并将实验性任务放入其中
在裸机硬件上实现自动化测试
为 -CURRENT 添加 drm Port 构建测试
在 FreeBSD-ci 仓库 中测试和合并拉取请求
规划运行 ztest 和网络栈测试
通过托管 CI 解决方案帮助更多第三方软件在 FreeBSD 上进行 CI
添加非 x86 测试任务
添加与外部工具链相关的任务
向硬件实验室添加更多硬件
有关更多工作进展信息,请查看与 freebsd-testing@ 相关的票务,并加入相关工作。 赞助方:FreeBSD 基金会
联系方式:René Ladan <portmgr-secretary@FreeBSD.org>
联系方式:FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>
Ports 管理团队负责监督 Ports 的整体方向、构建软件包以及人员事务。以下是上个季度的情况。
在上个季度,Port 数量稳定在 39,000 个。目前有超过 2,400 个开放的 PR,其中 640 个没有分配。上个季度,共有 173 名提交者向 HEAD 分支提交了 8146 次提交,52 名提交者向 2020Q1 分支提交了 357 次提交。这意味着 PR 数量有所增长,尽管提交者的活跃度保持大致不变。
像往常一样,人员有所更替。我们欢迎了 Loïc Bartoletti (lbartoletti@)、Mikael Urankar (mikael@)、Kyle Evans (kevans@,他已经是 src 提交者) 和 Lorenzo Salvadore (salvadore@,我们之前认识他,因为他为你阅读的这些报告做了编译工作)。我们向 dbn@ 和 theraven@ 道别,希望以后能再见到他们。
在基础设施方面,添加了 USES=qca,移除了 USES=zope。后者也因为与 Python 3 不兼容而被移除,同时 portmgr 正在从 Ports 中移除 Python 2.7。这意味着当前依赖于 Python 2.7 的所有 Port 需要更新以支持 Python 3,或者被移除。
经过多人的长时间努力,Xorg 从 1.18 更新到了 1.20 版本系列。此外,网页浏览器也进行了更新:Firefox 升级到 75.0 版本,Firefox ESR 升级到 68.7.0 版本,Chromium 升级到 80.0.3987.149 版本。包管理器本身也更新到了 1.13.2 版本。
antoine@ 在上个季度进行了 29 次实验性运行,更新了 KDE、poppler、pkg 和构建工具;并测试与 src 变更的兼容性:移除基于 procfs 的调试功能、修复 TLS 对齐问题,仅在 i386 和 Power 架构的 libc 中包含 libssp_nonshared.a。
联系方式:FreeBSD 图形团队 <x11@freebsd.org> 联系方式:Niclas Zeising <zeising@freebsd.org>
FreeBSD X11/图形团队维护 FreeBSD 图形栈的底层部分。这包括图形驱动、图形库(如 MESA OpenGL 实现)、X.org xserver 及其相关库和应用程序,以及 Wayland 和相关库与应用程序。
上个季度最大的亮点是长期期待的 xorg-server
更新至 1.20 版本。在多方努力数年后,终于推出了 xorg-server
1.20.7 版本。随着这一更新,最显著的变化是,FreeBSD 12 及以后版本默认改为使用 udev/evdev 后端来处理输入设备,如鼠标和键盘。与此同时,OpenGL 库实现 mesa
也改为默认使用 DRI3,而非旧版的 DRI2。
这些更新在首次提交时引发了一些问题,尤其是键盘相关问题。但在 Michael Gmelin 等人和邮件列表的帮助下,大多数问题迅速得到解决。不幸的是,自此不再支持 nVidia 图形驱动的 304 版本。
自此更新后,xorg-server 已经更新至 1.20.8,这是最新的上游版本。
除了这次更新外,我们还在不断努力保持各种 Port 和软件包 drm-kmod 的更新,主要是响应 FreeBSD CURRENT 中的变更以及 Intel i915 驱动中发现的安全问题。
我们还按需进行更新,以确保图形和输入栈保持最新并正常运行,同时弃用并移除了几个不再使用的旧驱动、应用程序和库。
我们也继续按计划举行每两周一次的会议。
有兴趣帮助的人可以通过 x11@FreeBSD.org 邮件列表联系我们,或通过我们的 gitter 聊天(https://gitter.im/FreeBSDDesktop/Lobby)与我们交流。我们还可以在 EFNet 上的 #freebsd-xorg 频道找到。
我们还在 GitHub 上有一个团队区域,可以找到我们的工作仓库: (https://github.com/FreeBSDDesktop)
这些项目跨越多个类别,从内核和用户空间到 Ports 和外部项目。
联系方式:Rick Macklem <rmacklem@freebsd.org>
为提高 NFS 的安全性,我预计很快将成为 RFC 的一份互联网草案,规定使用 TLS 1.3 加密所有通过 Sun RPC 连接进行的 NFS 数据流量。
尽管 NFS 可以使用 sec=krb5p 来加密传输数据,但这需要 Kerberos 环境,因此并未被广泛采用。此外,它还需要在软件中进行加解密,因为只有 RPC 消息 NFS 参数被加密。由于内核 TLS 能够利用硬件加速提高性能,并且不需要 Kerberos,待有可用的实现,NFS over TLS 可能会得到更广泛的应用。
由于 FreeBSD 的内核 TLS 要求数据以 ext_pgs mbufs 的形式传输,因此到目前为止,大部分工作集中在修改构建协议参数的 NFS 代码,以便选择性地使用 ext_pgs mbufs。对于接收的 ext_pgs mbufs 也进行了编码更改,尽管接收内核 TLS 可能不需要这些更改。
内核 RPC 也已经被修改,以执行 STARTTLS Null RPC,并进行回调到用户空间守护进程,执行 SSL_connect()/SSL_accept(),因为内核 TLS 并不执行这个初始握手。到目前为止,只在服务器上实现了自签名证书,而不要求客户端有证书。
对于 NFS 客户端预期拥有签名证书的情况,仍需要完成工作。特别是,对于没有固定 IP 地址或 DNS 名称的客户端,正确的解决方案尚不清楚。目前的代码已经准备好进行测试,但需要内核 TLS 支持接收和发送。jhb@freebsd.org 正在为接收方面的内核 TLS 编写补丁。
待接收端内核 TLS 可用,存储在 subversion 中的 base/projects/nfs-over-tls 代码将需要第三方测试,并由熟悉 TLS 的人员进行安全评估。
联系方式:Brooks Davis <brooks@FreeBSD.org>
FreeBSD 测试套件使用 Kyua 测试框架来运行测试。
历史上,Kyua 是从 Ports (devel/kyua
) 安装的。虽然这种方式对于主流架构没有问题,但在新架构上可能会引发启动问题,并且在仿真环境或基于 FPGA 的系统中,包的安装非常慢。通过将其纳入 FreeBSD 基本系统,我们可以避免这些问题。
我们希望这一举措能够促进嵌入式平台的测试,并简化在持续集成系统中的测试过程。
我们目前计划保留 Port devel/kyua
,用于服务没有此框架的 FreeBSD 版本,并作为开发版本。
赞助商:DARPA
联系方式:Edward Tomasz Napierala <trasz@FreeBSD.org>
本季度的工作主要集中在源代码清理和简化调试缺失功能的过程。然而,也有一些用户可见的变化:添加了对 TCP_CORK
的支持,这是 Nginx 所要求的,添加了对参数 MAP_32BIT
的支持,修复了来自 Ubuntu Bionic(译者注:18.04 LTS)的 Mono 二进制文件,修复了影响 CentOS 8 的 glibc 2.30 版本及以上的 DNS 解析问题。
现在作为 FreeBSD 持续集成基础设施一部分运行的 Linux 测试项目包含了 Open POSIX 测试套件。
仍有很多工作要做:
有一些补丁需要审查,这些补丁添加了 扩展属性支持 和 fexecve(2) 系统调用,需要完成并提交
目前有超过 400 个失败的 LTP 测试。其中一些是错误的正面结果,有些是易于修复的错误,另外一些则需要添加新的系统调用。任何帮助都欢迎提供。
赞助商:FreeBSD 基金会
联系方式:Mark Johnston <markj@FreeBSD.org> 联系方式:Michael Tuexen <tuexen@FreeBSD.org>
有关 syzkaller 的简介,请参见 2019q1 季度报告中的 syzkaller 条目。
通过 syzkaller 本季度发现并修复了若干内核 bug,主要集中在网络栈和文件描述符表代码中。对这些 bug 的调查促成了调试设施和断言的改进,例如在 SCTP 堆栈中的改进。syzkaller 的重现器已被添加到 Peter Holm 的 stress2 测试套件中,帮助确保回归问题能够快速被发现。
由 backtrace.io 托管的 syzkaller 实例(参见 2019q3 报告)在测试 syzkaller 改进和发现 bug 上非常有用。尽管 Google 运行了一个专门针对 FreeBSD 的 syzkaller 实例 targeting FreeBSD,但运行多个实例被证明是有益的,因为它们最终会构建不同的语料库,从而发现不同但有所重叠的 bug。
已增加对多个新系统调用的模糊测试支持,包括新的 copy_file_range() 和 __realpathat() 系统调用,以及 Capsicum 系统调用。同时,也进行了一些工作,审查现有的系统调用定义,以确保涵盖 FreeBSD 特有的 POSIX 系统调用扩展。正在进行的工作包括将目标扩展到 Linux 模拟层,并收集内核转储,以便通过收集无法重现的崩溃来帮助诊断和修复问题。
赞助商:backtrace.io
赞助商:FreeBSD 基金会
内核子系统/功能、驱动程序支持、文件系统等的更新。
联系方式:Kristof Provost <kp@FreeBSD.org>
当前的 if_bridge 实现使用单个互斥锁来保护其内部数据结构。因此,它的性能远远不如可能的水平。这对于希望运行许多 vnet jail 或将虚拟机桥接在一起的用户来说尤其重要。
作为该项目的一部分,已经为 if_bridge 添加了多个新测试。这些测试通常对于验证任何锁定更改非常有用,并且也将有助于防止未来更改中的回归问题。这些测试位于 /usr/tests/sys/net/if_bridge_test。
当前的工作集中在调查是否可以利用 ConcurrencyKit epoch 代码来优化数据路径(即 bridge_input()
、bridge_output()
、bridge_forward()
等)。
赞助商:FreeBSD 基金会
联系方式:Konstantin Belousov <kib@FreeBSD.org>
Rtld 服务需要是异步信号安全的。这是必要的,例如,为了在信号处理程序中提供有效的符号绑定。
对于线程化进程,libthr 会拦截所有用户安装的信号处理程序,并在 rtld 或 libthr 处于受保护代码段时保存信号和相关上下文。
在非线程化进程中,通过改变线程的信号屏蔽来提供异步安全。实际上,这比 libthr 的拦截方法更好,因为信号会在正确的上下文中传递,而不是 libthr 尝试稍后重建它。然而,不幸的副作用是,每个 rtld 调用都需要两个系统调用,一个用于设置屏蔽,另一个用于恢复它。通常,这会在每个进程启动时增加大约 40 次或更多的系统调用。更糟糕的是,典型语言运行时异常处理系统使用的 rtld 服务也有信号屏蔽操作的成本。
新增的 sigfastblock(2) 系统调用允许线程将内存位置指定为快速信号屏蔽。如果该位置包含非零值,内核将把线程的状态解释为“所有可屏蔽的信号都已屏蔽”。此功能极大地提高了 FreeBSD 上异常处理的速度。
由于信号可能会中断可中断的睡眠,因此初始实现会在每次系统调用入口时读取屏蔽字。这是为了确保当信号被该字屏蔽时,用户空间不会看到伪造的 EINTR/ERESTART 错误。如果内核缓存了过时的屏蔽字值,它会中断睡眠,但然后 ast 会看到正确的屏蔽并不会传递待处理的信号。
有一些担忧认为读取该字会导致系统调用微基准测试的减速,特别是在带有 SMAP 的机器上。原因是 SMAP 要求所有用户空间访问都由 STAC/CLAC 指令对括起来,而这些指令实际上是串行化的(这并非架构性要求,但所有当前的微架构都这样做)。决定是消除对该字的读取,代价是可能会返回伪造的 EINTR 错误。由于 sigfastblock(2) 不应是对用户可用的服务,它仅假定用于 rtld 和 libthr 实现,因此影响应最小。
赞助商:FreeBSD 基金会
联系方式:Mark Johnston <markj@FreeBSD.org>
对 EC2 Graviton 2 实例上一些性能异常的调查结果,支持在 FreeBSD 内核中使用大系统扩展(LSE)原子指令。
LSE 是 ARMv8.1 中规定的强制性 ISA 扩展。它由一组新的原子指令组成,当 LSE 没有实现时,它取代了 Load-Linked/Store-Conditional(LL/SC)指令对。该扩展出现在多个 ARMv8 服务器平台中,包括 Cavium ThunderX2 和 AWS Graviton 2。新指令提供了显著更好的可扩展性。
一组新的补丁修改了 FreeBSD 内核,以检测 LSE 的支持,并在所有 CPU 实现扩展时,动态选择基于新指令的 atomic(9) 实现。最初的 atomic(9) 实现由 Ali Saidi 提供。在 64-vCPU Graviton 2 实例上的一些基准测试显示,内核构建的墙钟时间减少了约 4%,系统 CPU 时间减少了约 15%。
一些 ARMv8 多处理器系统实现了异构 CPU 架构,称为 big.LITTLE,其中使用了多种处理器类型。令人惊讶的是,这类系统可能只在其部分 CPU 上实现 LSE,在这种情况下,内核无法使用 LSE 指令。因此,FreeBSD 当前会等到所有处理器都上线后再选择 atomic(9) 实现,这排除了使用 ifuncs 提供动态选择的可能。
目前,atomic(9) 对 LSE 的使用仅限于内核。未来的项目将扩展到用户空间,使得 FreeBSD 系统库能够在 LSE 指令可用时利用这些指令。
赞助商:FreeBSD 基金会
赞助商:亚马逊
联系方式:FreeBSD 集成服务团队 <bsdic@microsoft.com> 联系方式:Wei Hu <whu@FreeBSD.org> 联系方式: 許立文 <lwhsu@FreeBSD.org>
Wei 正在为 FreeBSD 开发 HyperV Socket 支持。HyperV Socket 提供了一种无需网络即可通过公共套接字接口让 HyperV 主机和客户机进行通信的方式。Azure 中的一些功能要求客户机支持 HyperV Socket。
有关 HyperV Socket 的详细信息,请参见 这里。
进行中的工作可以 在这里 查看。
该项目由微软赞助。
Li-Wen 正在为 Azure 上的 FreeBSD 发布代码,涉及 -CURRENT 和 12-STABLE 分支。12.1-RELEASE 在 Azure 上的发布也在进行中。
进行中的工作可以 在这里 查看。
该项目由 FreeBSD 基金会赞助。
联系方式:Andrew Turner <andrew@FreeBSD.org> 联系方式:Ruslan Bukin <br@FreeBSD.org> 联系方式:Brooks Davis <brooks@FreeBSD.org> 联系方式:John Baldwin <jhb@FreeBSD.org> 联系方式:Robert Watson <rwatson@FreeBSD.org>
CHERI(能力硬件扩展 RISC 指令)扩展了常规的硬件指令集架构(ISA),增加了新的架构特性,以启用细粒度的内存保护和高度可扩展的软件分区。CHERI 内存保护功能使得历史上不安全的编程语言,如 C 和 C++,能够进行适应性修改,从而提供强大、兼容且高效的防护,抵御当前广泛利用的许多漏洞。CHERI 的可扩展分区功能使操作系统(OS)和应用程序代码能够进行细粒度的分解,从而在当前架构无法支持的方式下限制安全漏洞的影响。CHERI 是一种混合能力架构,它能够将架构能力与常规的基于 MMU 的架构和微架构、以及基于虚拟内存和 C/C++ 的常规软件堆栈相结合。这种方法允许在现有生态系统中进行逐步部署,我们已经通过硬件和软件原型验证了这一点。
2019年10月18日,Arm 宣布了 Morello,一款实验性的 CHERI 扩展、多核、超标量的 ARMv8-A 处理器、系统芯片(SoC)以及原型板,预计将在 2021 年底推出。Morello 是英国数字安全设计挑战(DSbD)计划的一部分,该计划获得了英国工业战略挑战基金(UKRI)的支持,其中包括 Arm 对该计划的超过 5000 万英镑的承诺。该计划旨在以大规模方式测试和验证 CHERI 扩展到 ARM ISA 的效果,“成功的概念预计将进入架构中。” Morello 板计划于 2021 年第三季度发货。
在过去十年里,我们开发了 CheriBSD,这是一个支持 CHERI 的 FreeBSD 版本。我们的公开工作曾在 MIPS64 和最近的 RISC-V 上进行。Andrew 还开发了一个针对早期版本 Morello ISA 的移植,我们将在模拟器和编译器可用时将其合并到我们的公共仓库中。
Morello 板基于 Arm Neoverse N1 平台,派生自 N1SDP 开发平台。(AWS Graviton2 系统也基于 N1 核心。)Ruslan 和 Andrew 目前正在努力启用 N1 和 N1SDP 的所有相关功能,以为 Morello 的工作提供一个稳固的基线。这些功能包括 PCI 根复合体、系统内存管理单元(SMMU)和 CoreSight。我们正在尽可能将这些功能上游提交到 FreeBSD。
赞助商:DARPA,UKRI
联系方式:Marcin Wojtas <mw@semihalf.com>
联系方式:Artur Rojek <ar@semihalf.com>
联系方式:Dawid Gorecki <dgr@semihalf.com>
Semihalf 团队开始为 NXP LS1046A SoC 开发 FreeBSD 支持。
LS1046A 是四核 64 位 ARMv8 Cortex-A72 处理器,集成了数据包处理加速和高速外设,包括 10 Gb 以太网、PCIe 3.0、SATA 3.0 和 USB 3.0,广泛应用于网络、存储、安全和工业领域。
自上次更新以来已完成:
清理并将支持代码基于 FreeBSD-HEAD 进行重定基。为上游提交准备功能:
QorIQ 平台时钟生成器驱动
LS1046A 时钟生成器驱动
QorIQ 板的 GPIO 支持
QorIQ LS10xx AHCI 驱动
VF610 I2C 控制器支持
TCA6416 GPIO 扩展器
Epson RX-8803 RTC
QorIQ LS10xx SDHCI 驱动
待办事项*将开发的功能上游提交。预计此项工作将在 2020 年第二季度提交/合并到 HEAD。
赞助商:阿尔斯通集团
联系方式:Michal Krawczyk <mk@semihalf.com>
联系方式:Maciej Bielski <mba@semihalf.com>
联系方式:Marcin Wojtas <mw@semihalf.com>
ENA(弹性网络适配器)是亚马逊网络服务(AWS)虚拟化环境中的智能网卡。ENA 驱动程序支持多个传输和接收队列,能够处理高达 100 Gb/s 的网络流量,具体取决于所使用的实例类型。
自上次更新以来已完成:
将驱动程序上游更新到 v2.1.1,引入:
修复 LLQ 模式中的错误,该模式在使用多个 IO 队列时会导致竞争条件。
进行中的工作:*ENA v2.2.0 发布的最后调整,新增支持:
为即将推出的硬件特性(如 Rx 偏移、报告 Tx 丢包)增加驱动支持
添加 sysctl 调优选项以配置 IO 队列数
创建具有可选大小回退的 IO 队列
重构 drbr 和 Rx 环大小的配置方式,使其更稳定和健壮
新的 HAL 版本
其他小修复和改进
赞助商:亚马逊公司
更新特定平台的功能并引入对新硬件平台的支持。
联系方式:Mark Linimon <linimon@FreeBSD.org> 联系方式:Justin Hibbits <jhibbits@FreeBSD.org> 联系方式:Piotr Kubaj <pkubaj@FreeBSD.org>
FreeBSD/powerpc 项目持续发展。
除了上述人员,我们还要感谢adalava、bdragon、luporl 和 mikael 等人的贡献。
关键要点:
在 -CURRENT 分支上,所有平台已切换到 LLVM 10.0 编译器和 lld10。因此,ld.bfd 已从基础代码中移除。
在 powerpc64 上,-CURRENT 已切换到 ELFv2 ABI。以前使用 GCC 或带 ELFv1 ABI 的 LLVM 的 -CURRENT 版本不再受到支持。
在 powerpc64 FreeBSD-STABLE(11 和 12)上,这些平台仍然使用过时的 gcc4.2.1 编译器。注意:已从 -CURRENT 源代码树中移除该版本的 GCC。对该配置的支持现在处于“尽力而为”状态。
在 powerpc(32 位)上,ABI 没有像 powerpc64 那样改变,因此升级应该比 powerpc64 更容易。
硬件状态:
aacraid(4) 驱动已为大端字节序修复,感谢 luporl。这意味着购买了 SAS 选项的 Talos 用户现在可以使用板载的 SAS。
ixl(4) 驱动也已为大端字节序修复,同样感谢 luporl。
软件状态:
由于 -CURRENT 切换到 LLVM/ELFv2,ifuncs 可用,这意味着当运行在支持 VSX 指令的处理器上时,我们现在可以使用优化的 memcpy/bcopy 和 strncpy 函数。
powerpc64 现在能够在没有 Huge Pages 支持的情况下在 QEMU 上运行。
virtio 驱动已修复。
内核 minidump 已修复。
软件包状态:
可用于 powerpc64/12(季度)的 FreeBSD.org 软件包集已经发布。-quarterly 构建已经从 12.0 更新到 12.1,因 12.0 被弃用。第一个更新的构建已经完成,提供 29776 个软件包。
我们目前正在将包构建器升级到最新的 -CURRENT。因此,当前可用的 -CURRENT 软件包仍为 ELFv1,这些软件包不可用。如需更多信息,请联系 Mark Linimon。
mesa 已切换到 llvm90,修复了某些问题。
firefox 及相关 Port 的工作仍在继续。
每天都有更多 Port 修复被提交。
团队感谢 IBM 借给我们两台 POWER8 和一台 POWER9 机器,感谢俄勒冈州立大学(OSU)提供的托管服务。同时,我们也感谢 clusteradm 团队保持 Tyan POWER8 机器在线,这些机器托管在 NYI。
另外,Piotr 想感谢 FreeBSD 基金会赞助他的个人 Talos 服务器,感谢 Raptor(通过其 IntegriCloud 子公司)借给我们一台服务器,talos.anongoth.pl 就运行在这台服务器上。
联系方式:Ruslan Bukin <br@FreeBSD.org> 联系方式:Mitchell Horne <mhorne@FreeBSD.org> 联系方式:John Baldwin <jhb@FreeBSD.org> 联系方式:Kristof Provost <kp@FreeBSD.org> 联系方式:Philip Paeps <philip@FreeBSD.org>
联系方式:freebsd-riscv 邮件列表 联系方式:IRC #freebsd-riscv 频道(freenode)
自上次 RISC-V 项目状态报告以来,已经过去了一年。在此期间,RISC-V 移植受到了更多关注,获得了各种改进。
RISC-V 项目引入了两位新的源码提交者。我们欢迎 Jessica Clarke(jrtc27@),她是 CheriBSD 的成员,以及 Nick O'Brien(nick@),来自 Axiado。
去年的一些亮点:
在 SiFive 的 Hifive Unleashed 开发板上的启动
支持 OpenSBI 固件和版本 0.2 的 SBI 规范
为 HiFive Unleashed 添加 UART、SPI 和 PRCI 设备驱动
上个季度,默认编译器和链接器已切换到 clang/lld。这需要我们进行少量的集成更改,但主要得益于上游对 RISC-V LLVM 后端的改进。LLVM 对 RISC-V 的支持在 LLVM 9 中正式推出,LLVM 10 带来了更多的改进。预计 LLVM 后端将继续成熟,因为目前有许多方积极参与其开发。GCC 仍然作为 RISC-V 的外部工具链得到支持。
HEAD 的 CI 工作已更新为使用 clang/lld 工具链,未来将添加 GCC 工作。CI 系统中构建的 RISC-V 磁盘映像现在包含完整的基本系统,并可在 CI 产物服务器上获取,以供进一步测试。CI 测试作业已更新为在 qemu 中使用 OpenSBI。正在进行为 RISC-V 在 CI 系统中运行 FreeBSD 测试套件的工作。
在 RISC-V 上支持 ports 框架方面取得了一些进展,直到最近,RISC-V Port 大部分未经过测试。首先,emulators/qemu-user-static-devel
更新,添加了对 RISC-V 64 位 ABI 的支持,允许通过 poudiere(8)
进行交叉编译。其次,改进了对软浮点 ABI riscv64sf 的检测。运行硬浮点或软浮点 ABI 的系统现在可以本地编译和运行 Port。目前,一小部分 Port 可以成功构建,未来几个月我们将致力于将其扩展到包括一组关键 Port (例如 python 或 perl)。
CheriBSD 项目在本季度首次移植到 RISC-V。为 Spike 和 QEMU 模拟器添加了对 CHERI ISA 的初步支持,并在 CheriBSD 端进行了必要的更改。目前,CheriBSD RISC-V 内核已启动,大多数静态编译的 CHERI 二进制文件运行良好。
尽管真正的 RISC-V 硬件仍然稀缺,但任何有兴趣尝试或为 RISC-V 移植做出贡献的用户都受到鼓励。请访问最近更新的 Wiki 页面获取设置信息,或查看《FreeBSD/RISC-V 入门》,该内容将刊登在 1 月/2 月版的《FreeBSD Journal》中。
赞助商:DARPA,AFRL,Axiado,FreeBSD 基金会
影响基本系统及其程序的变更。
联系方式:Ed Maste <emaste@freebsd.org> 联系方式:Warner Losh <imp@freebsd.org>
2007 年,GNU 编译器集合(GCC)迁移到 GPLv3,这引发了关于 FreeBSD 工具链未来的讨论。我们在 BSDCan 2010 举行了 工具链峰会。Roman Divacky 在会上更新了 ClangBSD 项目的进展,展示了使用新并快速发展的 Clang 编译器构建 FreeBSD 的情况。
从那时起,Clang 被引入到 FreeBSD 基本系统中,并得到越来越广泛的使用——最初作为安装工具但不是默认的 cc
,随后在 i386 和 amd64 上作为默认编译器使用,后来扩展到更多的目标。此后,Dimitry Andric 一直在保持 FreeBSD 版本的 Clang 更新。
GCC 4.2.1 被保留在树中,以支持那些尚未迁移到 Clang 的 FreeBSD 目标,如 MIPS 和 Sparc64。到今年年初,所有剩余的目标都已经迁移到外部工具链(来自 Port 或软件包的现代 GCC),或已被弃用。
随着树中不再有 GCC 4.2.1 的消费者,该版本已于 2020 年 2 月 29 日在 r358454 中从 FreeBSD 中移除。
赞助商:FreeBSD 基金会
联系方式:Ed Maste <emaste@freebsd.org>
在 r340076 中,Ed 添加了 NT_FREEBSD_FEATURE_CTL ELF 注释,用于让二进制文件选择是否启用或禁用漏洞缓解和其他功能。FreeBSD 基金会实习生 Bora Özarslan 随后添加了一个工具,用于解码和修改 ELF 注释,但该工具尚未默认安装。
在上个季度,Ed 将该工具重命名为 elfctl,并将其安装在 /usr/bin 中。Ed 还提交了一些小的 bug 修复、代码风格改进等。
使用示例 - 列出已知的功能标志:
列出二进制文件上设置的功能标签:
表示一个二进制文件请求选择退出地址随机化:
赞助商:FreeBSD 基金会
联系方式:Ed Maste <emaste@freebsd.org>
在上个季度,许多性能和功能改进被提交到了 ELF 工具链工具中。
FreeBSD 基金会实习生 Tiger Gao 为 addr2line 添加了 DWARF 调试信息条目(DIE)缓存,在翻译多个条目时提供了显著的改进(甚至超过了 GNU addr2line,尤其是在处理大列表时)。
Tiger 还重新基于并更新了一个上游 ELF 工具链提交,以处理 DW_AT_ranges,并解决了两个 elfcopy/objcopy bug:在将二进制文件转换为 ELF 时正确设置操作系统/ABI 字段,以及在没有 .shstrtab 节时正确添加新节。
Ed 提交了多个 readelf 改进,包括解码 PROTMAX_DISABLE、STKGAP_DISABLE 和 WXNEEDED ELF 功能控制标志,解码 Xen 和 GNU Build-ID ELF 注释,并改进了输入验证。
Mark Johnston 解决了 Coverity Scan 报告的许多内存和文件描述符泄漏等问题。
赞助商:FreeBSD 基金会
影响 Ports 的更改,无论是涉及大部分树的广泛更改,还是单个 Port 本身。
联系方式:Adriaan de Groot <kde@FreeBSD.org>
KDE 在 FreeBSD 上 项目为 FreeBSD 打包了 KDE 社区制作的软件。该软件包括完整的桌面环境 KDE Plasma、艺术应用程序 Krita、视频编辑器 Kdenlive 以及其他数百个可用于任何 FreeBSD 桌面计算机的应用程序。
本季度开始时,新的 kstars(业余天文应用)版本已在 Ports 中发布,随后进行了一些常规更新:
三个 KDE Frameworks 版本(按月发布),
三个 KDE 软件包的 bug 修复版本(来自 KDE 发布服务,原为 KDE Applications,但它总是包含更多内容,不仅仅是应用程序),
三个 KDE Plasma 桌面环境的 bug 修复版本。
没有对 Qt 进行 substantial 更新,但对 devel/cmake
进行了四个 bug 修复版本的更新,以及对 Ports 的常规工作。
SDDM 登录管理器已更新为一个更现代的版本——比旧版本更新了超过一年——并进行了补丁,以支持更多 FreeBSD 功能。
对 devel/qca
的更新删除了对 FreeBSD 11 的支持,因为上游不再支持旧版 OpenSSL。现在,Ports 中有一个基础设施,为需要加密支持的 Qt 应用程序添加了 USES=qca
。
开放 bug 列表 稳定在大约 28 个未解决的问题,其中一些有趣的 xkb 问题值得注意。我们欢迎详细的 bug 报告和补丁。KDE 打包更新是在 GitHub 上的 Ports 仓库副本 中准备的,然后合并到 SVN 中。我们也欢迎在那里提交拉取请求。
联系方式:Guido Falsi <xfce@FreeBSD.org>
在 XFCE 更新到 4.14 后,观察到 XFCE 窗口管理器 xfwm4 出现回归问题。它导致某些图形硬件设置下窗口装饰绘制错误或缺失。报告称,最近在 Ports 中更新的 Xorg 服务器修复了此问题。更新后的 Xorg 服务器将在下一个季度的分支中提供。
联系方式:Gerald Pfeifer <gerald@FreeBSD.org> 联系方式:Lorenzo Salvadore <salvadore@FreeBSD.org>
标准 Wine Port 已从 Wine 4.0.3 更新至 Wine 5.0,代表着超过 7400 项单独更改,包括 PE 格式的内置模块、多显示器支持、Vulkan 1.1 支持和 XAudio2 的重实现。
在我们在上个季度报告中请求帮助之后,i386 wine Port 已由 salvadore 接管,并立即开始解决现有的 bug 并改进这些 Port。大部分工作已经完成,我们将在 3 月开始提交这些更新。由于这项工作比最初预期的花费更多时间,因此我们也将在此过程中更新 i386-wine-devel Port,以便需要更近期版本的用户可以轻松地从 Ports (或二进制包)中获取。另一方面,我们计划在 i386-wine-devel 更新完成后,回溯将这些改进应用于 i386-wine,之后才更新该 Port,以确保 i386-wine 始终保持稳定版本。
联系方式:Mikaël Urankar <mikael@FreeBSD.org> 联系方式:Dmitri Goutnik <dmgk@FreeBSD.org>
从最近发布的版本 1.14 开始,Go 现在正式支持在 FreeBSD 12.0 或更高版本上运行的 64 位 ARM 架构。这个移植工作最初由 Greg V(又名 myfreeweb)启动,后来由 Shigeru Yamamoto、Dmitri Goutnik 和 Mikaël Urankar 继续进行。Dmitry 设置了一个 CI 构建器,用于捕捉 FreeBSD aarch64 上的回归问题(这是 golang 政策要求,在将新 Port 添加到主 Go 仓库时必须执行)。
正在进行的工作:
许多 Port 使用旧版本的 golang.org/x/sys 或 golang.org/x/net(举几个例子),这些版本不包含 FreeBSD aarch64 的支持,正在进行修复这些 Port 的工作(详细信息见 bug 跟踪条目)
联系方式:Alfonso Sabato Siciliano <alfonso.siciliano@email.com>
在2019年的第三和第四季度状态报告中,描述了 sysctlinfo 接口及其扩展,用于改进 sysctlbyname() 系统调用,它们可以访问 sysctl MIB 并将对象的属性传递给用户空间,但两者都属于较低级别且与内核相关。
sysctlmibinfo2 库提供了一个 API,用于探索 sysctl MIB,转换对象名称为其对应的对象标识符,并查找对象以获取其属性,因此它对于正确处理对象和构建类似 sysctl 的工具非常有用。
sysctlmibinfo2 主要封装了低级接口,以提供一个简单的 API,以下是一些示例:sysctlmif_desc() 检索对象的描述,sysctlmif_kind() 获取类型(字符串、整数等),sysctlmif_fmt() 指定格式(例如,整数可以表示分贝开尔文、毫开尔文等),然后可以正确打印对象值。
此外,sysctlmibinfo2 提供了一个高级 API:定义了结构体 sysctlmif_object 并提供了构建对象数据结构的函数。例如,假设我们要管理声音系统,sysctlmif_grouplistbyname(hw.snd
) 返回声音驱动程序对象的列表,sysctlmif_treebyname(dev.pcm
) 返回一个树结构,其中 "dev.pcm" 是根节点,每个子树代表一个音频设备。
显然,sysctlmibinfo2 受益于 sysctlinfo 的特性:处理最多到 CTL_MAXNAME 级别的 OID,支持能力模式,可以按名称查找对象(避免仅为找到相应 OID 而探索 MIB),一次获取对象的所有信息,管理具有 NULL 级别或通过 sysctl 处理器输入扩展的名称。
该库可以通过 devel/libsysctlmibinfo2 Port 安装,公共领域中提供了手册页和示例,以帮助你开始你的项目。
在文档树、手册页或外部书籍/文档中的重要更改。
联系方式:Danilo G. Baio <dbaio@FreeBSD.org> 联系方式:Edson Brandi <ebrandi@FreeBSD.org>
正如 1月 的公告所述,FreeBSD 项目正在采用 Weblate 作为其基于 Web 的持续本地化平台。
我们正在吸引新的志愿者加入这一努力,到目前为止,已经有以下数量:
10 种语言
47 名注册用户
语言
中文(简体)(zh_CN)
中文(繁体)(zh_TW) - 新增
法语 (fr_FR) - 新增
德语 (de_DE) - 新增
意大利语 (it_IT) - 新增
挪威博克mål - 新增 - FreeBSD 上的新语言
波斯语 (fa_IR) - 新增 - FreeBSD 上的新语言
葡萄牙语(巴西)
西班牙语
土耳其语 (tr-TR) [1] - 新增 - FreeBSD 上的新语言
1 - 过去曾有过翻译努力。我们感谢所有贡献者,无论是翻译还是审阅文档。
请帮助推广这一努力,尤其是在你所在的本地用户组中,我们始终需要更多的志愿者。
联系方式:Gordon Bergling <gbergling@gmail.com>
我目前正在进行 FreeBSD 手册页的重构工作,更新 HISTORY 和 STANDARDS 部分,并在此过程中为系统中缺少文档的部分创建新的手册页。FreeBSD 已经拥有类 UNIX 操作系统中最好的文档之一,但仍有一些部分可以改进。
对于那些已经改进的部分,你可以查看 我的 Phabricator 账户。
如果你希望帮助改进文档工作,请联系 Benedict Reuschling bcr@freebsd.org 或我本人,邮箱是 gbergling@gmail.com。
许多项目基于 FreeBSD 构建,或将 FreeBSD 组件纳入他们的项目中。由于这些项目可能对更广泛的 FreeBSD 社区感兴趣,我们有时会在季度报告中简要更新这些项目提交的进展。FreeBSD 项目对这些提交中的任何声明的准确性或真实性不做任何声明。
联系方式:Luca Pizzamiglio <pizzamig@FreeBSD.org> 联系方式:Esteban Barrios <esteban.barrios@trivago.com>
我们已经开始为 pot 项目编写正式的文档和指南。尽管文档尚不完整,但已经可以在 这里 查阅。还提供了一个 常见问题解答 页面,欢迎用户提交问题。
在上个季度,有一些 bug 被报告到 pot 和 nomad-pot-driver。两个项目都发布了新的 bug 修复版本。特别感谢 'grembo' 和 'Crest' 报告问题、测试并尝试了我们的解决方案。同时感谢 Mateusz(0mp)提交的 Pull Requests!
pot 将很快发布新版本(0.11.0),该版本主要集中在网络方面:
网络堆栈支持:仅 ipv4,仅 ipv6,双栈。
别名的灵活网络设置:增加了为别名网络类型使用任意网络设置的能力。
欢迎贡献!我们已为一些问题添加了 "good first issue" 标签,以鼓励新手为项目做贡献!
联系方式:NomadBSD 团队 <info@NomadBSD.org>
NomadBSD 是一个基于 FreeBSD 的持久化直播系统,适用于 USB 闪存驱动器。它具有自动硬件检测和配置,配置为开箱即用的桌面系统,但也可以用于数据恢复、教育用途,或测试 FreeBSD 的硬件兼容性。
我们在 3 月发布了新的次要版本 1.3.1,改进了网络接口的配置,修复了一些 bug,并新增了 nomadbsd-chusr 和 nomadbsd-sysinfo。此外,一些新特性也被包含在此次版本中。
几天后,YouTube 频道 explainingcomputers 发布了关于 NomadBSD 的评测视频。explaingcomputers 频道有近 60 万订阅者,评测结果积极,因此我们看到了历史上下载量的最高峰!与此同时,很多人开始在我们的邮件列表和 Twitter 上寻求帮助,所以我们决定建立一个新的支持论坛。
我们正在寻找帮助项目的人。在各个方面的帮助都非常感谢:
程序界面的翻译
设计艺术作品
编程新工具,扩展现有工具
测试和错误报告 / 用户体验和功能建议
欧洲以外的镜像
待办事项
支持在磁盘分区上安装并添加分区编辑器 GUI。
完整的磁盘加密
添加用户友好的网络管理器