# FreeBSD 2012 年第一季度状态报告

* 原文链接：<https://www.freebsd.org/status/report-2012-01-2012-03.html>

## 引言

本报告涵盖了 2012 年 1 月至 3 月期间与 FreeBSD 相关的项目。这是计划中的四个报告中的第一个。这个季度的亮点是 FreeBSD 9.0 的发布，它最终在 2012 年 1 月初发布。FreeBSD 项目将 FreeBSD 9.0-RELEASE 献给 UNIX® 操作系统的创始人之一 Dennis M. Ritchie。我们的发布工程团队还忙于准备 8.3-RELEASE，这在 4 月公开发布。

感谢所有报告员的出色工作！本报告包含 27 个条目，我们希望你喜欢阅读。

请注意，提交覆盖 2012 年 4 月至 6 月期间的报告的截止日期是 2012 年 7 月 15 日。

## [项目](https://www.freebsd.org/status/report-2012-01-2012-03.html#Projects)

### [FreeBSD 服务控制](https://www.freebsd.org/status/report-2012-01-2012-03.html#FreeBSD-Services-Control)

| 链接                                          |
| ------------------------------------------- |
| <http://people.freebsd.org/\\~trhodes/fsc/> |

联系人：Tom Rhodes <<trhodes@FreeBSD.org>>

经过一段时间的调整和换工作，我终于回到了这个项目（也感谢 Julian Fagir 的多次提交），新版本已经上传，并附有简短的描述页面。当前版本支持更多选项、配置文件以及更新的 rc.d 脚本。它还包括手册页面的更新和一个可选的调试模式。

### \[GNU-Free C++ 11 栈]\(<https://www.freebsd.org/status/report-2012-01-2012-03.html#GNU-Free-C++> 11-Stack)

联系人：David Chisnall <<theraven@FreeBSD.org>>

自上次状态报告以来，libc++ 和 libcxxrt 的组合进行了额外的测试，并获得了一些新特性，包括对 ARM EABI 的支持。在 clang 3.1 中，我们现在通过了所有的 C++ 11 原子操作测试。

xlocale 实现（libc++ 所需）已通过一系列最初为 Darwin 实现编写的 Port 进行测试，并修复了这些测试中发现的错误。这将在 9.1 中发布。

在-CURRENT 中，我们现在将 libsupc++ 构建为共享库。这提供了 ABI 层，并且将其构建为共享库意味着我们可以轻松地用 libcxxrt 替换它。如果你正在运行 -CURRENT，请尝试使用 libmap.conf 来启用 libcxxrt 而不是 libsupc++ 。

如果 libstdc++ 正在使用 libcxxrt，现在你可以链接同时使用 libstdc++ 和 libc++ 的库，从而使迁移变得稍微容易一些，尽管你不能在使用不同 STL 版本的库之间传递 STL 对象。

我们仍然需要替换 libgcc\_s 的某些部分以及链接器，但我们正在朝着在 10.0 中实现一个 BSD 许可证的 C++ 栈的方向前进。

#### 待办事项

1. 使用 libc++ 测试 Port。希望大多数 Port 能正常工作，但其他 Port 可能需要补丁或对 libstdc++ 有硬性依赖。
2. 默认启用构建 libc++ 。这依赖于使用 clang 进行构建，因为基本系统中的 gcc 版本不支持 C++ 11，因此不能用于构建 libc++ 。
3. 从基本系统中删除 libstdc++ ，并通过 Port 提供以支持向后兼容性。

### [在线扩展文件系统](https://www.freebsd.org/status/report-2012-01-2012-03.html#Growing-filesystems-online)

联系人：Edward Tomasz Napierala <<trasz@FreeBSD.org>>

该项目的目标是使得能够在文件系统已挂载为读写时扩展文件系统，包括 UFS 和 ZFS。这涉及到对两种文件系统、GEOM 基础设施和 da(4) 驱动程序的更改。为了测试，我还为 mdconfig(8) 添加了调整大小功能，并在 CAM 目标层实现了 LUN 大小调整。

从系统管理员的角度来看，这使得可以使用 gpart(8) 调整已挂载分区的大小，然后使用 growfs(8) 扩展其上的文件系统—所有这些都无需先卸载它；特别是在根文件系统的情况下非常有用。

所有功能都已实现，并正在完善、审核并合并到 HEAD 中。

该项目由 FreeBSD 基金会赞助。

#### 待办事项

1. 实现的写挂起基础设施（`/dev/ufssuspend`）使得调整大小成为可能，同时也使得实现在线的 tunefs(8) 和 fsck(8) 成为可能。
2. 目前，GEOM 类无法否决调整大小—类会接收到调整大小通知，它们可以适应或退化。许多类将其元数据存储在最后一个扇区，因此调整包含例如 gmirror 的分区大小将使其无法使用。如果 geom\_mirror(4) 能够否决调整大小，将会很有帮助，这样试图做出不当操作的管理员会得到警告。

### [FreeNAS 项目](https://www.freebsd.org/status/report-2012-01-2012-03.html#The-FreeNAS-Project)

| 链接                        |
| ------------------------- |
| <http://www.freenas.org/> |

联系方式：Josh Paetzel <<jpaetzel@FreeBSD.org>>\
联系方式：李鑫 <<delphij@FreeBSD.org>>

FreeNAS 8.0.4 上个月发布，标志着 FreeNAS 8.0.x 分支的结束。

FreeNAS 8.2.0 当前处于 BETA 阶段，预计将在 4 月底之前发布。

它相比 8.0.x 系列带来了许多改进，包括插件支持（可以在 jail 中运行任意软件），以及命令行 ZFS 和 GUI 之间的更好集成。

8.2.0 发布后，8.3.0 将紧随其后，届时将包括多个驱动更新和期待已久的 ZFS v28。

## [用户空间程序](https://www.freebsd.org/status/report-2012-01-2012-03.html#User-land-Programs)

### [Clang 替代 GCC 成为系统编译器](https://www.freebsd.org/status/report-2012-01-2012-03.html#Clang-Replacing-GCC-in-the-Base-System)

| 链接                                                                      |
| ----------------------------------------------------------------------- |
| [使用 Clang 构建 FreeBSD](http://wiki.freebsd.org/BuildingFreeBSDWithClang) |

联系方式：Brooks Davis <<brooks@FreeBSD.org>>\
联系方式：David Chisnall <<theraven@FreeBSD.org>>\
联系方式：Dimitry Andric <<dim@FreeBSD.org>>\
联系方式：Ed Schouten <<ed@FreeBSD.org>>\
联系方式：Pawel Worach <<pawel.worach@gmail.com>>\
联系方式：Roman Divacky <<rdivacky@FreeBSD.org>>

FreeBSD 10.0-CURRENT 和 9.0-STABLE 当前都默认安装了 Clang 3.0 版本。至少在 10.0-CURRENT 上，整个系统和 GENERIC 内核都可以在没有任何 -Werror 警告的情况下完全构建。这可能对于某些定制的内核配置尚不适用。

从 r231057 开始，src.conf(5) 中添加了 WITH\_CLANG\_EXTRAS 选项，这将启用一些额外的 LLVM 和 Clang 工具，如 'llc' 和 'opt'。这些工具主要用于需要操作 LLVM 位码（.bc）和 LLVM 汇编语言（.ll）文件，或希望自己动手调整 LLVM 和 Clang 的用户。

此外，从 r232322 开始，src.conf(5) 中新增了选项 `WITH_CLANG_IS_CC`，这将使 Clang 安装为 `/usr/bin/cc`、`/usr/bin/c++` 和 `/usr/bin/cpp`，将其作为默认的系统编译器。除非同时使用选项 `WITHOUT_GCC` ，否则 gcc 仍然会作为 `/usr/bin/gcc`、`/usr/bin/g++` 和 `/usr/bin/gcpp` 可用。

我们的目标是尽早启用此选项，以便开始准备在 10.0-RELEASE 中将 Clang 作为默认的系统编译器，并逐步弃用 gcc。

另外，由于上游 LLVM/Clang 已宣布将在 2012 年 4 月 16 日分支 3.1 版本，我们将很快导入一个新的 Clang 快照。实际的 3.1 版本可能会在几周后发布，然后我们会再进行一次导入。

最后，很多开发者正在为确保我们的 ports 能在 Clang 下正常编译而努力。现在已经定期检查和提交了修复补丁，并且也定期进行了完整的 Clang 编译测试。当然，仍然存在一些难题，尤其是对于一些非常旧的软件，连新版 gcc 都无法编译，更不用说 clang 了。

#### 待办任务

1. 当前最重要的任务是尽可能在 Clang 下构建和运行整个 FreeBSD 系统。任何编译时或运行时的问题应报告到相应的邮件列表，或者提交为 PR。如果有补丁和/或解决方法，当然更好。
2. Clang 在 3.0 之后应该获得了更好的交叉编译支持，因此待导入 3.1 版本，我们将需要探索如何使 FreeBSD 的系统和内核进行交叉编译。这主要适用于 ARM 和 MIPS 等架构，这些架构通常不适合在本地编译。
3. 帮助那些不愿意与 Clang 一起编译的 ports 也是一个始终需要并且非常感激的任务。请将补丁发送给你喜欢的 port 的维护者，或者提交 PR。

### [替换正则表达式代码](https://www.freebsd.org/status/report-2012-01-2012-03.html#Replacing-the-Regular-Expression-Code)

| 链接                                                                               |
| -------------------------------------------------------------------------------- |
| [项目仓库](http://svnweb.freebsd.org/base/user/gabor/tre-integration/)               |
| [TRE 官方网站](http://laurikari.net/tre/)                                            |
| [相关论文](http://www.tdk.aut.bme.hu/Files/TDK2011/POSIX-regularis-kifejezesek1.pdf) |

联系方式：Gábor Kövesdán <<gabor@FreeBSD.org>>

自上次报告以来，TRE 的优化取得了显著进展。多模式启发式代码已基本完成，它通过区分多个不同的情况来加速模式匹配。它从原始模式中提取字面片段，并使用多模式匹配算法查找任何出现。GNU grep 使用 Commentz-Walter 算法，这是一种基于自动机的算法，而在本项目中，决定使用 Wu-Manber 算法，它更加高效且更容易实现。在当前状态下，它还没有完全实现，某些情况，如 REG\_ICASE 标志，尚未覆盖。这是完成多模式接口的下一步主要任务。在开发分支中，BSD grep 已经被修改为使用这个新接口，以便用于测试和调试。

#### 待办任务

1. 完成多模式启发式正则表达式匹配。
2. 实现 GNU 特定的正则表达式扩展。
3. 测试标准合规性和正确行为。

### bsdconfig(8) 工具

| 链接                                                                               |
| -------------------------------------------------------------------------------- |
| [开源开发树](http://druidbsd.cvs.sf.net/viewvc/druidbsd/bsdconfig/)                   |
| [带包含项的菜单图](http://druidbsd.sf.net/download/bsdconfig/bsdconfig-20120512-1.svg)   |
| [不带包含项的菜单图](http://druidbsd.sf.net/download/bsdconfig/bsdconfig-20120512-1i.svg) |

联系方式：Devin Teske <<dteske@FreeBSD.org>>\
联系方式：Ron McDowell <<rcm@fuzzwad.org>>

bsdconfig(8) 工具的代码行数接近 20,000 行，完成度约为 70%。项目完成后，bsdconfig(8) 将与已存在的 bsdinstall(8) 一同，提供一套完整的工具，能够有目的地逐步淘汰 FreeBSD 9 及更高版本中的 sysinstall(8) 。这是 Ron McDowell 和我花费超过 90 天时间的心血之作，现已接近完成这一令人激动的工具。

#### 待办任务

1. 完成用于获取/安装二进制包和附加发行版集的“安装程序套件”模块。启动服务模块。

## [FreeBSD 团队报告](https://www.freebsd.org/status/report-2012-01-2012-03.html#FreeBSD-Team-Reports)

### [发布工程团队状态报告](https://www.freebsd.org/status/report-2012-01-2012-03.html#Release-Engineering-Team-Status-Report)

| 链接                               |
| -------------------------------- |
| <http://www.freebsd.org/releng/> |

联系方式：发布工程团队 <<re@FreeBSD.org>>

代表 FreeBSD 项目，发布工程团队很高兴宣布 FreeBSD 8.3-RELEASE 将于 2012 年 4 月 18 日发布。

随着 FreeBSD 8.3 发布周期的完成，我们的重点转向准备 FreeBSD 9.1-RELEASE。计划将很快公布，预计发布日期为 2012 年 7 月中旬。

### [FreeBSD 基金会团队报告](https://www.freebsd.org/status/report-2012-01-2012-03.html#The-FreeBSD-Foundation-Team-Report)

| 链接                                                         |
| ---------------------------------------------------------- |
| <https://www.freebsd.org/status/www.FreeBSDFoundation.org> |

联系方式：Deb Goodkin <<deb@FreeBSDFoundation.org>>

基金会赞助了 2012 年的 AsiaBSDCon，该活动于 3 月 22-25 日在日本东京举行。我们还在 1 月 21 日参加了 SCALE 会议，并将在 3 月 17 日参加 NELF 会议。这个季度，我们计划参加 4 月 14 日的 ILF（印第安纳州 LinuxFest），5 月 11-12 日的 BSDCan 会议，以及 6 月 9 日的 SELF（东南 LinuxFest）。

我们自豪地成为 BSDCan 2012 的黄金赞助商，该会议将于 5 月 11-12 日在加拿大渥太华举行。我们将赞助 14 名开发人员参加会议。

我们启动了三个基金会资助的项目——Edward Tomasz Napierala 的“在线扩展文件系统”，Pawel Jakub Dawidek 的“实现 auditdistd 守护进程”，以及 Semihalf 的“支持 NAND Flash”。

我们高兴地 [宣布](http://www.freebsdfoundation.org/announcements.shtml) George Neville-Neil 加入我们董事会。我们的运营总监 Deb Goodkin 接受了 [bsdtalk](http://bsdtalk.blogspot.com/) 的采访。

我们宣布了项目提案的征集通知。我们将在 4 月 30 日之前接受提案。请阅读 [项目提案程序](http://www.freebsdfoundation.org/documents%20/FreeBSD%20Foundation%20Proposals%20March%202012.pdf) 以了解更多信息。

FreeBSD 9.0 已发布，我们很自豪地表示，我们资助了其中的 7 个新功能！

## [内核](https://www.freebsd.org/status/report-2012-01-2012-03.html#Kernel)

### [linux 兼容层的 DTrace 探针](https://www.freebsd.org/status/report-2012-01-2012-03.html#DTrace-Probes-for-the-linuxulator)

联系方式：Alexander Leidinger <<netchild@FreeBSD.org>>

最近，内核中的 DTrace 功能得到改进，可以在加载 dtrace 模块后加载具有静态 dtrace 提供程序的内核模块。这使我能够将专门针对 linux 兼容层的静态提供程序工作提交到 -CURRENT。

结合 linux 兼容层 DTrace 探针，我开发了一些 D 脚本，用于检查 linux 兼容层中的各种代码路径。这些脚本检查了各种错误情况，这些情况可能对验证用户空间代码很有意义，也涉及到 linux 兼容层内部的情况，例如锁。

截至此文发布时，我正在将测试机更新到更近期的 -current 版本，以准备提交。

### [HDA 声卡驱动（snd\_hda）中的 HDMI/DisplayPort 音频支持](https://www.freebsd.org/status/report-2012-01-2012-03.html#HDMI/DisplayPort-Audio-Support-in-HDA-Sound-Driver-\(snd_hda\))

联系方式：Alexander Motin <<mav@FreeBSD.org>>

snd\_hda(4) 驱动程序进行了多项改进，以更好地支持 HDMI/DisplayPort 音频，包括：

* 从 CODEC 和视频驱动程序中获取类似 EDID 的数据，描述显示设备的音频能力。
* 添加了设置 HDMI/DP 特定 CODEC 选项的功能，例如通道数、扬声器配置和通道映射。
* 添加了对更多多通道格式的支持。现在支持的 HDMI 和 DisplayPort 设备格式包括：2.0、2.1、3.0、3.1、4.0、4.1、5.0、5.1、6.0、6.1、7.0 和 7.1 通道。
* 添加了对压缩流直通（数据速率 6.144 - 24Mbps）的支持，例如 DTS-HD Master Audio 或 Dolby TrueHD。
* 添加了对 HDA 总线多路复用的支持，以处理更高的数据速率（最多 92、184 或更多 Mbps，取决于硬件能力）。它使得可以同时处理多个 192/24/8 LPCM 播放流。

上述功能已在 NVIDIA GT210 和 GT520 显卡上通过 nvidia-driver-290.10 驱动程序成功测试。旧款 NVIDIA ION 和 Geforce 8300 板上的 HDMI 音频仍无法正常工作，原因尚不清楚。关于最新的基于 KMS 的 Intel 显卡驱动程序也有成功报告。ATI 显卡的支持仅限于旧款显卡，因为支持新显卡的驱动程序不支持 HDMI 音频。

该代码已提交到 HEAD 并合并到 9-STABLE 分支。

该项目由 iXsystems, Inc. 赞助。

#### 待办任务

1. 更好地利用接收到的类似 EDID 的数据。
2. 识别并修复旧款 NVIDIA 显卡的问题。

### [改进的 MIPS 架构 hwpmc(9) 支持](https://www.freebsd.org/status/report-2012-01-2012-03.html#Improved-hwpmc\(9\)-Support-for-MIPS)

联系方式：Oleksandr Tymoshenko <<gonzo@FreeBSD.org>>

MIPS 架构的 hwpmc(9) 功能已经重构。更改内容包括：

* 将 msip24k 代码拆分为特定于 CPU 和特定于架构的部分，以便更容易添加对新 CPU 的支持。
* 添加了对 Octeon PMC 的支持。
* 添加了对 MIPS 的采样支持。

### [isci(4) SAS 驱动程序](https://www.freebsd.org/status/report-2012-01-2012-03.html#isci\(4\)-SAS-Driver)

联系方式：Jim Harris <<jimharris@FreeBSD.org>>

现已在 head、stable/9、stable/8 和 stable/7 中提供 Intel 支持的 isci(4) 驱动程序，用于 Intel C600 芯片组中的集成 SAS 控制器。

isci(4) 驱动程序还将成为 FreeBSD 8.3 版本的一部分。

## [网络基础设施](https://www.freebsd.org/status/report-2012-01-2012-03.html#Network-Infrastructure)

### [Atheros 802.11n 支持](https://www.freebsd.org/status/report-2012-01-2012-03.html#Atheros-802.11n-Support)

| 链接                                                 |
| -------------------------------------------------- |
| <http://wiki.freebsd.org/AdrianChadd/AtherosTxAgg> |
| <http://wiki.freebsd.org/dev/ath(4)>               |

联系方式：Adrian Chadd <<adrian@FreeBSD.org>>

802.11n 站点和 hostap 支持现在已完全功能，除了 hostap 侧的省电功能尚未正确实现。TX 聚合和 TX BAR 处理已实现。

站点芯片的省电功能尚未实现，且不在此项工作的范围内。

测试人员应禁用 bgscan（-bgscan），因为扫描/bgscan 会直接丢弃 TX/RX 队列中的任何流量，导致潜在的流量停滞。

#### 待办任务

1. 修复 hostap 侧的省电处理。
2. 在驱动程序中实现过滤帧的支持。
3. 修复扫描/bgscan 功能，使其能够正确缓冲并重新传输离开通道时的帧，避免帧被“丢弃”——这会在聚合会话中引发问题，可能导致流量停滞。
4. 测试/修复任何与 adhoc 802.11n 支持相关的问题。

### [IPv6 性能分析](https://www.freebsd.org/status/report-2012-01-2012-03.html#IPv6-Performance-Analysis)

| 链接                                             |
| ---------------------------------------------- |
| [基准测试结果](http://people.freebsd.org/~bz/bench/) |

联系方式：Bjoern A. Zeeb <<bz@FreeBSD.org>>

与 IPv4 相比，IPv6 在 FreeBSD 上的性能通常较低（显著）。继去年 IPv6-only 内核工作之后，本项目分析了造成这一现象的各种原因，并开始修复其中的一些问题。

作为项目的一部分，创建了一个基准测试框架，可以执行各种测试，包括在运行之间进行重启，并在不需要用户干预的情况下可重复地收集结果。它允许通过最小配置进行定期基准测试，并且便于未来扩展以支持更多基准测试。

根据初步分析，改进了 UDP 锁定和路由查找，实施了 IPv6 的延迟校验和、TSO6 和 LRO 支持。在此基础上，启用了对环回接口的 IPv6 校验和“卸载”，并进行了各种其他单独的改进，包括锁定和常规代码更改，以及减少缓存大小占用。部分更改也同样应用于 IPv4。

在物理接口和环回接口上的性能，使用 TCP/IPv6 卸载支持时，已经与 IPv4 相当，这是一项巨大的改进。IPv6 上的 UDP 和非卸载性能虽然有所提升，但仍低于 IPv4，仍需进一步工作以赶上 IPv4 的十年基准测试和代码路径优化。然而，IPv6 最小大小的 UDP 发送路径数据包每秒（pps）数已经超过了 IPv4，尤其是在向本地丢弃设备发送时。

这一进展使得我们接近能够默认优先使用 IPv6，而不会导致环回性能回归。对于物理接口，cxgb(4) 已在 HEAD 中支持 IPv6 TCP 卸载，且已添加 LRO/v6 支持。为了在不同硬件上获得更多测试结果，ixgbe(4) 和 cxgbe(4) 也已更新，以支持 TSO6 和 IPv6 上的 LRO。

通过这项工作的洞察，未来对于下层/链路层的改造以及 mbuf 变更的讨论将得到帮助，为我们堆栈的更多未来改进做好准备。

再次感谢 FreeBSD 基金会和 iXsystems 对项目的支持，以及 George Neville-Neil 提供的审阅。

通过开始解决其中一个最大的功能对等性差距，我将继续改进 IPv6 代码路径，并希望很快能看到社区的更多贡献和独立结果。

#### 待办任务

1. 小心地将代码更改合并到 SVN 中。

### [Multi-FIB：IPv6 支持与其他增强功能](https://www.freebsd.org/status/report-2012-01-2012-03.html#Multi-FIB:-IPv6-Support-and-Other-Enhancements)

| 链接                                                                              |
| ------------------------------------------------------------------------------- |
| [SVN multi-FIB IPv6 项目区域](http://svnweb.freebsd.org/base/projects/multi-fibv6/) |

联系方式：Bjoern A. Zeeb <<bz@FreeBSD.org>>\
联系方式：Alexander V. Chernikov <<melifaro@FreeBSD.org>>

在 2008 年，针对 IPv4 引入了多转发信息库（FIB）功能，允许在内核中最多使用 16 个独立的转发（“路由”）表。得益于 Cisco Systems, Inc. 的赞助，这项功能现在也可用于 IPv6，填补了其中一个较大的 IPv6 功能对等性差距。这些更改已经集成到 HEAD，并回归到 stable/9 和 stable/8 分支，将作为这些分支未来发布的一部分。也已在项目分支中为 stable/7 提供了回溯。如果请求多个 FIB，IPv6 FIB 将与额外的 IPv4 FIB 一起添加，而无需任何特殊配置，并且像 netstat 和 setfib 这样的程序，以及 ipfw 等，也已扩展以无缝支持这项多 FIB 功能，适用于两个地址族。

感谢 Alexander V. Chernikov 的帮助，现在多 FIB 功能的所有使用都依赖于启动时变量，而不是依赖于编译时选项。在 HEAD 中，这使得你可以在 GENERIC 内核上使用多 FIB 功能，而不再需要重新编译自己的内核。以前的内核选项仍然可以用来设置默认值，若需要的话。否则，可以使用 net.fibs 加载器可调变量来在启动时请求多个 IPv6 和 IPv4 FIB。

最后，路由套接字现在已经意识到 FIB，并且只会显示目标 FIB 上的路由消息。这允许路由监视器或路由守护进程仅获取特定 FIB 的选择性更新。

### [文档](https://www.freebsd.org/status/report-2012-01-2012-03.html#Documentation)

#### [FreeBSD 日文文档项目](https://www.freebsd.org/status/report-2012-01-2012-03.html#The-FreeBSD-Japanese-Documentation-Project)

| 链接                                                    |
| ----------------------------------------------------- |
| [FreeBSD 日文网页](http://www.freebsd.org/ja/)            |
| [FreeBSD 日文文档项目网页](http://www.jp.freebsd.org/doc-jp/) |

联系方式：佐藤広生 <<hrs@FreeBSD.org>>\
联系方式：Ryusuke Suzuki <<ryusuke@FreeBSD.org>>

和以前一样，www/ja 子目录中的过时内容已更新为与英文版本对应的最新版本。www/ja 子目录中过时翻译的更新工作几乎完成。只有旧版本的发布文档的翻译可能会过时。

在此期间，我们翻译了 9.0-RELEASE 发布公告，并及时发布了它。看来，发布公告的日文版本对日本人来说非常重要，因为该页面被频繁引用。

对于 FreeBSD 手册，"cutting-edge" 部分的翻译工作仍在进行中。"printing" 和 "linuxemu" 部分的一些更新也已经完成。

#### 待办任务

1. 继续翻译 doc/ja\_JP.eucJP 和 www/ja 中过时的文档。

### [架构](https://www.freebsd.org/status/report-2012-01-2012-03.html#Architectures)

#### [FreeBSD/arm 在各种 TI 开发板上的支持](https://www.freebsd.org/status/report-2012-01-2012-03.html#FreeBSD/arm-on-Various-TI-Boards)

| 链接                                                          |
| ----------------------------------------------------------- |
| <http://svnweb.freebsd.org/base/projects/armv6/sys/arm/ti/> |

联系方式：Ben Gray <<bgray@FreeBSD.org>>\
联系方式：Olivier Houchard <<cognet@FreeBSD.org>>\
联系方式：Damjan Marion <<dmarion@FreeBSD.org>>\
联系方式：Oleksandr Tymoshenko <<gonzo@FreeBSD.org>>

该项目的目标是让 FreeBSD 在使用 TI 基于 SoC（系统级芯片）的各种流行开发板上运行，如 OMAP3、OMAP4、AM335x。项目涵盖一些 ARM 通用的 Cortex-A 组件：GIC（通用中断控制器）、PL310 L2 缓存控制器和 SCU。

PandaBoard（TI OMAP4430）和 PandaBoard ES（OMAP4460）双核 ARM Cortex-A9 开发板的支持包括：USB、通过 USB 的板载以太网、GPIO、I2C 和 MMC/SD 卡驱动程序。该开发板可以在 NFS 根目录下以多用户模式工作。

BeagleBone（TI AM3358/AM3359）单核 ARM Cortex-A8 开发板的支持目前包括：以太网、L2 缓存、GPIO、I2C。该开发板可以在 NFS 根目录下以多用户模式工作。

#### 待办任务

1. 完成缺失外设的支持：DMA、SPI、MMC/SD、视频、音频。
2. 完成 SMP 支持并进行测试。
3. 将 BeagleBoard（OMAP3）代码导入 SVN。
4. 提升整体稳定性和性能。

### [FreeBSD/powerpc on Freescale QorIQ DPAA](https://www.freebsd.org/status/report-2012-01-2012-03.html#FreeBSD/powerpc-on-Freescale-QorIQ-DPAA)

| 链接                                                                                            |
| --------------------------------------------------------------------------------------------- |
| [P2041 产品页面](http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=P2040)            |
| [P3041 产品页面](http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=P3041)            |
| [P5020 产品页面](http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=P5020)            |
| [e5500 核心主页](http://www.freescale.com/webapp/sps/site/homepage.jsp?code=64BIT\&fsrch=1\&sr=1) |

联系人：Michal Dubiel <<md@semihalf.com>>\
联系人：Rafal Jaworowski <<raj@semihalf.com>>\
联系人：Piotr Ziecik <<kosmo@semihalf.com>>

这项工作旨在将 FreeBSD 移植到 Freescale QorIQ 数据路径加速架构 (DPAA) 系统芯片，并为集成外设提供设备驱动程序。自上次状态报告以来，已增加以下支持：

* 以 DPAA 基础设施的常规模式实现完整网络功能的以太网支持
* 支持 QorIQ P5020 SoC（e5500 核心以传统 32 位模式）
* 支持 P5020 QorIQ 开发系统
* 增强型 SDHC 的初步支持

下一步是：

* 以原生 64 位模式支持 e5500 核心

相关出版物：

* Michal Dubiel, Piotr Ziecik, "FreeBSD on Freescale QorIQ Data Path Acceleration Architecture Devices"，AsiaBSDCon, 2012 年 3 月，日本东京。

### [NAND 文件系统、NAND Flash 框架、NAND 模拟器](https://www.freebsd.org/status/report-2012-01-2012-03.html#NAND-File-System,-NAND-Flash-Framework,-NAND-Simulator)

| 链接                                                       |
| -------------------------------------------------------- |
| [NAND 分支](http://svnweb.freebsd.org/base/projects/nand/) |

联系人：Grzegorz Bernacki <<gjb@semihalf.com>>\
联系人：Mateusz Guzik <<mjg@semihalf.com>>

NAND Flash 堆栈包括 NAND 控制器和内存芯片的驱动框架、NAND 设备模拟器以及容错的日志结构文件系统，伴随有工具、实用程序和文档。

* NAND FS 支持已合并到 "nand" 项目分支
  * NAND FS 文件系统
  * NAND FS 用户空间工具
* NAND 框架和 NAND 模拟器已合并到 "nand" 项目分支
  * NAND 框架：nandbus、通用 nand 芯片驱动程序
  * NAND Flash 控制器（NFC）驱动程序，支持 NAND 模拟器和 Marvell MV-78100（ARM）
  * NAND 工具（可用于擦除、读写页面/oob 等）

下一步包括：

* 修复错误
* 合并到 HEAD

该项目的工作得到了 FreeBSD 基金会和 Juniper Networks 的支持。

### [将 DTrace 移植到 MIPS 和 ARM](https://www.freebsd.org/status/report-2012-01-2012-03.html#Porting-DTrace-to-MIPS-and-ARM)

联系人：Oleksandr Tymoshenko <<gonzo@FreeBSD.org>>

DTrace 的主要部分已经移植到 MIPS 平台。支持的 ABI：o32 和 n64。n32 尚未测试。MIPS 实现通过了 DTrace 测试套件中的 927 个测试中的 853 个。

目前不支持 fbt 提供者和用户空间 DTrace。

ARM 的移植工作正在进行中。

#### 待办事项

1. 为 MIPS 实现用户空间 DTrace 支持。
2. 调查使 fbt 提供者至少部分工作所需的工作量。
3. 找到跨平台生成 CTF 数据的合适解决方案（ARM 需要）。

## [Ports](https://www.freebsd.org/status/report-2012-01-2012-03.html#Ports)

### [基于 CentOS 的新 linux\_base Port](https://www.freebsd.org/status/report-2012-01-2012-03.html#A-New-linux_base-Port-Based-Upon-CentOS)

联系人：Alexander Leidinger <<netchild@FreeBSD.org>>

我们收到了一个基于 CentOS 6 的 linux\_based Port 的 PR。目前，这只能用作测试环境，因为它依赖于比 linuxulator 提供的更高版本的 Linux 内核。

截至本文编写时，我正在准备提交该 Port。

#### 待办事项

1. 由 portmgr 进行 repocopy。
2. 在其他 linux\_base Port 中添加冲突。
3. 提交基于 CentOS 的版本。
4. 一些清理工作。

### [BSD 许可的 sort 实用工具（替代 GNU sort）](https://www.freebsd.org/status/report-2012-01-2012-03.html#BSD-licensed-sort-Utility-\(GNU-sort-Replacement\))

| 链接                                                                                                  |
| --------------------------------------------------------------------------------------------------- |
| [FreeBSD 的 BSD sort Port](http://www.freebsd.org/cgi/cvsweb.cgi/ports/textproc/bsdsort/)            |
| [IEEE Std 1003.1-2008 sort 规范](http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html) |

联系人：Oleg Moskalenko <<oleg.moskalenko@citrix.com>>\
联系人：Gábor Kövesdán <<gabor@FreeBSD.org>>

目前，BSD sort 已达到可用的稳定阶段。它非常稳定，速度与 GNU sort 相同，并且支持多字节语言环境（这是 GNU sort 做得不正确的）。BSD sort 具有 GNU sort 5.3.0 的所有功能（包括在 FreeBSD 中的版本），并附带一些额外功能和错误修复。

#### 待办事项

1. 将 BSD sort 作为替代方案添加到 HEAD，并安装为 bsdsort。如果证明其按预期工作，则将其更改为默认的 sort 版本并移除 GNU sort。
2. 调查并实现多线程 sort 的可能性，如果证明它更高效。
3. 升级 BSD sort 的功能，加入最新 GNU sort 版本 8.15 中的一些新特性。

### [KDE/FreeBSD](https://www.freebsd.org/status/report-2012-01-2012-03.html#KDE/FreeBSD)

| 链接                                          |
| ------------------------------------------- |
| [KDE/FreeBSD 主页](http://freebsd.kde.org/)   |
| [area51](http://freebsd.kde.org/area51.php) |

联系人：KDE FreeBSD <<kde@FreeBSD.org>>

团队已发布多个版本并上游提交了许多修复和补丁。最近的发布版本包括：

* KDE SC: 4.7.4（在 ports 中）和 4.8.0, 4.8.1, 4.8.2（在 area51 中）
* Qt: 4.8.0, 4.8.1（在 area51 中）
* PyQt: 4.9.1；SIP: 4.13.2（在 area51 中）
* KDevelop: 2.3.0；KDevPlatform: 1.3.0（在 area51 中）
* Calligra: 2.3.87（在 area51 中）
* Amarok: 2.5.0
* CMake: 2.8.7

由于 Port 冻结期的延长，KDE 团队无法更新 KDE Port，因为这被视为侵入性更改。

团队始终在寻找更多的测试人员和 Port 维护者，欢迎通过 <kde@FreeBSD.org> 联系我们，并访问我们的主页 [http://FreeBSD.kde.org](http://freebsd.kde.org/)。

#### 待办事项

1. 测试 KDE SC 4.8.2。
2. 测试 KDE PIM 4.8.2。
3. 测试 phonon-gstreamer 和 phonon-vlc，因为 phonon-xine 后端已被弃用（但暂时仍会保留在 ports 中）。
4. 测试 Calligra beta 版本（在 area51 仓库中）。

### [Perl Port 测试](https://www.freebsd.org/status/report-2012-01-2012-03.html#Perl-Ports-Testing)

| 链接                                                 |
| -------------------------------------------------- |
| <http://wiki.freebsd.org/Perl#Test\\_Dependencies> |

联系人：Steve Wills <<swills@FreeBSD.org>>

许多 Perl 模块在 ports 中包含了随源代码一起提供的测试用例。该项目的目标是确保所有这些测试通过。该项目已取得显著进展。已经提交了构建 Perl 时使用 -pthread 的更改，并且没有报告问题。许多 Port 已添加了缺失的依赖项和/或进行了其他更改，约 90% 的 p5- Port 通过了测试。正在努力将测试支持从 Port tinderbox 中移出。

#### 待办事项

1. 完成将测试支持引入 Port 的补丁工作。
2. 增加对其他类型 Port（如 Python 和 Ruby）的测试支持。

### [FreeBSD Haskell Port](https://www.freebsd.org/status/report-2012-01-2012-03.html#The-FreeBSD-Haskell-Ports)

| 链接                                                                             |
| ------------------------------------------------------------------------------ |
| [FreeBSD Haskell 维基页面](http://wiki.freebsd.org/Haskell)                        |
| [FreeBSD Haskell Port 仓库](https://github.com/freebsd-haskell/freebsd-haskell/) |
| [hsporter 仓库](https://github.com/freebsd-haskell/hsporter/)                    |
| [hsmtk 仓库](https://github.com/freebsd-haskell/hsmtk/)                          |

联系人：Gábor PÁLI <<pgj@FreeBSD.org>>\
联系人：Ashish SHUKLA <<ashish@FreeBSD.org>>

我们很高兴地宣布，FreeBSD Haskell 团队已经提交了 Haskell Platform 2011.4.0.0 更新，GHC 7.0.4 更新，现有 Port 的更新以及由于 9.0-RELEASE 冻结而未提交的新 Port。一些提交的新 Port 包括 Yesod、Happstack、wxHaskell、gitit、Threadscope 等，目前 FreeBSD Ports 中的 Haskell Port 数量已接近 300 个。所有这些更新将在即将发布的 8.3-RELEASE 中提供。

我们启动了 hsporter 项目，用于自动化从 .cabal 文件创建新的 FreeBSD Haskell Port 以及更新现有 Port。我们还发布了在 FreeBSD Haskell 项目中使用的脚本，作为 hsmtk 项目的一部分。

#### 待办事项

1. 测试 GHC 是否与 clang/LLVM 兼容。
2. 为 lang/ghc Port 添加一个选项，以便能够使用已安装的 GHC 构建，而不是要求使用单独的 GHC 启动包。
3. 向 Ports 中添加更多 Port。

### [FreeBSD Ports](https://www.freebsd.org/status/report-2012-01-2012-03.html#The-FreeBSD-Ports-Collection)

| 链接                                                                                                                                                  |
| --------------------------------------------------------------------------------------------------------------------------------------------------- |
| [http://www.FreeBSD.org/ports/](http://www.freebsd.org/ports/)                                                                                      |
| [http://www.FreeBSD.org/doc/en\_US.ISO8859-1/articles/contributing-ports/](http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/) |
| [http://portsmon.FreeBSD.org/index.html](http://portsmon.freebsd.org/index.html)                                                                    |
| [http://www.FreeBSD.org/portmgr/index.html](http://www.freebsd.org/portmgr/index.html)                                                              |
| [http://blogs.FreeBSDish.org/portmgr/](http://blogs.freebsdish.org/portmgr/)                                                                        |
| <http://www.twitter.com/freebsd_portmgr/>                                                                                                           |
| <http://www.facebook.com/portmgr>                                                                                                                   |

联系人：Thomas Abthorpe <<portmgr-secretary@FreeBSD.org>>\
联系人：Ports 管理团队 <<portmgr@FreeBSD.org>>

Ports 的 Port 数量缓慢增加，已经超过 23,000 个。目前的 PR 数量仍然约为 1100 个。

在第一季度，我们新增了 2 名提交者，接收了 2 个提交权限以作保管，并且有一名提交者返回了 Port 工作。

Ports 管理团队一直在持续运行 -exp 测试，验证基本系统更新如何影响 Ports，同时为主要 Port 更新提供质量保证测试。值得注意的是，-exp 测试已完成以下内容：

* 在 FreeBSD 10 环境中的 Port 验证
* 更新 bison、libtool 和 libiconv
* 设置 java/opendjdk6 为默认 Java
* 设置 clang 为默认编译器的测试
* 更新 devel/boost 和相关组件
* 更新 audio/sdl 和相关组件
* Port 许可基础设施的更改测试
* 更新 devel/ruby1 \[8|9]
* 更新 postresql
* 更新 apr
* 检查新的 x11/xorg
* 对 security/gnutls 进行的安全更新
* 持续验证使用 pkgng 的基础设施

在此期间，许多精力集中在为 FreeBSD 8.3 准备 Ports 的工作上，包括为发布版本准备包文件。

Beat Gaetzi 一直在对 Ports 进行持续测试，以确保从 CVS 向 Subversion 的平稳过渡。

#### 待办事项

1. 寻求帮助，使 Port 能与 clang 构建。
2. 寻求帮助，支持 Tier-2 架构。
3. 由源代码更改引起的 Port 故障。
4. 在 pointyhat 上失败的 Port。
5. 在 pointyhat-west 上失败的 Port。
6. 标记为 BROKEN 的 Port。
7. 该 Port 何时出现故障？
8. 大多数 Port PR 已分配，我们现在需要专注于测试、提交和关闭。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://book.bsdcn.org/status/2012/q1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
