FreeBSD 2017 年 7-9 月状态报告

引言

本季度的 FreeBSD 开发继续带来激动人心的进展,并为未来的发展提供了良好的前景。我个人特别喜欢手册页,因此看到我们获得了编写手册页的相关文档,尤其令人高兴(我希望这能转化为未来更多且改进的手册页!)。core@ 条目也特别值得关注,介绍了 FCP 过程,并且首次承认了非提交者的 FreeBSD 项目成员(以及更多)。继续阅读以了解更多信息,包括对 AMD Zen 系列处理器(如 Ryzen)的更好支持,以及更多的改进!

——Benjamin Kaduk

提交截止日期为 2017 年 10 月至 12 月期间的报告,截止日期为 2017 年 1 月 14 日。

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

链接

联系人:FreeBSD 发布工程团队 <re@FreeBSD.org>

FreeBSD 发布工程团队负责制定并发布 FreeBSD 官方项目版本的发布日程,宣布代码冻结,并维护相应的分支等工作。

FreeBSD 发布工程团队继续完成 11.1-RELEASE 的发布周期,最终的发布构建从 7 月 21 日开始,官方发布公告邮件于 7 月 26 日发送。感谢所有帮助测试 11.1-RELEASE 的人,确保其质量和稳定性。[1]

FreeBSD 11.1-RELEASE 是 stable/11 分支的第二次发布。

此外,FreeBSD 发布工程团队开始了 10.4-RELEASE 的发布周期,代码冻结从 7 月 28 日开始,预计最终的发布构建将于 9 月 29 日开始,官方公告将在季度结束时发布,按计划进行。[2]

FreeBSD 10.4-RELEASE 将是 stable/10 分支的第五个版本,计划是 10.x 系列的最后一次发布。

此项目由 FreeBSD 基金会赞助。[1]

此项目部分由 FreeBSD 基金会赞助。[2]

链接

联系人:René Ladan <portmgr-secretary@FreeBSD.org> 联系人:FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>

Ports 目前包含超过 31,600 个 Port。目前有 2671 个问题报告,其中 718 个未分配。这个季度共有 175 位提交者提交了近 5,900 次提交。与上个季度相比,开放的 PR 数量有所增加,且超过了更改的数量。

本季度,我们迎来了 Zach Leslie (zleslie@)、Luca Pizzamiglio (pizzamig@)、Craig Leres (leres@)、Adriaan de Groot (adridg@) 和 Dave Cottlehuber (dch@) 作为新提交者。以下提交者的提交权限被暂时保管:alons@ 在 19 个月的不活跃后,rpaulo@ 根据他的请求,以及 ache@ 在他去世后。尽管尝试了几次并更换了导师,kami@ 对完成导师任务缺乏兴趣,因此他的提交权限也被暂时保管。

在基础设施方面,删除了两个 USES 值,因为它们已经不再有用:

  • execinfo:libexecinfo 现在在所有支持的 FreeBSD 版本的基本系统中提供

  • twisted:只剩下一个 Twisted Port

GCC 的默认版本从 5 升级为 6。Firefox 更新为 56.0 版本,Chromium 更新为 61.0.3163.100 版本。pkg 本身的版本更新为 1.10.1。

在本季度,antoine@ 执行了 28 次 exp-runs 测试主要 Port 的版本更新,改进了 USE_GITHUB 和 SHEBANG_FILES,以及基本系统的 API 更改。本季度,Ports "flavors" 的基础工作已经提交,但将在下个季度进行更多开发和测试,才会投入使用。

待处理任务:

  1. 由于开放的 PR 数量再次增加,因此需要更多关注 PR 负载。

联系人:FreeBSD 核心团队 <core@FreeBSD.org>

今年早些时候,在 BSDCan 上起草了新的“FreeBSD 社区流程”。第一个此类文档,FCP 0,定义了整个流程的运作方式。在经过一段时间的讨论和修订后,FCP 0 经核心团队投票并通过,遵循该文档中规定的程序。目前,FCP 的使用完全是可选的;我们将观察社区如何开始采用这些流程,并根据经验不断发展该流程。

顾问委员会已准备好对《行为准则》进行更新草案。核心团队目前正在审阅文本,并将很快就接受该草案进行投票。核心团队希望避免“规则律师”的陷阱。目前的感觉是,我们需要在《行为准则》中添加一段前言,以阐明项目的目标,并作为执行该准则的总指导。

本季度,在提交者和项目成员的名单变动方面,核心团队非常忙碌。我们选举了首位新项目成员:John Hixson,他将在许多会议上做过演讲并能很好地代表 iXsystems。第二位提名的项目成员没有被核心团队接受,但仅仅是因为核心团队认为 Fedor Uporov 确实更值得拥有提交权限。

除了 Fedor Uporov,请也欢迎(无特定顺序)Matt Joras、Marcin Wojtas、Chuck Tuffli、Ilya Bakulin 和 Alex Richardson 作为全新的提交者。我们还授予 Steven Hurd 和 Eugene Grosbein src 提交权限,以配合他们现有的 ports 权限。欢迎 Gordon Tetlow 作为 src 提交者回归,他在 secteam 中的新角色至关重要。Eric Davis 和 Rui Paulo 决定放弃他们的提交权限:我们祝愿他们未来一切顺利。最后,我们必须报告 Andrey Chernov 的不幸去世,他将被他的同事和合作伙伴深深怀念。

Andrey 的去世突显了另一个问题,这个问题随着时间的推移只会变得更加复杂。在一个有着众多贡献者的成熟源代码树中,保持对版权的追踪已经足够困难,例如 FreeBSD 源代码树。现在,我们需要考虑如何追踪那些不幸去世的贡献者的继承人和受益人。核心团队将与基金会法律团队咨询,讨论如何缓解这一问题。

有投诉称核心团队的工作过于保密,导致项目的大多数人对正在发生的事情了解不足。这绝不是核心团队的本意,我们希望尽可能在合理的范围内,让核心团队的工作更多地接受社区的审查。

核心团队处理了一些许可问题:

  • 当将补丁和其他原始作品上游到 VirtualBox 或其他 Oracle 项目时,务实的做法是按 MIT 许可协议提供它们(这是 Oracle 接受的两种开源许可证之一)。当然,这只适用于原作者或经过原作者许可的上游工作。

  • Viking 软件许可证足够接近 BSD,因此可以在 FreeBSD 代码中使用它们驱动程序中的魔术常量。

  • 在源代码树中没有单独的记录表明哪些偏离了允许的 BSD 类许可证:任何不符合 BSD 类许可证条款的代码都可以假定已被核心团队批准。

  • 目前,FreeBSD 对于在二进制形式重新分发时包含版权声明的要求是通过将 FreeBSD 源代码与详细的版权信息一同提供,作为预编译系统镜像的一部分来满足的。然而,这不一定符合基于 FreeBSD 的下游项目的需求,考虑到新的“打包基础”,正在考虑以类似于 Ports 的方式添加每个包的许可元数据,作为一种替代机制。

在上一季度报告发布前,曾有关于即将发布的 HardenedBSD 条目的疑虑。FreeBSD 项目欢迎来自独立(但衍生)项目的季度报告,并在过去也曾包括过类似来自其他项目(如 TrueOS 和 pfSense)的报告。HardenedBSD 报告经过编辑以缩短长度,并集中讨论本季度的活动。

亚马逊提议在 AWS 内设置 freebsd-update 和 pkg 服务器的镜像,以便为 EC2 用户提供更快的访问。这些镜像将公开可访问,但预期主要是从 EC2 内部使用。FreeBSD AMI 将有一个预设配置,指向亚马逊服务器。

旧的、长期废弃且不安全的“r-命令”(rsh、rlogin、rcp)将从 12.0-RELEASE 的基本系统中移除。此事已在 11.1-RELEASE 和 10.4-RELEASE 的手册页和发布说明中注明。需要这些命令以保持向后兼容性的用户可以使用新的 net/bsdrcmds Port。

已经开始着手将基本系统中的 Heimdal Kerberos 替换为更广泛兼容的 MIT Kerberos,具体工作在新的 projects/krb5 分支中进行。这不应该触犯任何美国加密软件出口法规:项目需要通知美国政府,FreeBSD 服务器上可以下载加密软件,而这已经涉及了 MIT Kerberos,它已在 Ports 中提供。

一些旧金山湾区 FreeBSD 用户组相关的域名正在被原所有者放弃。目前的 BAFUG 组织者已经得知此事。

核心团队已经投票通过对 Doceng 投票规则的修改,以在 doceng 投票中提供类似 portmgr 和核心投票的“未投票”状态。此前,要求 Doceng 所有五个成员在问题上进行投票,已被证明是一个重要瓶颈。

链接

联系方式:Deb Goodkin <deb@FreeBSDFoundation.org>

FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于支持和推广全球的 FreeBSD 项目和社区。资金来源于个人和企业捐赠,用于赞助和管理软件开发项目、会议和开发者峰会,并为 FreeBSD 贡献者提供旅行赞助。基金会还购买和支持硬件,以改善和维护 FreeBSD 基础设施,并提供全职发布工程支持;发布营销材料以推广、教育和宣传 FreeBSD 项目;促进商业供应商与 FreeBSD 开发者之间的合作;最后,在执行需要合法实体的合同、许可协议和其他法律安排时,代表 FreeBSD 项目。

以下是我们上个季度为帮助 FreeBSD 所做的一些亮点工作:

筹款工作

我们的工作完全依赖于你的捐款。今年,我们已经从 500 多位捐赠者那里筹集了 86 万多美元。我们的 2017 年筹款目标是 125 万美元,我们将继续努力达成并超越这一目标!请考虑捐款,帮助我们继续并增加对 FreeBSD 的支持:https://www.FreeBSDfoundation.org/donate/

我们还推出了新的合作伙伴计划,为我们的主要商业捐赠者提供更多的好处。了解更多信息,请访问 https://www.FreeBSDfoundation.org/FreeBSD-foundation-partnership-program/,并与你的公司分享!

改进操作系统

基金会通过聘用我们的技术人员来改进 FreeBSD 操作系统,维护和改进关键的内核子系统,增加功能,修复问题。这还包括赞助独立项目,如 arm64 移植、blacklistd 访问控制守护进程和 VIMAGE 支持集成,确保 FreeBSD 继续作为研究、教育、计算、产品等领域的可行解决方案。

我们在上个季度启动或继续了以下项目:

  • OpenZFS RAID-Z 扩展项目

  • Broadcom Wi-Fi 基础设施改进(bhnd(4) 驱动)

  • Beaglebone Black 的开箱即用无头模式

  • 扩展 bhyve/ARMv7 特性

  • 将 bhyve/ARM 移植到 ARMv8 平台

拥有软件开发人员使我们能够直接参与并致力于改进 FreeBSD 的项目,例如:

  • 改进 ZFS

  • 支持新的英特尔服务器

  • kqueue(2) 更新

  • 64 位 inode 支持

  • 栈保护

  • 内核未定义行为检查器

  • 工具链项目

  • i915 驱动调查

  • acpiconf(8) 中的 NVDIMM 支持

  • 持续集成仪表盘(网页和物理硬件)

  • makefs(8) 中的 FAT 文件系统支持

基金会的员工和董事会成员继续主持每两周一次的电话会议,促进个人在不同技术领域的协作。

发布工程

基金会提供了一名全职员工来领导发布工程工作。过去几年中,这项工作提供了及时可靠的发布。

在上个季度,我们的全职员工与 FreeBSD 发布工程团队和安全团队一起完成了 11.1-RELEASE 的最终工作。他还支持了 10.4 版本的发布工作,并继续在整个季度内生成 10-STABLE、11-STABLE 和 12-CURRENT 开发快照构建。在 vBSDCon 开发者峰会上,他做了关于发布工程团队现状的演讲。

你可以通过阅读本报告中的状态更新,了解我们为发布工程团队提供的支持。

支持 FreeBSD 基础设施

基金会为改善 FreeBSD 基础设施提供了硬件和支持。在上个季度,我们继续支持位于世界各地的 FreeBSD 硬件。

FreeBSD 宣传和教育

我们工作的重要部分是为项目提供宣传。这包括推广其他人使用 FreeBSD 所做的工作;制作宣传资料,帮助人们了解 FreeBSD,并让使用 FreeBSD 或为项目做贡献的道路更加容易;参加并组织其他 FreeBSD 贡献者志愿者举办 FreeBSD 活动、管理 FreeBSD 展台并做 FreeBSD 演讲。

FreeBSD 基金会赞助了全球范围内的许多会议、活动和峰会。这些活动可以是与 BSD 相关的、开源的,或是面向弱势群体的技术活动。我们支持这些专注于 FreeBSD 的活动,帮助提供一个知识共享的平台,共同开展项目,促进开发者与商业用户之间的合作。这些都帮助建立了一个健康的生态系统。我们支持非 FreeBSD 的活动,以推广并提高 FreeBSD 的知名度,增加 FreeBSD 在不同应用中的使用,并招募更多的贡献者参与项目。

以下是我们上个季度做的一些宣传和教育工作的亮点:

  • 组织并举办了在德国埃森的 FreeBSD 黑客马拉松

  • 赞助并参与了在英国剑桥举行的 FreeBSD 开发者峰会 BSDCam

  • 代表 FreeBSD 参加了 ARM 合作伙伴会议

  • 在苏丹喀土穆的 SdNOG 4 上做了 FreeBSD 的讲座和教学

  • 赞助并在法国巴黎的 EuroBSDCon 上做了演讲和教程

  • 组织并举办了巴黎的 FreeBSD 开发者峰会

  • 组织并举办了 vBSDCon 的 FreeBSD 开发者峰会

  • 赞助并参加了 vBSDCon

  • 为 FreeBSD 贡献者提供旅行赞助,以参加上述活动

  • 作为行业合作伙伴赞助了 2017 年 USENIX 安全研讨会(加拿大温哥华)

  • 提供了 FreeBSD 宣传材料

  • 作为行业合作伙伴赞助了 2017 年 USENIX 年度技术会议(加利福尼亚州圣克拉拉)

我们继续制作 FreeBSD 宣传资料,帮助全球推广 FreeBSD。

我们通过发布专业制作的《FreeBSD 期刊》来帮助教育世界了解 FreeBSD。上个季度,我们发布了 7/8 月期刊,你可以在 https://www.FreeBSDfoundation.org/journal/ 上找到。

你可以在 https://www.FreeBSDfoundation.org/news-and-events/ 上了解我们参加的活动和即将举办的活动。

法律/FreeBSD 知识产权

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

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

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

链接

联系方式:Jenkins 管理员 <jenkins-admin@FreeBSD.org>

FreeBSD CI 团队为 FreeBSD 运行各种持续集成解决方案,定期检查当前的 Subversion 仓库是否可以成功构建,并对构建结果执行各种测试和分析。

我们已推出 DTrace 测试管道,结果和工件可在以下链接查看:

我们在第三季度的两个开发者峰会上举行了团队会议:

待办事项

  1. 修复失败的测试用例和构建。

  2. 为更多架构创建构建。

  3. 添加更多测试。

  4. https://wiki.FreeBSD.org/Jenkins/TODO 上列出的其他待办事项。

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

链接

联系方式:Chris Galazka <krzysztof.galazka@intel.com>

联系方式:Piotr Pietruszewski <piotr.pietruszewski@intel.com>

ix 和 ixv 网络接口驱动程序支持多种 Intel 网络接口,传输速率为 10 Gbit/秒。

本季度,在 Matt Macy 和 Sean Bruno(以及其他人)的帮助下,我们已提交了一项 Phabricator 审核,将 ixgbe 驱动程序转换为使用新的(并不断发展的)iflib 框架。

敬请关注 40G 驱动程序(ixl)的转换工作,目前它正被移植到使用 iflib。

待办事项

  1. 进一步测试。

链接

联系方式:Bartosz Sobczak <bartosz.sobczak@intel.com>

iWARP 是一套协议,旨在通过远程直接内存访问(RDMA)、直接数据放置和标记 PDU 对齐封装,提升网络数据传输的效率。它力图避免不必要的(本地)数据复制,并将工作从主 CPU 卸载到专用硬件。

正在审核首次提交,添加对 Intel X722 系列网络适配器的 iWARP 支持。这是向在配备 Intel C620 系列芯片组的系统上引入完整 iWARP 支持的重要一步。目前,使用 iw_ixl 驱动程序,仅支持 kVerbs API。

待办事项

  1. 进一步测试。

链接

联系方式:Rick Macklem <rmacklem@FreeBSD.org>

pNFS 服务器允许将 NFS 服务分布到多个服务器上,将元数据操作与数据操作(读取和写入)分离。此项目将添加使用 FreeBSD 系统创建 pNFS 服务的能力,服务由单个元数据服务器和一组数据服务器组成。数据服务器可以进行镜像,以便保持文件数据的冗余副本。

目前,非镜像数据服务器的支持已被认为完成。使用灵活文件布局的镜像数据服务器支持已实现,并将很快作为 RFC 发布。然而,仍有大量工作需要完成,因为当前的镜像数据服务器实现未处理数据服务器故障及其恢复过程。希望在未来六个月内实现数据服务器故障/恢复的支持。

现已可以通过 Subversion 或下载 gzipped tarball 访问修补过的 FreeBSD 源代码进行测试。这些源代码包括修补的内核和 nfsd,可以在任何 FreeBSD 11 或更高版本的系统上使用。安装过程已在链接的文档中覆盖。

待办事项

  1. 现在可以使用实现版本进行其他人员的测试。

  2. 实现和测试镜像故障/恢复。

更新特定平台功能并支持新硬件平台。

联系方式:Conrad Meyer cem@FreeBSD.org <>

本季度,针对 AMD Zen(Ryzen、Threadripper、Epyc)处理器,增强了平台支持:

  • 增强了 CPU 拓扑检测代码,以正确检测 Zen 核心和 CPU 复合体。这为调度器在做出调度决策时提供了更多的本地性信息。

  • 增强了 x86 拓扑分析,除了现有的包、核心和线程报告外,还报告了核心和 CPU 复合体。新的输出示例为:FreeBSD/SMP: 1 package(s) x 2 groups x 2 cache groups x 4 core(s) x 2 hardware threads。

  • 添加了用于访问 SMN(系统管理网络)寄存器的 amdsmn(4) 驱动程序。

  • 为 Zen 添加了 CPU 温度监控支持,支持 amdtemp(4)。

  • 在 cpufreq(4) 中:

    • 添加了支持从机器状态寄存器(Machine State Registers)解码 Zen P-state 信息(通常不是必需的,因为它与 ACPI P-state 信息大致冗余,但可能有用)。

    • 解决了 Ryzen 无法达到 P1 状态的问题,通过不忙等核心等待过渡到该状态来绕过这一问题。

  • 修复了 intpm(4) smbus 驱动程序,使其能够附加到 AMD FCH(融合控制中心)。

  • 现在所有 MCA bank 都已启用并在 Zen CPU 上进行监控。

  • 添加了功能位解码支持:CLZERO、SVM 特性和 RAS 功能。

  • 为 aesni(4) 驱动程序添加了 SHA 内在支持。Ryzen 是目前唯一具备这些内在支持的桌面处理器。英特尔的 Goldmont 系列低端 SoC 也支持这些内在。

总体而言,Zen 现在是一款非常适合用于 x86 工作站和服务器的平台。

该项目由 Dell EMC Isilon 赞助。

待办事项

  1. 为 Zen 架构中可用的新性能计数器添加 HWPMC 支持。

  2. 为 CCP(加密协处理器)添加支持。

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

联系方式:John Baldwin <jhb@FreeBSD.org>

联系方式:Luca Pizzamiglio <pizzamig@FreeBSD.org>

devel/gdb Port 已更新为 GDB 8.0.1。

对 FreeBSD/aarch64 用户空间二进制文件的支持已提交到上游。这些补丁以及对调试 FreeBSD/aarch64 内核的支持已提交到该 Port。

正在审查的上游补丁将增加对 FreeBSD/arm 用户空间二进制文件的改进支持。FreeBSD 12 最近增加了通过 ptrace() 和核心转储调试 VFP 寄存器的功能,作为该工作的一部分。添加对 FreeBSD/arm 内核的支持将在上游补丁加入 Port 后完成。

对 $_siginfo 的支持已提交到上游。此功能使用最近添加的 NT_LWPINFO 注释,从进程核心中提取信号信息。

使用 GDB 的 kill 命令时发生的挂起问题已在 FreeBSD 中通过 r313992 修复。

待办事项

  1. 弄清楚为什么 powerpc kgdb 目标无法在初始帧之后展开堆栈。

  2. 测试对 sparc64 二进制文件和内核的支持。

  3. 添加对调试 powerpc 向量寄存器的支持。

  4. 实现 info proc 命令。

  5. 实现 info os 命令。

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

链接

联系方式:Johannes Dieterich <jmd@freebsd.org>

联系方式:Mark Johnston <markj@freebsd.org>

联系方式:Hans Petter Selasky <hselasky@freebsd.org>

联系方式:Matthew Macy <mmacy@nextbsd.org>

FreeBSDDesktop 团队很高兴地宣布发布 graphics/drm-next-kmod。这个 Port 用于 FreeBSD-CURRENT(amd64),提供支持 amdgpu、i915 和 radeon DRM 模块,使用 linuxkpi 兼容性框架。该 Port 当前对应于 Linux 4.9 中的 DRM,处于实验阶段。它在许多使用现代 GPU 硬件(如 AMD HD7000 系列/Tahiti 至 Polaris 和 Intel HD3000/Sandy Bridge 至 Skylake)的测试人员中表现可靠。非常欢迎进行更广泛的测试并报告/修复缺陷。

待办事项

  1. 解决导致 radeonkms 和 amdgpu 在 EFI 启动时失败的问题(尽管已有解决方法)。

  2. 升级到 Linux 4.10 及更高版本的 DRM。

  3. 获取更广泛测试的反馈。

链接

联系方式:Tobias Kortkamp <tobik@FreeBSD.org>

OpenJFX 是一个开源的下一代客户端应用程序平台,适用于桌面和嵌入式系统,基于 JavaSE。本季度,OpenJFX Port 经过重构,并进行了显著改进。

更多模块正在构建中。通过新的 Web 模块,我们为具有内置 Web 浏览器的应用程序(例如 AsciidocFX)提供支持。新的媒体模块允许 JavaFX 应用程序播放音频和视频文件。

JavaFX 场景构建器的 Port (一个用于构建 JavaFX 场景的 RAD 工具)已添加到 Ports 中。

默认启用了 GPU 加速的 OpenGL Prism 后端。

从维护者和贡献者的角度来看,通过将所有 FreeBSD 本地补丁移动到 Ports 并直接获取上游源代码,而不是使用单独的代码库,简化了该 Port。

待办事项

  1. 将一些补丁提交到 Ports 的上游。

链接

联系方式:Puppet 团队 <puppet@FreeBSD.org>

今年夏天,创建了 puppet@ 团队,帮助维护 FreeBSD Ports 中的大约 30 个与 Puppet 相关的 Port。这些 Port 以前由不同的提交者维护,分布式维护曾在更新 Port 时引起一些延迟,因为需要等待维护者批准与其他 Port 相关的更改。

Puppet 5 已经加入 Ports (作为 sysutils/puppet5)。Facter 的 C++ 版本(sysutils/facter)受到了广泛关注,现在可以作为 Ruby 版本(sysutils/rubygem-facter)的直接替代品;它是 Puppet 5 Port 的默认事实源。

工作仍在进行中,旨在将 Puppetserver 5 添加到 Ports,并保持所有 Port 的最新状态。

待办事项

  1. pkg 包提供者存在一些小问题(在未配置仓库时会导致问题,并且在 MCollective 包代理的上下文中无法正常工作)。

  2. 数据库/puppetdb[345] 和 sysutils/puppetserver[45] Port 依赖于 Clojure 和 Java,并下载已编译的 jar 文件,而不是从源代码构建它们。

文档树中的显著变化或新的外部书籍/文档。

链接

联系方式:Michael Lucas <mwlucas@michaelwlucas.com>

已完成《Absolute FreeBSD》第三版第一稿。该稿包含 220,200 字,大约足够让一头中等大小的牛眩晕。预计将在 BSDCan 2018 之前出版。

待办事项

  1. 空洞地盯着墙壁几天。

  2. 修复数十个社区审阅者指出的问题。

  3. 修复 John Baldwin(技术审阅专家)指出的所有问题。

  4. 编辑、复制编辑、页面布局、页面编辑、重编辑、索引、索引员发现的编辑。

  5. 预订将在明年某个时候开放。

  6. 控制自己不要掐住问“什么时候发布第四版”的人的喉咙。

链接

联系方式:Warren Block <wblock@FreeBSD.org>

在过去的一年里,手册页的关注度增加,主要得益于 Baptiste Daroussin 和其他人的出色基础设施工作,以及 George Neville-Neil 和其他人的推广。这种关注的增加既令人欣慰也带来了一些问题。我们的 man 页是被低估的瑰宝,但遗憾的是,我们缺乏有关如何编写新 man 页的实质性文档。

在九月,我在 FreeBSD 文档项目指南 中添加了一个新章节,介绍了创建 man 页的基础知识。该章节包括标记语言、章节结构、推荐的可选内容(如示例)和常见类型 man 页的示例模板。资源部分包含了几个外部资源的链接,包括优秀的 实用 UNIX 手册:mdoc

虽然这个章节并不是完整的教程,但它确实开始填补我们文档资源中的一个大空白,并提供了一个可以进一步发展的起点。

待办事项

  1. 添加更多标记语言使用的解释和示例。

  2. 扩展示例模板,增加更多所需的标准特性,如 EXAMPLES 部分。

  3. 添加更多示例模板。

许多项目建立在 FreeBSD 上,或将 FreeBSD 的组件纳入其项目中。由于这些项目可能对更广泛的 FreeBSD 社区感兴趣,我们有时会在季度报告中包含这些项目提交的简短更新。FreeBSD 项目并不对这些提交中的任何声明的准确性或真实性作出任何陈述。

链接

联系方式:Jonathan de Boyne Pollard <J.deBoynePollard-newsgroups@NTLWorld.COM>

nosh 项目是一套系统级实用工具,用于初始化、运行和关闭 BSD 系统;以及管理守护进程、终端和日志。它试图取代 BSD init、Mewburn rc.d 系统和在 FreeBSD 和 TrueOS 上使用的 OpenRC,灵感来自 Solaris SMF(用于命名的里程碑)、daemontools-encore(用于服务控制/状态机制)、UCSPI 和 IBM AIX(用于分离的服务和系统管理)。它包括一系列兼容性机制,包括其他系统中常见命令的 shim,以及一个自动导入机制,从 /etc/fstab/etc/rc.conf{,.local}/etc/ttys 等地方获取现有的配置数据,并将其应用到原生服务定义中,创建附加的原生服务。它是可移植的(包括到 Linux),并且是可组合的,它提供了从 systemd Linux 世界迁移的路径,并且不需要新的内核 API。它提供干净的服务环境、服务之间的排序和依赖关系、并行启动和关闭(包括 fsck)、严格大小限制和自动旋转的日志、将服务管理器作为“子进程收割器”,并使用 kevent(2) 进行事件驱动的并行处理。

自 2015 年 12 月的上次状态报告以来,该项目已见证了:经过重构和更细粒度的打包,减少了与其他工具集的冲突;添加了 zsh 完成文件;改进了虚拟终端子系统、键盘映射、鼠标支持、ugen 和 DECSCUSR 支持;支持 RFC 5424/5426 的远程日志记录;替换了 libkqueue 和 C 库的环境处理函数;添加了若干新的辅助命令;支持 Java VM 自动定位;改进的套接字传递代码;扩展的状态 API 和“一次性”服务支持;附加的预供应服务包;支持服务别名;改进了每用户 D-Bus 服务的处理;改进了 MySQL、MariaDB、Percona 和 OpenVPN 服务的导入;改进了配置导入支持;以及对 nosh 指南的广泛补充。

在最近更新的路线图中,你可以看到更多文档的计划,继续扩展网络子系统的功能,以及剩下的少量与 rc.d 相关的事项。还有一些想法仍处于猜测或规划阶段,包括可能依赖将 nosh 支持集成到其他软件中的工作。

待办事项

  1. 改进 Ansible 和 SaltStack 集成(Arch Linux nosh 集成的维护者有一些想法)。

  2. 仍需要为 bash、csh 和 fish 提供命令行补全。

  3. 为 port 维护者文档化 convert-systemd-units,用于从 systemd 单元文件制作打包服务包。

  4. nosh 可以利用一些为基本系统提出的功能:

    • 启动加载程序信号“紧急”和“救援”模式

    • 为 fsck 添加机器可读的状态输出

    • 在早期引导阶段为更多可以 clang 编译的语言添加运行时支持

    • 为调用外部配置导入机制添加钩子

最后更新于

这有帮助吗?