FreeBSD 2006 年 10-12 月状态报告
原文链接:https://www.freebsd.org/status/report-2006-10-2006-12.html
引言
新年快乐!本报告涉及了 FreeBSD 开发的 2006 年最后一个季度。FreeBSD 6.2 终于发布,而向 FreeBSD 7.0 的工作也在加紧进行。本报告中的一些项目将成为这项工作的一部分,其他项目则已经进入源代码中。许多项目需要你的帮助,特别是在测试方面。有关更多信息,请参见“待完成任务”部分。
BSD 社群将在 3 月 8-10 日汇聚于东京举行的 AsiaBSDCon ,随后于 5 月 16-19 日在渥太华举行为期两天的 FreeBSD 开发者峰会 BSDCan。最后,EuroBSDCon 将于 9 月 14-15 日在哥本哈根举行,目前正在征集论文。
感谢所有报告者的出色工作!希望你喜欢阅读本报告。
链接:
联系人:Matteo Riondato <matteo@FreeBSD.org>
联系人:FreeSBIE 工作组 <staff@FreeSBIE.org>
联系人:FreeSBIE 邮件列表 <freesbie@gufi.org>
FreeSBIE 正接近 2.0-RELEASE。第一个发布候选版本证明已经足够好,但可能会发布第二个候选版本。一位外部开发者正在努力将 BSDInstaller 集成到 FreeSBIE 2.0 中,这可能会稍微延迟发布日期。版本说明已编写,并需要更新当前的包列表。已经添加了一个可以开关 Tor+Privoxy 的脚本,并对其使用进行了文档化。2.0-RELEASE 即将发布,预计在 1 月底前,但这也取决于 FreeBSD 6.2-RELEASE 的发布日期。
链接:ftp://ftp.cs.huji.ac.il/users/danny/freebsd/iscsi-2.0.1.tar.bz2
联系人:Daniel Braniss <danny@cs.huji.ac.il>
尽管它仍在进行中,但现在支持更多目标,具有登录 CHAP 认证和头部/数据摘要功能。它还能够从丢失的连接中恢复——大多数时候。
待办事项
工具化
任务管理支持
改进错误恢复
链接:http://imunes.tel.fer.hr/virtnet/
联系人:Marko Zec <zec@fer.hr>
网络堆栈虚拟化项目旨在扩展 FreeBSD 内核,以维护多个独立的网络状态实例。这将允许在一个系统中的 jail 之间实现完全的网络独立性,包括为每个 jail 提供独立的防火墙、虚拟网络接口、速率限制、路由表和 IPSEC 配置。
目前的原型虚拟化了基本的 INET 和 INET6 内核结构和子系统,包括 TCP 机制和 IPFW 防火墙。目前的重点是解决错误和偶发的锁死问题,以及定义内部和管理 API。预计在下一个月内,代码将变得足够完整和稳定,以供早期用户进行测试。
链接:
联系人:Hans Petter Sirevaag Selasky <hselasky@FreeBSD.org>
在过去的三个月里,USB 项目的活动并不多。一些回归问题已被报告并修复。Bernd Walter 报告说,他已将新的 USB 堆栈在 ARM 处理器上运行,只做了一些小的调整。Markus Brueffer 报告说,他正在处理 USB HID 解析器和支持。目前,新的 USB 堆栈存在一个问题,即 EHCI 驱动程序在 Sparc64 架构上无法工作。如果有人在 Sparc64 上运行 FreeBSD 7-CURRENT,并愿意借出 root 密码、串口控制台和 USB 测试设备(例如 USB 存储棒),我们将不胜感激。另一个未解决的问题是 ural(4) USB 设备驱动程序并非总是有效。这个问题目前正在处理。
如果你想测试新的 USB 堆栈,可以查看 perforce USB 树,或者从我的 USB 主页下载 USB 驱动程序的 SVN 版本。目前的压缩包有些过时。
关于新 USB API 的想法和评论欢迎发送至 freebsd-usb@FreeBSD.org。
链接:http://wiki.freebsd.org/Bugathons
联系人:Florent Thoumie <flz@FreeBSD.org>
效仿 NetBSD 朋友的做法,我们组织了几次 Bugathon 以帮助减少未关闭的 PR 数量。最初,决定将其作为月度活动,集中于源代码、Ports 和文档。随着每次 Bugathon 的组织,参与者逐渐减少,非 Ports 提交者的参与也越来越少。因此,从现在开始,我们将专注于 Port(将其称为 Portathon),并在每次 Ports 冻结结束后组织新的活动(每年最多两次)。
链接:
联系人:Pawel Jakub Dawidek <pjd@FreeBSD.org>
现在 ZFS 文件系统在 FreeBSD 上运行得相当不错。首个补丁集已经在 freebsd-fs@FreeBSD.org 邮件列表 发布。
所有的文件系统方法已经实现(除了与 ACL 相关的部分)。基本上,我尝试的所有压力测试都能通过,即使是在非常高负载下。仍然存在一个内存分配问题,可能会失控,但根据我所知,SUN 的开发人员也在处理这个问题。
最近,我一直在开发一个文件系统回归测试套件。据我发现,目前没有免费的此类测试套件。我已经有了超过 3000 个测试,并且正在测试大多数与文件系统相关的系统调用(chflags
、chmod
、chown
、link
、mkdir
、mkfifo
、open
、rename
、rmdir
、symlink
、truncate
、unlink
)。我还在努力使其可以在其他操作系统上使用(如 Solaris,已经可以工作,和 Linux)。
几天前,我也(几乎)完成了 NFS 支持。虽然目前还不能使用 zfs share
命令,但你可以通过 /etc/exports
导出文件系统,并且也可以访问快照。这相当困难,因为快照是独立的文件系统,在导出主文件系统后,我们还需要从其中提供快照数据。
一个重要的缺失功能是 ACL 支持。这不是一项简单的任务,因为我们首先需要做出一些决策。目前,我们在 UFS 中使用 POSIX ACL,但市场正缓慢转向 NTFS/NFSv4 类型的 ACL。在 Solaris 中,他们对 UFS 使用 POSIX ACL,对 ZFS 使用 NFSv4 类型的 ACL,我们可能也希望在 ZFS 中使用 NFSv4 类型的 ACL,这需要在 ZFS 之外做一些工作。
链接:
联系人:Robert Watson <rwatson@FreeBSD.org>
联系人:Christian Peron <csjp@FreeBSD.org>
联系人:Wayne Salamon <wsalamon@FreeBSD.org>
FreeBSD 6.2-RELEASE,FreeBSD 首次发布实验性审计支持版本现已发布。计划是在 FreeBSD 6.3-RELEASE 中使审计成为完整的生产功能,并默认编译 options AUDIT
。一个待办事项列表已发布到 trustedbsd-audit。
OpenBSM 1.0 alpha 13 发布了,支持 XML 记录打印、额外的 64 位令牌类型、更多的审计事件以及更强的跨平台构建支持。OpenBSM 1.0 alpha 14 将在不久后发布,增加了对使用 gcc 4.1 进行干净构建的警告支持。新的 OpenBSM 版本将在 1 月底或 2 月初合并到 FreeBSD CVS。
待办事项
完成将审计事件分配给非本地和一些剩余的本地系统调用。添加更多系统调用参数审计。
合并 MAC 框架钩子,允许 MAC 模块控制对内核审计服务的访问。完善并合并审计中的 MAC 标注支持,包括支持在审计记录中进行 MAC 注释。
完成通过用户空间服务添加审计支持,包括系统管理工具(和 ftpd)。与第三方软件维护者合作,向 xdm/kdm/gdm 等应用程序添加审计支持。
合并最新的 OpenBSM,包括 XML 输出支持。
链接:
[TrustedBSD 项目](http://www.trustedbsd.org/mac.html
联系人:Robert Watson <rwatson@FreeBSD.org>
联系人:<trustedbsd-discuss@TrustedBSD.org>
在此期间,除了与 priv(9) 项目相关的工作外,MAC 框架的主要工作集中在框架结构的完善上。
添加了两个新入口点,允许 MAC 框架策略模块授予或限制精细粒度的系统权限。
创建了一个示例的 mac_priv(4) 策略模块,演示了 MAC 框架策略模块如何授予特定用户特定的系统权限。
对 MAC 框架中的注释进行了大幅扩展。
修正了一个错误,原始的 ifnet 标签通过 ioctl 复制到用户空间,而不是线程本地副本。
删除了调试 sysctl
mac_enforce_subsystem
,因为一些策略依赖于访问控制检查,即使在非强制模式下(特别是与信息流相关的策略)。将 mac.h 头文件拆分为
mac.h
(用户 API,系统调用)和mac_framework.h
(MAC 框架的内核接口)。将非用户的 MAC 头文件从src/sys
移动到src/sys/security/mac
。将kern_mac.c
移动并拆分为mac_framework.c
和mac_syscalls.c
。现在,MAC 框架完全位于src/sys/security/mac
中。通过只读 sysctl 导出 MAC 框架版本,并提供一个 #define 版本供策略使用。
对 MAC 框架的锁定进行了优化,乐观地期望在读取锁定期间没有写锁冲突。
待办事项
现在,MAC 框架已完全迁移到
src/sys/security/mac
,开始进行mac2
接口清理,其中许多 MAC 框架入口点将重命名以保持一致性。这将需要大多数 MAC 框架策略模块在 FreeBSD 6.x 和 FreeBSD 7.x 之间进行修改,但可以通过使用 sed 进行大部分修改。为策略添加访问器函数,从标签中检索每个策略的标签数据,这样策略模块就不会编译 struct label 的二进制布局。这将允许未来对标签布局的优化。
完成审计和 MAC 支持的集成,允许 MAC 策略模块控制对审计接口的访问,并允许它们注释审计记录。
链接:
联系人:Robert Watson <rwatson@FreeBSD.org>
TrustedBSD 的 priv(9) 替代了 FreeBSD 7.x 中的 suser(9) 作为内核接口,用于检查权限。每个权限检查现在都需要一个特定命名的权限。这不仅允许将与权限相关的 jail 逻辑集中化(目前这些逻辑分散在内核中,每次调用 suser(9) 时都有相关代码),还允许通过 MAC 框架对权限逻辑进行仪表化。现在有两个新的 MAC 框架入口点,一个用于授予权限,另一个用于限制权限,从而为策略模块提供细粒度的内核权限控制。这为进一步完善和扩展内核权限模型奠定了基础。priv(9) 的实现已提交到 FreeBSD 7-CURRENT。
此软件由 Robert N. M. Watson 为 TrustedBSD 项目开发,合同方为 nCircle 网络安全公司。
待办事项
完成对内核权限检查的审查,移除现在已经集中化的 suser(9) Jail 参数。
探索可能的内核权限模型变更,参考 POSIX.1e 权限、Solaris 权限接口等。这也曾作为 TrustedBSD 能力项目的一部分进行过探索。
链接:
http://www.freebsd.org/doc/en/articles/pr-guidelines/
http://www.freebsd.org/doc/en/articles/problem-reports/
联系人:Mark Linimon <linimon@FreeBSD.org>
联系人:Ceri Davies <ceri@FreeBSD.org>
联系人:Remko Lodder <remko@FreeBSD.org>
FreeBSD Bugbusting 团队是一个志愿者团队,负责跟踪 GNATS 应用程序中的各种 PR 工单。目前,Bugbusting 团队正在调查旧的 PR 工单,检查它们是否仍然准确,检查需要做什么来修复报告的问题,并确保开发团队能够专注于最新版本的发布。
该团队始终需要志愿者提供帮助,以解决旧的工单并获取必要的反馈,以便为开放的工单提供最佳反馈。
如需了解更多关于需要做的事项,请联系 FreeBSD-bugbusters@FreeBSD.org。
待办事项
查看旧的 PR 工单,获取适当的反馈,并最终修复/解决这些工单。
链接:
http://www.freebsd.org/security/
http://www.freebsd.org/administration.html#t-secteam
联系人:安全官员 <security-officer@FreeBSD.org>
联系人:安全团队 <security-team@FreeBSD.org>
自上次状态报告以来,已发布了四个关于 FreeBSD 基本系统问题的安全公告(其中三个是在 2006 年发布的,另一个是在 2007 年发布的);其中一个问题出现在“第三方”代码中,其余三个问题出现在 FreeBSD 中维护的代码中。漏洞和曝光标记语言(VuXML)文档继续由安全团队和 Ports 提交者更新,记录 FreeBSD Ports 中的新漏洞;自上次状态报告以来,新增了 55 条记录,现总数达到 869 条。
为了简化安全团队的操作并确保及时确认收到的电子邮件,Remko Lodder 被任命为安全团队秘书。
FreeBSD 安全团队支持以下 FreeBSD 版本:FreeBSD 4.11、FreeBSD 5.5、FreeBSD 6.0、FreeBSD 6.1 和 FreeBSD 6.2。受支持版本的生命周期结束日期已列在网站上;特别需要注意的是,FreeBSD 4.11 和 FreeBSD 6.0 将在 2007 年 1 月底停止支持。
链接:
http://www.freebsd.org/releng/
http://www.freebsd.org/releases/6.2R/announce.html
http://www.freebsd.org/snapshots/
联系人:发布工程团队 <re@FreeBSD.org>
发布工程团队最近的工作集中在 FreeBSD 6.2-RELEASE 上,现已可以下载。这是 RELENG_6 分支的最新版本,包含许多新的性能和稳定性改进、错误修复以及新特性。FreeBSD 6.2 的发布说明和 errata 说明包含了该版本的新特性。我们感谢 FreeBSD 开发者和用户社区为使这个版本成为现实所做的努力。
发布工程团队还在 2006 年 11 月和 2007 年 1 月制作了 FreeBSD CURRENT 的快照。这些快照尚未经过广泛测试,因此不应在生产环境中使用。然而,它们可以用于测试或实验,并展示了未来 FreeBSD 版本中可能出现的功能。
链接:
联系人:Deb Goodkin <deb@FreeBSD.org>
FreeBSD 基金会在 2006 年结束时筹集了超过 100,000 美元。我们为秋季筹款活动承诺了额外的 55,000 美元捐款。虽然我们未能达到 200,000 美元的筹款目标,但我们正在努力在 2007 年初填补这一差距,以便继续为项目和社区提供相同水平的支持。请访问 http://www.freebsdfoundation.org/donate/ 了解如何向基金会捐款。
我们在网站上增加了一个捐赠者页面,以感谢我们的慷慨捐赠者。我们与 NLNet 和萨格勒布大学谈判,并正在积极管理一个联合技术项目,旨在为 FreeBSD 开发虚拟化网络堆栈支持。我们赞助了 AsiaBSDCon,并且现在接受该会议的旅行赞助申请。
我们正在努力升级项目的网络测试平台,配备 10 G 互联。思科公司慷慨捐赠了一台 10G 交换机,我们收到了 Myricom、Neterion、Intel 和 Chelsio 的网络适配器。我们正在向其他厂商征求适配器,以便进行互操作性测试。
有关我们所做工作更多信息,请查看我们的年终通讯:http://www.freebsdfoundation.org/press/2006Dec-newsletter.shtml。
链接:
联系人:Andre Oppermann <andre@FreeBSD.org>
通常,套接字缓冲区是静态的(要么来自全局默认值,要么通过 setsockopt
设置),并不适应实际的网络条件。这样会发生两种情况:a) 套接字缓冲区太小,无法充分利用两台主机之间的网络带宽;b) 套接字缓冲区太大,浪费了大量内核内存来存储闲置的数据。
通过自动 TCP 发送和接收套接字缓冲区大小调整,我们可以从一个小缓冲区开始,并随着 TCP 拥塞窗口的增大快速增长缓冲区,以适应实际的网络条件。
FreeBSD 默认的 32K 发送套接字缓冲区仅能支持在 100ms 往返时延的跨大陆链路上达到稍高于 2Mbit/s 的最大传输速率;而在 200ms 时延下,仅能达到 1Mbit/s。启用 TCP 发送缓冲区自动扩展后,默认值支持 100ms 时延下达到 20Mbit/s,以及在 200ms 时延下达到 10Mbit/s。这是一个 10 倍的提高,即 1000% 的增幅。接收端的默认 64K 缓冲区也有些改善。
自动发送缓冲区大小调整的补丁目前已在 FTP.FreeBSD.ORG 集群的一半节点上运行,没有发现任何问题。在启用了接收缓冲区自动调整补丁的这台机器上,我的下载速度达到了每秒 5.7 兆字节。而没有补丁时,下载速度最大仅为每秒 1.6 兆字节,因为延迟带宽积与静态套接字缓冲区大小相等,而未达到物理链路的限制。我的测试机器距离 FTP.FreeBSD.ORG 大约 35ms,并通过一个适度负载的 100Mbit 网络连接。
新增的 sysctl 参数如下:
net.inet.tcp.sendbuf_auto=1(启用)
net.inet.tcp.sendbuf_inc=8192(8K,步进大小)
net.inet.tcp.sendbuf_max=262144(256K,增长限制)
net.inet.tcp.recvbuf_auto=1(启用)
net.inet.tcp.recvbuf_inc=16384(16K,步进大小)
net.inet.tcp.recvbuf_max=262144(256K,增长限制)
链接:
联系人:George Neville-Neil <gnn@FreeBSD.org>
联系人:Bjoern Zeeb <bz@FreeBSD.org>
就在本周,我已使 FAST_IPSEC 和 IPv6 代码的路由功能工作。现在出现了内存冲突问题,接下来我们需要移除旧的 GIANT 锁。我希望在下周发布另一个补丁,届时路由代码将正常工作。
待办事项
测试补丁!!!
链接:
联系人:Paolo Pisati <piso@FreeBSD.org>
ipfw 中对内核 NAT、重定向和 LSNAT 的支持已经提交到 HEAD,并且我鼓励大家进行测试,以便我们能迅速发现和修复问题。
要将这些功能添加到 ipfw 中,请在内核配置中添加“options IPFIREWALL_NAT”,或如果使用模块,则在 make.conf 中添加“CFLAGS += -DIPFIREWALL_NAT”。
待办事项
教授 libalias 处理 mbufs(这将修复支持 TSO 的网卡)。
添加对硬件校验和卸载的支持。
链接:
联系人:Alexander Motin <mav@alkar.net>
联系人:Archie Cobbs <archie@FreeBSD.org>
MPD 正在进行下一次主要版本的发布——mpd4_0。10 月底发布了另一个 beta 版本 (4_0b5),并计划很快发布第一个 RC。
自 3_18 和 4_0b4 以来,已经修复了大量的 bug 和内部处理错误,性能有所提高,并且系统需求减少。
已经实现了许多新特性:
IPv6 支持
NAT(使用 ng_nat(4) 节点)
集成 Web 服务器
Deflate 和 Predictor-1 CCP 压缩
一些历史上存在问题的功能得到了重新实现:
TCP 和 UDP 链路类型
CCP 压缩
ECP 加密
为了支持压缩,创建了两个新的 Netgraph 节点 ng_deflate
和 ng_pred1
,并修改了 ng_ppp
节点。
待办事项
ng_ppp 节点重构。
在相关的 Netgraph 节点(
ng_ppp
、ng_pptp
、ng_async
、ng_deflate
、ng_pred1
、ng_vjc
等)中实现丢包通知,以减少恢复时间和不正确的数据包解压的可能性。MPD 认证子系统重构。
链接:
联系人:Sam Leffler <sam@errno.com>
无线网络支持的工作继续在公共 CVS 树中开发,同时其他工作也在开发者的 Perforce 仓库中进行。
最近,已为 HEAD 添加了对 4.9 GHz FCC 公共安全频段中半速和四分之一速率信道的支持。这项工作是为 Ubiquiti 的 SR9 卡在 900 MHz 频段中添加类似支持的前提。由于 net80211 层的设计,这一功能的添加相对简单,只需一些补充代码来处理频率与 IEEE 信道号之间的特殊映射。目前,ath(4) 驱动程序支持能够在半速和四分之一速率信道上运行的硬件。
Kip Macy 最近在准备传统驱动程序以适应重新架构的 net80211 层方面取得了重大进展,这些工作已经在 Perforce 中积压。经过他的努力,这些代码几乎准备好进行公开测试,测试完成后即可合并到 CVS 中。我们的目标是能够在 7.x 分支发布之前完成这一合并(否则将不得不等到 8.0 版本才会出现在公开发布中)。这个修订后的 net80211 层包括先进的站点模式功能,例如背景扫描、漫游和对 Atheros SuperG 扩展的支持。将修订后的扫描功能加入 CVS 将大大简化 Virtual AP (VAP) 代码作为补丁的公共发布,并启用 802.11n 支持的添加。
Benjamin Close 正在为常见于笔记本中的 Intel 3945 部件开发支持。这项工作正在 Perforce 仓库中进行,并会发布公共代码供测试。
Atheros PCI/Cardbus 支持已更新,配备新的 HAL,修复了一些小问题,并纠正了导致 AR2424 部件无法工作的 bug。新的 HAL 还使硬件密钥缓存的 TKIP 密钥使用更高效;在较新的硬件上,现在可以支持最多 57 个站点而不会导致密钥冲突。对最新 802.11n 部件的支持正在开发中,这些部件通常出现在新的 Lenovo 和 Apple 笔记本(等)中;初始发布将仅支持传统操作。
对 Atheros USB 设备的支持正在进行中。Atheros 已同意以与 HAL 相同的许可证授权其固件,这意味着它可以提交到树中,并作为发布的一部分进行分发。该驱动程序仍在开发中。
wpa_supplicant
和 hostapd
已更新为 Jouni Malinen 的最新稳定版本。很快,树内的代码库将切换到 0.5.x 版本,这将带来许多新功能,包括动态 VLAN 标签,这将在支持多 BSS 后特别有用。
已将对注入原始 802.11 帧的支持提交到 HEAD。这项工作是与 Andrea Bittau 合作完成的。目前没有计划将其提交到 STABLE 分支,因为它需要 API 更改。
链接:
联系人:Sam Leffler <sam@FreeBSD.org>
Michael Richardson 一直在领导工作,改进用于内核各部分(包括 Fast IPSec 和 geli)的加密子系统。这项工作由 Hifn 赞助,且已经在 CVS 仓库外进行。该工作的一个主要焦点是添加对高级硬件操作的支持,这可以显著提高 IPSec 和 SSL 协议的性能。
这些工作的成果现在正准备提交到 CVS。这些更改重新设计了核心/驱动程序 API,使用 kobj 功能,并将软件加密驱动程序重构为伪设备。这些更改大大提高了系统性能,并允许在多个加密设备可用时指定使用的加密设备。该重设计还将使加密工作在多个设备间进行负载均衡,并新增了虚拟加密会话的功能,在硬件设备的设置开销过高时,可以使用软件处理小型操作。
除了对核心加密系统的更改外,几个加密驱动程序也已更新,以改进它们的操作。最重要的是 hifn(4) 驱动程序,修复了许多长期存在的 bug,特别是针对 7955/756 部件。
链接:
联系人:Matthew Jacob <mjacob@FreeBSD.org>
一个基于 GEOM 的主动/被动多路径的玩具实现已经完成,并存放在 Perforce 仓库中。它似乎能够正常工作。
链接:http://wiki.freebsd.org/Interrupts
联系人:Paolo Pisati <piso@FreeBSD.org>
联系人:John Baldwin <jhb@FreeBSD.org>
联系人:Scott Long <scottl@FreeBSD.org>
中断过滤是一种新的中断处理方法,它在保持与先前模型(FAST 和 ITHREAD)向后兼容的同时,在某些方面进行了改进。通过中断过滤,中断处理程序被分为两部分:过滤器(检查实际中断是否属于某个设备)和私有的每个处理程序 ithread(当需要执行阻塞工作时调度该线程)。这项工作的主要优点包括:
来自过滤器的反馈(操作系统最终知道事件的状态,并能做出相应反应)。
对共享中断线的延迟/开销更低。
先前对中断过滤的实验显示,在某些情况下,相比简单的 ithread 模型,性能得到了提升。
机器相关代码的普遍缩减——部分中断处理代码被转化为机器无关代码。
在过去的一个季度中,进行了许多改进,目前报告称 3 个架构(i386、amd64 和 arm)已经可以正常工作,项目可以认为功能已完备。
我绝对希望将其作为 7.0 版本的一部分发布。
待办事项
制定将代码提交到树中的路线图。
重新考虑中断漂移的处理(?!?!)。
完成对 powerpc、sparc64 和 ia64 的支持(目前已知 sun4v 支持已损坏)。
链接:
联系人:Ariff Abdullah <ariff@FreeBSD.org>
联系人:Alexander Leidinger <netchild@FreeBSD.org>
联系人:多媒体邮件列表 <multimedia@FreeBSD.org>
自上次状态报告以来,针对高保真音频(HDA)兼容芯片的 emu10kx 驱动程序已进行了改进。现在支持更多芯片,且已支持的芯片提供了更好的零配置体验。
通用声音代码进行了非常好的低延迟更改和修复,使其更加多通道/字节序/格式安全。目前尚未支持多通道操作,但这项工作是实现多通道操作的前提。该工作还修复了一些可能导致点击声、跳跃、截断或类似声音输出行为的 bug。
目前没有计划将此代码合并到 5.x 或 6.x 版本,特别是因为涉及到 API/ABI 更改,例如,多个 sysctl 已发生变化。那些不关心这些变化的人,可以从 Ariff 的下载页面下载适用于 6.x 和 5.x 的二进制声音模块。
我们感谢所有测试更改或提交补丁的人员,他们帮助改进了声音系统。
待办事项
查看创意列表上的与声音相关的条目。
添加多通道支持。
sndctl(1):由用户控制声音系统非混音部分的工具(例如,spdif 切换、虚拟 3D 效果)(而不是使用 -CURRENT 中的 sysctl 方法);pcmplay(1)、pcmrec(1)、pcmutil(1)。
可插拔的 FEEDER 基础设施。为各种馈送组件的调试或作为用户空间库和测试套件提供便利。
扩展 Wiki 页面。
链接:
联系人:Alexander Leidinger <netchild@FreeBSD.org>
联系人:Roman Divacky <rdivacky@FreeBSD.org>
联系人:仿真邮件列表 <emulation@FreeBSD.org>
自上次状态报告以来,我们在改进兼容层环境方面取得了很大的进展。我们修复了超过 30 个 i386 测试用例(130 个测试用例中仍有 16% 失败)和超过 60 个 amd64 测试用例(140 个测试用例中仍有 17% 失败),这些测试属于 Linux 2.4 兼容性。以上数字对比了 FreeBSD 6.2 和 -CURRENT 版本。其中一些修复是错误处理中的边缘案例,有些则修复了实际问题——例如挂起——并提高了仿真的稳定性和正确性。
关于 Linux 2.6 兼容性,i386 仍有 140 个测试用例(17%)和 amd64 仍有 150 个测试用例(18%)在 -CURRENT 中失败。我们已经修复了一些阻碍实际应用的重大问题,待这些问题解决,我们应当能够更广泛地曝光 2.6 仿真,以发现更多的 bug 并确定我们尚未实现的 Linux 系统调用的重要性。
这些失败的测试用例的严重性各不相同,其中一些将永远无法修复。例如,我们永远无法将 Linux 内核模块加载到 FreeBSD 内核中,使用 Linux 命令添加交换区的优先级极低,而修复应用程序使用的 IPC 类型 17 的问题则具有较高优先级。
2.6 兼容性中的一些差异是由于并非所有 i386 的更改都已合并到 amd64 代码中,还有一些测试用例已经在我们的 Perforce 仓库中修复,但在提交到 -CURRENT 之前需要更多的审查。
我们需要更多的测试人员和 bug 报告者。因此,如果你有一点时间并且有喜欢的 Linux 应用程序,请在 -CURRENT 上进行测试。如果出现问题,请查看 Wiki 页面,看看我们是否已经知道此问题,并报告给 emulation@。我们特别关注有关 2.6 兼容性的报告(sysctl compat.linux.osversion=2.6.16),但仅限于最新的 -CURRENT 版本,可能还需要一些我们在 Perforce 仓库中的补丁(对于 amd64 是强制性的)。
我们感谢所有测试更改或提交补丁的人员,他们帮助改进了 Linux 兼容性环境。
链接:
http://perforce.freebsd.org/depotTreeBrowser.cgi?FSPC=//depot/user/benjsc/wpi
http://www.clearchain.com/wiki/wpi
联系人:John-Mark Gurney <jmg@FreeBSD.org>
基本音频捕获已完成。所有参数由用户空间设置,而 RISC 程序的生成则由内核完成。目前尚未捕获实际音频,因为还没有 NTSC 调谐器的驱动程序。拥有受 bktr(4) 支持的真实 Bt878 NTSC 卡的人可以使用此驱动程序捕获音频,而不需要使用声卡。
由于 DViCO 和 LG 缺乏文档,我已从 Linux 驱动程序中复制了幻数,成功地使 ATSC 捕获工作。捕获驱动程序中存在一个 bug,早早释放了缓冲区到用户空间,导致出现了类似接收问题的现象。现在我们使用 RISC 状态位作为缓冲区完成位,捕获过程已顺利进行。这意味着即使你提供了超过 4 个缓冲区,缓冲区也会被分成四个段,并分段返回。
现已提供 Python 模块,以及使用它的示例捕获应用程序。该模块现在已知在多线程中工作良好,这样调谐(由于 i2c ioctls 而非常消耗性能)可以在另一个线程中进行,而不会导致程序变慢。该模块在自定义 PVR 后端中工作良好。
已添加额外的 ioctls 用于获取兄弟设备。这使得可以打开一个 bktrau 设备,并获取正确的同一插槽中的 bktr(4) 设备。这对于调整 GPIO 引脚或发送 i2c 命令非常重要,以确保它们被发送到正确的设备。
待办事项
提供 NTSC 和 FM 调谐支持。
为使用 Bt878 芯片的其他卡和调谐器添加支持。
链接:
联系人:Benjamin Close <benjsc@FreeBSD.org>
NetBSD 的 wpi 驱动程序的初步移植已经完成,开发工作进展迅速,旨在让此驱动程序准备好合并到代码树中。目前,基本功能已经能够正常工作。驱动程序可以与非加密的对等设备关联,并在 11b 和 11g 模式下传输数据。仍有很多工作要做,欢迎进行更多测试。
特别感谢 Sam、Max 和 Kip 帮助驱动程序达到了这一阶段。
待办事项
解决总线 DMA 对齐问题
支持 WEP 和 WPA
测试和更多测试
链接:
联系人:Matthew Jacob <mjacob@FreeBSD.org>
“mpt” 项目旨在支持 MPT LSI-Logic 主机适配器(SCSI、光纤通道、SAS)。
上个季度,在 Yahoo!、LSI-Logic 及许多其他公司的支持下,进行了大量更改,并且 U320 的支持得到了更好的优化。John Birrel 和 Scott Long 提供了初步的 Big Endian 支持。
待办事项
完成 SAS 集成 RAID 支持。
尝试改善当前的 U320 RAID 性能。
完成 Big Endian 支持,包括目标模式的支持。
链接:
联系人:Matthew Jacob <mjacob@FreeBSD.org>
该项目旨在支持 QLogic SCSI 和光纤通道主机适配器。
上个季度,添加了 4Gb 光纤通道支持,并且对织网管理进行了完整重写(目前仍在优化中)。
链接:
联系人:Gábor Kévesdén <gabor@FreeBSD.org>
联系人:Giorgos Keramidas <keramida@FreeBSD.org>
Gábor Kévesdén (gabor@) 提交了匈牙利语网页翻译,Giorgos Keramidas (keramida@) 已审核并提交了这些页面。初步的渲染问题也已经修复,现在网页状态良好。
如常,这次翻译并未包含英文版的每个部分,但最重要和最有用的部分已被翻译。Gábor 将维护这份翻译,并定期与英文版同步内容,新增翻译部分(如有)。
待办事项
修正深度审查后暴露的拼写和错误。
吸引更多人参与。
链接:
http://www.freebsd.org/doc/nl/books/handbook
http://www.evilcoder.org/content/section/6/39/
http://www.freebsd-nl.org/doc/nl/
http://www.freebsd-nl.org/www/
联系人:Remko Lodder <remko@FreeBSD.org>
FreeBSD 荷兰文档项目是一个正在进行的项目,旨在将 FreeBSD 手册翻译成荷兰语。
目前,我们几乎翻译了整个手册,并翻译了网站的部分内容。遗憾的是,项目最近进入了停滞状态,因此我们正在寻找新的翻译人员,愿意加入团队继续努力。
待办事项
翻译剩余部分的手册。
更新文档内容。
翻译剩余的网页内容。
链接:
http://wiki.freebsd.org/SnmpBridgeModule
联系人:Shteryana Shopova <syrinx@FreeBSD.org>
联系人:Harti Brandt <harti@FreeBSD.org>
联系人:Bjoern A. Zeeb <bz@FreeBSD.org>
除了其他更详细的报告外,这篇报告旨在总结其他正在进行或即将进行的 BSNMP 相关工作。为了收集用户的想法并协调工作,创建了 BSNMP TODO Wiki 页面。请随时添加你的想法或告诉我们你的意见。
贡献者 Tsvetan Erenditsov 自愿为 BSNMP 实现 VLAN 模块,Shteryana 正在帮助他。
Sam Leffler 提出了无线网络监控模块的需求,这将很可能是下一个实现的模块。
目前,主 BSNMP 树中正在进行一些重大工作:
SNMP 传输已被分离为可加载模块。旧的端口表仍然存在,并且至少会保留到下一个版本发布。以后将会删除。以下模块和传输已实现为可加载模块:
snmp_trans_udp: 基于 UDP 的 SNMP,支持 IPv4、IPv6 和作用域 IPv6
snmp_trans_tcp: 基于 TCP 的 SNMP,支持 IPv4、IPv6 和作用域 IPv6
snmp_trans_ldgram: 基于本地数据报套接字的 SNMP
snmp_trans_lstream: 基于本地流套接字的 SNMP
一些 I/O 功能已从守护进程移至 libbsnmp。
libisa 已导入到 bsnmp 树中。该库旨在简化远程和本地系统管理命令行工具的实现,特别是通过 SNMP 进行管理。该库包含命令行解析功能和自动处理帮助文本的功能。实际的管理模块实现为可加载模块。FreeBSD 树中的 atmconfig 工具包含该库的一些旧部分。
lisa_snmp 是为 libisa 实现 SNMP 功能的模块。
lisa_snmpd 是用于远程管理 bsnmpd 的模块。
bsnmpd 的配置文件解析器已重写,现在每个文件部分都作为一个事务进行处理(与之前整个文件作为一个事务的行为不同)。
链接:
联系人:Shteryana Shopova <syrinx@FreeBSD.org>
FreeBSD 的 BSNMP 守护进程的 BSNMP 桥接模块是在 2006 年 SoC 期间实现的,并已提交到 HEAD。除了 RFC 4188 单桥支持外,它还支持通过私有 MIB 监控多个桥接。自 SoC 2006 起,还为该模块添加了快速生成树(RSTP)支持(RSTP-MIB 在 RFC4318 中定义,并且对私有 MIB 进行了扩展)。
RELENG_6 的补丁已经发布,并将在接下来的几周内合并到 STABLE 分支。
待办事项
将 MFC 合并到 RELENG_6。
随时欢迎更多用户反馈。
链接:
联系人:Shteryana Shopova <syrinx@FreeBSD.org> 联系人:Bjoern A. Zeeb <bz@FreeBSD.org>
在 2005 年编程之夏期间,BSNMP 客户端工具(bsnmptools)已实现,并且自那时以来通过 Shteryana 的 P4 树或 net-mgmt/bsnmptools Port 可用。
为了最终提交代码,需要进行一些清理工作,这导致了部分重写,以最小化重复代码并减少二进制文件的大小。这项持续工作可通过 Bjoern 的 P4 树获取,并将在合并回主分支之前进行上游提交。
待办事项
更新 Wiki 页面以反映最新的工作进展。
完成清理工作并进行审查。
欢迎随时提供用户反馈。
链接:
联系人:Joseph Koshy <jkoshy@FreeBSD.org>
Libelf 是一个 BSD 许可的库,用于 ELF 解析和操作,实施了 SysV/SVR4 (g)ELF[3] API。 当前状态:该库现已包含在 -CURRENT 中。工作仍在继续,主要集中在其测试套件、教程的完善以及将其部署到 PmcTools 中。
链接:
联系人:Olivier Houchard <cognet@FreeBSD.org>
联系人:Sam Leffler <sam@FreeBSD.org>
FreeBSD 正在多种 Gateworks Avila 板上运行多用户环境,并且大多数板载设备已得到支持。这些设备包括紧凑闪存/IDE 插槽、网络接口、实时时钟和环境传感器。已测试了几种不同的 minipci 卡,包括由驱动程序 ath(4) 和 hifn(4) 支持的卡。剩余的需要支持的设备是板载闪存、可选的 4 端口网络交换机和可选的 USB 接口。计划对 IXP425 部件进行加密加速,但可能会在稍后的时间进行。
网络处理器引擎(NPE)支持通过完全新的 Intel 访问层(IAL)替换实现。最重要的硬件功能已得到支持(例如硬件队列管理器),有线网卡驱动程序也已从头开始编写。最终的代码量约为相应 IAL 代码的十分之一。
待办事项
启动引导支持需要进行工作,以便从紧凑闪存设备启动。
链接:
联系人:Rafal Jaworowski <raj@semihalf.com>
联系人:Marcel Moolenaar <xcllnt@mac.com>
平台概述:
PowerQuiccIII 集成控制器
e500 CPU 核心
符合 PowerPC BookE 规范(与当前 FreeBSD/powerpc 支持的“传统” PowerPC 架构显著不同,特别是在 MMU 设计、异常模型、特定的 e500 指令集等方面)
目前,该机器正在启动 FreeBSD 6.1-RELEASE-p10,并支持单用户模式和多用户模式;以下是可用功能的亮点:
底层支持
从 U-Boot 引导加载器启动
locore 机器初始化
e500 异常
虚拟内存:开发了一个新的 pmap 模块
片上外设
引入了 ocpbus 层次结构(nexus 和子系统)
中断控制器:使用通用的 OpenPIC 驱动程序
串行控制台:使用 uart(4) 驱动程序
使用 QUICC 的 SCC 提供基本的串行支持
主机/PCI 桥:为内置桥开发了一个新驱动
网络:为 TSEC(3 速以太网)开发了一个新驱动
启动
从 ATA 磁盘和 USB 存储棒启动(都通过一个二级 PCI VIA82C686B 控制器)
从网络启动(通过 NFS 挂载的根文件系统)
基本的 TCP/IP 协议和应用程序工作(DHCP、NFS、SSH、FTP、Telnet 等)
用户空间
集成的软浮点仿真库(由于 e500 不配备传统的 PowerPC FPU,这个库是必需的)
几乎所有应用程序似乎都能正常工作
待办事项
制定可扩展的 sys/powerpc 架构目录布局,以便我们可以轻松地为未来的核心变种和平台添加支持。
与 FreeBSD 源代码树的集成。
版本发布和 Tinderbox 相关选项和设置。
链接:http://www.freebsd.org/gnome/
联系人:FreeBSD GNOME 项目 <gnome@FreeBSD.org>
我们去哪了?!显然不是在做状态报告。但 FreeBSD GNOME 项目一直在忙于定期的 GNOME 发布以及其他一些副项目。目前我们在 Ports 中提供 GNOME 2.16.2,并且正在测试 GNOME 2.17.5(位于 MarcusCom 树中)。
最近,我们完成了对 FreeBSD 后端的 libgtop 清理工作。这个模块一直需要大量的工作,现在应该能报告正确的系统统计信息。清理后的版本目前正在 MarcusCom 树中进行测试,并将在 GNOME 2.18 版本发布时一起进入 FreeBSD Port。
GStreamer 框架已从直接由 gnome@ 维护转移到新的 multimedia@ 维护组。这将为多媒体开发者提供与其他重要音频和视频组件合作的机会,共同推进 GNOME 桌面这一重要部分。
2006 年 FreeBSD GNOME 团队最大的成就可能是移植了 HAL。这一努力的启动旨在为 FreeBSD 用户提供更丰富的桌面体验。自从 GNOME 2.16 发布时首次在 FreeBSD 上引入 HAL 后,它已被集成到 FreeBSD 发布的 KDE 3.5.5 和 PC-BSD 1.3 中。FreeBSD 后端也已经提交到 HAL 的 git 仓库中,因此未来的 HAL 版本将会开箱即用地支持 FreeBSD。
最后,我们怀着遗憾的心情告别了团队成员之一。Adam Weinberger 因为优先事项问题(拯救生命)从 FreeBSD GNOME 团队辞职了!他设计的启动画面和对语法的挑剔将会被怀念。
待办事项
现在 HAL 已经成功移植到 FreeBSD,大家非常希望能看到 NetworkManager 也能移植过来。主要工作包括将 NM 移植到使用我们的 80211 框架,并扩展一些基本工具,如 ifconfig。如果你有兴趣帮助,请联系 marcus@FreeBSD.org。
我们的 system-tools-backends 模块需要一些关注。该模块负责 GNOME 中的系统配置任务,如用户管理、网络共享管理等。建议具备 Perl 知识。如果你有兴趣帮助,请联系 marcus@FreeBSD.org。
我们需要优秀的文档编写者来帮助更新我们的 FAQ 和其他文档。如果你愿意全职承担这一责任,或只是贡献一些内容,请通知 gnome@FreeBSD.org。
我们始终需要 GNOME 开发测试人员。请参阅我们的 开发分支 FAQ,了解如何帮助让下一个 GNOME 版本成为最好的版本。
链接:
联系人:Dan Langille <dan@langille.org>
在 2006 年的最后一个季度,FreshPorts 进行了多项改进。以下是其中的一些,链接会将你带到相关的 FreshPorts News 网站 中的文章。
更好的 分页 处理大结果集
列出了 有效性测试失败
将 最新的漏洞 放在首页
开始着手添加工具,以使 FreshSource/FreshPorts 更有用作为 开发工具
新的 双 Opteron 服务器 已经 部署完成
感谢多年来为 FreshPorts 提出建议、创意和代码的所有人。你们大多数人都被记录在上面的链接中。
待办事项
将 FreshPorts/FreshSource 作为开发工具
链接:
FreeBSD Ports 无法下载的 distfile 调查(Bill Fenner 的报告)
联系人:Mark Linimon <linimon@FreeBSD.org>
Port 数量已增加到 16347 个。尽管 PR 数量有所增加,但它已回落至约 700 个。
由于 6.2 版本的发布周期较长,Ports 基础设施的工作进展不大。然而,我们已进行多次测试,以确保 Ports 能够与新的 gcc(4.1)版本兼容,并且不再硬编码 /usr/X11R6
。后者的目的是将所有 Port 迁移到 $LOCALBASE,用户可以选择该路径。这将有助于未来的一致性,尽管这需要一次性转换。
在发布周期中,GNOME 已更新为 2.16。
此外,我们正在将 FORTRAN 的默认编译器从 f77 更改为 gfortran。详细信息请参见 Ports 邮件列表。
新的 xorg Port 仍在开发中;它们旨在都安装到 $LOCALBASE
中。希望在 6.3 开发周期的早期完成此项工作。有关更多信息,请查看维基。
我们提供了新版本的 Port Tinderbox 代码,这主要是一个修复版本。
我们还新增了 Pav Lucistnik 作为新的 portmgr 成员,期待他能帮助我们处理 portmgr PR 积压问题。欢迎他加入!
自上次报告以来,我们还新增了 8 名提交者。
Linimon 继续处理不再对其 Port 感兴趣的提交者,并为一些 Ports 的提交权限进行了保存。这是为了确保志愿者与待办工作的最佳匹配。
待办事项
剩余的大多数 Port PR 都是“已分配给提交者的现有 Ports/PR”。尽管维护者超时政策有助于保持积压量较低,但我们需要做更多的工作,以确保 Port 处于理想的状态。
尽管我们增加了许多维护者,但仍有许多未维护的 Port。此外,amd64 和 sparc64 上的包裹滞后。
链接:
联系人:Florent Thoumie <flz@FreeBSD.org>
联系人:Eric Anholt <anholt@FreeBSD.org>
联系人:Dejan Lesjak <lesi@FreeBSD.org>
X.org 7.2 版本已延迟一个多月,这为我们提供了更多时间来修复构建失败问题,解决一些运行时问题,并确定从 6.9 升级到 7.2 的最简单方法(主要得到 freebsd-x11@ 邮件列表 成员的帮助)。目前一切都已处于良好状态,但仍然有一些工作要做。新 Port 的合并很可能会在 1 月底之前完成。
待办事项
对原始树和实验树之间的差异进行全面审查(对于 git 用户,可以使用 git-diff origin xorg)。
修复剩余的构建错误(我认为还有 9 个,3 个与 lang/jdk 相关)。
继续进行测试。
在 pointyhat 上做另一次实验构建。
链接:
联系人:Dan Langille <dan@langille.org>
大家好!
又到了这一年了。你可能错过了征稿通知,但是请尽快提交你的提案。虽然这个时候通常比较忙,但请抽时间考虑在 BSDCan 上做演讲。
请阅读 提交说明,并尽快提交你的提案!
如果你对我们的姐妹会议有兴趣,可以了解一下 PGCon。如果你对 PostgreSQL 感兴趣,这个开源关系型数据库正是你所需要的,我们也有这个会议! PGCon 2007 将在 BSDCan 2007 之后立刻举行,地点相同,格式也相似。
待办事项
等待提交的论文
链接:
联系人:Sidsel Jensen <info@EuroBSDCon.dk>
第六届 EuroBSDCon 将于 2007 年 9 月 14 日星期五和 9 月 15 日星期六 在丹麦哥本哈根举行。会议将在 Symbion 科学园区 举办。9 月 16 日,参加者可以选择参加 LEGOland 的游览活动。
在 2006 年 11 月的米兰 EuroBSDCon 之后,我们发布了 征稿通知,摘要提交截止日期为 2 月 1 日!快点提交你所有精彩的论文,发送到 papers@eurobsdcon.dk。
最后更新于
这有帮助吗?