本报告涵盖了 2009 年 4 月至 9 月之间与 FreeBSD 相关的项目。在此期间,许多项目得到了广泛的开发工作,包括谷歌编程之夏(GSoC)项目。BSDCan 大会于 5 月在加拿大渥太华举行,EuroBSDCon 大会于 9 月在英国剑桥举行。两项活动都取得了非常成功的成果。FreeBSD 的新主版本 8.0 即将发布。如果你想了解这次备受期待的发布中有哪些新特性,请阅读 Ivan Voras 的精彩 总结。
感谢所有报告员的出色工作!我们希望你喜欢这篇报告。
请注意,下一次报告提交的截止日期为 2010 年 1 月 15 日,报告内容涵盖 2009 年 10 月至 12 月。
联系人:Brooks Davis <brooks@freebsd.org> 联系人:Tim Kientzle <kientzle@freebsd.org> 联系人:Robert Watson <rwatson@freebsd.org>
2009 年是 FreeBSD 项目参与谷歌编程之的第五年。我们总共有 17 个成功的项目。部分谷歌编程之夏代码将在 FreeBSD 8.0-RELEASE 中发布,其他项目将在未来的版本中集成。
FreeBSD 谷歌编程之夏管理团队感谢谷歌以及我们学生和导师的贡献,感谢他们的努力使这一年取得了成功!
联系人:Gábor Kövesdán <gabor@FreeBSD.org>
该代码已从 NetBSD 中提取,并转化为独立的共享库。基本的编码已得到良好的支持。几乎所有的正向转换(foo -> UTF-32)都与 GNU 兼容,但反向转换不太准确,因为 GNU 使用了先进的音译方法。一些额外的编码也已添加。目前有两个模块存在段错误(segfault),需要进行调试。我可以将这个项目作为我的本科学位论文的一部分继续工作,所以希望能够解决剩余的问题。提高 GNU 兼容性也非常重要(为 iconv(1)、iconvctl()、私有接口等实现额外的命令行选项等)。
修复 Big5 和 HZ 模块中的段错误
改进反向编码中的音译
通过实现额外功能提高 GNU 兼容性
验证 POSIX 兼容性
验证 GNU 兼容性
检查性能
联系人:Gábor Kövesdán <gabor@FreeBSD.org>
该项目作为 2008 年谷歌编程之夏的一部分启动,但仍有一些工作需要完成以补充缺失的部分。BSD 许可的 grep 实现已功能完整,并具有良好的 GNU 兼容性。目前我们对 BSD 许可版本唯一的关注是提高其性能。GNU 变体要复杂得多,约有 8 KSLOC,而 BSD grep 很小,只有 1.5 KSLOC。GNU 使用一些捷径和优化来加速对正则表达式库的调用,这也是它显著更快的原因。我的观点是,这些优化必须在正则表达式库中实现,以保持依赖的工具清晰易读。BSD grep 非常小,几乎没有通过简化代码进行优化的机会,因此正则表达式库是下一个重要的任务。目前的正则表达式库还存在另一个问题,它不支持一些在 GNU 中有效的无效正则表达式。我们需要保持兼容性,所以不能仅仅放弃这一特性。事实上,BSD grep 为了保持这个特性,已经链接到了 GNU 的正则表达式库,但由于缺少上述的捷径,它仍然比 GNU 慢。无论如何,如果我们能在获得现代正则表达式库之前接受这个小的性能损失,我认为 grep 准备好进入 HEAD。至于正则表达式库,NetBSD 上的上一届 SoC 项目的成果值得一看。
sort 工具已从头开始重写。现有的 BSD 许可实现无法处理宽字符,这是设计上的问题。新的实现仍然缺少一些功能,但已经相当完整。不过,存在性能问题。排序是典型的算法问题,但我并不是算法专家,所以我的实现并不完全最优。如果能在这部分得到帮助,将不胜感激。
bc/dc 工具已从 OpenBSD 移植过来。它们通过了 OpenBSD 和 GNU 的回归测试,但它们到达的时间太晚,未能赶上 8.X,因此它们将在发布后进入 HEAD。
改进 sort 的排序和文件合并算法
完成 sort 缺失的功能
为 FreeBSD 获取一个现代的正则表达式库
联系人:Aditya Sarawgi <sarawgi.aditya@gmail.com>
FreeBSD 的 ext2fs 存在一些 GPL 许可的部分。我的项目目标是重写这些部分,使 ext2fs 不再受 GPL 限制。我成功地重写了这些部分,NetBSD 的 ext2fs 对此提供了很大的帮助。由于移除了部分关键的 GPL 部分,写入性能有所下降。我还为 ext2fs 实现了 Orlov 块分配器。目前,我计划使 ext2fs 支持多处理器(MPSAFE)。我的工作位于 Perforce 的 truncs_ext2fs 分支中。
为 FreeBSD 添加 Ext4 支持
为 ext2fs 实现目录索引
使用 gjournal 在 ext2fs 中实现日志功能
联系人:Gábor Páli <pgj@FreeBSD.org>
libnetstat(3) 项目提供了一个用户空间库 API,用于监控网络功能,具有以下优势:
使用访问器函数的 ABI 稳定接口,将监控应用程序与内核或用户 ABI 变化解耦。
支持在 64 位内核上运行 32 位监控工具。
提供改进的一致性,用于 kvm(3) 和 sysctl(3) 获取信息。
支持的抽象如下:
活跃的套接字和套接字缓冲区
网络接口和多播接口
mbuf(9) 统计信息
bpf(4) 统计信息
路由统计信息、路由表、多播路由
协议相关的统计信息
有一个示例应用程序,叫做 nettop(8),提供了一个基于 ncurses 的 top(1)-like 接口,用于通过该库监控活动连接和网络缓冲区分配。还创建了一个修改版的 netstat(1),尽可能多地使用 libnetstat(3)。
联系人:Gleb Kurtsou <gk@FreeBSD.org> 联系人:Stanislav Sedov <stas@FreeBSD.org>
Pefs 是一个内核级文件系统,用于在其他文件系统(如 zfs 或 ufs)之上透明加密文件。它不会向文件中添加额外的信息(与其他文件系统不同),不需要按块加密 IO 操作,支持按目录/文件的密钥和密钥链,使用唯一的每文件调整(tweak)进行加密。支持的算法有:AES、Camellia、Salsa20。该代码已准备好进行测试。
实现加密名称查找/读取缓存
优化稀疏文件处理和文件调整大小
联系人:Romain Tartière <romain@blogreen.org>
BSD## 项目致力于将 Mono .NET 框架和应用程序移植到 FreeBSD 操作系统。
在过去的一年里,BSD## 团队继续跟踪 Mono 开发,lang/mono 移植几乎始终保持最新(我们因为该版本的回归问题,跳过了 mono-2.2)。我们的许多补丁已被合并到 Mono 的主干中,并应该包含在即将发布的 mono-2.6 中。
与此同时,更多与 .NET 相关的移植已被更新或添加到 FreeBSD 的 Ports 中。这些 Port 包括:
www/xsp 和 www/mod_mono,使 FreeBSD 能够托管 ASP.NET 应用程序;
lang/boo,一种类似于 Python 的 CLI 目标编程语言;
lang/mono-basic,Mono 的 Visual Basic .NET 框架;
devel/monodevelop,一个用于 .NET 的集成开发环境;
以及更多...
测试 mono Port 并反馈意见(我们尤其对启用 NOPORTDOCS / WITH_DEBUG 的测试感兴趣)。
将 mono-debugger 移植到 FreeBSD。
构建一个 FreeBSD 的调试实时镜像,以便没有 FreeBSD 设备的 Mono 开发者能更高效地帮助我们修复 bugs。
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>
clang@FreeBSD 团队展示了 clang/LLVM 能够编译 FreeBSD 系统的状态。目前的状态是:
i386 - 内核启动,系统需要一些小的修改,但可以工作
amd64 - 内核启动,系统需要一些小的修改,但可以工作
ppc - 因为未知的 RTLD 错误而无法使用
其他 - 未知
其他平台尚未测试。
在春季/夏季期间发生了很多变化:amd64 得到了正确的 mcmodel=kernel 支持,引入了 compiler-rt(为 libgcc 替代铺平了道路),我们进行了两次实验性的 Port 构建,看看 clang 在这些方面的表现。C++ 支持能够解析 devd.cc,且没有警告。我们已经成功地使内核在 -O2 下工作。FreeBSD 已被提升为 LLVM 的官方支持平台。由于这些工作的结果,许多之前无法编译的 FreeBSD 部分现在能够顺利构建。
FreeBSD 的 “ClangBSD” 分支有些陈旧,已经有一段时间没有更新了。
我们还需要在 LLVM 中添加一些重要的修复,以便能够编译 libc 并解决其他一些小问题。
我们仍然需要更多测试人员来测试较小的平台(主要是 ARM、PPC 和 MIPS,但其他平台的测试也欢迎)。
联系人:Rafal Czubak <rcz@semihalf.com> 联系人:Michal Hajduk <mih@semihalf.com>
这项工作的目的是为配备时分多路复用(TDM)单元的系统提供一个通用且灵活的框架,这种单元通常出现在嵌入式通信芯片中。该框架设计用于支持各种控制器和多种类型的 TDM 通道,例如语音带宽、声音和杂项数据通道。目前,语音带宽基础设施正在 Marvell RD-88F6281 参考板上开发,它将作为如何使用 TDM 框架支持其他通道类型的示例。使用 TDM 与语音带宽通道的直接目标是为 FreeBSD 基础的 VoIP 系统提供支持,使其能够将模拟电话世界与数字 IP 电话结合起来。结合第三方 VoIP 软件(如 Asterisk),该设计可以作为 VoIP 私有分支交换机(PBX)。
当前状态亮点:
TDM 控制器接口
TDM 通道接口
TDM 通道 API 用于内核模块
编解码器接口
语音带宽通道字符设备驱动
Marvell Kirkwood 和 Discovery SoC 的 TDM 控制器驱动
Si3215 SLIC 驱动
Si3050 DAA 驱动
开发演示应用程序,展示语音带宽通道的示例用法。
将语音带宽基础设施与 Zaptel/DAHDI 电话硬件驱动集成。
联系人:Robert Watson <rwatson@FreeBSD.org> 联系人:Stacey Son <sson@FreeBSD.org> 联系人:libdispatch 邮件列表 <libdispatch-dev@lists.macosforge.org>
我们已经将 libdispatch,即 Apple 的 Grand Central Dispatch 事件和并发框架移植到 FreeBSD:
添加了支持 GCD 所需的新 kqueue 原语,如 EVFILT_USER 和 EV_TRIGGER
为 libdispatch 创建了 autoconf 和 automake 构建框架
修改了 libdispatch,以使用 POSIX 信号量,而不是 Mach 信号量
将 libdispatch 适配为使用便携的 POSIX 时间例程
Jordan Hubbard 还为 FreeBSD 准备了一个支持块(blocks)的 clang 编译器包。使用 clang 编译时,libdispatch 提供基于块和基于函数的回调。
该移植已在 9 月份的 FreeBSD 开发者峰会上展示,演示文稿已上传至 devsummit wiki 页面。FreeBSD Port 现在可以在 Ports 中获取。FreeBSD 8.0-RELEASE 发布后,新的 kqueue 原语将被 MFC(合并到主干),以便 libdispatch 可以在 FreeBSD 8.1-RELEASE 上开箱即用。
完成 libdispatch 测试套件的移植工作。
调查 FreeBSD 中 pthread 工作队列的实现。
评估 Mac OS X 版本的 libdispatch 中一些与机器相关和操作系统相关的优化的性能影响,以决定是否应为其他平台和操作系统实现这些优化。
探索 FreeBSD 基础操作系统工具是否可以通过修改为使用 libdispatch 来受益。
联系人:Stanislav Sedov <stas@FreeBSD.org> 联系人:Ulf Lilleengen <lulf@FreeBSD.org>
libprocstat 项目是一个持续进行的工作,旨在开发一个库,可以以统一且平台独立的方式,从运行中的系统或核心文件中检索有关正在运行的进程和打开文件的信息。这将有助于实现像 lsof(1)、fstat(1)、fuser 等文件或进程监控应用程序。libprocstat 仓库包含了该库的初步版本,并包括重写的 fstat 和 fuser 工具,移植后使用该库,而不是通过 kvm(3) 接口获取所有所需的信息;使用 libprocstat 版本的一个重要优势是,这些工具是 ABI 独立的。
实现基于 KVM 的 namecache 查找,检索与文件描述符和 VM 对象相关的文件系统路径。
分析从内核以可扩展和 ABI 独立的方式导出文件和进程信息的可能方法。
联系人:Doug Rabson <>
我最近一直在为 FreeBSD 平台编写一个新的调试器。由于各种原因,我使用了一种相对不太为人知的类似 C 的语言 D 来编写它。
到目前为止,我已经编写了一个相当有用(尽管还有些粗糙)的命令行调试器,支持 ELF、Dwarf 调试信息以及(目前)32 位的 FreeBSD 和 Linux。该引擎包括解析和评估任意 C 表达式,并提供常见的调试工具,如断点、源代码列出、单步执行等。所有代码都是新的,并且是 BSD 许可证的。目前,该工具支持通过 ptrace 对 i386 目标进行用户态调试,并支持同样的目标的事后核心文件调试。我很快将添加对 amd64 的支持,并可能在以后支持 GDB 的远程调试协议。
http://wiki.freebsd.org/NFSv4_ACLs
联系人:Edward Tomasz Napierala <trasz@FreeBSD.org>
在 2008 年的谷歌编程之夏中,我实现了对 ZFS 和 UFS 的原生 NFSv4 ACL 支持。大部分代码已经合并到 CURRENT 中。NFSv4 ACL 在 ZFS 中已无条件启用,可以使用常用工具,如 getfacl(1) 和 setfacl(1) 来查看和更改它们。我计划在本月合并剩余部分(UFS 支持)。应该可以将其 MFC(合并到主干),以便在 FreeBSD 8.1-RELEASE 发布时进行交付。
审查 UFS 更改
在 tar(1) 中添加对 NFSv4 ACL 的支持
联系人:Ed Schouten <ed@FreeBSD.org>
一段时间前,我开始为 FreeBSD 内核编写一个新的驱动程序,名为 vt(4),它基本上是 syscons 的替代品。尽管还有很多工作需要做,但可能有必要提到它的功能(以及它的不足之处)。
目前,vt(4) 只有两个图形驱动程序,分别是 i386 和 amd64 的 VGA 驱动程序以及一个 Microsoft Xbox 图形驱动程序(因为实现起来很简单)。我仍然需要弄清楚如何处理 VESA,可能最好是忽略 VESA,看看将 DRM 扩展到与 vt(4) 交互有多难。
一些随机特性:它已经支持 Unicode(UTF-8)输入和输出,支持 MPSAFE,并且支持每个窗口的可变尺寸图形字体,包含几乎无限的字形(包括粗体和常规体)。
需要对 DRM 的代码库进行研究。
Syscons 应该已经迁移到 TERM=xterm,以使在驱动程序之间切换更容易。
http://wiki.freebsd.org/VirtualBox
联系人:Beat Gaetzi <beat@FreeBSD.org> 联系人:Bernhard Froehlich <decke@bluelife.at> 联系人:Dennis Herrmann <dhn@FreeBSD.org> 联系人:Juergen Lock <nox@FreeBSD.org> 联系人:Martin Wilke <miwi@FreeBSD.org>
VirtualBox 已经被提交到 Ports,并与 Sun 的最新 trunk 版本同步。几个已知的问题已经修复,并且添加了一些新特性:
VT-x 支持
桥接支持(特别感谢 Fredrik Lindberg)
主机串口支持
ACPI 支持
主机 DVD/CD 访问
SMP 支持
我们要感谢所有通过报告 bug 和提交修复帮助我们的人。我们也感谢 VirtualBox 开发人员在将 VirtualBox 移植到 FreeBSD 过程中给予的帮助。
http://www.freebsd.org/support.html#gnats
http://wiki.freebsd.org/BugBusting
http://people.freebsd.org/~linimon/studies/prs/
http://people.freebsd.org/~linimon/studies/prs/recommended_prs.html
联系人:Gavin Atkinson <gavin@FreeBSD.org> 联系人:Mark Linimon <linimon@FreeBSD.org> 联系人:Remko Lodder <remko@FreeBSD.org> 联系人:Volker Werth <vwe@FreeBSD.org>
我们继续对提交的 PR 进行分类,为涉及的内核子系统或用户空间 PR 的手册页添加“标签”。这些标签反过来生成按标签和手册页排序的 PR 列表。
由 Bugbusting 团队推荐供提交者评估的 PR 列表继续增加。此列表包含 PR(大多带有补丁),这些 PR 被认为可能已经准备好提交,或者在熟悉特定子系统的提交者手中可能会被轻松解决。我们邀请所有提交者在有空闲时间的情况下查看这个列表,并帮助关闭 PR。
还可以在提供的链接中查看所有自动生成报告的完整列表。如果你有任何建议报告(目前尚不存在但可能有帮助的报告),我们非常欢迎。
Gavin Atkinson 在 2009 年的 EuroBSDCon 开发者峰会上做了关于“PR 状态”的演讲,并与其他参与者讨论了许多使 PR 数据库更有用、更易用的想法。几项不错的建议由此产生,并有望在不久的将来促使更多有用的工具问世。还讨论了如何可能自动分类非 Port PR,并通知相关方,尽管这方面的研究尚未开始。
Mark Linimon 也继续努力定义一般问题,并研究可能的新工作流模型,并在 2009 年的 BSDCan 上展示了这项工作。
自上次状态报告以来,未解决的 bug 数量增加到了大约 5900,部分原因是更多的焦点放在了向现有 PR 中添加更多信息,以确保现在所有需要的信息都已提供。因此,尽管开放的 PR 数量增加了,但它们的质量应该有所提升。
如往常一样,我们非常欢迎更多的帮助,提交者和非提交者都被邀请加入 #freebsd-bugbusters 频道,帮助关闭陈旧的 PR 或提交有效 PR 中的补丁。
根据参加 EuroBSDCon DevSummit 的开发者提出的建议进行工作。
尝试找到更多提交者来帮助我们关闭已经分析过的 PR。
http://freebsd.kde.org/
http://freebsd.kde.org/
http://blogs.freebsdish.org/tabthorpe/category/kde
联系人:Thomas Abthorpe <tabthorpe@FreeBSD.org> 联系人:Max Brazhnikov <makc@FreeBSD.org> 联系人:Martin Wilke <miwi@FreeBSD.org>
自春季以来,FreeBSD KDE 团队一直在忙于将 KDE 从 4.2.0 升级到 4.3.1。作为持续维护 KDE 的一部分,团队还将 Qt4 从 4.4.3 更新到 4.5.2。
我们新增了两名提交者/维护者,Kris Moore (kmoore@) 和 Dima Panov (fluffy@)。我们还为贡献者 Alberto Villa 和 Raphael Kubo da Costa 授予了增强的 area51 访问权限。Alberto 是我们更新和测试 Qt 4.6.0-tp1 的关键贡献者。Raphael 是一名 KDE 开发者,他成为了我们的 Gitorious 联络人,负责将 FreeBSD 的 Qt 补丁合并到上游。
Markus Brüffer (markus@) 花了很多时间修补小部件和系统插件,以确保它们能够在 FreeBSD 下正常工作。我们要感谢他为此付出的所有努力!
更新到 Qt 4.6.0
更新到 KDE 4.4.0
与我们的用户群合作,修复 Ports 中 KDE3 的终止支持(EOL)问题
联系人:Mark Linimon <linimon@FreeBSD.org>
Ports 数量已激增至 20,700 以上。通过一些卓越的努力,PR 数量曾降至 800 以下,但现在又回到了大约 900 的正常水平。
我们目前正在为 amd64-6、amd64-7、amd64-8、i386-6、i386-7、i386-8、sparc64-7 和 sparc64-8 构建软件包。i386-9 的初步构建已经完成;然而,为了继续在 -9 上进行构建,我们需要找到一些新机器的托管位置,或者放弃对 -6 的软件包构建。后者的邮件列表讨论引起了相当大的争议。
我们增加了一些新的 i386 机器来加速构建,但这仅仅弥补了部分较老、较慢 i386 节点的磁盘故障。
我们还感谢多位提交者(包括 pgollucci@、gahr@、erwin@、Boris Kochergin 和 Craig Butler)借出的更多包构建机器。
portmgr@ 团队也欢迎了新成员 Ion-Mihai Tetcu (itetcu@) 和 Martin Wilke (miwi@)。我们还感谢离任成员 Kirill Ponomarew (krion@) 多年的服务。
Ion-Mihai 花了大量时间工作在一个名为 QAT 的系统上,该系统能够自动进行新提交的质量保证。第二个名为 QATty 的 tinderbox 帮助我们修复了许多问题,特别是涉及自定义 PREFIX 和 LOCALBASE 设置以及文档包含选项的问题。Ports 对文档功能/非默认配置的符合度将会跟进。
在 pav 和 miwi 的协作下,已经完成并提交了二十多个实验性的 ports 运行。
自上次报告以来,我们增加了 5 名新的提交者,2 名旧的提交者重新加入了我们。
我们正在尝试建立可以供提交者进行预测试的 ports tinderboxes;能够提供机器借用的人应与 Ion-Mihai (itetcu@) 联系,提供硬件和带宽的详细信息。
大多数剩余的 ports PR 是“现有的 Port /PR 已分配给提交者”。尽管维护者超时策略有助于减少积压,但我们需要做更多工作,将 ports 调整到真正需要的状态。
尽管我们增加了许多维护者,但我们仍然有近 4,700 个无人维护的 ports(例如,见 portsmon 上的列表)。这一比例已降至 22%。我们始终在寻找有意愿的志愿者来接管至少一些无人维护的 ports。此外,amd64 和 sparc64 的软件包更新滞后于 i386,我们需要更多的测试人员来帮助这些平台。
http://www.freebsd.org/releng/
联系人:发布工程团队 <re@FreeBSD.org>
发布工程团队继续致力于 FreeBSD 8.0-RELEASE。公开测试揭示了许多问题,许多与低级网络(路由/ARP 表)更改及其与 IPv6 的交互相关。
在公开测试期间识别出的问题仍在逐步修复。目前我们计划进行另外两次公开测试构建(RC2 和 RC3),然后在 10 月底或 11 月初发布正式版本。
http://www.freebsdfoundation.org/
联系人:Deb Goodkin <deb@FreeBSDFoundation.org>
启动我们的秋季筹款活动!更多信息请访问 http://www.freebsdfoundation.org/donate/。
我们是 EuroBSDCon 2009 的赞助商,并为 8 名 FreeBSD 开发者和用户提供了旅行资助。我们赞助了位于乌克兰基辅的 Kyiv BSD 2009 会议。我们也是 BSDCan 的赞助商,并资助了 7 名开发者。我们资助了三个新项目,分别是 Ed Schouten 提出的 New Console Driver、Arnar Mar Sig 提出的 AVR32 支持,以及 Rui Paulo 提出的无线网状网络支持(该项目已完成)。我们继续资助 Lawrence Stewart 对 FreeBSD TCP 堆栈进行改进的项目。由 Edward Napierala 提出的删除已挂载文件系统的磁盘设备的项目现在已完成。
我们在 EuroBSDCon 2009 上表彰了以下 FreeBSD 开发者:Poul-Henning Kamp、Bjoern Zeeb 和 Simon Nielsen。该些开发者获得了限量版 FreeBSD 基金会马甲。
现在可以在 Twitter 上关注我们!
http://caia.swin.edu.au/freebsd/etcp09/
http://caia.swin.edu.au/urp/newtcp/
http://caia.swin.edu.au/urp/newtcp/
http://people.freebsd.org/~lstewart/patches/tcp_ffcaia2008/
联系人:Lawrence Stewart <lstewart@freebsd.org>
TCP 适当字节计数(RFC 3465)支持已合并到 FreeBSD 8 分支,并将在 FreeBSD 8.0-RELEASE 中发布。
重新组装队列自动调优和 SIFTR 工作未能及时准备好,无法安全地集成到 8.0-RELEASE 中。已为必要的 TCP 结构添加了填充,以便在 8.0 发布后将功能合并回 8-STABLE 分支。
针对 FreeBSD-CURRENT 的候选补丁将在未来几周内准备好,届时将通过 freebsd-net 邮件列表征求测试和反馈。
征求审查/测试,并将 ALQ kld 和可变长度消息支持补丁集成到 FreeBSD-CURRENT 中。
征求审查/测试,并将 SIFTR 工具集成到 FreeBSD-CURRENT 中。
完成针对 FreeBSD-CURRENT 的动态重新组装队列自动调优补丁。
修复 SACK 实现中的一个已识别的快速重传/快速恢复行为的 bug。
完成!
http://caia.swin.edu.au/urp/newtcp/
http://svn.freebsd.org/viewvc/base/projects/tcp_cc_8.x/
联系人:Lawrence Stewart <lstewart@freebsd.org>
过去几个月中,补丁经历了多次重要修改,以准备合并到 FreeBSD-CURRENT。此外,我完成了 CUBIC 拥塞控制算法的实现,以补充现有的 NewReno 和 H-TCP 算法实现。
我还需要进行一次较为入侵的更改,这将允许拥塞控制模块在 TCP 和 SCTP 堆栈之间共享。待完成,我将寻求审查和测试,希望能在 FreeBSD-CURRENT 中提交补丁,以便能在 8.1-RELEASE 中回溯。
将拥塞控制特定的变量从 TCP 和 SCTP 控制块抽象出来,放入一个新的结构体中,可以传递给 API,而不是直接传递控制块。
联系人:Bjoern A. Zeeb <bz@FreeBSD.ORG> 联系人:Marko Zec <zec@FreeBSD.ORG> 联系人:Robert Watson <rwatson@FreeBSD.ORG>
网络堆栈虚拟化项目旨在扩展 FreeBSD 内核,以维持多个独立的网络状态实例。这使得每个 jail 环境之间的网络保持独立,每个环境都维护其私有的网络接口、IPv4 和 IPv6 网络及端口地址空间、路由表、IPSec 配置、防火墙等。
在过去的几个月里,Marko、Julian 和 Bjoern 完成了 VIMAGE 工作的剩余部分。Robert Watson 开发了一个 vnet 分配器来克服 ABI 问题。Jamie Gritton 合并了他的层次化 jail 框架,该框架现在也作为虚拟网络堆栈的管理接口。
在 2009 年 EuroBSDCon 期间举办的 FreeBSD 开发者峰会上,大家虚拟化了更多的代码。结果,SCTP 和另一个接受过滤器被虚拟化,更多的人熟悉了 VImage 的设计及其底层概念。最终,让更多的人参与进来是内核虚拟化长期成功的关键第一步。
下一步将是完成网络堆栈虚拟化,泛化分配器框架,然后考虑虚拟化其他子系统,并更新相关文档。与此同时,还将致力于开发一个适当的 jail 管理框架。长期目标包括虚拟化更多子系统,例如 SYS-V IPC、改进的特权处理和资源限制等。
在即将发布的 FreeBSD 8.0 版本中,vnets 被视为实验性功能。因此,尚不建议在生产环境中使用它们。尽管如此,很多时间已经花费在了完善 vnets 的基础设施上,以便能合并更多的更改,并计划在 8.2 中使其达到生产级别。
如果你想帮助实现这一目标,请随时联系我们,支持或帮助虚拟化如两个防火墙、appletalk、netipx 等尚未虚拟化的部分,并生成回归测试。
联系人:Randall Stewart <rrs@FreeBSD>
SCTP 继续进行小修小补,并增加了一些新功能。首先,VIMAGE 和 SCTP 已经能够协同工作。这个目标是在 FreeBSD DevSummit(在英国剑桥举行)上,由 bz@、我的新学员 tuexen@ 和我共同完成的。此外,特拉华大学贡献的不可撤销 SACK 功能已经修复,现在启用该功能是安全的(它是一个 sysctl)。如果你在使用带有 CMT(并行多路径传输)的 SCTP,你会想启用这个选项(CMT 也是一个 sysctl)。启用 CMT 后,你将能够向 SCTP 对等方的所有目的地发送数据。
我们欢迎了一个新的学员(不久将成为 committer)加入 FreeBSD。Michael Tuexen 现在是 rrs@ 的学员。Michael 长期以来一直在为 SCTP 工作做出贡献,并且在德国慕尼黑大学兼职教授(当不做 SCTP 编程时)。
联系人:Pawel Dawidek <pjd@FreeBSD.org>
我们认为 ZFS 文件系统现在在 FreeBSD 8.0 中已经准备好投入生产使用。大多数(如果不是全部)报告的 bug 都已修复,ZFS 不再被标记为实验性。Perforce 中也有持续的工作,旨在将最新的 ZFS 版本(v19)引入 FreeBSD。
下载 8.0 版本候选并进行测试、测试、测试,并将任何问题报告到 freebsd-fs@FreeBSD.org 邮件列表。
联系人:George Neville-Neil <gnn@freebsd.org>
目前正在进行板卡启动工作。我已查看了关于 MIPS 如何提供性能计数器的文档,并将很快开始添加代码。
联系人:René Ladan <rene@FreeBSD.org> 联系人:Remko Lodder <remko@FreeBSD.org>
目前的翻译(手册和一些文章)与英文版本保持同步。网站的部分内容已经翻译,更多的工作正在进行中。
寻找更多志愿者翻译网站的其余部分和 FAQ。
https://doc.bsdgroup.de/
http://code.google.com/p/bsdcg-trans/wiki/BSDPJTAdede
联系人:Johann Kois <jkois@FreeBSD.org> 联系人:Benedict Reuschling <bcr@FreeBSD.org> 联系人:Martin Wilke <miwi@FreeBSD.org>
在 2009 年 5 月,Benedict Reuschling 在 Johann Kois 的指导下获得了提交权限,加入了 www/de 和 doc/de_DE.ISO8859-1 树。从那时起,他主要负责更新现有章节和翻译新的章节,尤其是文件系统和 DTrace 章节最近已被翻译。在翻译过程中,发现了原始文档中的一些 bug,并反馈给其他翻译团队,以便他们纳入修正。
Christoph Sold 将他的时间投入到将 BSD 认证小组的 wiki 页面翻译成德语,这对所有希望参加考试并希望阅读相关信息的德语用户非常有帮助。Daniel Seuffert 也发送了宝贵的修正和 bug 修复。感谢他们的时间和努力!
网站不断进行翻译和更新。缺失的部分将在有时间的情况下翻译。
我们非常欢迎志愿者帮助校对文档、翻译新文档并保持更新。即使是小的错误报告也对我们非常有帮助。联系方式请参见上述链接。
更新现有的文档集(特别是手册)。
将更多文章翻译成德语。
阅读翻译内容,检查问题和错误,并提供反馈。
联系人:Gábor Kövesdán <gabor@FreeBSD.org> 联系人:Gábor Páli <pgj@FreeBSD.org>
在过去几个月里,我们没有增加新的翻译,尽管我们一直在更新现有的翻译。我们需要更多的翻译者和志愿者来保持翻译文档的增长,因此欢迎大家参与贡献。每一行提交或反馈都非常感谢和欢迎。
如果你想加入我们的工作,请阅读该项目的介绍以及FDP 介绍(两者均提供匈牙利语版本)。
翻译新闻条目、新闻稿
翻译 -CURRENT 和 8.X 版本的发布说明
翻译文章
翻译网页
阅读翻译内容,提供反馈
联系人:José Vicente Carrasco Vayá <carvay@FreeBSD.org> 联系人:Gábor Kövesdán <gabor@FreeBSD.org>
最近,我们新增了一篇文章的翻译。但现有的翻译没有更新。我们需要更多的人员来跟上工作进度,并保持翻译的更新。
更新手册的翻译
更新网页的翻译
联系人:Marius Strobl <marius@FreeBSD.org>
自上次状态报告以来,关于 FreeBSD/sparc64 的重要进展如下:
Cas(4) 驱动程序(用于 Sun Cassini/Cassini+ 以及 National Semiconductor DP83065 Saturn Gigabit 网络接口卡)已被提交,因此将在 FreeBSD 8.0-RELEASE 和 7.3-RELEASE 中作为一部分。 这意味着 Fire V440 中的板载网络接口卡以及基于这些芯片的附加卡现在都被支持,包括在非 sparc64 系统上。不幸的是,cas(4) 驱动程序触发了与 B100 刀片和 Fire V480 中的板载网络接口卡相关的次要问题,由于无法访问这些系统,目前尚未修复。
基于“Fire”主机 PCIe 桥的 sun4u 系统(如 Fire V215、V245 等)已完成初步支持(包括对板载 ATA 控制器的支持,最初该控制器引发了多个问题,且还支持 MSI/MSI-X)。然而,像 ALi/ULi 芯片的 quirks 处理代码需要重新审视,且目前尚未进行稳定性测试。如果一切顺利,代码将在 FreeBSD 8.0-RELEASE 发布后提交到主干。理论上,基于“Oberon”主机 PCIe 桥的机器也应该在这些更改后得到支持,但由于无法访问 Mx000 系列机器,代码尚未与这些机器进行测试。
修复了 snd_t4dwave(4) 驱动程序中的一些错误,并且增加了对 sparc64 的特殊处理,使其可以执行 32 位 DMA,并且现在一般能够与例如 Blade 100 和 Blade 1500 中的板载 ALi M5451 一起工作。不幸的是,仅在三台 Blade 100 中的两台上测试正常运行。至于为什么在剩下的那台上仍然无法正常工作,目前尚不清楚,但至少不再导致 IOMMU-panics,因此在 sparc64 上测试 snd_t4dwave(4) 不再会有害。这些更改将作为 FreeBSD 8.0-RELEASE 和 7.3-RELEASE 的一部分。
修复了 ata-marvell(4) 驱动程序,使其能够在 sparc64 上工作(实际上也适用于所有非 x86 且内存少于 4GB 的系统)。这些修复将作为 FreeBSD 8.0-RELEASE 和 7.3-RELEASE 的一部分。
已开发出一种适当的、与机器无关的修复,解决了加载器在启动时会导致网络引导时因固件打开 NIC 而发生 panic 的问题,但该修复尚未提交。
联系人:Beat Gaetzi <beat@FreeBSD.org> 联系人:Martin Wilke <miwi@FreeBSD.org> 联系人:Andreas Tobler <andreast-list@fgznet.ch>
Andreas Tobler 犯了经典的错误,向我们发送了大量与 powerpc 和 sparc64 相关的补丁。通常的惩罚是给他一个 Gecko 仓库的提交权限,这已经应用了。
我们当前在 Ports 中有一些过时的 Port :
www/mozilla 已经有 5 年的历史,不再受到上游支持,并且存在许多安全漏洞。我们可以使用 www/seamonkey 来替代。
www/xulrunner 被 www/libxul 替代。
已经在 pointyhat 上测试并准备提交的补丁包含以下更改:
删除对 www/mozilla/Makefile.common 和 www/mozilla/bsd.gecko.mk 的引用
将 USE_GECKO 设置为 xulrunner、firefox 和 mozilla 改为 USE_GECKO 设置为 libxul,并移除 www/xulrunner
我们还在处理 Firefox 3.6(Alpha 2)、Thunderbird 3.0(Beta 4)、新的 libxul 1.9.1.3 和 Seamonkey 2.0(Beta 2) Port 。所有这些都已经提交到我们的 Gecko 仓库。
当前状态和任务列表可以在 http://trillian.chruetertee.ch/freebsd-gecko/wiki/TODO 中找到。
从 Ports 中删除 mozilla、xulrunner 和 firefox2。
将 www/firefox35 Port 移至 www/firefox。
还需要删除一些旧的(并且有些过时的)Gecko 提供程序,如 mozilla、nvu、xulrunner、flock 和 firefox。
Portmaster
联系人:Doug Barton <dougb@FreeBSD.org>
我目前正在寻求资金支持,以便进一步开发 portmaster。有几个功能是社区经常请求的(例如支持安装软件包),我非常希望能够实现,但这些功能需要的时间超过了我能够合理分配的时间。关于资金提案的详细信息,请参见上面的链接。
同时,我最近完成了另一轮错误修复和功能增强。在 2.12 版本中添加了一个常被请求的功能,即可以在命令行中多次指定 -x(排除)选项。此外,在该版本中,我还添加了 --list-origins 选项,使得在进行大版本升级后重新安装 Port ,或在另一台系统上安装相同 Ports 变得更加容易。
查看资金提案。
联系人:Stanislav Sedov <stas@FreeBSD.org>
FreeBSD Ports 中的 Valgrind 套件已更新到 3.5.0 版本(最新可用版本)。大多数以前版本的问题现在应该已经解决:我们预计 memcheck、callgrind 和 cachegrind 在 i386 和 amd64 平台上都能完全正常工作,并且 i386 二进制文件在 amd64 系统上运行时也应能正常工作。DRD/hellgrind 也应该能正常工作,尽管它们目前会生成很多假阳性,因此它们的输出有些杂乱。
移植 exp-ptrcheck Valgrind 工具,并修复在 Valgrind 回归测试套件中的 memcheck/helgrind/DRD 中显示的未解决问题。
更多测试(请提供帮助)。
将我们的补丁集成到上游。
联系人:Sam Smith <eurobsdcon@ukuug.org> 联系人:Robert Watson <rwatson@FreeBSD.org>
EuroBSDcon 2009 于剑桥举行,吸引了超过 160 名用户、开发者、朋友及其他人士。幻灯片、论文和音频现已上传至网站,供未能参加剑桥会议的人查看。明年的活动将于 2010 年 10 月 8 至 10 日在卡尔斯鲁厄举行。如果你有兴趣了解 2009 年的活动,或加入邮件列表以确保不再错过明年的活动,请访问 http://2009.eurobsdcon.org。
http://wiki.freebsd.org/200909DevSummit
联系人:Robert Watson <rwatson@FreeBSD.org>
约 70 名 FreeBSD 开发者和嘉宾参加了 FreeBSD 开发者峰会,该峰会在 EuroBSDCon 2009 前于英国剑桥举行。活动在剑桥大学计算机实验室举办,采用了工作坊形式,包括准备好的演示以及小组编程和讨论环节。演讲内容涵盖了包括 802.11 网状网络、虚拟网络堆栈和内核、新的 BSD 许可证调试器、基准测试、缺陷修复、NetFPGA、苹果 GCD(Grand Central Dispatch)移植到 FreeBSD、安全政策工作、加密签名、FreeBSD.org 系统管理、时间计算专家、新的控制台驱动程序以及 FreeBSD subversion 迁移等主题。许多演讲的幻灯片现已在 wiki 页面上提供。大家都度过了愉快的时光,还一起进行了划船活动!
联系人:Edwin Groothuis <edwin@FreeBSD.org> 联系人:i18n 邮件列表 <freebsd-i18n@FreeBSD.org>
问题:多年来,FreeBSD 的地区设置数据库(share/colldef、share/monetdef、share/msgdef、share/numericdef、share/timedef)积累了总共 165 个定义(语言-国家代码-字符集三元组)。西欧语言的文件内容通常是低 ASCII 字符,而东欧和亚洲语言的文件内容则部分或完全是高 ASCII 字符。在不清楚如何显示或解释字符集的情况下,一般用户很难确保不同字符集中的本地语言(语言-国家代码)定义能正确显示。
建议的方法:通过结合 Unicode 项目中的数据(其目标是定义地球上所有可能的书写字符和符号)和公共地区设置数据仓库(其目标是记录地区设置数据库所需的所有不同数据和定义),我们可以轻松地跟踪数据,而无需能够在所需字符集内显示这些数据或完全理解它们,当第三方提交更新时。
当前状态:share/monetdef、share/msgdef、share/numericdef、share/timedef 文件已完成转换为新设计。Makefile 基础设施已转换完成,回归检查已完成。大多数工具已到位,正在等待将 bsdiconv 导入到基本系统中。
目前系统尚未自托管,因为基本操作系统中缺少类似 iconv 的程序。Gabor@正在作为 GSoC 项目开发 bsdiconv,待它被导入,我们将能够从 Unicode 文本格式的定义进行干净的安装,转化为所需的格式和字符集。
http://forums.freebsd.org/
联系人:FreeBSD 论坛管理员 <forum-admins@FreeBSD.org> 联系人:FreeBSD 论坛版主 <forum-moderators@FreeBSD.org>
自 2008 年 11 月公开启动以来,FreeBSD 论坛(FreeBSD 操作系统用户社区和支持渠道的最新组成部分)见证了健康而稳定的增长。
目前,论坛的用户群已超过 8,000 名注册用户,他们参与了超过 6,000 个主题,总帖子数超过 40,000 条。每周的注册用户数量在 50-100 之间波动。访客总数(包括“游客”)很难估算,但很可能是注册用户群体的一个很大倍数。
新主题和帖子被积极“推送”到搜索引擎中,这使得论坛在搜索结果中的出现频率越来越高,成为 FreeBSD 社区一个宝贵且易于访问的信息来源。
论坛成功的一个因素是它们在管理和版主方面采用了“BSD 风格”的方法。论坛有着强大统一的身份,整齐地划分为多个子论坛(如“网络”、“安装与升级”等),版主非常积极,防止垃圾信息,有一群非常活跃且乐于助人的成员,向 FreeBSD 的初学者、中级和专业用户传授了许多合并的几十年知识。
我们预期论坛将成为 FreeBSD 社区和支持工作的核心枢纽,并保持这一地位。