本报告涵盖了 2012 年 7 月至 9 月期间与 FreeBSD 相关的项目。这是 2012 年计划的四份报告中的第三份。
本季度的亮点包括成功参与谷歌编程之夏,源代码树和 Ports 领域的重要工作,以及由 30 多名开发者参加的开发者峰会。
感谢所有报告者的出色工作!本报告包含 12 项内容,祝你阅读愉快。
联系方式: Brooks Davis <brooks@FreeBSD.org> 联系方式: Robert Watson <rwatson@FreeBSD.org> 联系方式: Bjoern Zeeb <bz@FreeBSD.org>
在开发 CHERI 处理器 作为 CTSRD 项目的一部分过程中,SRI 国际计算机科学实验室和剑桥大学计算机实验室为 Altera FPGA 开发了多个通用 IP 核支持,包括 Altera 三速以太网 (ATSE) MAC 核、Altera 大学程序 SD 卡核和 Altera JTAG UART。我们还通过 avgen 总线为 Avalon 总线上的内存映射设备提供了一般访问支持。我们已经实现了这些设备的 nexus 和扁平化设备树 (FDT) 附加。
除了这些软核外,我们还开发了对 Terasic 多点触控 LCD 的支持,并正在为 Terasic HDMI 发送卡提供支持。这两个设备都与常见的 Altera FPGA 开发和/或参考板兼容。它们确实需要额外的 IP 核,我们计划在不久的将来将其发布给开源社区。
除 ATSE 和 HDMI 驱动程序外,我们已将所有这些更改合并到 FreeBSD-CURRENT 中。我们预计这些驱动程序将对希望在 Altera FPGA 上运行 FreeBSD 的用户有帮助,无论是硬核还是软核 CPU。
该项工作由 DARPA、AFRL 和 Google 资助。
联系方式: Edward Tomasz Napierała <trasz@FreeBSD.org>
在 7 月至 9 月期间,原生 iSCSI 目标项目在 FreeBSD 基金会的资助下正式启动。在 9 月底之前,我编写了 ctld(8),即目标的用户空间部分,负责处理配置、接受传入连接、进行身份验证和 iSCSI 参数协商,并将连接交给内核。目前,我重用了来自 istgt 项目的一些协议处理代码;由于 ctld(8) 仅处理登录阶段,因此将来可以以更简单和更短的方式重写代码。
https://github.com/buganini/rcexecr
https://github.com/kil/rcorder
联系方式: Kuan-Chung Chiu <buganini@gmail.com> 联系方式: Kilian <kklimek@uos.de>
目前有两种实现方式可以使 rc.d 执行并行。与 Kil 的 rcorder 相比,rcexecr 提供了更多的并发性,并且比旧的“early_late_divider”机制提供了更多的灵活性,但需要更具侵入性的 /etc
补丁。这两种实现都提供了切换并行执行的开关。进一步的修改/集成需要更多讨论。
待办任务:
精炼 /etc/rc.d/*
以消除不必要的等待。
http://www.freebsd.org/support.html#gnats
https://wiki.freebsd.org/BugBusting
联系方式: Eitan Adler <eadler@FreeBSD.org> 联系方式: Gavin Atkinson <gavin@FreeBSD.org> 联系方式: Oleksandr Tymoshenko <gonzo@FreeBSD.org>
在 8 月,Eitan Adler (eadler@) 和 Oleksandr Tymoshenko (gonzo@) 加入了 Bugmeister 团队。同时,Remko Lodder 和 Volker Werth 退出了。我们感谢 Volker 和 Remko 过去的工作,并欢迎 Oleksandr 和 Eitan。Eitan 和 Oleksandr 一直在努力从 GNATS 迁移,并在评估新软件和创建用于从 GNATS 导出数据的脚本方面取得了显著进展。
Bugbusting 团队继续致力于使 GNATS PR 数据库的内容更加清晰、易于访问,并使提交者更容易找到和解决 PR。通过标记 PR 来指示相关领域,并确保每个 PR 中包含足够的信息来解决每个问题。
与往常一样,任何有兴趣帮助处理 PR 队列的人都欢迎加入我们在 EFnet 上的 #freebsd-bugbusters。我们总是寻求额外的帮助,无论是三角处理传入的 PR,生成补丁来解决现有问题,还是帮助数据库维护(识别重复的 PR,已经解决的 PR 等)。这是更深入参与 FreeBSD 的好方法!
待办任务:
进一步研究适合替代 GNATS 的工具。
让更多的用户参与到 PR 的三角处理中来。
协助提交者关闭 PR。
联系方式: Deb Goodkin <deb@FreeBSDFoundation.org>
基金会于 2012 年 8 月主办并赞助了剑桥 FreeBSD 开发者峰会。
我们在以下会议上有代表:2012 年 7 月的 OSCON、德州 LinuxFest 和俄亥俄 LinuxFest。
我们谈判并监督了基金会资助的项目:分布式安全审计日志、Capsicum 组件框架、原生 iSCSI 目标范围和增长 UFS 文件系统在线。
我们谈判、监督并资助了 FreeBSD 联合中心的硬件需求。
我们欢迎 Kirk McKusick 加入我们的董事会。他接管了我们投资管理的责任。
我们访问了多家公司,讨论它们使用 FreeBSD 的情况,并帮助促进与项目的合作。
我们管理 FreeBSD 供应商社区邮件列表和会议。
我们制作了一份高质量的 FreeBSD 9 宣传册,以帮助推广 FreeBSD。
发布了我们的 半年通讯,该通讯重点介绍了基金会资助的项目、开发者的旅行补助、赞助的会议以及基金会对 FreeBSD 项目的其他支持。
我们聘请了一名技术写作人员来帮助 FreeBSD 市场营销/宣传材料的制作。
我们开始了重新设计我们网站的工作。
联系方式: 核心团队 <core@FreeBSD.org>
随着核心团队成员的变化,几个相关角色也发生了变化。Gabor Pali 接替 Gavin Atkinson 担任核心秘书,David Chisnall 接替 Robert Watson 担任 FreeBSD 基金会的联络人。核心团队认为不再需要正式的安全团队联络人,因此该角色被退休。
在第三季度,核心团队为 2 名新提交者授予了访问权限,并将 2 个提交位保管。
核心团队与 Ports 管理团队和集群管理员合作,设定了停止为 Port 仓库提供 CVS 导出的日期,即 2013 年 2 月 28 日。与此同时,9.1-RELEASE 的 CVS 导出已恢复。
联系方式: freebsd-arm 邮件列表 <freebsd-arm@FreeBSD.org>
对 ARMv6 和 ARMv7 架构的支持已从项目分支合并到 HEAD。此代码覆盖以下部分:
一般的 ARMv6/ARMv7 内核部分(pmap、缓存、汇编例程等)
ARM 通用中断控制器驱动
改进的线程本地存储支持(适用于 >= ARMv6 的 CPU)
SMSC LAN95XX 和 LAN8710A 以太网控制器驱动
Marvell MV78x60 支持(多用户,ARMADA XP 内核配置)
TI OMAP4 和 AM335x 支持(多用户,不支持 GPU 或图形,适用于 Pandaboard 和 Beaglebone 的内核配置)
LPC32x0 支持(多用户,帧缓冲与 SSD1289 LCD 控制器配合工作。嵌入式艺术家 EA3250 内核配置)
这项工作是许多人共同努力的结果,包括但不限于:Grzegorz Bernacki (gber@)、Aleksander Dutkowski、Ben R. Gray (bgray@)、Olivier Houchard (cognet@)、Rafal Jaworowski (raj@) 和 Semihalf 团队、Tim Kientzle (kientzle@)、Jakub Wojciech Klama (jceel@)、Ian Lepore (ian@)、Warner Losh (imp@)、Damjan Marion (dmarion@)、Lukasz Plachno、Stanislav Sedov (stas@)、Mark Tinguely 和 Andrew Turner (andrew@)。感谢所有通过提交代码、测试和提供宝贵建议做出贡献的人。
待办任务:
更多硬件引导和驱动程序
完成 SMP 支持
VFP/NEON 支持
联系方式: 佐藤広生 <hrs@FreeBSD.org> 联系方式: Ryusuke Suzuki <ryusuke@FreeBSD.org>
网页(htdocs):英版本中的新闻快报和其他一些更新已翻译,以保持其最新。特别是“FreeBSD 基础设施上的安全事件”已及时翻译并发布。
FreeBSD 手册:“高级网络”章节进行了大规模更新。通过此次更新,将来自日语文档项目本地仓库的手册翻译结果合并到主仓库中。该章节仍然过时,需要进一步完善。其他部分也在不断更新。特别地,新增了“使用 pkgng 进行二进制包管理”子章节到“ports”部分,并在“mirrors”部分中新增了“使用 subversion”子章节。
文章:在“编写 FreeBSD 问题报告”和“编写 FreeBSD 问题报告”两篇文章方面取得了一些进展。
待办任务:
进一步翻译 ja_JP.eucJP 子树中的过时文档。
联系方式: KDE FreeBSD <kde@FreeBSD.org>
KDE/FreeBSD 团队继续改善 FreeBSD 上 KDE 软件和 Qt 的体验。最新的改进包括:
修复使用 libc++ 和 C++11 构建 Qt 的问题
修复与 Solid 相关的崩溃问题
修复电池监视器 plasmoid 中的电池检测问题
该团队还发布了许多新版本,并向上游提交了大量修复和补丁。最新的发布包括:
KDE SC: 4.9.1 (area51) 和 4.8.4 (ports)
Qt: 4.8.3 (area51)
PyQt: 4.9.4 (area51); QScintilla 2.6.2 (area51); SIP: 4.13.3 (area51)
Calligra: 2.4.3, 2.5-RC2, 2.5.0. 2.5.1, 2.5.2 (area51) 和 2.4.3, 2.5.0, 2.5.1 (ports)
Amarok: 2.6.0 (area51)
CMake: 2.8.9 (ports)
Digikam (及 KIPI 插件): 2.7.0, 2.8.0, 2.9.0 (area51) 和 2.7.0, 2.9.0 (ports)
QtCreator: 2.6.0-beta (area51)
许多较小的 Port
该团队始终欢迎更多的测试人员和移植人员,请通过 kde@FreeBSD.org 与我们联系,并访问我们的主页 http://FreeBSD.kde.org。
待办任务:
请参见 2012 年 Q4 状态报告
更新过时的 Port ,参见 PortScout 获取列表
联系方式: Thomas Abthorpe <portmgr-secretary@FreeBSD.org> 联系方式: Ports 管理团队 <portmgr@FreeBSD.org>
Ports 接近 24,000 个 Port ,而 PR 数量仍超过 1000。
在第三季度,我们增加了 2 位新的提交者,并为安全保管收取了两把提交权限。
Ports 管理团队执行了多个 -exp 运行,验证基础系统更新如何影响 Ports,并为主要 Port 更新提供 QA 运行。
Beat Gaetzi 接管了发送失败邮件的角色,这一角色此前由 Pav Lucistnik 承担。Beat 还承担了将 Ports 从 CVS 转换为 Subversion 的任务。
Florent Thoumie 卸下了在 portmgr 中的职务,他在维护遗留的 pkg_*
代码方面发挥了重要作用。
待办任务:
大多数 Port PR 已经分配,现在需要集中精力进行测试、提交和关闭。
联系方式: Robert Watson <rwatson@FreeBSD.org>
在 8 月底,剑桥大学计算机实验室举行了一个“淡季”开发者峰会。此次活动为期三天,前一天安排了文档峰会。三天的主活动被分为三个会议,每个会议都有两个分会场。一些会议甚至涉及到来自周边地区的 ARM 开发者,证明这些会议是富有成效的,并促成了 FreeBSD 社区与 ARM 之间的进一步合作。
第一天定下了最终的日程,提出了大量的讨论主题,然后分组进行讨论。每个小组的简短总结在最后的会议中展示,并发布在 FreeBSD 维基的活动主页上。此次峰会为制定切换到默认使用 clang 编译器的计划做出了重要贡献。此事在邮件列表中进行了进一步讨论,现在已经完成,使我们离无 GPL 的 FreeBSD 10 更进一步。作为程序的一部分,剑桥大学计算机实验室的研究人员在下午进行了简短的讲座,内容涉及操作系统工作或 FreeBSD。Robert Watson 展示了一款运行 FreeBSD 的平板电脑,该平板电脑在 Altera FPGA 上的 MIPS 兼容软核处理器上运行。
与该事件相关的晚宴由圣约翰学院主办,谷歌和 FreeBSD 基金会共同赞助。会议后的第二天,还组织了前往布莱切利公园的旅行,该公园在 2012 年庆祝图灵的百年纪念。
联系方式: FreeBSD 编程之夏管理员 <soc-admins@FreeBSD.org>
在 2012 年的夏季,FreeBSD 再次获得了参与谷歌编程之夏项目的机会。我们收到了 32 个项目提案,最终为大学生提供了 15 个名额,学生们将在现有的 FreeBSD 开发者指导下,参与开源项目的开发。
我们能够接受广泛的提案,涵盖了基础系统和 Port 基础设施。学生们在文件系统、文件完整性检查和 Port 的并行化方面进行了工作。有学生在内核基础设施方面工作,包括一个支持用户、进程和 jail 上的 CPU 资源限制的项目,以及一个学生改进了 BSD callout(9) 和计时器功能。两名学生参与了 ARM 平台的工作,这一平台广泛应用于嵌入式系统和智能手机;一名学生对扁平化设备树(Flattened Device Tree)的实现代码进行了重要的清理和改进,另一名学生将 FreeBSD 移植到了基于 OMAP3 的 BeagleBoard-xM 设备上。一名学生致力于改善用户空间工具中的 IPv6 支持,另一名学生则为 FreeBSD 10 新增的 BHyVE BSD 许可证虚拟机监控程序进行 BIOS 模拟。其他学生则在 EFI 启动支持、用户空间锁定分析和自动化内核崩溃报告系统方面进行了工作。
总体而言,产生的大部分代码已经或将以某种形式集成到 FreeBSD 中。所有的工作都可以在我们的编程之夏Subversion 仓库中找到,其中一些工作已经合并回主仓库。
FreeBSD 再次感谢 Google 让我们有机会参与 2012 年的编程之夏。