本报告涵盖了 2011 年 10 月至 12 月期间与 FreeBSD 相关的项目。这是计划中的 2011 年四个报告中的最后一个。本季度主要致力于为下一个主要版本 FreeBSD 9.0 打磨各项内容,该版本已于 2012 年 1 月初成功发布。
感谢所有报告者的出色工作!本报告包含 32 项内容,希望你能喜欢阅读。
请注意,涵盖 2012 年 1 月至 3 月期间的提交截止日期为 2012 年 4 月 15 日。
联系方式: Pawel Jakub Dawidek <pjd@FreeBSD.org>
FreeBSD 的安全事件审计功能目前的弱点是审计记录存储在本地,并且在系统被攻破后,攻击者可以修改或删除这些记录。
auditdistd 将允许通过 TCP/IP 网络将审计跟踪文件可靠且安全地分发到远程系统。在系统被攻破的情况下,它将使管理员能够在可信环境中分析审计记录。
该项目由 FreeBSD 基金会赞助,预计将于 2012 年 2 月底完成。
联系方式: David Chisnall <theraven@FreeBSD.org>
新增了两个库,libc++(提供 C++11 STL 实现)和 libcxxrt(提供 C++ ABI 规范实现)。通过在 src.conf 中添加 WITH_LIBCPLUSPLUS=yes 启用此功能。默认情况下未启用此功能,因为 libc++ 无法与基本系统中的 gcc 版本兼容,且需要使用 clang 构建。
待构建完成,你可以选择使用 GNU libstdc++ 或 libc++,方法是在编译和链接标志中添加 -stdlib=libc++ 或 -stdlib=libstdc++(使用 clang 构建时)。
如果你正在使用 head(或有一台空闲的 [虚拟] 机器可以尝试),请尝试使用 libc++ 构建你的 C++ 代码,并将任何失败报告给我,最好能提供简化的测试用例。
待办任务:
使用 libc++ 测试 Ports。希望大多数可以正常工作,但有些可能需要补丁或对 libstdc++ 有强依赖。
使 libstdc++ 动态链接到 libsupc++。这将允许我们使用 libmap.conf 在 libsupc++ 和 libcxxrt 之间切换。
默认启用 libc++ 的构建(希望在 9.1 版本中,当 clang 成为默认系统编译器时),并默认使用 libcxxrt 替代 libsupc++。
更多的测试。然后是更多的测试。
从基本系统中移除 libstdc++,并通过 Ports 提供以保持向后兼容性。
联系方式: Scott Ullrich <sullrich@gmail.com> 联系方式: Chris Buechler <cbuechler@gmail.com> 联系方式: Ermal Luçi <ermal.luci@gmail.com>
pfSense 是一个免费的开源定制化 FreeBSD 发行版,专为用作防火墙和路由器而设计。
2.0.1 版本刚刚发布,修正了多个问题 http://blog.pfsense.org/?p=633。
待办任务:
6 个月发布周期。
将构建移至 FreeBSD 9。
完全支持 IPV6。
PBI 包二进制文件。
Unbound 集成。
多实例 Captive Portal。
用 jQuery 替换 Prototype。
联系方式: Gábor Kövesdán <gabor@FreeBSD.org>
目前 libc 中的正则表达式代码必须被替换,因为它已经过时、无人维护,并且不支持宽字符。经过研究,TRE 是最合适的替代方案,它具有可接受的许可证。然而,BSD grep 的开发也带来了一些相关的观察。简而言之,尽管有一些优化模式匹配的可能性,但由于 POSIX API 的限制,它无法实现:
它使用以 NUL 终止的字符串,这要求处理每个字符,且使得长跳跃变得不可能。
它一次只能匹配一个模式。如果需要搜索多个模式,存在更高效的匹配方式,但我们必须提前知道所有模式并一起处理。
该项目旨在实现这些捷径,并为所有使用正则表达式匹配的程序提供高效的模式匹配。它还将有助于避免一些程序(如 GNU grep)中硬编码的自定义技巧,这些技巧用于绕过限制性的 POSIX API。此外,GNU grep 对 POSIX 正则表达式有一些扩展,如果我们最终想去除 GNU 代码,这些扩展是必要的。
待办任务:
实现多模式启发式正则表达式匹配。
实现 GNU 特定的正则表达式扩展。
使 BSD grep 适应多模式接口。
测试标准合规性和正确行为。
联系方式: Devin Teske <dteske@vicor.com>
2011 年 12 月 31 日,sysutils/sysrc 被添加到 Ports 中。2012 年 1 月 6 日,sysutils/host-setup 被添加到 Ports 中。sysutils/tzdialog 的添加仍在待定中。
这些工具一起或单独工作,旨在使系统配置更加简便和高效。
sysrc(8) 允许你安全地修改 rc.conf(5),无需担心或犹豫,使远程管理和脚本更改变得简单。它也很有用在管理 Puppet 安装中。
host-setup(8) 允许你通过 dialog(1)(或 Xdialog(1))界面配置时区、主机名、网络接口、默认路由/网关、resolv.conf(5) 中的 DNS 名称服务器。它旨在取代 sysinstall(8),完全用 sh(1) 编写,完全独立。
tzdialog(8) 是 tzsetup(8) 的一个 ISO-3166 兼容的 sh(1) 重写版本。它被设计为 tzsetup 的替代品。两者之间的主要区别是,tzdialog(8) 通过 Xdialog(1)(传递 -X
参数)支持图形用户界面,而 tzsetup(8) 仅支持基于控制台的交互。
待办任务:
为 tzdialog(8) 编写手册页。
将当前版本的 tzdialog(8)(1.1)及尚未完成的手册页提交到 Ports,作为 sysutils/tzdialog。
联系方式: Thomas Abthorpe <portmgr-secretary@FreeBSD.org> 联系方式: Ports 管理团队 <portmgr@FreeBSD.org>
ports 树终于突破了 23,000 个 Port。PR 数量仍然保持在约 1100。
在第四季度,我们增加了 4 名新的提交者,保管了 4 个提交权限,并且有一名提交者重新参与了 ports 工作。
Ports 管理团队持续进行 -exp 运行,验证基本系统更新如何影响 ports 树,同时为主要的 ports 更新提供质量保证(QA)运行。值得注意的是,-exp 运行已完成以下工作:
KDE4 和 cmake 更新
多次运行测试并修复由于 FreeBSD 10 版本号提升引发的问题
验证从 ports 中移除 X11BASE
测试导入 flex 和 m4 到 src 基础库后的 Port
对 bsd.ports.mk 进行优化
测试 xcb 更新并拆分成多个 Port
估算使用旧接口 ioctl 的 Port 数量
持续验证 pkgng 基础设施
使用 clang 作为默认编译器测试 Port
pkgng 现在支持真实的安全二进制升级,并且具有实际的完整性检查,工作已开始使 ports 树能够引导 pkgng。更多信息请参阅 CFT 邮件。
pointyhat-west 构建机器正在向生产使用迈进,代码更新使其更加灵活,如支持交换 make.conf 中的信息以适配构建从属机,协助 pkgng -exp 运行的测试,并正确构建 Port linux_base。
已决定将 ports 树从 CVS 迁移到 Subversion,由 beat@ 负责该项目。更多信息请见 wiki。
已经创建了一个用于 ports 相关公告的受控邮件列表,http://lists.FreeBSD.org/mailman/listinfo/freebsd-ports-announce,该列表旨在,也不限于,作为传达 portmgr@ 公告、测试请求及其他相关信息的方式,供我们的提交者和 Port 维护者社区使用。
待办任务:
寻求帮助使 Port 与 clang 编译兼容。
寻求帮助修复 CURRENT 上的破损 Port 。(此列表也需要更新)
寻求帮助处理 Tier-2 架构上的 Port 问题。
大多数 Port PR 已经分配,接下来需要专注于测试、提交和关闭。
http://www.freebsd.org/releng/
联系方式: 发布工程团队 <re@FreeBSD.org>
发布工程团队很高兴地宣布 FreeBSD-9.0 已于 2012 年 1 月 12 日发布。为了表彰 Dennis Ritchie 对计算机领域,尤其是对 FreeBSD 项目做出的巨大贡献,FreeBSD-9.0 被献给 Dennis Ritchie。愿他安息。发布工程团队还感谢 FreeBSD 开发人员和社区为发布做出的所有贡献。
随着 FreeBSD-9.0 发布周期的完成,我们的关注转向准备 FreeBSD-8.3 的发布。虽然尚未确定具体的发布计划,但我们预计将在 2012 年 3 月左右发布。
https://www.freebsd.org/status/www.FreeBSDFoundation.org
联系方式: Deb Goodkin <deb@FreeBSDFoundation.org>
最令人激动的消息是,我们通过筹款活动筹集了 426,000 美元。我们对 FreeBSD 社区的慷慨表示由衷感谢。感谢所有通过财务捐赠或在项目中志愿服务为 FreeBSD 做出贡献的人。
我们在 12 月发布了 半年通讯。如果你尚未阅读,请花一点时间阅读这份出版物,了解我们在 2011 年下半年如何支持 FreeBSD 项目和社区。通讯中还包含了来自 TaxiMagic 和 Apache 软件基金会的两篇精彩推荐信。
基金会赞助了 2011 年 10 月 6-9 日在荷兰举办的 EuroBSDCon 会议,并资助了六名开发者参加该会议。我们还赞助了 11 月份的 Bay Area Vendor Summit,并在 12 月 7-8 日的 LISA '11 会议上有代表出席。
我们很自豪地赞助了 2012 年的 AsiaBSDCon,该会议将于 3 月 22-25 日在日本东京举行。
基金会资助的墨尔本大学 Feed-Forward 时钟同步算法项目已完成。我们已批准了两个 2012 年的新项目,它们分别是由 Bjoern Zeeb 进行的 FreeBSD IPv6 栈性能分析和由 Pawel Jakub Dawidek 实现的 auditdistd 守护进程。
我们为 FreeBSD 的共同托管中心在 Sentex、NYI 和 ISC 购买了更多服务器和其他硬件。
以上工作以及我们为 FreeBSD 项目所做的许多其他任务,离不开捐赠的支持。请通过捐款或请求你的公司捐款来帮助我们。如果你需要营销资料,我们很乐意为你或你的公司提供。请访问我们的 捐赠页面 了解如何捐赠。
欲了解更多关于基金会的最新动态,请访问我们的 博客 和 Facebook 页面。
http://lists.freebsd.org/pipermail/freebsd-current/2012-January/031007.html
联系方式: Ken Merry <ken@FreeBSD.org>
CAM 目标层 (CTL) 现在已包含在 FreeBSD/head 中。
CTL 是一个磁盘和处理器设备仿真子系统,最初在 2003 年为 Copan Systems 在 Linux 上开发,2005 年起在 Copan(现为 SGI)的产品中使用。
它在 2008 年被移植到 FreeBSD,并且在 2010 年,SGI(收购了 Copan 的资产)与 Spectra Logic 达成协议,使得 CTL 可在 BSD 风格的许可证下使用。协议的目的是让 Spectra Logic 努力将 CTL 集成到 FreeBSD 树中。
预计它将在 2 月中旬并入 stable/9 树。
一些 CTL 特性:
磁盘和处理器设备仿真
标记队列
SCSI 任务属性支持(有序、队列头部、简单标签)
SCSI 隐式命令排序支持(例如,如果一个读取操作跟随一个模式选择,读取操作会被阻塞,直到模式选择完成。)
完整的任务管理支持(中止、LUN 重置、目标重置等)
支持多个端口
支持多个同时的发起者
支持多个同时的后端存储
持久保留支持
模式感知/选择支持
错误注入支持
高可用性支持 (1)
所有 I/O 都在内核中处理,没有用户空间上下文切换开销。
(1) 高可用性支持仅是一个 API 存根,仍需要大量工作才能完全实现。
关于配置和运行 CTL 的基本信息,请参见 FreeBSD/head 源树中的 src/sys/cam/ctl/README.ctl.txt。
联系方式: Bjoern A. Zeeb <bz@FreeBSD.org>
“无 IPv4”(前称“仅 IPv6”)项目最初在 p4 中进行原型设计,并在 2011 年初通过 FreeBSD 基金会和 iXsystems 的支持合并到 FreeBSD 主流版本,作为世界 IPv6 日的一部分,随后继续作为一个自由时间项目进行。感谢一位匿名贡献者的帮助,我们设置了专用的 i386 和 amd64 构建机器以及一个分发节点,以支持持续构建快照,并希望将来能扩展这些快照的支持,提供更多服务。
在 9.0 发布周期中,构建并发布了一个 BETA 和一个 RC 快照。FreeBSD 9.0-RELEASE 将是首个支持编译时去除 IPv4 支持的内核的官方版本。我们将提供(并且在撰写本文时已提供)一个与官方版本一起发布的无 IPv4 快照,并期待你的反馈。
我要特别感谢佐藤広生/allbsd.org 为亚洲社区提供的镜像支持,除了我在欧洲的镜像外。
待办任务:
提交/上游一些用户空间修复。
更多的用户空间清理和测试。
去除 gethostby*()
调用。
联系方式: Alexander Motin <mav@FreeBSD.org>
GEOM MULTIPATH 类经历了重大重写,修复了许多问题并改进了功能,具体包括:
改进了锁定和销毁过程,修复了崩溃问题。
改进了“自动”配置方法,通过从所有指定路径读取元数据来保证其安全性,写入一个路径后可以进行回读。
添加了“手动”配置方法,可以在不使用磁盘元数据的情况下工作。新增的“添加”和“删除”命令允许手动管理路径。
失败的路径不再从 GEOM 中删除,而是标记为失败并排除在 I/O 操作之外。可以在所有其他路径丧失或标记为失败时自动恢复失败的路径,例如因设备故障(非传输故障)导致的错误。新增“失败”和“恢复”命令以手动控制故障状态。
增加了 Active/Active 模式支持。与默认的 Active/Passive 模式不同,负载在所有有效路径之间均匀分配。如果设备支持,它可以显著提高性能,充分利用所有路径的带宽。通过创建时的 -A 选项进行控制。
增加了提供者大小检查,以减少与其他 GEOM 类冲突的机会。
GEOM 在最后一个提供者断开时会销毁。
改进了 status
和 list
命令的输出。
这些更改现在已提交到 FreeBSD HEAD 分支。计划在 9.0 发布后将其合并到 9-STABLE 和 8-STABLE 中。
此项目由 iXsystems, Inc. 赞助。
待办任务:
为 Active/Active 模式实现一些额外的请求排序机制。理论上,某些消费者可能不会等待先前的请求完成后才提交新的重叠或依赖请求。如果这些请求通过不同路径同时运行,可能会在设备上重新排序。
联系方式: Alexander Motin <mav@FreeBSD.org>
snd_hda(4) 驱动程序进行了重大重写:
原先庞大的 hdac 驱动程序被拆分为三个独立的部分:HDA 控制器驱动(hdac)、HDA CODEC 驱动(hdacc)和 HDA 音频功能驱动(hdaa)。所有驱动程序完全独立,只通过 NewBus 接口互相通信。使用更多的 NewBus 功能可以通过标准系统工具(如 devinfo -v
)更好地查看 HDA 结构。现在最大的驱动文件大小为 150K,而之前为 240K,代码也更加简洁。
增加了对多声道录音的支持。虽然我从未见过默认配置,但 UAA 规范表明这是可能的。现在,驱动程序会检查具有序列号 14 和 15 的引脚的输入关联,如果找到了(通常会找到)——像以前一样将信号混合在一起。如果没有,它会将输入关联配置为多声道。虽然我发现一些 CODEC 在配置为多声道录音时表现异常,但也有一些成功工作的例子。
改进了信号追踪器,用于查找 CODEC 中可以使用相同音频信号的多个 DAC/ADC 的情况。如果找到此类情况,驱动程序将为 pcm 设备注册额外的播放/录制流(通道)。拥有多个流可以避免使用虚拟通道(vchan),从而避免转换为虚拟通道的预配置采样率和格式。并非所有 CODEC 都支持此功能,尤其是在播放时,但某些 CODEC 支持。
实现了新的控制器流预留机制。这使得可以拥有比控制器支持的流更多的 pcm 设备(通常每个方向最多 4 个流)。现在它仅限制同时传输的音频流数量,这个数量很少达到,且待达到会正确报告。
通过一组可写的 sysctl 导出了 CODEC 引脚和 GPIO 信号的配置。另一个 sysctl dev.hdaa.X.reconfig
允许在运行时触发驱动程序重新配置。唯一的要求是所有 pcm 设备必须在此时关闭,因为它们将被销毁并重新创建。这应该大大简化修复 CODEC 配置的过程。现在甚至可以编写图形界面以便通过几次点击完成操作。
驱动程序现在解码引脚位置和连接器类型名称。在某些情况下,这可以提示用户 pcm 设备的连接器在系统机箱中的位置。现在还会报告 pcm 设备支持的通道数量(如果不为 2),这有助于更容易地找到它们。
该代码正在测试中,应该很快会提交到 HEAD 分支。
此项目由 iXsystems, Inc. 赞助。
待办任务:
计划对 HDMI/DisplayPort 音频进行更详细的检查。
需要对许多硬件(主要是笔记本电脑)进行兼容性调整。一些统计数据应该被收集,以便实现其中一些调整,避免过度膨胀的代码。
http://lists.freebsd.org/pipermail/freebsd-current/2012-January/031358.html
联系方式: Ken Merry <ken@FreeBSD.org> 联系方式: Kashyap Desai <Kashyap.Desai@lsi.com>
LSI 支持的 mps(4) 驱动程序已在 FreeBSD/head 中可用,支持其 6Gb SAS 控制器和 WarpDrive 固态硬盘。
除了支持 WarpDrive,该驱动程序还具有以下一些新特性:
集成 RAID (IR) 支持
改进的错误恢复代码
支持 SCSI 保护信息 (EEDP)
支持 TLR(传输级重试),这是磁带驱动器所需的
与 LSI 实用程序兼容的 ioctl 接口
感谢 LSI 为该驱动程序所做的工作和测试。
我计划在 2 月初将其合并到 stable/9 和 stable/8 中。
联系方式: Alexander Motin <mav@FreeBSD.org>
BIO_DELETE 支持(即 TRIM)已被添加到 CAM SCSI 直接访问设备驱动程序 (da)。
根据设备的不同功能,使用不同的方法来实现此功能。目前使用的方法可以通过 sysctl kern.cam.da.X.delete_method
进行读取/设置。可能的值包括:
NONE - 设备没有报告提供支持;
DISABLE - 由于错误,提供支持已被禁用;
ZERO - 使用 WRITE SAME (10) 命令写入零;
WS10 - 使用 WRITE SAME (10) 命令并设置 UNMAP 位;
WS16 - 使用 WRITE SAME (16) 命令并设置 UNMAP 位;
UNMAP - 使用 UNMAP 命令(相当于 ATA DSM TRIM 命令)。
最后两种方法(UNMAP 和 WS16)由 SBC 规范定义,UNMAP 方法是最先进的。其他方法我在 Linux 中找到了支持,并且由于它们实现起来很简单,所以为什么不呢?我希望它们在某些情况下会有所帮助。
作为获取逻辑块提供支持标志的副产品,da 驱动程序还支持通过 stripesize/stripeoffset GEOM 字段报告设备物理扇区大小(即高级格式)。对于已知的 4K 扇区磁盘,添加了一些特殊处理,以解决它们未正确报告的问题。
代码已提交到 HEAD 分支,并计划在一段时间后合并到 8/9-STABLE。
此项目由 iXsystems, Inc. 赞助。
待办任务:
为了实现更有效的最佳删除方法选择,还需要从设备获取更多参数。不幸的是,我目前所用的设备没有报告这些参数。
联系方式: Rick Macklem <rmacklem@FreeBSD.org>
新的 NFS 客户端和服务器不再被视为实验性,并且已成为 FreeBSD 9.0 的默认设置。包括对 NFSv4.0、NFSv3 和 NFSv2 的较为完整的支持。NFSv4.0 的委派功能默认未启用,因为服务器上对本地系统调用的处理尚未实现。到目前为止,过渡似乎还算顺利,仅有一些小的 obscure 问题未在 FreeBSD 9.0 中修复。有关这些问题的补丁可以在 http://people.FreeBSD.org/~rmacklem 找到。
NFSv4.1 客户端支持的工作正在进行中。当前的代码包括所需组件的正常功能支持,特别是前向和后向通道的会话支持。可选的大组件 pNFS 的开发正在进行中,希望几个月内能为文件布局提供功能支持。修改后的源代码可以在 http://svn.FreeBSD.org/viewvc/base/projects/nfsv4.1-client 中找到。
此外,还有一个针对我所称为 packrats 的补丁,这个补丁让线程在 NFSv4.0 客户端中进行积极的磁盘缓存。它目前似乎能够正常工作,但尚未实现客户端重启恢复功能,因此目前只能作为实验性功能使用。这个补丁可以在 http://people.FreeBSD.org/~rmacklem/packrat-patches 找到。
联系方式: Gleb Smirnoff <glebius@FreeBSD.org> 联系方式: Bjoern Zeeb <bz@FreeBSD.org> 联系方式: George Neville-Neil <gnn@FreeBSD.org>
经过显著更新的 CARP 协议已提交到 head/ 分支。我预计新代码将更容易维护且更少错误,因为它在网络栈中使用了更少的 hack。
新的 CARP 并没有带来很多新特性,但有以下几点:
可以在一个接口上设置单一冗余地址;
可以通过 ifconfig 切换主/备状态;
恢复了在 pfsync(4) 更新期间将 carp(4) 降级的功能(该功能在 7.0 中丢失);
ifconfig(8)
的输出现在更加可读,因为地址正好位于它们所在的接口上。是的,这也是一个功能 :)
该代码由 glebius@ 开发,并得到了 bz@ 的大量帮助。
待办任务:
处理 arpbalance/ipbalance 特性。由于我并没有使用这些功能,因此首先需要找人愿意测试这些功能并测试补丁。如果有人愿意资助该工作,也非常感谢。由 glebius@ 处理。
评估是否需要在数据报中添加降级计数器,跟进 OpenBSD 的做法。由 glebius@ 处理。
更新 tcpdump(8) 以便能够漂亮地打印 CARP 包。由 gnn@ 处理。
与 IANA 合作,为 CARP 协议分配官方协议号。由 gnn@ 处理。
http://www.wonkity.com/~wblock/igor/
联系方式: Warren Block <wblock@FreeBSD.org>
igor 是一款用于校对手册页、DocBook SGML 源文件和其他文本文件的程序,能够发现许多常见错误。
文件将被检测拼写错误、重复单词和空格问题。手册页还会检查其结构是否足够简洁,DocBook SGML 源文件则会检查格式和标签问题。
如果你编写或编辑 FreeBSD 文档,可以让 igor 帮助你检查文档的正确性。
待办任务:
找到一个测试或解析框架,能够更快或更好地完成工作,或者能够理解 DocBook 标签的状态。
添加更多测试。
提升程序速度。
联系方式: Benedict Reuschling <bcr@FreeBSD.org> 联系方式: Johann Kois <jkois@FreeBSD.org>
德文文档项目很高兴地报告,在过去的季度中有两个重要章节已完成翻译。第一个更新是防火墙章节,涵盖了完整的 IPFW 部分。此翻译由 Christopher J. Ruwe 贡献,虽然有一些语言风格上的修正工作,但他做了大部分翻译工作。我们非常感谢 Christopher 的贡献。
另一个被翻译的章节是新的 bsdinstall 部分。Benedict Reuschling 完成了该章节的工作,他尝试保持与 sysinstall 章节相同的标题(至少在可能的情况下)。
鼓励讲德语的用户阅读这两个章节并报告拼写错误或语法错误,以便我们进行修正。
德文网站正在定期更新。
待办任务:
跟进文档的最新更改。
将更多的 www 页面翻译成德文。
在德文文档中查找并修复 bug。
联系方式: 佐藤広生 <hrs@FreeBSD.org> 联系方式: Ryusuke Suzuki <ryusuke@FreeBSD.org>
在此期间,www/ja 子树中的许多过时内容已更新为英文版本的最新内容。手册中的 "bsdinstall" 部分已完成翻译,"cutting-edge" 部分目前正在进行中。
待办任务:
继续翻译过时的文档,包括 doc/ja_JP.eucJP 和 www/ja。
联系方式: Pau Amma <fduuvrzv@yahoo.com> 联系方式: Bjoern A. Zeeb <bz@FreeBSD.org>
大约一个月前,我开始在 FreeBSD/390 上工作,基于 Bjoern 提供的源代码。我的短期目标是将其与当前的 HEAD 版本同步,并编写一个最小的 IPLabel 加载器,这样我们就不需要依赖 Hercules 特有的命令来测试内核引导过程。
接下来,将是使交叉构建重新工作并使内核成功引导的阶段。
联系方式: Grzegorz Bernacki <gjb@semihalf.com> 联系方式: Rafal Jaworowski <raj@semihalf.com>
Marvell Armada XP 是一款完整的系统级芯片(SoC)解决方案,基于 Sheeva 嵌入式 CPU。这些设备集成了最多四个符合 ARMv6/v7 标准的 Sheeva CPU 核心,并且共享 L2 缓存。
该工作扩展了 FreeBSD/arm 基础设施,以支持最新的 ARM 架构变种,并为集成外设提供基本的设备驱动。
自上次状态报告以来,已实现以下功能:
SMP 支持
实现了 TLB 广播和 RFO
测试了 2 核心和 4 核心的 WT 缓存模式配置
集成并测试了 SATA 驱动
集成并测试了 CESA 驱动
接下来的步骤:
L2 缓存支持
完整支持 WB/WBA 缓存
联系方式: Grzegorz Bernacki <gjb@semihalf.com> 联系方式: Rafal Jaworowski <raj@semihalf.com>
APM86290 系统级芯片是 AppliedMicro 的 PACKETpro 系列嵌入式处理器中的一员。
该芯片包括两个符合 Book-E 规范的 Power Architecture PPC465 处理器核心,并且集成了多个外设。
该工作扩展了 FreeBSD 当前对 Book-E 的支持,旨在支持 PPC4xx 处理器变种,并为集成外设提供设备驱动。
自上次报告以来,已创建的驱动程序包括:
以太网控制器驱动
分类驱动
完成了队列管理器/流量管理器
提升了性能和稳定性
接下来的步骤:
L2 缓存支持
将 APM86290 支持合并到 -CURRENT 版本
联系方式: Michal Dubiel <md@semihalf.com> 联系方式: Rafal Jaworowski <raj@semihalf.com> 联系方式: Piotr Ziecik <kosmo@semihalf.com>
Freescale 的 QorIQ 数据路径加速架构(DPAA)是一种全面的架构,集成了 SoC 中所有与数据包处理相关的方面,解决了 QorIQ 多核 SoC 所带来的问题和需求。该架构包括:
核心
网络和数据包 I/O
硬件卸载加速器
促进上述组件之间数据流动的基础设施
DPAA 还解决了与性能相关的各种需求,特别是那些由多核 SoC 上的高速网络 I/O 引起的需求,例如 P2041、P3041、P5020 等。该工作旨在将 FreeBSD 移植到这些系统级芯片设备,并为集成外设提供设备驱动。
当前 FreeBSD 对 QorIQ DPAA 的支持包括:
QorIQ P2041 和 P3041 设备
E500mc 核心复合体
新核心的工具链适配
通过 U-Boot 引导加载程序引导
CoreNet 互联架构
L1、L2、L3 缓存
串口控制台(UART)
中断控制器
DPAA 基础设施(BMAN、FMAN、QMAN)
以太网(使用 DPAA 基础设施的独立模式进行基本网络功能)
EHCI 控制器
PCI Express 控制器(主机模式)
SMP 支持(最多四核)
I2C
接下来的步骤:
QorIQ P5020(32 位模式)支持
以太网(使用 DPAA 基础设施的常规模式进行完整网络功能)
增强 SDHC
联系方式: Konstantin Belousov <kib@FreeBSD.org>
对 Intel SandyBridge CPU 新特性的支持正在逐步推进。
已提交的补丁允许查询并启用扩展的 FPU 状态,这使得支持 YMM 寄存器和 AVX 指令集的处理器得以使用。待办事项包括在计划在一个月后将变更合并到 stable/9 之前,进行更广泛的测试,并开始使用 XSAVEOPT 指令来优化上下文切换时间。
已开发出启用并使用每进程 TLB 的补丁。最新版本可通过 http://people.freebsd.org/~kib/misc/pcid.2.patch 获取。文档中将该功能称为 PCID,它通过将 PID 标签应用到每个非全局 TLB 条目,避免在上下文切换时刷新 TLB。在 SandyBridge 上,测量表明,补丁和原生内核在上下文切换延迟上并无明显差异。
即将推出的 IvyBridge CPU 承诺提供以 INVPCID 指令为形式的优化,允许优化 TLB 清除处理程序。上面的补丁已在支持的 CPU 上使用了该指令。待办事项包括获取 IvyBridge 处理器并进行基准测试。
未来的工作可能包括提供 SEP 支持,使用 IvyBridge 的硬件随机生成器来支持 random(4),考虑使用更快的指令来访问 %fs 和 %gs 基址,并使用改进的 AES-NI 指令集来优化 aesni(4)。
联系方式: Gábor János PÁLI <pgj@FreeBSD.org> 联系方式: Ashish SHUKLA <ashish@FreeBSD.org>
我们很高兴宣布,FreeBSD Haskell 团队已将 Haskell 平台更新为 2011.4.0.0,并且已将 GHC 更新为 7.0.4,更新内容已经提交到 FreeBSD Haskell ports 仓库中。我们还增加了若干新的 Haskell ports,当前总数已超过 300 个。其中一些新添加的 ports 包括 Yesod、Happstack(Haskell 中流行的 Web 开发框架)、ThreadScope(用于并行 Haskell 程序的图形分析工具)。
由于 9.0-RELEASE 发布时的 ports 仓库冻结,这些更新目前尚未出现在官方 ports 树中。它们将在仓库解冻后提交到官方树中,在此期间,可以通过 FreeBSD Haskell ports 仓库访问。
待办事项
将待提交的 Haskell ports 提交到 FreeBSD ports 仓库。
测试 GHC 是否能与 clang/LLVM 一起工作。
为 lang/ghc port 添加一个选项,以便在已有 GHC 的情况下构建,而无需单独的 GHC 引导 tarball。
联系方式: Philip Gollucci <pgollucci@FreeBSD.org> 联系方式: Steve Wills <swills@FreeBSD.org>
目前正在进行的工作包括将剩余的 ruby- ports 转换为 rubygem-* ports,以便与 gem 社区保持同步。
我们将再次尝试将默认 Ruby 从 1.8 更改为 1.9。这个过渡过程中会有一些不可避免的损失。sysutils/rubygem-chef-server port 由 RideCharge Inc / Taxi Magic 提供,现在他们已经专门使用它。
待办事项
需要进行新的 -exp 运行,以检查新的状态,特别是与 ruby 1.9.3-p0 一起的状态。
http://www.freebsd.org/gnome
http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi/
联系方式: GNOME FreeBSD 邮件列表 <freebsd-gnome@FreeBSD.org>
我们已经有一段时间没有进行状态报告了。
今年,我们开始了 GNOME 3.0 的工作。然而,由于时间紧迫和人手不足,这个版本没有进入 ports。当前我们在开发仓库中有 3.2 版本。有关详细信息,请参见我们网站上的开发 FAQ。MC-UPDATING 文件中包含了升级说明。
目前 GNOME 团队人手不足,欢迎任何帮助!
待办事项
更新 FreeBSD GNOME 网站,提供 GNOME 3.x 信息,并继续提供 2.32.x 的信息。
联系方式: FreeBSD KDE <kde@FreeBSD.org>
KDE/FreeBSD 团队继续改善 FreeBSD 上 KDE 软件和 Qt 的体验。最近的改进包括:
上游修复,使 KDE 和 Qt 可以与 Clang 一起构建
修复 automoc 在并行构建时不会冻结
该团队还发布了多个版本并将许多修复和补丁上游提交。最近发布的版本包括:
KDE SC: 4.7.3,4.7.4(在 area51 实验仓库中)
Qt: 4.8.0(在 area51 实验仓库中)
CMake: 2.8.6,2.8.7
团队一直在寻找更多的测试人员和 Ports 维护者,请通过 kde@FreeBSD.org 与我们联系,并访问我们的主页 http://FreeBSD.kde.org。
待办事项
测试 KDE SC 4.8.0。
测试 KDE PIM 4.7.4。
测试 phonon-gstreamer 和 phonon-vlc,因为 phonon-xine 后端已经不再维护(但目前仍将保留在 ports 中)。
测试 Calligra 的 beta 版本(在 area51 仓库中)。
http://wiki.freebsd.org/HTPC
http://wiki.freebsd.org/HTPC
联系方式: Hans Petter Selasky <hselasky@FreeBSD.org> 联系方式: Jason Harmening <jason.harmening@gmail.com> 联系方式: Juergen Lock <nox@FreeBSD.org>
在 FreeBSD 上观看/录制数字电视的工作取得了进展:
multimedia/webcamd 正在不断增加对更多 USB 调谐器的支持,使用 Linux V4L/DVB 驱动程序(还包括通过 webcamd 和 comms/lirc 支持遥控器)。
multimedia/cx88 最近为基于 CX88 的 PCI(-e) DVB-T 调谐器增加了 Linux DVB API 支持,现在“常见”应用程序也可以与该硬件一起使用。
multimedia/xbmc-pvr 最近被提交,此外,multimedia/vdr ports 也支持观看/录制数字电视,此外,像 kaffeine、mplayer 或 vlc 等其他应用也能使用。
待办事项
继续将 VDR ports 更新为最新版本,并修复剩余的错误。
更新 multimedia/libxine 到最近发布的 1.2.0(VDR 使用此版本)。
测试更多硬件?
联系方式: Steve Wills <swills@FreeBSD.org> 联系方式: Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org>
许多 Perl 模块在 ports 中自带测试用例。这个项目的目标是确保所有这些测试都能通过。已经向 ports tinderbox 添加了补丁,以便安装与测试相关的依赖项,许多 ports 现在已经包含了 TEST_DEPENDS。希望提供帮助的用户可以使用补丁启用测试功能。所有 p5- ports 都已构建并尝试运行测试。目前,约有 61% 的 Perl ports 测试通过。许多 ports 已更新,包含了缺失的依赖项或进行了其他修改,使测试能够通过。长期目标包括为测试 ports 提供一个更通用的框架,并在更新 ports 时执行自动化测试。
待办事项
许多未通过测试的 Perl ports 仍待修复。
需要找出如何将测试移出 tinderbox。
正在等待一个补丁,旨在通过 -pthread 构建 Perl(但不启用 Perl 中的 useithreads),该补丁将修复许多当前无法通过的测试。
http://redports.org/
联系方式: Bernhard Froehlich <decke@FreeBSD.org>
Redports 是项免费服务,为 FreeBSD 的 port 维护者和提交者提供自动构建测试服务,支持多种 FreeBSD 版本和架构。之所以创建这个平台,是因为有许多人无法访问 Ports Tinderboxes,而现有的 Tinderboxes 通常是为某个特定团队专用的。
该平台在设计时考虑了可扩展性,但目前构建能力非常有限,直到更多硬件可用为止。我已经与相关人员联系,正在改进这一点。
待办事项
获取更多硬件以支持构建。
支持 Port 选项。
支持 ports-mgmt/portlint。
http://wiki.freebsd.org/Xorg
联系方式: X11 FreeBSD 邮件列表 <freebsd-x11@FreeBSD.org>
X11 团队已开始着手更新 X.Org ports 的下一个主要版本。你可能已经注意到,X.Org 栈中的库和 Port proto 已更新。目前,在我们的开发仓库中,我们已经有了包括 mesa 和 xf86-video-intel 在内的许多 Port 的最新版本。
我们为拥有适当硬件和补丁的用户支持 X.Org 树的 1.7.7 和 1.10.4 版本。
我们需要更多测试者来测试来自 xorg-devel 的标准版本和 WITH_NEW_XORG 版本。我们还需要测试更新后的输入/视频驱动程序,特别是那些不太主流的驱动程序。
要进行测试,请从 http://trillian.chruetertee.ch/ports/browser/branches/xorg-dev 检出我们的 svn 仓库,并使用来自 http://people.FreeBSD.org/~miwi/xorg/xorgmerge 的合并脚本。更多细节请参见我们的 Wiki。
待办事项
调查 xorg-server 1.12,该版本引入了 xinput 2.2。
在更多测试后,将开发仓库合并到主仓库中。