FreeBSD 2005 年 10-12 月状态报告
原文链接:FreeBSD 2005 年 10-12 月状态报告
简介
本报告涉及的是 2005 年最后一个季度的较为安静的时光,在 FreeBSD 6.0 发布和假期季节的背景下,许多工作在幕后进行。然而,最令人兴奋的项目已经出现(或者很快就会出现)。
即将举行的事件,如 FreeBSD 6.1/5.5 的发布和第三届 BSDCan 大会,以及一场大型的开发者峰会,预示着 2006 年将迎来更加繁忙的开端。然而,未来发展的基础是本文中描述的项目。
我们希望你能发现一些有趣的项目进行研究或参与。下一次的状态报告收集将于 2006 年 4 月 7 日发布。届时我们期待你的报告。
再次感谢所有提交报告的人,感谢 Brad Davis 进行详细的拼写和语法审查。祝你阅读愉快!
项目
链接
https://www.freebsd.org/status/freesbie@gufi.org
联系人:FreeSBIE 团队 <staff@freesbie.org>
在完全重写工具包的之后,开发工作仍在继续。目前有许多插件可用,我们正在测试用于 6.x 的 unionfs 新实现。由于其不稳定性,它不会包含在发布版本中。开发人员希望在 2 月 1 日进入 BETA 阶段,并计划在 2 月 15 日左右发布 -RC 镜像,并于 3 月 1 日左右发布正式版。我们需要更多的人来测试我们提供的镜像文件。可以通过 torrent.freesbie.org 下载相关的 torrent 文件。
待办事项:
基于 6-STABLE 的新 BETA 版本现已可供测试。
链接
联系人:Jason Evans <jasone@FreeBSD.org>
libc 的 malloc 实现已经被一种新的实现所替代,这种实现旨在为在多处理器系统上运行的多线程应用程序提供良好的扩展性。这是通过创建多个独立的分配区域,并永久将线程分配到这些区域来实现的。在常见情况下,线程不会同时访问相同的分配区域,从而减少了竞争和缓存抖动。
对于单线程应用程序,性能大致与使用 phkmalloc 时相同,但对于频繁使用 malloc 的多线程应用程序,性能差异可能非常巨大(数量级的差异)。
与 phkmalloc 一样,新的 malloc 实现支持通过环境变量 MALLOC_OPTIONS
进行运行时配置。有关支持的选项以及分配器架构的更多信息,请参阅 malloc(3) 手册。
链接:http://butcher.heavennet.ru/patches/kernel/varsym/
联系人:Andrey Elsukov <bu7cher@yandex.ru>
这是将 DragonFly 的变体符号链接(项目想法)移植到 FreeBSD 的工作。变体符号链接是一种动态符号链接实现。变体符号链接的源文件可以包含一个或多个变量名。每个变量名都被花括号包围,并且在变量引用中会有一个美元符号(类似于 sh(1) 中的变量引用样式)。每当跟踪变体符号链接时,源文件中的每个变量都会被其关联的值替换。这样,变体符号链接可以根据上下文解析为不同的路径。
待办事项:
编写新系统调用的文档。
更多测试。
编写 rc.d 脚本以初始化变体符号链接。
链接:http://www.freebsd.org/projects/ideas/
联系人:Joel Dahl <joel@FreeBSD.org>
联系人:Alexander Leidinger <netchild@FreeBSD.org>
“志愿者待办事项清单”现在已经作为“FreeBSD 项目和志愿者的想法清单”提交。目前该清单的关注度很高,已有一些志愿者开始着手处理其中的条目。
遗憾的是,FreeBSD 项目并没有足够的人员资源来为每个条目提供技术联系人。感兴趣的志愿者不必害怕没有技术联系人的条目,通常,黑客和当前邮件列表中的人们在回答具体问题时非常乐于助人(只要他们知道答案……)。
我们期待听到新的想法、愿意成为一般主题(如 USB)或特定条目(无论是已有的还是新创建的)的技术联系人的人,现有条目的建议或(部分)条目的完成报告。
待办事项:
添加更多的想法。
寻找更多的技术联系人。
链接
联系人:Mark Linimon <bugmeister_at_freebsd_dot_org>
为许多内核及相关问题报告(PRs)添加“标签”的实验仍在继续,包括如“[nfs]”、“[fxp]”等标签。此外,带有补丁的 PR 已经更一致地标记为“[patch]”。基于功能标签和带补丁的 PR 已添加了两个新的定期报告,目的是提高这些 PR 的可见性。
链接
联系人:Remko Lodder <remko@FreeBSD.org>
联系人:Siebrand Mazeland <s.mazeland@xs4all.nl>
FreeBSD 荷兰文档项目是一个持续进行的项目,专注于将英文文档和网站翻译成荷兰语。目前我们几乎完成了 FreeBSD 手册的翻译,并开始了 FreeBSD 网站的初步翻译。我们一直在寻找可以帮助的人,如果你能够帮助,请联系 Siebrand 或我,以便我们可以分配工作。
近期发布:
最近,“打印”和“串行通信”章节已加入到 FreeBSD 荷兰文档中。
最近开始的项目:
我们开始翻译 PPP 和 SLIP 章节,并且开始翻译网站内容。
待办事项:
翻译 FreeBSD 手册的最后部分。
翻译 FreeBSD 网站。
链接
http://www.freebsd.org/security/
http://www.freebsd.org/administration.html#t-secteam
联系人:安全官员 <security-officer@FreeBSD.org>
联系人:安全团队 <security-team@FreeBSD.org>
本报告涉及了 2005 年 7 月至 2006 年 1 月期间的工作情况,因为 FreeBSD 安全团队未提交 2005 年 7 月至 10 月的状态报告。
在 2005 年 8 月,长期担任安全官员的 Jacques Vidrine 辞职,由 Colin Percival 接替。Jacques 继续作为安全官员荣誉职位与团队合作,团队感谢他在过去四年中的辛勤工作。
同样在 2005 年 8 月,Dag-Erling C. Smørgrav 被 Simon L. Nielsen 替换为副安全官。此外,Tom Rhodes 和 Guido van Rooij 分别于 2005 年 9 月和 2006 年 1 月退休,以便将时间投入到 FreeBSD 项目的其他部分。目前的安全团队成员名单已在网站上公布。
自上次状态报告以来,已发布了 10 个安全公告(其中 2005 年发布 5 个,2006 年发布 5 个),这些公告涉及 FreeBSD 基本系统中的问题;其中 4 个问题出现在“第三方的”代码中,6 个问题出现在 FreeBSD 维护的代码中。安全团队和 Ports 提交者继续更新漏洞和暴露标记语言(VuXML)文档,记录 FreeBSD Ports 中的新漏洞;自上次状态报告以来,已新增 117 条条目,总数达到 636 条。
以下 FreeBSD 版本由 FreeBSD 安全团队支持:FreeBSD 4.10、FreeBSD 4.11、FreeBSD 5.3、FreeBSD 5.4 和 FreeBSD 6.0。已在网站上列出各自的生命周期结束日期。
链接
FreeBSD Ports 无法获取的 distfile 调查(Bill Fenner 报告)
FreeBSD Ports 更新的 distfile 调查(Edwin Groothius 报告)
联系人:Mark Linimon <linimon@FreeBSD.org>
在此期间,Ports PR 数量曾一度下降至 500 以下——这是自 2000 年底以来未见的数字,当时只有 4000 个 Port,而现在我们的 Port 总数已经超过了 14,000 个。这得益于大量人员的辛勤工作,包括 pav、edwin、mnag、garga 以及许多其他人。祝贺大家!其中一部分是因为采取了更积极的方式提交 PR,当维护者未在超时期限内做出响应时,PR 会被直接提交。尽管这种做法有争议,但似乎已经成功地改善了 Ports。
ahze 添加了一个新的文件 ports/KNOBS
,旨在帮助整理原本混乱的 OPTIONS 命名空间。
dougb 修改了 -HEAD 中 rc.d 的工作方式,使其更像基础的 rc.d 脚本。我们希望这一变化能使未来的 Ports 维护更加简便。然而,在此过程中也引入了一些错误(我们计划在 6.1 版本发布之前修复这些问题)。尽管这种回归是遗憾的,但我们决定现在就进行这项更改,而不是等到 7.0 版本。我们希望用户在过渡期间能给予耐心。
对于 marcuscom Port tinderbox 的改进工作还在继续,特别是 marcus、aDe 和 edwin 增加了新特性。几位 Ports 提交者现在运行着自己的副本来测试 Port 的更改。
我们还重新设计了 www.FreeBSD.org/ports 页面和 portmgr 网页。
自上次报告以来,我们已新增 4 名提交者。
待办事项:
在打击那些在
LOCALBASE
不是/usr/local
时无法正确安装的 Port 方面取得了进展,但仍有一些 Port 存在此问题。portmgr 想提醒提交者,PR 应在两周的超时期内处理(无论是提交、标记为“挂起”或“分析”)。这样其他提交者就不必启动维护者超时机制,整个过程将更顺畅。
链接
http://www.freebsd.org/releases
联系人:RE 团队 <re@freebsd.org>
对于 FreeBSD 发布工程团队来说,又是非常繁忙的一年。认识到 FreeBSD 5.x 版本发布中的技术和情感问题,我们的主要重点是解决 FreeBSD 6.0 中的错误并将其发布。我们在这方面做得相当成功,11 月 18 日发布的 6.0 版本是项目的巨大成功。衷心感谢所有开发人员,他们投入了无数的时间修复错误和提高性能,也感谢那些帮助发现、修复和验证错误的用户。
展望 2006 年,我们计划在 3 月底联合发布 FreeBSD 5.5 和 6.1 版本。5.5 版本将标志着 FreeBSD 5.x 开发和发布的结束,旨在帮助尚未切换到 FreeBSD 6 的用户。该版本主要包含错误修复和一些小的改进。FreeBSD 6.1 将是 6.0 的升级版,包含新的驱动程序、某些领域的性能提升以及错误修复。我们预计在 2006 年晚些时候发布 FreeBSD 6.2 和 6.3 版本。
链接
联系人:John-Mark Gurney <jmg@FreeBSD.org>
基本的音频捕获功能已实现。所有参数由用户空间设置,而 RISC 程序生成由内核完成。目前尚未进行真实音频捕获,因为调谐器的驱动程序尚未完成。有一位拥有支持 bktr(4) 的真实 Bt878 NTSC 卡的用户,可以在不使用声卡的情况下捕获音频。
该驱动程序的真正目标是使 DViCO FusionHDTV5 Lite 卡能够进行高清捕获。我已获得一些所需的文档,但仍缺少两份关键文档。分别是 LGDT3303 ATSC/8VSB/QAM 调制解调器芯片的文档和一份显示 GPIO 线路连接关系以及芯片互联的板块图。DViCO 对我的电子邮件作出了回应,但除了指引我参考 Linux 驱动程序(该驱动程序很难解读)外,并未提供更多数据。
待办事项:
完成基本捕获驱动程序。
使 bktr(4) 驱动程序能够干净地附加到卡上,并可能增加对模拟捕获的支持。
链接
联系人:Scott Long <scottl@freebsd.org>
联系人:Andre Opperman <andre@freebsd.org>
为了应对 FreeBSD 上许多主板存在的“中断别名”问题,我修改了 Intel e1000 网络驱动程序(if_em
),采用了快速中断和任务队列相结合的方式。该技术完全避免了中断线程,从而避免了在 Intel APIC 中触发别名问题。结果是,驱动程序现在可以立即处理和屏蔽中断,并调度一个私有任务队列来处理链路事件和接收/发送事件。这种异步处理的副作用是,它的作用与传统的轮询类似,因为任务队列中完成的工作量可以控制,并且可以重新调度任务队列以稍后处理工作。这样,驱动程序在低延迟方面有了中断的好处,同时又具备了轮询的工作负载分段优势,且无需复杂的启发式处理。几位用户报告说,该驱动程序能够比传统的轮询处理更高的负载,且没有死锁问题。
此外,我还修改了驱动程序中的 SMPng 锁定,使 RX 路径不需要锁定。由于该路径已经通过中断/任务队列/轮询处理程序(这些都互为独占)隐式地进行了序列化,因此无需额外的同步。这带来了两个好处。首先,减少了每个 RX 包解锁和锁定驱动程序的处理开销;其次,显著减少了在同时发送和接收数据包时对驱动程序锁的争用。我相信,TX 完成路径也可以不使用锁,这样可以进一步减少开销,并减少高传输负载时的锁争用。减少的锁争用也大大改善了 FreeBSD 中的快速转发桥接代码,性能提高了最多 25%,同时 CPU 使用率降低。
这些工作目前可以在 FreeBSD 7-CURRENT 中找到。关于回退到传统的 ithread 和轮询行为,还有一些未解决的问题,在这些问题解决之前,我不打算将这些改动合并到 FreeBSD 6.x 中。我还希望将 INTR_FAST+taskqueue 模型扩展为一个通用框架,用于实现类似 Mac OSX 样式的过滤中断。if_em 驱动程序中的工作也可以扩展到其他高性能网络驱动程序,例如 if_bge 和 if_ti。欢迎任何关于这些主题的帮助。
链接
联系人:Scott Long <scottl@freebsd.org>
联系人:Doug Ambrisko <ambrisko@freebsd.org>
在改进 LSI MegaRAID(amr)驱动程序的性能和添加 Linux 兼容性支持方面做了大量工作。2005 年 10 月,增加了 SMPng 锁定,并实施了一些性能改进。结果是某些本地事务测试中,性能提高了 138%。
在 2005 年全年,投入了大量工作为该驱动程序添加 Linux 兼容性。现在,可以在 FreeBSD 上运行许多 LSI 提供的 Linux 管理应用程序。这些特性和性能改进已经包含在 FreeBSD 7-CURRENT 开发分支中,并计划在 FreeBSD 6.1 版本中回退。
链接
联系人:Ariff Abdullah <ariff@FreeBSD.org>
联系人:Alexander Leidinger <netchild@FreeBSD.org>
联系人:多媒体邮件列表 <multimedia@FreeBSD.org>
自上次状态报告以来,声音系统发生了许多变化。这些变化从通过磁盘访问/驱动程序错误减少的卡顿和失真,到新功能和改进的功能(为没有硬件音量控制的声卡实现了软件音量控制)。此外,已经推出了新的驱动程序(snd_atiixp),许多问题报告得到了修复。
这些变化和之前状态报告中提到的变化大部分已经合并到 RELENG_6,并将成为 6.1-RELEASE 的一部分。
待办事项:
查看想法列表中的与声音相关的条目。
重写一些部分(例如,带 OSS 兼容性的全新混音子系统)。
sndctl(1):用于控制声音系统非混音部分的工具(例如,spdif 切换、虚拟 3D 效果),由用户使用(而不是 -current 中的 sysctl 方法);pcmplay(1),pcmrec(1),pcmutil(1)。
可插拔 FEEDER 基础架构。用于调试各种 feeder 项目/作为用户空间库和测试套件。
对新硬件的支持(envy24、Intel HDA)。
性能提升(通过“从属”通道)。
与 OSS 的更紧密兼容性,特别是针对即将到来的 OSS v4。
链接
联系人:Christian Vogt <chvogt@tm.uka.de>
基于 FreeBSD 5.4 的 Kame-Shisa 移动 IPv6 软件,我们实现了性能优化“早期绑定更新”和“基于信用的授权”。这两项优化结合在一起,显著减少了切换延迟,同时不妥协协议的安全性 [1][2]。
链接
联系人:George Neville-Neil <gnn@freebsd.org>
联系人:Bjoern A. Zeeb <bz@freebsd.org>
目前正在将 PF_KEY 数据结构从密钥数据库中拆分出来。这意味着用户级应用程序和内核将不再共享数据结构,且它们可以各自独立发展,而不需要同步。
待办事项:
计算 Kame IPv4 版本的 IPSec 与 FAST_IPSEC 之间的差异,并将 FAST 升级到最新标准。
为
FAST_IPSEC
增加 IPv6 支持。
链接
http://www.kame.net/newsletter/20051107/
http://www.wide.ad.jp/news/press/20051107-KAME-e.html
http://ipv6style.jp/en/special/kame/20051205/index.shtml
联系人:SUZUKI Shinsuke <suz@FreeBSD.org>
大部分最新的 KAME 代码已经合并到 7-current 和 6-stable,以准备项目在 2006 年 3 月结束。出于相同的原因,我们将一些 Port 应用程序(security/racoon,net/pim6sd,net/pim6dd,net/dhcp6)从 KAME 移动到了 sourceforge.net。
由于一些原因,某些项目(例如 IGMPv3/MLDv2、移动 IPv6/NEMO、SCTP、DCCP、ISATAP)尚未从最新的 KAME 代码中合并。其他项目将继续合并它们的工作。
待办事项:
移除
__P()
宏。将
net.inet6.ip6.kame_version
设置为更合适的日期 :-)更新
src/sys/netinet6/README
链接
联系人:Andre Oppermann <andre@freebsd.org>
FreeBSD 6 自 FreeBSD 5.3 以来,特别是在网络领域,发生了剧变。演示文稿和论文提供了关于所有网络栈相关的增强、变化和新代码的深入概述,并叙述了它们的设计依据。
链接
联系人:Andre Oppermann <andre@freebsd.org>
FreeBSD 在 5.x-RELEASE 系列中实现了网络栈的细粒度锁定,最终在 6.0-RELEASE 中得到了完善。硬件架构和性能特征自各种 BSD 网络子系统设计和实现以来已发生显著变化。本文详细探讨了 FreeBSD 7-CURRENT 中的实现和设计变化,以最大化从底层硬件提取网络性能。
由 2005 年优化 TCP/IP 募捐活动赞助
链接
联系人:Brooks Davis <brooks@FreeBSD.org>
联系人:Sam Leffler <sam@FreeBSD.org>
OpenBSD 重写的 dhclient 已被导入,取代了 ISC dhclient。OpenBSD 客户端提供了更好的无线网络漫游支持,并简化了操作模型。系统中不再是每个系统有一个 dhclient 进程,而是每个网络接口都有一个进程。当连接丢失时,该实例会自动消失,并在重新获取连接时通过 devd 重新启动。为了支持这一变化,网络接口配置过程的许多方面进行了彻底改造。
支持向 DHCP 配置的接口添加别名的功能已提交至 CURRENT,并将在 6.1-RELEASE 之前合并。很快将开始合并自初始导入以来 OpenBSD 的更新。
FreeBSD 7.0 的进一步接口配置增强工作正在进行中。
链接
联系人:Kip Macy <kip.macy@gmail.com>
在 -CURRENT 的 p4 分支中实现了完整的 domU 支持,除了挂起/恢复功能外。Dom0 的工作正在进行中。Scott Long 正在进行 xenbus 与 newbus 的集成。完成 newbus 集成后,将会进入 CVS。我希望看到它被 MFC 到 RELENG_6,以便 6.1 中可用。
待办事项:
从 Linux 移植后端驱动程序。
从 Linux 移植域管理工具。
向 loader(8) 添加多重引导支持,以支持 Xen 启动。
支持 SMP、x86_64 和 PAE。
链接
联系人:Rink Springer <rink@FreeBSD.org>
FreeBSD/xbox 支持接近完成。现已提供 nve(4) 以太网支持的补丁以及支持 syscons(4) 的控制台。我正在努力将这些集成到 CURRENT 中,同时也计划将它们回传到 6.x 版本。
正在进行的工作还包括支持 X.Org;欢迎具有更详细 X.Org 知识的人提供帮助。
待办事项:
在 X.Org 中启用帧缓冲支持
找到一种方法,在不使用 loader(8) 的情况下使用 mfsroots
Ports
FreshPorts
链接: http://www.freshports.org/
联系人:Dan Langille dan@langille.org
FreshPorts 最近迁移到了新的网络服务器。这应该会明显提高速度。
你可以在最近推出的 FreshPorts 博客中阅读关于新硬件的所有内容。这个博客将包含关于 Ports 以及它们在 FreshPorts 中所面临问题的技术讨论。网站公告将在此发布。发现的错误也会列出,并附上修复方法。
目前,支持多个平台和架构仍处于开发阶段。时间的不足影响了进展。
虚拟 Port 的修复正在进行中。我还将实施更多的缓存机制,以加快速度。如果你有兴趣讨论相关选项,请参与博客的讨论。
供应商/第三方软件
SysKonnect/Marvell Yukon 设备驱动程序
联系人:Karim Jamal support@syskonnect.de
该项目通过 yk(4) 驱动程序为 SysKonnect 的 SK-98xx、SK-95xx、SK-9Exx 和 SK-9Sxx PCI/PCI-Express 千兆以太网适配器提供支持,并通过 myk(4) 驱动程序为 Marvell 的 Yukon LOM 千兆以太网控制器提供支持。驱动程序源代码已提供给 FreeBSD 项目的部分成员。
杂项
针对移动 IPv6 路由优化的反应式和主动式切换的全面延迟分析
链接
联系人:Christian Vogt chvogt@tm.uka.de
为了减少移动 IPv6 路由优化以及 IPv6 路由器发现、地址配置和移动检测中固有的切换延迟,迄今为止,大多数优化都是单独考虑的。本文评估了三种集成解决方案,以在不同的前提下改善切换体验:使用未修改路由器的反应式切换、使用路由器支持的反应式切换,以及移动预测和主动式切换管理。
BSDCan 2006
联系人:Dan Langille <dan@langille.org>
我们已经开始了 BSDCan 2006 会议演讲的选择过程。我们新的 程序委员会 在接下来的几周将面临一个艰巨的选择任务。征集演讲稿的截止日期已过,但提交演讲的机会仍然存在。请参阅上述网址了解详细信息。在去年 正在进行中的工作 成功举办后,我们今年将再次举办这一活动。如果你正在从事一些工作,想要向世界展示,请考虑在 BSDCan 上进行 5 分钟的演讲。 BSDCan 2006 注册价格 将与 2005 年 相同。我们将再次在渥太华大学的 SITE 大楼举办会议,你将有很多机会与来自世界各地的人们交流。确保现在就安排你的旅行计划,不要错过今年最大的 BSD 活动:BSDCan 2006。
待办事项:
我们正在寻找志愿者,在会议前后帮助工作。请通过上述邮箱与 Dan 联系。
如果你有想要演讲的内容,请通过上述邮箱与 Dan 联系。
TCP/IP 优化筹款活动状态
链接:
联系人:Andre Oppermann <andre@freebsd.org>
此次筹款活动非常成功,我要感谢所有承诺支持并贡献的人们。在短短的时间内,我们筹集到了目标金额,甚至稍多。关于具体金额和赞助商的更多信息,请参见第一个链接。
由于 FreeBSD 6.0 版本发布周期的代码冻结,这个项目经历了一些延迟,但随着工作进展,已经完成了相关论文的撰写,并于 11 月 27 日在 EuroBSDCon 05 上做了关于“优化 FreeBSD IP 和 TCP 堆栈”的报告。请参阅该标题下的相关状态报告。
从 12 月 21 日到 1 月 11 日,我获得了对一台经过校准的 Agilent N2X 千兆测试仪和流量发生器的访问权限。在这段时间内,我们对 FreeBSD 7-current 进行了广泛的测试和性能分析。在与 Scott Long 的合作下,开发了首个概念验证优化。这一优化涉及将 Intel Gigabit 以太网 em(4) 驱动程序改造为使用快速中断处理程序、任务队列和无锁 RX 环处理。这一改进将性能从 570kpps 提高到 750kpps,提升了 25%,并启用了 IP 快速转发功能。
待办事项:
已进行大量性能分析和测量,详细的性能特征和剩余瓶颈报告正在准备中。
页面上描述的进一步优化和新功能。
最后更新于