# FreeBSD 2013 年 1-3 月状态报告

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

## 引言

本报告涉及了 2013 年 1 月至 3 月之间与 FreeBSD 相关的项目。这是计划的 2013 年四个报告中的第一个。

本状态报告的亮点包括 8.4-RELEASE 的忙碌准备工作、二进制包构建的恢复、多个移植工作的稳步进展，如 FreeBSD 对 xorg、GNOME、KDE 和 Xfce 的 Port 工作，将 FreeBSD 移植到 Cubieboard 和 Hackberry 板卡、ARM 和 AMD GPU 支持的开发、UFS/FFS 性能的提升以及网络堆栈中的多路径 TCP 实现。

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

包含 2013 年 4 月至 6 月期间的提交截止日期为 2013 年 7 月 7 日。

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

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

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

联系方式：Alfred Perlstein <<alfred@FreeBSD.org>> 联系方式：Josh Paetzel <<jpaetzel@FreeBSD.org>>

FreeNAS 8.3.1-RELEASE-p2 将于 4 月的第二周发布在 Sourceforge，并应成为基于 FreeBSD 8.X 的最后一个 FreeNAS 发布版本。目前，它是唯一一款提供任何形式 ZFS 加密（由 GELI 提供）的自由开源 NAS 产品。

#### 待办事项

1. 团队正在努力准备基于 FreeBSD 9.X 的 FreeNAS 发布。目前有几个每夜快照版本可用。
2. 将 HAST 添加到 Web 界面中。
3. 迁移到 NFSv4。
4. 集成基金会赞助的内核 iSCSI 目标。

### [进程核心转储中的内核信息](https://www.freebsd.org/status/report-2013-01-2013-03.html#Kernel-Information-in-Process-Core-Dumps)

| 链接 |
| -- |

联系方式：Mikolaj Golub <<trociny@freebsd.org>>

在对崩溃进程进行事后分析时，通常非常有用的是获取关于进程崩溃时的内核信息，例如打开的文件描述符或资源限制。对于活跃进程，可以通过 sysctl(3) 接口获取此信息，例如使用 procstat(1)。

该项目的目标是向进程核心转储中添加额外的注释，其中包括进程崩溃时来自内核的进程信息，教授 libprocstat(3) 提取这些信息，并使 procstat(1) 使用该功能。

目前，所有必要的代码更改已经提交到 HEAD，并计划在一个月内合并到 stable/9。

### [原生 iSCSI 堆栈](https://www.freebsd.org/status/report-2013-01-2013-03.html#Native-iSCSI-Stack)

| 链接                                                 |
| -------------------------------------------------- |
| <https://wiki.freebsd.org/Native%20iSCSI%20target> |

联系方式：Edward Tomasz Napierała <<trasz@FreeBSD.org>>

该项目的重点扩展至包括新的 iSCSI 发起端。与旧版本相比，它更加可靠、用户友好，并且速度更快。它使用与旧版本完全相同的配置文件格式，以便更容易迁移。

在目标端方面，已经验证其可以与主要发起端（FreeBSD、Linux、Solaris、Windows 和 VMWare ESX）正常工作。

该项目由 FreeBSD 基金会赞助。

#### 待办事项

1. 支持 RDMA，适用于目标端和发起端。
2. 性能优化。

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

### [FreeBSD Bugmeister 团队](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD-Bugmeister-Team)

| 链接 |
| -- |

联系方式：Eitan Adler <<eadler@FreeBSD.org>> 联系方式：Gavin Atkinson <<gavin@FreeBSD.org>> 联系方式：Oleksandr Tymoshenko <<gonzo@FreeBSD.org>>

FreeBSD Bugmeister 团队继续评估备用缺陷跟踪系统的选项，已将选择范围缩小为两个可能性：Bugzilla 和 roundup。

过去三个月中，非 Port PR 的数量保持相对稳定，接收和关闭的数量相当。Port PR 的数量近期有所增加，主要是由于即将发布的 8.4-RELEASE 版本的 Port 冻结。

Bugmeister 团队继续努力通过标记 PR 来指示涉及的领域，并确保每个 PR 中有足够的信息来解决问题，从而使 GNATS PR 数据库的内容更加清晰、易于访问，并帮助提交者更容易找到和解决 PR。

和往常一样，任何有兴趣帮助处理 PR 队列的人都可以加入我们，参与 #freebsd-bugbusters 频道。我们始终欢迎更多的帮助，无论你是对处理接收到的 PR 感兴趣，生成修复现有问题的补丁，还是帮助进行数据库的整理（识别重复的 PR，已解决的 PR 等）。这是更深入参与 FreeBSD 的一个好方法！

#### 待办事项

1. 确定使用哪个新的缺陷跟踪系统。
2. 鼓励更多用户参与接收 PR 时的分类工作。
3. 帮助提交者关闭 PR。

### [FreeBSD 核心团队](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD-Core-Team)

| 链接 |
| -- |

联系方式：核心团队 <<core@FreeBSD.org>>

在 2012 年底，核心团队批准在项目网站上使用谷歌分析，以便文档工程团队收集其使用情况的统计数据，进行更好的分析。2013 年第一季度，核心团队与文档工程团队合作，最终确定了相关政策。

由于围绕 fortune(6) 实用程序添加的引文是否符合政治正确性的问题，相关的数据文件已从 -CURRENT 的基本系统中移除。

鉴于安全事件，核心团队与安全团队之间的联络角色已恢复，由 Gavin Atkinson 承担此角色。核心团队在与 Port 管理团队、集群管理员及 FreeBSD 基金会董事会的紧密合作下，致力于解决当前的二进制包构建集群问题及相关的安全问题。[妥协页面](http://www.freebsd.org/news/2012-compromise.html) 已保持更新。

FreeBSD 项目再次提交了谷歌编程之夏计划的申请。

本季度为 2 位新提交者授予了访问权限，并为 1 位提交者保留了提交权限。

### [FreeBSD Ports 管理团队](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD-Port-Managers)

| 链接                                                             |
| -------------------------------------------------------------- |
| [http://www.FreeBSD.org/ports/](http://www.freebsd.org/ports/) |
| <http://www.freebsd.org/doc/en/articles/contributing-ports/>   |
| <http://portsmon.freebsd.org/>                                 |
| <http://www.freebsd.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 包含大约 24,300 个 Port，而 PR 数量仍接近 1600。

在第一季度，我们增加了 4 位新提交者，保留了 1 位提交者的提交权限，并恢复了 1 位提交者的提交权限。

在 2 月，Mark Linimon（linimon）辞去了团队的职责。Mark 是团队中第二长时间服役的成员。Mark 曾花费大量时间重构和文档记录 portbuild 软件，以确保可以恢复 pointyhat 服务。

经过安全审查，redports.org 被重新启用，恢复了 Tinderbox 服务，并为贡献者提供了提交后 QAT。此外，pointyhat 基础设施也进行了审查，并开始恢复包构建系统的工作。

Erwin Lansing（erwin）和 Martin Wilke（miwi）承担了将 portbuild 软件安装并在 pointyhat 上运行的主要工作。通过他们的辛勤努力，portmgr@ 最终能够恢复进行 -exp 运行，为即将发布的 8.4 版本准备包，并开始为 9.1 版本回溯准备一套包。

经过多年的作为项目事实标准，Ports 的 CVS 支持于 2 月 28 日正式结束。

Ports 已被标记为 RELEASE\_7\_EOL，以配合 FreeBSD 7.X 的生命周期结束。

Beat Gaetzi（beat）在 3 月辞去了 portmgr@ 的职责。他的显著贡献之一是将 Ports 从旧的 CVS 仓库迁移到 Subversion。

Bryan Drewery（bdrewery）于 3 月加入了端 Ports 管理团队，带来了他在维护 portupgrade、portmaster、协助 pkgng 以及共同开发 poudriere 方面的丰富经验。

#### 待办事项

1. 大多数 Port PR 已分配，现需专注于测试、提交和关闭。

### [FreeBSD 邮件管理员团队](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD-Postmaster-Team)

| 链接 |
| -- |

联系方式：David Wolfskill <<postmaster@FreeBSD.org>>

在 2013 年第一季度，FreeBSD 邮件管理员团队实施了以下可能对公众有兴趣的事项：

* 对 Mailman 管理的列表配置进行更改：允许接受 application/pkcs7-signature MIME 类型（除了 application/x-pkcs7-signature MIME 类型），从而允许在邮件列表中使用 S/MIME 签名。
* 新增列表：freebsd-ops-announce — 基础设施问题公告，freebsd-pkg — 二进制包管理和包工具讨论。

### [FreeBSD 发布工程团队](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD-Release-Engineering-Team)

| 链接                                                   |
| ---------------------------------------------------- |
| <http://www.freebsd.org/releases/8.4R/schedule.html> |

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

FreeBSD 8.4-RC1 刚刚发布，我们正在计划 RC2。一些关键修复已经被包含在 RC2 中。计划已推迟约 10 天。预计最终发布将在 4 月底之前完成。8.4 的包已经由一个完全运作的包构建集群提供。

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

### [AMD GPU 内核模式设置（KMS）支持](https://www.freebsd.org/status/report-2013-01-2013-03.html#AMD-GPU-Kernel-Mode-Setting-\(KMS\)-Support)

| 链接                                              |
| ----------------------------------------------- |
| [项目状态在维基上的页面](https://wiki.freebsd.org/AMD_GPU) |

联系方式：Jean-Sébastien Pédron <<dumbbell@FreeBSD.org>>\
联系方式：J.R. Oldroyd <<jr@opal.com>>\
联系方式：Konstantin Belousov <<kib@FreeBSD.org>>

自 2 月以来，该项目进展顺利：

* Konstantin 将他的 TTM 移植代码提交到了 10-CURRENT。
* 在 John Baldwin (jhb) 和 Andriy Gapon (avg) 的帮助下，Video BIOS 的情况得到了极大的改善：radeonkms 驱动程序现在会读取 BIOS 的影像副本（如果显卡是主显卡），否则会查询 PCI 扩展 ROM。最终，这段代码可能会提交到 PCI 驱动中，以便其他显卡驱动也能受益。
* Andriy 还报告了 I2C 代码的一些问题，现已修复。现在，插入 DVI 和 HDMI 接口的显示器已能被正确检测，并能正确读取其 EDID。VGA 接口尚未进行测试。
* 在 TTM 或 Radeon 驱动中存在一个锁定问题，导致 OpenGL 无法正常工作。Jean-Sébastien 正在追踪这个问题。
* J.R. Oldroyd 开始着手将驱动程序回移植到 9-STABLE 版本，并且现在已经运行得相当好。他不得不从虚拟机中回移植一些特性，这些特性可能还需要虚拟机方面进一步的完善。

[Yakaz](http://www.yakaz.com/) 向 Jean-Sébastien 借了一台计算机，使他能够测试基于 RV630 的独立显卡，并将来能够测试其他 PCIe 显卡。已经有几位用户友好地测试了这个驱动程序，感谢所有这些贡献者！

目前状态下，驱动程序允许进行简单的 X 会话（没有 OpenGL），运行常见的应用程序、观看电影、改变分辨率，并使用 xrandr(1) 启用附加显示器。现在最阻碍的的问题是 OpenGL 死锁，这使得现代合成器/桌面环境、游戏和 WebGL 演示无法运行。我们还未准备好进行“测试者招募”。

#### 待办事项

1. 测试多显卡配置的 Video BIOS 问题，特别是集成 Intel 显卡 + 独立 Radeon 显卡，以及集成 AMD 显卡（IGP） + 独立 Radeon 显卡的配置。目前不需要检查具有共享连接器的配置，因为它目前不支持。

### [原子“执行时关闭”](https://www.freebsd.org/status/report-2013-01-2013-03.html#Atomic-%22close-on-exec%22)

| 链接                                           |
| -------------------------------------------- |
| <https://wiki.freebsd.org/AtomicCloseOnExec> |

联系方式：Jilles Tjoelker <<jilles@FreeBSD.org>>

如果线程或信号处理程序调用 fork() 和 exec()，文件描述符可能会不必要地传递到子进程，这可能导致挂起（如果管道未关闭）、超出文件描述符限制和安全问题（如果子进程权限较低）。一种解决方案是通过各种新的 API，在分配文件描述符时原子地设置关闭执行标志。如果存在这些新特性，一些现有软件将使用它们，甚至可能在没有这些特性时拒绝编译。

该功能的多个部分已经存在一段时间。

在 2013 年第一季度，已为 recvmsg()、socket()、socketpair() 和 posix\_openpt() 添加了扩展。

### [改进 callout(9)](https://www.freebsd.org/status/report-2013-01-2013-03.html#callout\(9\)-Improvements)

| 链接                                                                               |
| -------------------------------------------------------------------------------- |
| [callout\_paper.pdf](http://people.freebsd.org/~davide/asia/callout_paper.pdf)   |
| [calloutng.pdf](http://people.freebsd.org/~davide/asia/calloutng.pdf)            |
| [revision 247777](http://svnweb.freebsd.org/base?view=revision\&revision=247777) |

联系方式：Davide Italiano <<davide@FreeBSD.org>>\
联系方式：Alexander Motin <<mav@FreeBSD.org>>

在 FreeBSD 中，定时器由 callout 功能提供，该功能允许注册一个带有参数的函数，在指定的未来时间调用该函数。该子系统存在一些问题，如无法处理高分辨率事件或其固有的周期性结构，这可能导致虚假唤醒和更高的功耗。一些消费者，如高速网络、VoIP 和其他实时应用，需要比当前允许的更高的精度。此外，尤其是随着近年来笔记本电脑的普及，由于中断唤醒 CPU 使其从睡眠状态中恢复，可能会浪费大量能量。最近对该子系统的更改解决了这些长期存在的问题，并引入了新的编程接口，以利用这些新特性。

#### 待办事项

1. 评估是否值得将其他 callout(9) 消费者迁移到新接口。
2. 将仍使用传统 timeout()/untimeout() 接口的 callout 消费者迁移到 `callout_*()`，以去除冗余代码并清理 KPI。

### [FreeBSD 的多路径 TCP (MPTCP)](https://www.freebsd.org/status/report-2013-01-2013-03.html#Multipath-TCP-\(MPTCP\)-for-FreeBSD)

| 链接                                                            |
| ------------------------------------------------------------- |
| <http://caia.swin.edu.au/urp/newtcp/mptcp/tools.html>         |
| <http://caia.swin.edu.au/newtcp/mptcp/>                       |
| <http://caia.swin.edu.au/reports/130424A/CAIA-TR-130424A.pdf> |
| <https://pub.allbsd.org/FreeBSD-snapshots/>                   |

联系方式：Nigel Williams <<njwilliams@swin.edu.au>>\
联系方式：Lawrence Stewart <<lastewart@swin.edu.au>>\
联系方式：Grenville Armitage <<garmitage@swin.edu.au>>

我们一直在致力于创建 BSD 许可的多路径 TCP 实现——这是一组 TCP 扩展，允许通过多个 IP 地址进行透明的多路径操作，如实验性 RFC6824 所指定的那样。

我们在 2013 年 3 月 11 日发布了第一个 v0.1 版本，并于 2013 年 4 月 16 日发布了 v0.3 版本。该代码目前被认为是 alpha 质量。我们正在努力将代码推送到 FreeBSD Subversion 仓库项目分支，以便在一个更公开可访问的地方继续开发。作为这次迁移的一部分，我们希望开始发布由 佐藤広生 和 allbsd.org 日常快照基础设施提供的 MPTCP 项目分支的常规快照安装程序 ISO。

我们即将在 2013 年 4 月 24 日发布一份名为《FreeBSD 10 版本的多路径 TCP 0.3 设计概述》（CAIA 技术报告 130424A）的报告，提供关于 v0.3 版本代码发布的高层设计和架构概述。

未来，我们预计将继续开发并发布更多的技术报告和学术论文，涵盖性能分析、多路径拥塞控制/调度等主题。

#### 待办事项

1. 该代码目前是 alpha 质量，因此我们欢迎所有的测试反馈，但在开始之前，请务必阅读 README 文件，并特别注意“已知的限制”部分。

### [racct: 块 I/O 计费](https://www.freebsd.org/status/report-2013-01-2013-03.html#racct:-Block-IO-Accounting)

| 链接                                               |
| ------------------------------------------------ |
| <https://wiki.freebsd.org/RudolfTomori/IOLimits> |

联系方式：Rudolf Tomori <<rudot@FreeBSD.org>>

该项目将块 I/O 访问计费功能添加到 racct/rctl 资源限制框架中；目前已提供一个工作原型实现。

### [NetBSD 的 UDF 文件系统只读移植](https://www.freebsd.org/status/report-2013-01-2013-03.html#Read-only-Port-of-NetBSD's-UDF-File-System)

| 链接                                                 |
| -------------------------------------------------- |
| [Github 仓库](https://github.com/williamdevries/UDF) |

联系方式：Will DeVries <<william.devries@gmail.com>>

NetBSD 的 UDF 文件系统的初始只读移植已基本完成。（UDF 文件系统通常用于 CD、DVD 和蓝光光盘。）该移植相比于 FreeBSD 当前的 UDF 实现提供了多个优势，包括：

* 支持 UDF 文件系统规范的版本 2.60。FreeBSD 当前的实现仅部分支持 1997 年发布的 1.5 版本标准。由于 Windows 和其他系统支持该文件系统的新版本，我们的用户将无法读取这些系统写入的某些介质。此外，蓝光光盘通常使用版本 2.50 或 2.60 进行写入。
* 可以使用挂载选项覆盖 UDF 卷中所有文件和目录的所有者和组。
* 可以使用挂载选项为缺少所有者或组信息的文件和目录设置所有者和组。（UDF 规范允许文件和目录没有所有者或组。）
* 可以使用挂载选项覆盖卷中所有目录和文件的模式。
* 支持挂载增量记录的先前版本媒体，如 CD-R。

### [TCP-AO 认证选项](https://www.freebsd.org/status/report-2013-01-2013-03.html#TCP-AO-Authentication-Option)

| 链接                                                          |
| ----------------------------------------------------------- |
| [SVN 分支](http://svnweb.freebsd.org/base/user/andre/tcp-ao/) |

联系方式：André Oppermann <<andre@FreeBSD.org>>

正在进行的工作是根据 RFC5925 和 RFC5926 实现 TCP-AO（TCP 认证选项）。TCP-AO 是对 TCP-MD5 签名的扩展，通常用于路由器中，以保护 BGP 路由协议会话免受伪造攻击。该工作是由 Juniper Networks 承包并赞助的。

### [UFS/FFS 性能工作](https://www.freebsd.org/status/report-2013-01-2013-03.html#UFS/FFS-Performance-Work)

| 链接                                                               |
| ---------------------------------------------------------------- |
| [描述此工作的论文](http://www.mckusick.com/publications/faster_fsck.pdf) |

联系方式：Kirk McKusick <<mckusick@mckusick.com>>

最近，关于 UFS/FFS 性能的一些工作已被提交到 HEAD。与 FFS 布局策略的相关更改的目的是减少完全文件系统检查的运行时间。它还减少了大文件的随机访问时间，并加快了目录树遍历的时间。

关键思想是，在每个圆柱组中，紧接着 inode 块后面预留一个小区域，用于存放元数据，特别是间接块和目录内容。新政策是优先将元数据放入元数据区，其他内容则放入紧随其后的块中。

创建文件系统时，可以使用 `newfs(8)` 设置该区域的大小，或者通过 `tunefs(8)` 修改现有文件系统。两个工具都使用 `-k` 选项来指定每个圆柱组中为元数据块保留的空间大小。默认情况下，`newfs(8)` 将该区域设置为 minfree 的一半（通常是数据区域的 4%）。

与所有布局策略一样，它仅影响在实施之后分配的内容。因此，这些更改将主要在新创建的文件系统中显现。

通过在 fsck(8) 的 pass1 阶段缓存圆柱组映射，从而加速了文件系统检查，使得这些映射不再需要在 pass5 阶段重新读取。由于这几乎将 fsck(8) 的内存需求加倍，因此如果 fsck(8) 的其他内存需求无法满足，缓存会被丢弃。因此，fsck(8) 的内存占用在内存受限的环境中保持不变。这一优化将在所有 UFS/FFS 文件系统中得到体现。

这项工作受到了 [Usenix FAST '13 会议上发表的一篇论文](http://www.usenix.org/conference/fast13/ffsck-fast-file-system-checker) 的启发。

#### 待办事项

1. 若 HEAD 中的这些更改没有出现问题，计划在 5 月前将其 MFC 到 9-STABLE 和可能的 8-STABLE。

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

#### [改进文档项目基础设施](https://www.freebsd.org/status/report-2013-01-2013-03.html#Improving-the-Documentation-Project-Infrastructre)

| 链接                                                                |
| ----------------------------------------------------------------- |
| [xml-tools 分支](http://svnweb.freebsd.org/doc/projects/xml-tools/) |

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

目前正在进行改进文档基础设施并现代化文档工具链的工作。相关工作可以在 xml-tools 分支中找到，已接近完成。改进包括以下内容：

* 升级到 DocBook 4.5。
* 使用 XSLT 替代 DSSSL 渲染基于 XHTML 的输出。
* 从 PS 生成 PDF，并简化图像处理。
* 修复 make lint 并验证整个文档集。
* 修复 TOC 元素的渲染问题。
* 修复错误使用的链接元素，防止渲染损坏。
* 使用更人性化的出版数据和发布信息渲染。
* 在 DocBook 文档中添加对 XInclude 的支持。
* 添加对带属性的分析支持。
* 添加对 Schematron 约束的支持。
* 添加实验性的 epub 支持。
* 添加实验性的 XSL-FO 基于打印输出的支持。
* 清理过时的 SGML 构造。
* 清理目录。
* 删除不再需要的 HTML Tidy。

这些更改消除了某些依赖项，并将文档仓库切换到一个真正的 XML 工具链，提供适当的验证和更先进的渲染工具。唯一的例外是 Jade 和 DSSSL 样式表，它们仍然用于打印输出。

#### 待办事项

1. 修复打印格式中图像的渲染问题。
2. 更新《文档指南》，以反映更改。‘

### [实体文档分支](https://www.freebsd.org/status/report-2013-01-2013-03.html#The-entities-Documentation-Branch)

| 链接                                                                  |
| ------------------------------------------------------------------- |
| [Subversion 仓库链接](http://svnweb.freebsd.org/doc/projects/entities/) |

联系方式：René Ladan <<rene@FreeBSD.org>>

创建实体分支的目的是减少提交者实体的重复。目前，存在一个在 `authors.ent`（带有电子邮件地址）和另一个在 `developers.ent`（不带电子邮件地址）中的实体。这似乎是早期文档和 WWW 分离时的遗留问题。为了解决这个问题，`developers.ent` 被合并到 `authors.ent` 中，并将带有电子邮件地址的实体添加后缀。除了初次提交的说明外，用户可见的更改应该很小。还进行了一些相关的清理工作，例如清理团队定义、用 `authors.ent` 中的实体替换字面名称，以及向 `authors.ent` 添加缺失的名称。

#### 待办事项

1. 完成对 `<email>` 标签的处理。
2. 发送 CFT。
3. 合并回主分支。

### [FreeBSD 日语文档项目](https://www.freebsd.org/status/report-2013-01-2013-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>>

网页（htdocs）：英语版本中的新闻更新和一些其他更新已经翻译，以保持其最新。具体来说，与发布相关的内容在此期间已更新。

书籍：《FreeBSD 手册》自上次报告以来持续更新，特别是“ports”和“desktop”部分有了较大更新。新翻译者对“advanced-networking”部分也做出了一些进展。

《编写 FreeBSD 问题报告》一文现已与英文版同步。

#### 待办事项

1. 进一步翻译 `ja_JP.eucJP` 子树中的过时文档。

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

#### [FreeBSD 在 Cubieboard 上运行](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD-on-Cubieboard)

| 链接 |
| -- |

联系方式：Ganbold Tsagaankhuu <<ganbold@FreeBSD.org>>\
联系方式：Oleksandr Tymoshenko <<gonzo@FreeBSD.org>>

Allwinner A10 SoC 的初步支持已提交到 -CURRENT。FreeBSD 现在可以在 Cubieboard、Hackberry 等开发板上运行，支持以下外设：

* USB EHCI
* GPIO

#### 待办事项

1. 使 EMAC 以太网驱动程序正常工作。需要更多网络驱动专家的帮助。
2. 实现更多驱动程序。

#### [FreeBSD/arm 为 ARMv7 提供超级页面支持](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD/arm-Superpages-for-ARMv7)

| 链接                                                                                    |
| ------------------------------------------------------------------------------------- |
| [论文](http://static.usenix.org/events/osdi02/tech/full_papers/navarro/navarro.pdf)     |
| [Wiki 页面](https://wiki.freebsd.org/ARMSuperpages)                                     |
| [项目 GitHub 仓库](https://github.com/semihalf-bodek-zbigniew/freebsd-arm-superpages.git) |

联系方式：Zbigniew Bodek <<zbb@semihalf.com>>\
联系方式：Grzegorz Bernacki <<gjb@semihalf.com>>\
联系方式：Rafał Jaworowski <<raj@semihalf.com>>

ARM 架构越来越普遍，不仅仅在移动和嵌入式领域。最近几个月出现的一个有趣的行业趋势是“ARM 服务器”概念。一些顶级公司（如 Dell、HP）已经开始开发这类系统。

FreeBSD 在这些新领域的成功依赖于一些先进的功能，其中之一就是超级页面（superpages）。

该项目的目标是为 FreeBSD/arm 提供超级页面支持，这将使得 TLB 转换的使用更加高效（扩大 TLB 覆盖范围），从而在许多应用中提升性能和可扩展性。该功能旨在在 ARMv7 处理器上工作，但仍将保持与 ARMv6 的兼容性。

当前支持状态：

* pv\_entry 分配器的移植。
* 切换到“AP \[2:1]”访问权限模型。
* 基于 PTE 的页面引用/修改仿真。
* 针对页面替换策略的修复。
* 代码优化和 bug 修复。

下一步：

* 脏页管理。
* 渐进式集成到 FreeBSD -CURRENT。
* 进一步的 pmap 优化。
* 分段控制管理。
* 测试和基准测试。

#### 待办事项

1. 支持多种页面大小。
2. 实现页面晋升、降级和驱逐机制。

### [改进 FreeBSD/ARM 工具链](https://www.freebsd.org/status/report-2013-01-2013-03.html#FreeBSD/ARM-Toolchain-Improvements)

| 链接 |
| -- |

联系方式：Andrew Turner <<andrew@FreeBSD.org>>

Clang 已被设为 ARM 的默认编译器。许多与 LLVM 和 clang 相关的问题已经被发现、报告并在上游修复。

有一个问题是使用 clang 编译的某些 ARM EABI 应用程序崩溃，已向上游报告并提供了补丁，待上游接受后将引入到 FreeBSD 树中。另一个阻止迁移到 ARM EABI 的问题是 C++ 异常在共享对象中无法正常工作。我们需要导入 libunwind 或实现 libgcc\_s 所需的函数，以找到正确的 unwind 表。

#### 待办事项

1. 修复 EABI 的异常处理。

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

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

| 链接                                                                              |
| ------------------------------------------------------------------------------- |
| [FreeBSD Haskell Wiki 页面](http://wiki.freebsd.org/Haskell)                      |
| [FreeBSD Haskell Ports 仓库](https://github.com/freebsd-haskell/freebsd-haskell/) |

联系方式：Gábor Pálí <<pgj@FreeBSD.org>>\
联系方式：Ashish Shukla <<ashish@FreeBSD.org>>

我们自豪地宣布 FreeBSD Haskell 团队已经将现有的 Port 更新为最新的稳定版本。我们还增加了一些新的 Port，使 FreeBSD Ports 中的 Haskell Port 数量超过 400，涉及了许多流行的软件，如 xmonad、git-annex、pandoc 或各种 Web 框架实现。所有这些更新将在即将发布的 8.4-RELEASE 中提供。我们还了解到，Haskell Port 在 DragonFlyBSD 的 dPorts 中也成功使用。

在我们的开发仓库中，增加了一些基于 LLVM 的代码生成的可选支持，使用的是 GHC LLVM 后端。这在 FreeBSD 上也大多可以工作，尽管一些 Port 仍需修复，因此仍被视为实验性。

#### 待办事项

1. 尝试使用 clang（作为系统编译器）构建 GHC。
2. 将待提交的 Haskell Port 提交到 FreeBSD Ports。
3. 向 Ports 中添加更多 Port。

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

| 链接                                                          |
| ----------------------------------------------------------- |
| <http://www.freebsd.org/gnome>                              |
| <http://www.freebsd.org/gnome/docs/develfaq.html>           |
| <http://www.marcuscom.com:8080/viewvc/viewvc.cgi/marcuscom> |
| <https://github.com/jlmess77/mate-ports>                    |

联系方式：FreeBSD GNOME 团队 <<gnome@FreeBSD.org>>

GNOME/FreeBSD 团队最近将 Glib 2.34、Gtk+ 2.24.17 和 Gtk+ 3.6.4 合并到 Port 中，C++ 绑定也得到了更新。除此之外，一些 "低级" GNOME Port 也得到了更新，例如 libsoup、gobject-introspection、atk 和 vala 等。Telepathy 堆栈和 Empathy 也已更新。

USE\_GNOME 宏已经支持了 `:run` 和 `:build` 目标，感谢 Jeremy Messenger (mezz)。目前，只有 libxml2 和 libxslt 支持这些目标。

`USE_GNOME=pkgconfig` 正在被弃用，推荐使用 `USE_PKGCONFIG=build`。前者还会添加对 pkg-config 的运行时依赖，但其实并不需要。我们在 Glib 更新到 2.34 时已经进行了一次清理，移除了这一依赖。在与 X11 团队的合作下，将移除 X 组件中的 USE\_GNOME=pkgconfig 使用。处理完这个问题并转换掉剩余部分后，选项 `USE_GNOME` 将被移除。

此外，USE\_GNOME=gnomehack 也已弃用，不应再使用，请改用 USES=pathfix。

GNOME 开发仓库已从 CVS 切换为 SVN，CVS 不再进行更新。用户可以从 [marcusmerge](http://marcuscom.com/downloads/marcusmerge) 网站下载支持 SVN 的新版本脚本，并应移除旧的 CVS 检出的 `ports` 目录。

* SVN 匿名根目录：<svn://creme-brulee.marcuscom.com/> 或 <svn://sushi.marcuscom.com/> (IPv6)
* ViewVC: <http://www.marcuscom.com:8080/viewvc/viewvc.cgi/marcuscom>

持续进行的工作：

* 在 GNOME 开发仓库中更新了 glib 2.36、pango 1.34.0、gtk 3.8.0 和 gobject-introspection 1.36.0。
* Gustau Perez i Querol 接手并开始更新旧的 GNOME 3.4 Port 到 3.6。撰写时这些更新尚未在 GNOME 开发仓库中提供。为了表彰他的努力，他被授予了 FreeBSD GNOME 团队成员资格。
* Jeremy Messenger (mezz) 完成了 Mate 1.6 的工作，待稳定后将加入 Port 中。

如果你想帮助更新文档或以其他方式提供帮助，哪怕只是在你感兴趣的 Glib/Gtk/GNOME 堆栈部分，请与我们联系！

#### 待办事项

1. 更新 FreeBSD.org/gnome 网站，特别是有关 USE\_GNOME 的开发者信息，或许可以将该部分移到 Porter's Handbook 中。
2. 将更多更新的 Port 从 MC 合并到 Port 中。
3. 测试最新的 Glib/Gtk 版本与现有 Port 的兼容性，并在准备好后将其导入 Port 中。
4. 在移植 GNOME 3.6 后，运行测试并修复错误。

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

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

联系方式：KDE FreeBSD <<kde@FreeBSD.org>>

KDE/FreeBSD 团队非常荣幸地迎来了 Schaich Alonso (aschai) 加入团队。欢迎！

KDE/FreeBSD 团队持续改善在 FreeBSD 上的 KDE 软件和 Qt 体验。最近的一轮改进包括：

* 修复了建立 UDP 连接的问题。

团队还发布了许多版本并将许多修复和补丁上游。最新的版本包括：

* KDE SC: 4.9.5、4.10.1（ Port ）
* Qt: 5.0.0（area51）和 4.8.4（Port）
* PyQt: 4.9.6（Port）；QScintilla 2.7（Port）；SIP: 4.14.2（area51）和 4.14.3（Port）
* KDevelop: 4.4.1（ Port ）；KDevPlatform: 1.4.1（ Port ）
* Calligra: 2.5.5、2.6.2（ Port ）
* Amarok: 2.7.0
* CMake: 2.8.10.2
* Digikam（和 KIPI 插件）: 3.1.0（area51）
* QtCreator: 4.6.1（ Port ）
* KDE Telepathy 0.6.0（area51）
* 许多小 Port

结果 — 根据 PortScout — 我们有 431 个 Port，其中 93.5%（从 91%）是最新的。

团队始终欢迎更多的测试人员和 Port 维护者，因此请与我们联系并访问我们的主页。

#### 待办事项

1. 更新过时的 Port，请查看 PortScout 获取列表。

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

| 链接                                                |
| ------------------------------------------------- |
| [FreeBSD-PyPy 项目页面](http://wiki.freebsd.org/PyPy) |

联系方式：David Naylor <<dbn@FreeBSD.org>>

PyPy 已成功更新至 2.0-beta1，2.0-beta2 正在完成翻译和其他测试。从 2.0-beta1 版本到 PyPy Port 的改动包括：

* 重新编写构建脚本。
* 在可用时可选择使用 pypy 进行自我翻译。
* 精细化内存检查。
* 修复测试目标。

虽然该 Port 处于健康状态，但 FreeBSD 上的 PyPy 仍然存在一些粗糙之处（请参见 make test 以查看粗糙之处的例子）。

#### 待办事项

1. 修复失败的单元测试。
2. 将 PyPy 集成到 bsd.python.mk 中。
3. 请参阅项目页面以了解更多事项。

### [FreeBSD/amd64 上的 Wine32](https://www.freebsd.org/status/report-2013-01-2013-03.html#Wine32-on-FreeBSD/amd64)

| 链接                                                               |
| ---------------------------------------------------------------- |
| [Wine32 在 FreeBSD/amd64 项目页面](http://wiki.freebsd.org/i386-Wine) |

联系方式：David Naylor <<dbn@FreeBSD.org>>

i386-wine Port（原为 wine-fbsd64）已添加到 Ports 中（作为 emulators/i386-wine-devel）。尽管该 Port 只能在 x86 32 位系统上编译，但生成的包可以安装在 x86 64 位系统上，从而使得 32 位 Microsoft Windows 程序能够运行。

该 Port 的包正在开发中，预计很快会在 freebsd-questions 和 freebsd-emulation 邮件列表上宣布。

Wine32 在 FreeBSD/amd64 上存在一些问题——可能与 FREEBSD32\_COMPAT 或其他 32/64 位问题相关——这些问题需要关注。

#### 待办事项

1. 将 wine64 移植到 FreeBSD。
2. 将 WoW64（wine32 和 wine64 一起）移植到 FreeBSD。
3. 修复 32 位和 64 位问题（例如 Intel 显卡无法加速）。

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

| 链接                                                                                   |
| ------------------------------------------------------------------------------------ |
| <https://wiki.freebsd.org/Xfce>                                                      |
| [Midori 0.5 补丁](http://people.freebsd.org/~olivierd/patches/midori-0.4.9_0.5.0.diff) |

联系方式：FreeBSD Xfce 团队 <<xfce@FreeBSD.org>>

Xfce FreeBSD 团队已更新了许多 Port，特别是：

* tumbler: 0.1.27（添加新选项 COVER）
* Parole: 0.5.0
* xfdesktop: 4.10.2
* Midori: 0.4.9（完全兼容 Vala 0.18），0.5.0 可用（见链接）
* Orage: 4.8.4
* xfce4-terminal: 0.6.1（被上游重命名，之前的名称是 Terminal）

最后一个应用程序包含下拉功能：按下键（我们可以定义快捷键）时，新窗口从屏幕顶部滑下。

#### 待办事项

1. 用 libxfce4ui 替换 libxfce4gui（已弃用且不再由上游维护），以增强对 Xfce >= 4.10 的支持面板插件的支持。
2. 进行 Midori Gtk3 Port 的工作。
3. 修复与 Gtk+ >= 3.6 的 gtk-xfce-engine 问题。

### [FreeBSD 上的 xorg](https://www.freebsd.org/status/report-2013-01-2013-03.html#xorg-on-FreeBSD)

| 链接                                                               |
| ---------------------------------------------------------------- |
| <http://wiki.freebsd.org/Xorg>                                   |
| <http://people.freebsd.org/~zeising/xorg-7.7.diff>               |
| <http://trillian.chruetertee.ch/ports/browser/trunk>             |
| <http://trillian.chruetertee.ch/ports/browser/branches/xorg-7.7> |

联系方式：FreeBSD X11 团队 <<x11@FreeBSD.org>>\
联系方式：Niclas Zeising <<zeising@FreeBSD.org>>\
联系方式：Koop Mast <<kwm@FreeBSD.org>>

在此期间的大部分工作集中在更新、测试和稳定化开发仓库。一些 xorg 应用程序和其他一些叶子 Port 已作为此工作的一部分提交。之后，发布了 CFT（Call For Testing），请求帮助测试开发中的剩余部分，包括所有主要库和 xorg-server 的更新。

目前，CFT 补丁已提交进行 exp-run 以解决最后的错误。计划是在 FreeBSD 8.4 发布并且 Ports 重新开放提交后合并。

此外，工作还在继续，将新版本的 MESA 和 OpenGL 以及 xorg-server 的新版本移植到 FreeBSD，未来可能还会涉及 Wayland。这些被视为长期目标，目前不打算在当前更新中实现。

#### 待办事项

1. 决定如何处理新旧 xorg 发行版。在最近的 xorg 中，很多旧版驱动程序的支持已经被去除，因此我们需要维护两个 xorg 发行版，以免失去许多硬件驱动程序。目前，通过在 /etc/make.conf 中设置 WITH\_NEW\_XORG 标志来完成这一操作，但需要一个更实用的解决方案。特别重要的是，由于该标志并不非常用户友好，并且目前不会为新发行版提供官方包。
2. 继续测试和更新与 xorg 相关的 Port。需要移植和最终集成到 Ports 中的有新版本的 xserver、MESA 以及相关的 OpenGL 库。
3. 移植 Wayland。开源操作系统中的图形环境未来似乎将是 Wayland。需要将其移植到 FreeBSD，以便更广泛的用户可以进行测试，并最终可以将其集成到 Ports 中，或许能作为现有 xorg 的替代品。
4. 寻找 HAL 的替代品。HAL 用于设备的热插拔，但它已被 Linux 长期弃用。一个可能的替代品是基于 devd 构建的工具。此项工作应与 FreeBSD GNOME 和 KDE 团队协调进行。

## [杂项](https://www.freebsd.org/status/report-2013-01-2013-03.html#Miscellaneous)

### [BXR.SU — 超级用户的 BSD 交叉引用](https://www.freebsd.org/status/report-2013-01-2013-03.html#BXR.SU-%E2%80%94-Super-User's-BSD-Cross-Reference)

| 链接                                                                          |
| --------------------------------------------------------------------------- |
| [BXR.SU — 超级用户的 BSD 交叉引用](http://bxr.su/)                                   |
| <http://lists.freebsd.org/pipermail/freebsd-hackers/2013-April/042334.html> |

联系方式：Constantine A. Murenin <<cnst++@FreeBSD.org>>

超级用户的 BSD 交叉引用（BXR.SU）是一个新的源代码搜索引擎，涉及了 FreeBSD、NetBSD、OpenBSD 和 DragonFly BSD 的完整内核和非 GNU 用户空间源代码树。

BXR.SU 优化为非常快速，拥有所有代码树的每日更新，并且还充当确定性的 URL 短链接服务。

BXR.SU 基于 OpenGrok 的分支，但它不仅仅是 OpenGrok。我们修复了许多烦人的问题，剔除了那些从未正常工作的特性，并与 CVSweb（包括像 allbsd.org 这样优秀的镜像）、FreeBSD 的 ViewVC（SVN）以及 GitHub 和 Gitweb（来自 git.freebsd.your.org）等工具进行了集成，还进行了一些其他改进，包括对 mdoc 解析器的完全重写。最后但绝对重要的是，BXR.SU 配备了一整套 nginx 重写规则，使其成为引用 BSD 源代码时的确定性 URL 压缩器。例如，`http://bxr.su/f/kern/sched_ule.c` 的链接会通过 nginx 自动重定向到 `http://bxr.su/FreeBSD/sys/kern/sched_ule.c`。

需要注意的是，根据 BXR.SU 的发布计划，直到 2013-04-24 不会提供 IPv4 服务；在此之前，服务将同时通过 IPv4 和 IPv6 提供。有关更多详情，请参阅 2013-04-01 发布的 freebsd-hackers 邮件列表公告。

#### 待办事项

1. 寻找 NetBSD 和 OpenBSD 的最新 Git 仓库（通过 Gitweb 提供）。
2. 寻找一个比 GitHub 和 Gitorious 更快的 FreeBSD Gitweb 镜像。

### [mdoc.su — 短版手册页面 URL](https://www.freebsd.org/status/report-2013-01-2013-03.html#mdoc.su-%E2%80%94-Short-Manual-Page-URLs)

| 链接                                                                              |
| ------------------------------------------------------------------------------- |
| [mdoc.su — FreeBSD、NetBSD、OpenBSD 和 DragonFly BSD 的短版手册页面 URL](http://mdoc.su/) |
| [mdoc.su 的 nginx.conf 配置文件](http://nginx.conf.mdoc.su/mdoc.su.nginx.conf)       |
| <https://github.com/cnst/mdoc.su>                                               |
| <http://lists.freebsd.org/pipermail/freebsd-doc/2013-February/021465.html>      |

联系方式：Constantine A. Murenin <<cnst++@FreeBSD.org>>

[mdoc.su](http://mdoc.su/) 是一个为 BSD 手册页面提供确定性 URL 缩短服务的工具，完全使用 nginx.conf 编写。

自从最初的公告以来，已经添加了操作系统版本支持（例如，`/f91/` 和 `/FreeBSD-9.1/` 等），还支持动态的多版本网页，并提供多个链接（例如 `http://mdoc.su/f,d/ifnet.9` 和 `http://mdoc.su/-/mdoc`），这些链接甚至允许你指定版本（例如 <http://mdoc.su/f91,n60,o52,d/mdoc）。>

整个网站的源代码可以在 BSD 许可下获取。

#### 待办事项

1. 在 GitHub 上进行复刻（请见链接）！


---

# 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/2013/2013-1-3.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.
