# 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 已分配，我们现在需要专注于测试、提交和关闭。
