FreeBSD 2010 年第三季度状态报告
引言
本报告涵盖了 2010 年 7 月至 9 月期间与 FreeBSD 相关的项目。这是计划中的四个报告中的第三个。在此期间,我们是今年最大 BSD 事件之一——EuroBSDCon 的受害者。希望那些能够参加的朋友们享受了此次活动。另一个好消息是,FreeBSD 新的次版本 7.4 和 8.2 的工作进展顺利。
本报告共有 55 个条目,是 FreeBSD 社区历史上最长的报告,显示了 FreeBSD 社区的良好状态。
感谢所有报告者的卓越工作!希望大家喜欢阅读本报告。
请注意,涵盖 2010 年 10 月至 12 月期间的报告提交截止日期为 2011 年 1 月 15 日。
联系人:Adrian Chadd <adrian@FreeBSD.org>
FreeBSD-CURRENT 可以运行在 AR9132 SoC 上。为了在特定硬件上使用它,需要进行一些平台特定的调整(例如,Ethernet MAC 地址存储在闪存中的位置)。AR910x 无线 MAC/PHY 已得到支持。唯一可用的测试平台使用的是 2.4GHz 无线电;5GHz 11a 模式尚未测试。与 FreeBSD 上其他 Atheros 芯片组的支持一样,11n 支持尚未完成。当前的开发平台是 TP-Link TP-WN1043ND 802.11n 无线桥接器/路由器。它目前正成功地用作 11bg 接入点。
待办事项
USB 支持目前不可用。
当前不支持 Realtek 千兆交换机/PHY 芯片。此项工作正在进行中。
http://wiki.freebsd.org/IvanVoras/pkg_patch
联系人:Ivan Voras <ivoras@FreeBSD.org>
pkg_patch
是一个工具,旨在与其他 pkg_*
工具一起使用,负责为 FreeBSD 包档案创建和应用二进制补丁。编程之夏项目已成功完成,但在将该工具集成到 FreeBSD 系统中时仍存在一些问题。需要对 Ports/补丁基础设施进行一些更改,以支持“更新”模式,而不是“删除+添加”。
待办事项
解决关于 Port 安装/升级工作流的悬而未决问题,可能会在 pkg_install2 项目中处理。
联系人:Zheng Liu <gnehzuil@gmail.com>
该项目有两个目标:为 ext2fs 实现预分配算法以及为 ext4 实现只读模式。预分配算法的目标是实现一种预留窗口机制。该机制已经实现,并且补丁已提交。ext4 只读模式的目标是使在默认特性下格式化的磁盘能够以只读模式读取 ext4 文件系统。目前,它可以在只读模式下读取具有默认特性的 ext4 文件系统数据。一个补丁已提交到 freebsd-fs 邮件列表,并且一个名为 ext4fs 的新内核模块正在开发中。
待办事项
对预分配算法进行更多测试。
联系人:Alexander Fiveg <afiveg@FreeBSD.org>
Ringmap 是一款完整的 FreeBSD 数据包捕获栈,专门用于高速网络。该项目的目标是开发高效的数据包捕获软件,并将其与通用网络驱动程序和 libpcap 集成。
当前状态:
已与 lem 驱动程序集成,支持 Intel 网络控制器:8254X。
支持在内核和用户空间使用 BPF 进行数据包过滤。
已部分与 ixgbe 驱动程序集成,支持 10Gb 捕获。
待办事项
支持硬件时间戳。
从内核中将数据包写入磁盘。
多队列支持。
扩展“ringmap”以支持数据包传输。
联系人:Ilya Bakulin <kibab@FreeBSD.org>
所有工作目前已提交至 Perforce。为内核、用户工具和 libc 添加了丰富的功能,文档已完成。
待办事项
文档审查。
在各个邮件列表上展示功能集。
提交到 -CURRENT,可能合并到稳定分支(更改不会破坏 ABI/KBI)。
联系人:Romain Tartière <romain@FreeBSD.org>
BSD## 项目致力于将 Mono .NET 框架和应用程序移植到 FreeBSD 操作系统。
Mono 2.8 已在几天前发布,并已在 BSD## 仓库中提供。此更新打破了一些 Port,因此 FreeBSD Ports 中的 lang/mono 更新将推迟,直到这些程序被修复,以便提供更顺利的更新体验。
正在进行的工作包括一些久期待的 Port,例如 deskutils/gnome-do,但这些 Ports 需要大量的测试和修改,因为它们显然是为 GNU/Linux 设计的,而可移植性从未是其优先考虑的事项(考虑到 Mono 的主要目的是为了可移植性,这一点非常有趣)。
待办事项
如果有时间,测试 mono Ports 并提供反馈。
如果有更多时间,加入 BSD## 团队!有很多方式可以帮助!
目前优先级较低,一些不使用 FreeBSD 的 mono 黑客可能对 FreeBSD 的调试 Live 镜像感兴趣,帮助我们更有效地诊断和修复 bug。
联系人:Shteryana Shopova <syrinx@FreeBSD.org> 联系人:Philip Paeps <philip@FreeBSD.org>
在过去几个月中,FreeBSD 内置 SNMP 守护进程 bsnmpd(1) 添加了多个新功能。
首先,开发了一个 snmp_wlan(3) 模块,允许监控和配置 wlan(4) 接口,支持各种模式,包括统计信息、附加/相邻站点信息、MAC 访问控制条目和 Mesh 路由信息。该模块的代码已提交到 SVN,并已成为 FreeBSD 基本系统的一部分。
接着,向 bsnmplib(3)、bsnmpd(1) 和 bsnmptools 添加了 SNMPv3 认证和加密支持(当前通过 Ports 系统提供)。消息摘要和密码计算调用使用了 OpenSSL 的 crypto(3) 库中的相关加密算法实现。bsnmpd(1) 仍然可以选择不使用 crypto(3) 库进行编译,在这种情况下,只能处理未认证的纯文本 SNMPv3 PDU。
此外,开发了一个 snmp_usm(3) 模块,用于按 RFC 3414 配置 SNMPv3 用户参数(如用户名、使用的认证和加密算法及相关密钥等)到 bsnmpd(1)。
最后,开发了一个 snmp_vacm(3) 模块,允许按照 RFC 3415 配置基于视图的访问控制,bsnmpd(1) 根据配置检查并允许或限制对特定 SNMPv1/SNMPv2 社区或 SNMPv3 用户访问特定 MIB 子树。如果未加载任何 SNMPv3 相关模块,bsnmpd(1) 将保持其当前的 SNMPv1/SNMPv2c PDU 行为。
这项工作由 FreeBSD 基金会资助。
待办事项
更新 Wiki 页面,反映最新的工作并记录正确的使用方法。
完成清理并进行审查。
更广泛的用户测试。
联系方式:Robert Watson <rwatson@FreeBSD.org> 联系方式:Jonathan Anderson <anderson@FreeBSD.org> 联系方式:Ben Laurie <benl@google.com> 联系方式:Kris Kennaway <kennaway@google.com>
Capsicum 是一款轻量级的操作系统能力和沙箱框架,由剑桥大学计算机实验室开发,得到了谷歌的资助。Capsicum 扩展了 POSIX API,提供了几个新的操作系统原语,支持 UNIX 类操作系统上的对象能力安全:能力、用于进程的新沙箱能力模式、匿名共享内存对象、进程描述符,以及能够支持沙箱内分布式应用程序的修改版 C 运行时。Capsicum 已在 FreeBSD -CURRENT 上进行了原型开发,并且进行了 8-STABLE 的回移植。
Capsicum 旨在通过提供以应用程序为中心的保护模型来补充现有的系统中心强制访问控制保护,这种模型更好地支持隔离的用户程序,这些程序可以设置一个或多个沙箱来处理不可信的数据。从 tcpdump 到 Chromium 浏览器,许多应用程序已经被修改为使用沙箱技术来限制诸如解析不可信数据包和 HTML/JavaScript 渲染等高风险操作。
我们计划在 2010 年 11 月或 12 月开始将核心的 Capsicum 内核功能合并到 FreeBSD -CURRENT,待解决了一些已知的问题。经过 KBI 分析后,我们将考虑将 8-STABLE 的回移植提交到 Subversion。暂时,在 API 稳定之前,我们计划通过 ports 发布 Capsicum 库。然而,单独拥有内核功能就足以支持 tcpdump 和 Chromium 中的沙箱。
Robert Watson / Jonathan Anderson(剑桥大学)与 Ben Laurie / Kris Kennaway(谷歌)所撰写的 Capsicum 论文在 2010 年 USENIX 安全研讨会上获得了最佳论文奖!
待办事项
更加积极地测试(并在需要时修复)可能与 Capsicum 产生交互的 UNIX 域套接字垃圾回收器。
根据我们最近对 namei() 沙箱方法的模型检查分析结果,进行稳健性改进。
在 11 月/12 月将功能合并到 FreeBSD -CURRENT。
对 8-STABLE 的合并进行 KBI 分析。
将更多应用程序转换为使用 Capsicum 沙箱!
http://wiki.freebsd.org/BuildingFreeBSDWithClang
联系方式:Ed Schouten <ed@FreeBSD.org> 联系方式:Roman Divacky <rdivacky@FreeBSD.org> 联系方式:Brooks Davis <brooks@FreeBSD.org> 联系方式:Pawel Worach <pawel.worach@gmail.com> 联系方式:Dimitry Andric <dim@FreeBSD.org>
我们最近将 Clang 2.8 版本导入到 -CURRENT 中。这个版本包含了许多新特性和改进。集成的汇编器随此版本发布,但尚未准备好供一般使用。
自 r212979 起,所有必要的更改已提交,可以使用 Clang 构建世界,至少在 amd64 和 i386 上是可以的。它也可以安装并运行,我们现在开始进行错误修复。
由于 LLVM 和 Clang 仍在不断改进,我们希望定期导入新版本,大约每两个月一次,以便获得新特性、错误修复和性能改进。
此外,port 开发人员也在努力使尽可能多的 ports 能够与 Clang 正常编译和运行。大多数情况下,这意味着修复 gcc 是唯一存在的编译器的错误假设,但有时会出现更复杂的问题。对此方面的帮助非常受欢迎。
待办事项
定期导入新的 Clang 快照(大约每两个月一次)。
查看 Clang 是否可以用于 ARM 的世界构建(希望有志愿者和 ARM 专家)。
修复尽可能多的 ports,使其能够使用 Clang 构建。
定期运行 ports exp 构建(在 amd64 和 i386 上),例如每月一次。
http://www.asterisk.org/dahdi/
http://svn.digium.com/svn/dahdi/freebsd/
联系方式:Max Khon <fjoe@samodelkin.net>
DAHDI/FreeBSD 项目的目的是使 FreeBSD 能够作为软件 PBX 解决方案的基本系统。
DAHDI(Digium/Asterisk 硬件设备接口)是一个开源设备驱动框架和一套硬件驱动程序,支持 E1/T1、ISDN 数字以及 FXO/FXS 模拟卡 [1]。Asterisk 是最流行的开源软件 PBX 解决方案之一 [2]。
该项目包括将 DAHDI 框架和 E1/T1、FXO/FXS 模拟以及 ISDN 数字卡的硬件驱动程序移植到 FreeBSD。这还包括 TDMoE 支持、软件和硬件回声消除(Octasic、VPMADT032)和硬件转码支持(TC400B)。该工作正在与 Digium 的 DAHDI 团队密切合作,在官方 DAHDI SVN 存储库中进行。
DAHDI/FreeBSD 项目已完成。ports/misc/dahdi 现在包含最新的 DAHDI/FreeBSD 版本以及一些由于许可和版权限制而无法在 DAHDI/FreeBSD SVN 存储库中提供的附加内容(OSLEC 回声消除器、实验性的 zaphfc 驱动程序)。实验性的 sparc64 支持也已实现,并正在进行测试。
目前排队处理的一些小更改将很快完成:
添加支持在非 root 用户帐户下运行 asterisk+dahdi。
为 asterisk port 添加 bri_net_ptmp ISDN 信令支持,并删除旧版和过时的 zaptel+asterisk-bristuff port。
来自 DAHDI/Linux SVN 的定期合并将继续进行,并推出新的 DAHDI/FreeBSD 版本(最有可能与 DAHDI/Linux 版本同步)。
联系人:Warner Losh <imp@FreeBSD.org>
该项目在推动嵌入式平台方面面临的一个问题是工具链。当前 FreeBSD 中支持的编译器、链接器等工具能够通用地支持架构,但许多硅片供应商会生产专门的工具链,以最大限度地发挥其硬件性能。目前,使用这些工具编译 FreeBSD 相当困难,因为需要进行许多手动步骤才能使其正常工作。
外部工具链项目将利用 Clang 团队为支持 Clang 在基本系统中的工作(打破对 CC=cc 的严格依赖(除了 Intel 的 CC 支持有问题))所做的部分工作。此外,构建协调(make buildworld)将发生变化,以避免引导某些工具,或根本不编译编译器。此外,还将增加对使用替代汇编器、链接器等工具的支持。此工作将在 subversion 的 projects/xtc(eXternal Tool Chain)中进行。
联系人:Pawel Jakub Dawidek <pjd@FreeBSD.org>
在-CURRENT 中,GELI(一个磁盘加密 GEOM 类)有三个新特性:
AES-XTS 加密。XTS 模式是目前推荐用于存储加密的标准。现在这是默认选项。AES-XTS 支持也已添加到 opencrypto 框架和 aesni(4) 驱动中。
多重加密密钥。GELI 将为最多 2^20 块(扇区)使用一个加密密钥,因为不建议使用相同的加密密钥加密太多数据。它在附加时从主密钥生成一个密钥数组,并按需使用。这是默认选项。
现在可以从文件加载密码(-J 和-j 选项)。
联系人:Pawel Jakub Dawidek <pjd@FreeBSD.org>
gptboot 现在完全遵循 GPT 规范(验证校验和,并在主头和表损坏时回退到备份头和表)。
现在可以使用新属性配置分区,gptboot 将尝试仅从该分区启动一次,若失败,则回退到之前的分区。
有关更多信息,请查看提交信息。
联系人:Pawel Jakub Dawidek <pjd@FreeBSD.org>
HAST 现在比以往更强大!一些近期的改进包括:
支持钩子——HAST 将在各种事件(连接、断开连接、同步开始、同步完成、同步中断、分裂脑条件、角色变化)时执行给定的命令。
在 SIGHUP 时重新加载配置,这是一个非常需要的功能。
内部保持活跃机制。
许多 Bug 修复,其中大部分由 Mikolaj Golub 报告。
联系人:Gleb Kurtsou <gk@FreeBSD.org>
PEFS 是一个内核级堆叠加密文件系统,即它堆叠在现有挂载的文件系统之上。支持 AES 和 Camellia 算法的 XTS 模式。自 2009 年夏季代码计划以来,项目已经成熟,最近几个月的主要改进包括:切换到使用 XTS 加密模式、实现稀疏文件支持、修复包括竞争条件和死锁在内的重命名 Bug、增加对 ext2 的支持。PEFS 套件包含一个 pam 模块,便于使用文件系统密钥进行用户认证,并在登录时将密钥添加到已挂载的文件系统。PEFS 通过 fsx、pjdfstest、blogbench 和 dbench 测试,在 UFS 和 ZFS 上运行通过。
联系人:Kris Moore <kmoore@FreeBSD.org> 联系人:John Hixson <john@ixsystems.com> 联系人:Josh Paetzel <jpaetzel@FreeBSD.org>
pc-sysinstall 最近已导入到 CURRENT 中。目前它已具备完整的功能,尽管它的文本前端可能会暴露出更多需要的功能。
待处理任务
pc-sysinstall 的自动化/脚本化安装功能需要更广泛的测试和使用,以揭示潜在的弱点、Bug 以及可能需要的额外功能。
相关任务包括使 pc-sysinstall 的文本前端工作,并将 pc-sysinstall 与构建系统连接起来,以便生成可运行 pc-sysinstall 的安装媒体。
联系人:Warner Losh <imp@FreeBSD.org>
“tbemd”或目标大端必须消亡(Target Big Endian Must Die)项目即将完成。大多数对代码树的大规模变更已经提交。最后的变更,实际上是切换的实现,因等待 make universe 改进而停滞。此工作将把 TARGET_ARCH 从简单的 'mips' 改为 'mipsel' 或 'mipseb',具体取决于平台的字节序。它引入了一个概念,即用一组文件实现多个架构,并将这种设计模式规范化到 FreeBSD 构建过程中。在过去,必须设置 TARGET_BIG_ENDIAN=t 来编译大端模式,但这样做存在许多问题:不能在小端和大端目标之间共享 /usr/obj,有时生成的编译器如果环境中没有定义 TARGET_BIG_ENDIAN 就无法正常工作等。
待办事项
更新 make universe,以便在构建内核时处理新的架构。
DTrace
联系人:Rui Paulo <rpaulo@FreeBSD.org>
用户空间 DTrace 支持是由 FreeBSD 基金会资助的项目,在今年夏季开发完成。该项目旨在将 OpenSolaris 上可用的用户空间 DTracing 功能引入到 FreeBSD。FreeBSD 现在支持 pid 提供程序和 usdt 探针。plockstat 可以通过单独的补丁使用。Dtruss 是一个类似于 ktrace 的 DTrace 脚本,但具有其他优势,已经被导入到 FreeBSD。mysql-server 和 postgresql-server Port 也支持 DTrace。
http://wiki.freebsd.org/DTrace/userland
联系人:J.R. Oldroyd <fbsd@opal.com>
Linux 模拟器中的 V4L 支持已合并到 8-STABLE 版本中,允许在使用 pwcbsd 或 video4bsd 驱动程序支持的摄像头进行 Skype 通话时使用视频。Skype 的已知问题是,你的摄像头必须支持 YUV420 模式,这是 Skype 使用的模式。请注意,当前的工作未包括 V4L2 支持,它仍然是一个项目,供有兴趣的人进一步开发。
http://opal.com/freebsd/sys/compat/linux/
联系人:Pawel Jakub Dawidek <pjd@FreeBSD.org>
ZFS v28,包括数据去重和许多其他全新的功能,现已准备好进行测试。更多信息请查看公告。
http://www.freebsd.org/support.html#gnats
http://wiki.freebsd.org/BugBusting
http://people.freebsd.org/~linimon/studies/prs/
联系人:Gavin Atkinson <gavin@FreeBSD.org> 联系人:Mark Linimon <linimon@FreeBSD.org> 联系人:Remko Lodder <remko@FreeBSD.org> 联系人:Volker Werth <vwe@FreeBSD.org>
缺陷修复团队继续致力于使 GNATS PR 数据库的内容更清晰、更易访问,并帮助提交者更容易找到和解决 PR,方法是为 PR 添加标签以指示涉及的领域,并确保每个 PR 中包含足够的信息以解决问题。
7 月份,Alexander Best(arundel@)加入了缺陷修复团队,他帮助处理进入的 PR,创建问题的补丁并与提交者合作测试解决方案,同时处理 PR 积压。
同月,Gavin Atkinson 与 Hans Petter Selasky 合作处理 USB PR,试图逐一检查这些 PR 并确定每个 PR 的状态。结果,近 10% 的 USB PR 被确定为可关闭,许多其他 PR 已标记为已修复,或可以快速提交。还识别并标记了仅影响旧版(8.0 之前)的 USB 栈的 PR。未来将在这一领域继续工作。
8 月,我们举办了另一次缺陷修复大会,旨在调查并使多个已修补的 PR 进入可提交状态。参与人数不如以往多,主要是因为通知过于仓促,但仍有几个 PR 得到了推进,几个提交和 PR 被关闭。
过去三个月,PR 数量保持稳定,一些类别(尤其是 usb 和 bin)有所改善,但其他类别略有增加。
仍在从 PR 数据库生成报告,所有报告可以通过上面的链接找到。有兴趣定制报告的提交者鼓励与 bugmeister@ 讨论需求——我们乐意在有需求的情况下创建新的报告。
如同往常一样,任何有兴趣帮助我们处理 PR 队列的人都可以加入 #freebsd-bugbusters 频道。我们随时欢迎任何帮助,不论你的兴趣是在处理进来的 PR、生成修复现有问题的补丁,还是单纯协助数据库管理(识别重复的 PR,已经解决的 PR 等)。这是深入参与 FreeBSD 的一个好方式!
待办事项
尝试寻找更多的提交者来帮助我们关闭团队已经分析过的 PR。
尝试让更多的非提交者参与 PR 的分类工作,并生成补丁修复报告中的问题。
http://freebsd.kde.org/
联系人:FreeBSD KDE 团队 <kde@FreeBSD.org> 联系人:Thomas Abthorpe <tabthorpe@FreeBSD.org> 联系人:Max Brazhnikov <makc@FreeBSD.org> 联系人:Kris Moore <kmoore@FreeBSD.org> 联系人:Dima Panov <fluffy@FreeBSD.org> 联系人:Alberto Villa <avilla@FreeBSD.org>
FreeBSD KDE 团队一直积极跟进 KDE 开发者发布的 开发周期,通常会在 KDE 发布后的同一周就将其纳入 Ports。
维护 KDE 的一个重要部分是支持 Qt 工具链。随着 Nokia 发布了 Qt,我们的团队也在不断跟进,将其提供在我们的 开发库 中。
我们很幸运拥有一个强大的贡献者基础,帮助推动过程的进展。我们衷心感谢所有帮助提供补丁、维护 ports,并在邮件列表中提供帮助的人。
待办事项
KDE 4.5.4 预计将在 11 月底发布,4.6.0 将于 2011 年初发布。
FreeBSD KDE 团队始终在寻找帮助者,如果你有兴趣协助,请随时联系任何团队成员。
http://www.freebsd.org/releng/
联系人:发布工程团队 <re@FreeBSD.org>
发布工程团队已宣布即将联合发布 FreeBSD 7.4 和 8.2 的计划。时间表可以在以下网站查看:
预计 7.4 将是 7.X 系列的最后一个版本。
http://www.freebsdfoundation.org/
联系人:Deb Goodkin <deb@FreeBSDFoundation.org>
我们很荣幸成为 MeetBSD 2010 波兰和 KyivBSD 2010 乌克兰基辅的赞助商。我们还承诺赞助 2010 年 11 月的 BSDDay 阿根廷、MeetBSD 加利福尼亚和 NYBSDCon。基金会还在 MeetBSD 波兰和俄亥俄州 LinuxFest 上亮相。
完成了基金会资助的项目:“FreeBSD 基于 Jail 的虚拟化”由 Bjoern Zeeb 开发,“DTrace 用户空间”由 Rui Paulo 开发。
我们启动了一个由斯温本大学主办的新项目:“为 FreeBSD 提供五种新的 TCP 拥塞控制算法”。
我们继续进行基础设施项目,以增强硬件支持,包括购买设备以及管理设备捐赠。
截至目前,我们已筹集约 160,000 美元,目标为 350,000 美元。了解如何捐赠,请访问 http://www.FreeBSDFoundation.org/donate/
欢迎在 MeetBSD 加利福尼亚(11 月 5-6 日)、LISA(11 月 10-11 日)和 NYCBSDCon(11 月 12-14 日)期间来访。
联系人:Lawrence Stewart <lstewart@FreeBSD.org>
所有未解决的补丁在经过长时间的审查过程后已提交至 -CURRENT。预计将把该项目的 SIFTR 和重组队列相关补丁从 -CURRENT 合并到稳定分支,以便在即将到来的 7.4 和 8.2 版本中发布。
联系人:David Hayes <dahayes@swin.edu.au> 联系人:Lawrence Stewart <lstewart@FreeBSD.org> 联系人:Grenville Armitage <garmitage@swin.edu.au> 联系人:Rui Paulo <rpaulo@FreeBSD.org>
我们已经开始了一个由 FreeBSD 基金会资助的新项目,旨在将六种模块化的 TCP 拥塞控制(CC)算法实现(现有的 NewReno 以及五种新的算法:HTCP、CUBIC、Vegas、HD 和 CHD)引入 FreeBSD 内核。有关这些算法的更多细节,请访问 CAIA 5cc 和 NewTCP 网站。
为了支持该项目的主要交付物,我们还将在 FreeBSD 内核中整合 CAIA 模块化 CC 和 Khelp 框架,以及增强的往返时间 Khelp 模块。
该项目将为 FreeBSD 做出重要贡献,某些领域的工作将是全新的,是其他操作系统中无法获得的。
我们预计该项目将带来许多好处,包括大幅提高研究人员的友好度,减少 FreeBSD 基于设备的 TCP 供应商的工作量,以及为系统管理员提供更大的选择,特别是在非常规网络环境中操作 FreeBSD 系统时。
请关注 freebsd-net 邮件列表,获取与该项目相关的公告。
联系人:Ermal Luçi <eri@FreeBSD.org>
这项工作基于 OpenBSD 4.5 版本的 pf(4),包含了比 FreeBSD 当前代码更多的改进。pf45 库中的一个新功能是对 divert(4) 的支持,这应该允许像 snort_inline 这样的工具也能与 pf(4) 一起工作。此项工作还使得 pfsync(4) 可以作为模块加载。
目前,这项工作被认为是稳定的,并且已在 freebsd-pf 邮件列表中发布了针对 -CURRENT 的补丁。
之所以选择基于 OpenBSD 4.5,是因为在该版本之后,OpenBSD 更改了语法,且不再向后兼容。
导入此版本后,工作将继续进行,并将在最新版本上进行决策。
待办事项
决定是否需要在基础库中加入 pflow(4)。
需要更多回归测试。
联系人:Alexander Motin <mav@FreeBSD.org>
新的事件定时器基础设施工作仍在继续。在 -CURRENT 中,amd64、arm(Marvell)、i386、mips、pc98、powerpc、sparc64、sun4v 架构已重构为使用新的定时器 API。
编写了新的与机器无关的定时器管理代码。它可以同时使用传统的周期性定时器和新的单次定时器操作模式。
使用单次模式可以显著减少定时器中断的数量,从而在空闲期间增加 CPU 睡眠时间。空闲 CPU 只会在需要处理注册的基于时间的事件时生成定时器中断。忙碌的 CPU 仍然会接收完整的中断频率,用于资源计数、调度和时间保持。
通过一些额外的调优,现在可以让 8 核系统每秒只接收大约 100 个中断,并且 CPU 空闲期最多可达 100ms。这使得可以有效利用任何支持的 CPU 空闲状态(C 状态),从而减少功耗并增强 Intel TurboBoost 技术的效果。
已编写新的手册页以记录此功能:eventtimers(7)、attimer(4)、atrtc(4)、hpet(4)。
待办事项
排查可能的硬件问题。
重构剩余架构(arm、ia64、XEN PV)。
在不同子系统中进行一些优化,以减少基于时间的事件数量。扩展调用 API,增加精度,从而允许对接近的事件进行分组。
使调度器无时钟,或至少减少对时间事件的依赖,从而在 CPU 忙碌时跳过定时器中断。
在代码准备就绪时将其合并到 8-STABLE。
http://wiki.freebsd.org/Netdump
svn://svn.FreeBSD.org/base/project/sv/
联系人:Attilio Rao <attilio@FreeBSD.org> 联系人:Ed Maste <emaste@FreeBSD.org>
Netdump 提供通过网络而非本地磁盘进行内核核心转储。它实现了一个非常简化的 TCP/IPv4 堆栈,并使用自定义 UDP 协议将转储传输到另一个主机上运行的 netdump 服务器。为转储选择的网络接口执行轮询模式的 I/O 操作。
Netdump 应该可以在无磁盘工作站集群、PXE 启动的测试机器中使用,也可能用于磁盘驱动程序开发。
待办事项
对 FreeBSD 转储机制进行一般性改进。
实现 UDP 数据包的校验和。
调查将自定义协议替换为 tftp 的可能性。
调查将自定义 TCP/IPv4 堆栈替换为 Contiki 的可能性。
实现网络控制台和 gdb 后端,使用共享调试上下文栈。
添加 IPv6 支持。
联系人:Edward Tomasz Napierala <trasz@FreeBSD.org>
该项目的目标是实现资源容器和每个 jail 的简单资源限制机制。资源容器也是其他资源管理机制的先决条件,如“集体限制”谷歌编程之夏 2010 项目中的“对进程集(即作业)的集体限制”,用于实现类似于 Linux cgroups 的机制,并且还可能用于提供精确的资源使用记录,用于管理或计费目的。目前,已经开发了一个通用的资源使用框架,并对大多数资源进行了限制执行。工作仍在进行中,正在为剩余资源添加限制,调试并改进实现。该项目由 FreeBSD 基金会赞助。
联系人:Hans Petter Selasky <hselasky@FreeBSD.org>
在过去的两个月中,-CURRENT 中的 USB 栈已增强以支持 USB 3.0 和 Intel 的 XHCI USB 3.0 芯片组。XHCI 芯片最终将取代 EHCI、OHCI 和 UHCI 芯片。
待办事项
需要有 USB 3.0 硬件访问权限的 FreeBSD 测试者。
联系人:Ulrich Spörlein <uqs@FreeBSD.org>
Kristaps 的 groff 替代方案(仅用于渲染手册页)已经在 NetBSD 和 OpenBSD 中可用,并用于渲染后者的基本系统手册页。此项目旨在为 FreeBSD 做类似的工作。
mandoc(1) 在接受输入方面更为严格,仍然缺少一些被部分选定的手册页使用的特性。
获得上游供应商接受手册页修复一直很具挑战性。等待它们返回到 FreeBSD 中将需要更长时间。因此,未来的工作将直接提交到我们的 contrib/ 和 gnu/ 库中,以希望尽量不影响未来的供应商导入。
待办事项
完成 2010 年的大规模手册页清理。
为最新的 groff 版本编写 textproc/groff Port。
导入 mandoc(1),将基本系统切换到 catpages。
提供必要的 Ports 基础设施,以便选择性使用 mandoc(1)。
讨论在基本系统中关于 groff(1) 的未来,特别是针对 share/doc。
联系人:Johann Kois <jkois@FreeBSD.org> 联系人:Benedict Reuschling <bcr@FreeBSD.org>
德语文档项目的提交者主要致力于使文档和网站翻译与 FreeBSD.org 上的版本保持同步。Fabian Ruch 在追赶 Porters Handbook 的更改方面提供了帮助。Benedict 将《固态硬盘》一文翻译成了德语,因为这对于传统硬盘存储来说是一个很好的补充。
我们尝试重新激活那些一段时间未贡献的提交者,但他们大多数目前无法腾出足够的时间。我们希望能够吸引到新的贡献者,因为我们偶尔会收到关于德语翻译中的错误和语法问题的报告。
待办事项
提交你在德语文档和网站中发现的语法、拼写或其他错误。
翻译更多文章和其他开放的手册部分。
联系人:佐藤広生 <hrs@FreeBSD.org> 联系人:Ryusuke Suzuki <ryusuke@FreeBSD.org>
自上次状态报告以来,www/ja 和 doc/ja_JP.eucJP/ 一直在不断更新。我们提交了由许多人贡献的“安装 FreeBSD”章节的大型补丁。这个章节仍然有些过时,需要更多的工作。Porter's Handbook 也有所进展。
待办事项
继续将 FreeBSD 手册和 www.FreeBSD.org 网站的内容翻译成日语。
对翻译进行提交前/后的审查。
http://updating.versia.com/
联系人:Alexander Kojevnikov <alexander@kojevnikov.com>
updating.versia.com 提供了来自 ports、head、stable/7 和 stable/8 的 UPDATING 文件的 Web 提要。这些提要提供了一种简单的方式来跟踪 Ports 和基本系统中的重要更改。
http://people.freebsd.org/~trhodes/fsc/
联系人:Tom Rhodes <trhodes@FreeBSD.org>
FreeBSD 服务控制是一个二进制工具集,它集成到 rc.d 系统中并提供服务(守护进程)监控。它了解信号、pid 文件,并且资源占用非常少。
fsc 守护进程(fscd)在系统启动后后台运行。然后,服务通过 fscadm 控制工具添加到此守护进程,之后将进行监控。当服务停止时,依据原因,它们会被重新启动。某些信号可能会被忽略(未决定的列表),而 fscd 将从监控中移除该服务。每个动作都会记录到系统日志守护进程中。此外,fscadm 工具可用于查询哪些服务正在被监控、它们的 pid 文件位置以及当前进程 ID。
FSC 相比于第三方 daemontools 包提供了若干优势。例如,fscd 使用推送通知而非轮询;fscd 是一个由 FreeBSD 维护的内部软件包,所有开发人员都可以访问,而 daemontools 则必须作为 Port 并需要我们维护补丁;fscd 可以轻松与当前的 rc.d 基础设施集成。
部分基于 daemontools 和 Solaris 服务管理设施(SMF)的理念,这将是 FreeBSD 系统中一个极为有用的工具。
自上次状态报告以来,已经修复了两个错误,并且文档已更新。接下来的几周里,我们希望能得到更多开发者的关注和审查,甚至可能将代码提交到 FreeBSD。
待办事项
测试和反馈将非常有帮助。
联系人:Gordon Tetlow <gordon@FreeBSD.org>
该项目的目标是允许通过 ports 系统更容易地扩展基本系统工具。理想情况下,/etc 中的文件不应该在安装 Port 时被修改。
man 工具集最近已被重新实现为 BSDL 版本,而不是旧的 GPL 版本。它也是一个单一的 shell 脚本,而不是多个 C 程序。ports 可以通过将文件放入 /usr/local/etc/man.d/portname.conf 来扩展 man 功能。
接下来要做的是完成 newsyslog 的实现,从而允许需要日志轮换的 Port 利用该工具。
联系人:Martin Matuska <mm@FreeBSD.org>
在 bsdtar(-CURRENT 8-STABLE)中启用了对 xz 压缩的支持,并已添加到 pkg_create(1) 和 pkg_add(1)(-CURRENT)。可以创建和安装带有 .txz 后缀的软件包。使用 xz 在 newsyslog(8) 中进行日志文件压缩将很快集成。基准测试显示,压缩比提高了 15-30%,并且与 bzip2 相比,解压缩时间最多缩短一半。考虑将默认的软件包格式从 .tbz 切换为 .txz。
待办事项
测试使用 xz 压缩构建所有 FreeBSD 软件包。
联系人:Warner Losh <imp@bsdimp.com> 联系人:Mohammed Farrag <mfarrag@FreeBSD.org>
由于我们在夏季代码项目之后才开始,因此我们仍处于项目的初期阶段。
待办事项
阅读 ARM 架构。
阅读 MicroC 操作系统。
使用 Qemu 模拟工作。
联系人:Nathan Whitehorn <nwhitehorn@FreeBSD.org> 联系人:Peter Grehan <grehan@FreeBSD.org>
FreeBSD/powerpc64 现在能够在 Playstation 3 上启动多用户 SMP 并实现自托管。启动需要具备 OtherOS 功能的 PS3 游戏机(支持旧固件版本 3.21 以下的 fat 型主机)。目前唯一支持的硬件是 USB 和以太网控制器。
待办事项
SATA 支持。
启动加载器增强功能,以允许在加载器提示符下进行用户输入。
对 Cell SPU 单元的支持。
http://wiki.freebsd.org/FreeBSD/mips/Octeon
联系人:Juli Mallett <jmallett@FreeBSD.org>
所有 Octeon 开发现在都在 -CURRENT 分支上进行,大多数从旧的 Octeon 分支迁移的 Octeon 特定和一般 MIPS 的更改已经提交。来自 Cavium Octeon SDK 的 Simple Executive 已经提交到 Subversion,并且大部分 Octeon 移植已更新为在适当的地方使用它,包括迁移到基于 Linux 的以太网驱动程序 octe。SMP 支持在双核系统上稳定,并且已经在最多 16 核心的系统上进行了测试。
待办事项
一些 PCI 设备似乎仍然不能完全正常工作。
主机模式 USB 支持不完全,需要进一步的测试和调试。
已开始为支持 DMA 的板卡开发基于 ATA 的 Compact Flash 驱动程序。
使用 Simple Executive 开发 GPIO 驱动程序应该很简单。
在 Linux 派生的 octe 以太网驱动程序中可能需要提升性能。正在开发对常见的 Octeon 基础设备中一些交换芯片组的支持。
联系人:Aleksandr Rybalko <ray@dlink.ua>
FreeBSD/mips 已经移植到 D-Link DAP-1350,无线路由器/AP,基于 Ralink RT3052F SoC。
驱动程序状态:
rt2860: Ralink RT2860 802.11n — 工作正常,但需要调试 RT3022 2.4G 2T2R 无线电。
rt: Ralink RT3052F 集成以太网 MAC — 已完成。
rtsw: 集成以太网交换机 — 尚未完成(由 UBoot 初始化)。
usb-otg: 类似 DWC 的 USB OTG 控制器 — 工作正常。
gpio: RT3052F 集成 GPIO — 工作正常(LED、按钮)。
cfi: CFI NOR 闪存 — 工作正常。
FreeBSD/mips D-Link DIR-320 项目(BCM5354 SoC)。
新开放的 openvpn-router 配置文件可供测试。
待办事项
调试/修复 USB OTG 驱动程序(RT3052F)。
调试/修复 802.11n 驱动程序(RT3052F)。
编写 rtswitch 驱动程序(RT3052F)。
实现定时器单元驱动程序(RT3052F)。
实现硬件 NAT/PPPoE/VLAN 卸载(RT3052F)。
实现 I2C/I2S/PCM/SPI 驱动程序(RT3052F)。
为 BCM5354 编写交换机配置工具。
联系人:Marius Strobl <marius@FreeBSD.org>
除了不断的 bug 修复和对机器无关更改的适配外,自上次状态报告以来,sparc64 区域没有发生太多变化。唯一值得注意的例外是对 Fujitsu SPARC64 CPU 特性的性能优化。由于这些优化在 FreeBSD 8.1-RELEASE 发布前有些风险,因此未在那个版本中加入,但现在经过了必要的测试,将包含在 7.4-RELEASE 和 8.2-RELEASE 中。
没有进展的部分原因是我个人时间的缺乏,同时也因为没有人带来尚未支持的 sun4u 机器,而我则转向了网络方面的工作,这些工作将在下次状态报告中提到。另一方面,我最近获得了一台 Sun Fire 3800,因此这些以及来自同一系列的其他型号可能在未来某个时候会被 FreeBSD 支持。
联系人:Ruben <chromium@hybridsource.org>
Chromium 是一个基于 Webkit 的网页浏览器,主要采用 BSD 许可证,最近已提交到 ports。它在 FreeBSD 上运行良好,并支持 HTML 5 视频等新特性。较新的构建版本使用了 Clang 编译器,Clang 首次在 FreeBSD 上为 Chromium 编译了一个非调试版本,这是一个非常庞大的 C++ 项目。这个移植工作采用了一种新的混合源模型:最新的 FreeBSD 补丁部分内容在一定时间内保持封闭,新构建版本只对付费订阅者提供,而较旧的版本最终会转到 ports 上。移植工作仍在进行中,目前我正在移植任务管理器,以使用 FreeBSD 的 libkvm,ALSA 音频后端需要移植到 OSS。移植总结中列出了其他问题,如果你希望参与,请联系我。
联系人:Benjamin Kaduk <kaduk@mit.edu> 联系人:Derrick Brashear <shadow@gmail.com>
AFS 是一个分布式网络文件系统,源自卡内基梅隆大学的 Andrew 项目;自 FreeBSD 4.X 版本以来,OpenAFS 客户端在 FreeBSD 上的实现并未特别有用。上一份状态报告将 OpenAFS 客户端移植到 -CURRENT 分支,虽然仍有许多粗糙之处。过去几个月中,开发者时间紧张,只有少数问题得到解决。我们解决了文件大小和 vmobject 大小追踪不匹配的问题(现在可以从 AFS 运行可执行文件),并且我们已更新 -CURRENT 和 8-STABLE 的系统调用入口以匹配实际情况。感谢 Kostik Belusov 为这些问题提供的帮助!目前该代码已足够实用,我们计划在下一个周期将 openafs-devel 移植到 Ports 中。
目前仍有一些已知的未解决问题,欢迎在 port-freebsd@openafs.org 提交详细的 bug 报告。
待办事项
重新设计 vnode 锁定机制,以避免在两个线程进行目录查找时引发容易触发的死锁。
更新 VFS 锁定机制,以支持基于磁盘的客户端缓存和基于内存的缓存。
追踪和解决在负载下出现的竞争条件和死锁问题。
将其与 bsd.kmod.mk 内核模块构建基础设施集成。
联系人:Dominic Fandrey <kamikaze@bsdforen.de>
pkg_upgrade 是 FreeBSD ports 的第一个仅支持二进制包更新的工具。使用它不需要 Ports 的副本。
目前,该工具正在进行最后阶段的重构,将大大改善通过 NFS 或 nullfs 挂载共享包的支持(例如,用于分发包到 jails 中),并提供改进的依赖追踪和性能,更多地符合 pointyhat 和 Tinderbox 构建包的方式。
我最近有机会在 EuroBSDCon 2010 上展示我的工作。
待办事项
完成会话代码。
添加生成 INDEX 脚本,从包中直接提取信息,因此始终保持准确。
测试。
联系人:Thomas Abthorpe <portmgr-secretary@FreeBSD.org> 联系人:Ports 管理团队 <portmgr@FreeBSD.org>
Ports 的数量现在超过了 22,000 个。在许多人的帮助下,特别是 Philip Gollucci,open PR 数量首次低于 1000 了。这是非常鼓舞人心的进展。
自上次报告以来,我们新增了五名提交者,并且有两名提交者获得了提交权限。
在 jhb@、gnn@、skreuzer@ 和 pgollucci@ 的现场协助下,我们现在在 NYI 有了 11 台新服务器。这些机器仍需进行稳定性测试,并且很快将用于包构建。
Ports 管理团队一直在进行 -exp 运行,验证基本系统更新如何影响 Ports,同时为主要的 ports 更新提供质量保证(QA)测试。需要注意的是,-exp 运行已针对以下任务进行:
des:测试 libfetch
gabor:测试 BSD iconv 和 grep
mezz:将 www/neon28 切换到 www/neon29
beat:更新 www/libxul
johans:更新 devel/bison 和 devel/m4
dinoex:更新 graphics/tiff
jpaetzel:更新 devel/popt
ade:进行多个自动工具(autotools)升级运行
gerald:设置 USE_GCC=4.5 为默认
ashish:修改 Mk/bsd.license.mk
kwm:测试 -CURRENT 上的 Clang
待办事项
寻求帮助修复 当前版本中损坏的 ports。
寻求帮助处理 Tier-2 架构的 ports。
大部分 ports PR 已分配,我们现在需要专注于测试、提交和关闭。
http://people.freebsd.org/~ehaupt/distilator/
联系人:Emanuel Haupt <ehaupt@FreeBSD.org>
鉴于 fenner 的 Distfiles 调查的当前状态,编写了一个新的 distfile 检查器,以便对 Ports 中每个 distfile 的状态进行概览。该检查器还能够验证 pkg-descr 文件中的 WWW 条目。这是一个尝试,旨在清理损坏的 MASTER_SITES 和过时的 WWW 条目。
当前版本使用 MySQL 数据库后端,并能够在 24 小时内验证 432512 个 distfiles(30 个并发线程)。
待办事项
提供 JavaScript 来排序/过滤/搜索表格。
联系人:Stanislav Sedov <stas@FreeBSD.org> 联系人:Ed Maste <emaste@FreeBSD.org>
Valgrind 是一个用于检测内存管理和线程错误以及性能分析的工具。最近发布了 3.6.0 版本,FreeBSD 的移植版本也已更新。
Valgrind 移植的开发工作已从 Perforce 转移到 bitbucket.org,以便让其他人更容易跟踪我们的进展,帮助我们将该移植版本提交到上游。仓库的 Bitbucket 地址在报告开始部分提供。
我们已向 Bugzilla 提交了一条条目来跟踪 FreeBSD 上的 Valgrind 移植。你可以查看状态并为该 bug 投票以表示你的兴趣:https://bugs.kde.org/show_bug.cgi?id=208531。
待办事项
移植 exp-ptrcheck Valgrind 工具并修复在 Valgrind 回归测试套件中的 memcheck/helgrind/DRD 所出现的未解决问题。
更多测试(请帮助)。
将我们的补丁合并到上游。
http://wiki.freebsd.org/BSDDay_2010
联系人:Gábor Páli <pgj@FreeBSD.org>
本次为期一天的活动旨在汇聚中欧地区的开源 BSD 系统开发者,推广他们的工作和组织,并让他们在现实生活中相互见面。我们还希望激励潜在的未来开发者和用户,尤其是本科生,使用 BSD 系统。今年的 BSD-Day 将于 2010 年 11 月 20 日在匈牙利布达佩斯的厄尔大学信息学系举行。欢迎大家参与!
http://2010.eurobsdcon.org/
http://2011.eurobsdcon.org/
联系人:Wolfgang Zenker <eurobsdcon2010@egeling.de> 联系人:Gábor Páli <pgj@FreeBSD.org>
EuroBSDCon 2010 于德国卡尔斯鲁厄举行,吸引了许多用户、开发者、朋友及其他参与者。我们举办了多场教程,并进行了 22 场关于 FreeBSD、OpenBSD、NetBSD 等主题的有趣报告,如新的 USB 堆栈、jail 改进、虚拟私人系统、SSH 和 PGP 合并、ZFS、日志化的软更新、BSD 认证、移植到最新的 ARM 处理器以及 pc-sysinstall。本次活动由 Poul-Henning Kamp 就软件工具及其未来进行了主题演讲,活动结束时,各 BSD 版本的状态报告为本次活动画上了圆满的句号。
联系人:Philip Paeps <philip@FreeBSD.org>
EuroBSDCon 是面向 BSD 系统用户和开发者的欧洲技术大会。EuroBSDCon 2011 将于 2011 年 10 月 6 日(星期四)至 10 月 9 日(星期日)在荷兰举行,10 月 6 日和 7 日将举办教程,10 月 8 日和 9 日将有会议演讲。
EuroBSDCon 大会邀请 BSD 系统的开发者和用户提交创新且原创的论文,论文内容不能是其他欧洲会议上已提交的 BSD 相关主题。
请访问 EuroBSDCon 2011 网站以获取更多详细信息。
http://wiki.freebsd.org/201010DevSummit
联系人:Gábor Páli <pgj@FreeBSD.org>
我们很高兴有超过 40 位 FreeBSD 开发者和嘉宾参加了在德国卡尔斯鲁厄举行的 FreeBSD 开发者峰会,该峰会是在 EuroBSDCon 2010 之前举行的。这次研讨会风格的活动在卡尔斯鲁厄理工学院举行,上午进行了准备好的演讲,下午则进行小组黑客攻击和讨论环节。我们进行了多场讲座,内容涵盖了 USB 子系统、工具链状态、FreeBSD 文档、NanoBSD 改进、FreeBSD 的 PF 移植、jails、虚拟私人系统、与 PC-BSD 项目的合作、FreeNAS、事件计时器子系统、新的 bug 修复讨论以及 Ports Tinderbox 演讲等,此外还涉及了今年和去年的谷歌编程之夏项目。大部分讲座的照片、视频和幻灯片可以在 Wiki 页面上找到。
联系人:Warner Losh <imp@ixsystems.com>
我们将在 2010 年 11 月 4 日,即会议前一天,在 meetBSD 加利福尼亚 2010 上举办开发者峰会。根据参与者的不同,我们将讨论迫切问题的状态,解决紧急问题,并利用面对面会议的机会解决那些通过电子邮件难以处理的问题。这是一个邀请制活动,但任何开发者都可以邀请他们认为能推动会议进程的人。议程将在接近活动日期时发布。
联系人:Kris Moore <kmoore@FreeBSD.org>
我们正在快速推进对 PC-BSD 工具和 PBI 格式的重大重构,以支持 9.0 版本。我们的 GUI 工具已被转换为可以在本地 QT 环境下编译和运行,而无需依赖 KDE,现在我们可以开始为 9.0 提供对其他桌面环境的支持,如 Gnome、XFCE、LXDE、KDE 等。PBI 格式经历了彻底的演变,现在所有方面都完全基于命令行,仅依赖于 curl 和 xdg-utils。这样,我们就可以开始为传统 FreeBSD 用户提供 PBI,届时他们可以从 ports 安装 pbi-manager。
待办事项
我们仍在忙于将所有工具转换/修复,以使其与各种桌面环境兼容,但进展迅速。
新的 PBI 格式仍在进行广泛的测试,正在隔离和修复 bug。
最后更新于