# FreeBSD 2007 年 10-12 月状态报告

* 原文链接：<https://www.freebsd.org/status/report-2007-10-2007-12.html>

## 引言

本报告涵盖了 2007 年 10 月至 12 月之间与 FreeBSD 相关的项目。[AsiaBSDCon 2008](http://2008.asiabsdcon.org/) 即将举行，将于 2008 年 3 月 27 日至 30 日在日本东京的东京理科大学（東京理科大学）举行。FreeBSD 基金会发布了 [新闻简报](http://www.freebsdfoundation.org/press/2007Dec-newsletter.shtml)，详细介绍了过去几个月的活动。

FreeBSD 7.0 即将发布，第二个发布候选版本已准备好进行测试，并且可以 [立即下载](http://www.freebsd.org/where.html#helptest)。

感谢所有报告人员的出色工作！希望你阅读愉快。

## [项目](https://www.freebsd.org/status/report-2007-10-2007-12.html#Projects)

### [DTrace](https://www.freebsd.org/status/report-2007-10-2007-12.html#DTrace)

| 链接                                                         |
| ---------------------------------------------------------- |
| [变更总结](http://people.freebsd.org/~jb/reasons/reasons.html) |

联系人：John Birrell <<jb@FreeBSD.org>>

得益于 Cisco Systems, Inc 的支持，将 OpenSolaris 的 DTrace 动态追踪框架移植到 FreeBSD 的工作再次活跃起来。已经找到了解决 CDDL 和 BSD 许可证集成问题的方案。现有一个完全 BSD 许可证的挂钩/适配器集，可以选择性地编译进内核。这个选项可以包含在 GENERIC 内核中，并在没有任何 CDDL 专利问题的情况下进行发布。CTF（紧凑型 C 类型格式）工具现在可以在所有启用的架构上运行，支持通过 'make universe' 构建。已经开发了一个 BSD 许可证的 DWARF 库。目前，内核的 DTrace 支持仅限于 amd64 和 i386 架构。它目前通过了 DTrace 测试套件中的 822 项测试。预计在审核后，FreeBSD-CURRENT 的初次提交将在下一个月内进行。有关提议更改的详细信息，请参阅变更总结页面。

### [FreeBSD 安装程序](https://www.freebsd.org/status/report-2007-10-2007-12.html#FreeBSD-Installer)

| 链接                                             |
| ---------------------------------------------- |
| <http://people.freebsd.org/\\~mtm/fin.tar.bz2> |

联系人：Mike Makonnen <<mtm@FreeBSD.Org>>

FreeBSD 安装程序项目（FIN）是另一次尝试替换老旧的 sysinstall(8)。我正在尝试保留 sysinstall(8) 中的最佳部分，并将它们与 BSDInstaller（bsdinstaller.org）提供的框架结合，创建一个多语言的 FreeBSD 安装程序，支持多种安装介质，支持远程安装，并且可以轻松扩展到其他安装类型（如 GUI、CGI 等）。当前的实现将会分区磁盘，安装你选择的基础发行版，并设置主机名和 root 密码。

#### 待办事项

1. 设置日期、时间和时区信息
2. 选择和安装软件包
3. 支持 IDE CD-ROM 以外的安装介质（HTTP、FTP 等）
4. 集成 devel/gettext

### [性能监控项目](https://www.freebsd.org/status/report-2007-10-2007-12.html#Performance-Monitoring-Project)

| 链接                                  |
| ----------------------------------- |
| [临时网站位置](http://littlebit.dk:5000/) |

联系人：Erik Cederstrand <<erik@cederstrand.dk>>

作为我论文的一部分，我一直在研究一个框架，用于监控 CURRENT 随时间的性能。该项目目前已经处于一个状态，服务器和从属机正在生成基准测试结果，并将结果发布到一个网页上进行测试。该设置已经能够检测到回归。虽然还可以进行很多改进，但目前已经非常有用。在接下来的一个月内，我将添加一些功能，修复漏洞，并编写文档。

#### 待办事项

1. 确定一组有用的基准测试
2. 为数据库和网页服务器找到一个更永久的存放位置
3. 正式上线

### [TCP ECN](https://www.freebsd.org/status/report-2007-10-2007-12.html#TCP-ECN)

| 链接                                                                                                      |
| ------------------------------------------------------------------------------------------------------- |
| [Perforce 仓库](http://p4web.freebsd.org/@md=d\&cd=/depot/projects/\&c=DN2@/depot/projects/tcpecn/?ac=83) |
| [邮件讨论](http://lists.freebsd.org/pipermail/freebsd-net/2007-November/016007.html)                        |
| [补丁](http://people.freebsd.org/~rpaulo/tcp_ecn.diff)                                                    |

联系人：Rui Paulo <<rpaulo@FreeBSD.org>>

已完成并测试。正在等待其他提交者的审核。

### [TrustedBSD 审计](https://www.freebsd.org/status/report-2007-10-2007-12.html#TrustedBSD-Audit)

| 链接                                                              |
| --------------------------------------------------------------- |
| [TrustedBSD 审计主页](http://www.trustedbsd.org/audit.html)         |
| [TrustedBSD OpenBSM 主页](http://www.trustedbsd.org/openbsm.html) |
| [BSMtrace 主页](http://www.trustedbsd.org/bsmtrace.html)          |

联系人：Robert Watson <<rwatson@FreeBSD.org>>\
联系人：Christian Peron <<csjp@FreeBSD.org>>\
联系人：TrustedBSD 审计邮件列表 <<trustedbsd-audit@TrustedBSD.org>>

TrustedBSD 项目很自豪地发布了 OpenBSM 1.0，这是 OpenBSM 的第一个生产版本，已与 FreeBSD 6.3 一起发布，并将在 FreeBSD 7.0 中发布。此版本主要是对前一个 alpha 版本的修复、清理和优化，但对于 FreeBSD 6.x，引入了如 XML 审计日志打印、新的令牌类型和新的事件标识符等功能。

在审计方面，开发工作仍在继续，包括 OpenBSM 1.1 alpha 的初步工作，改善审计管道的性能和语义，以及实验性的 bsmtrace 主机入侵检测包。

#### 待办事项

1. 通过引入额外的缓冲和多记录复制来提高实时入侵检测的性能。
2. 通过为审计管道添加更精细的记录匹配支持（如按进程 ID 和进程树 ID 匹配），提高实时入侵检测和监控的灵活性。
3. 为实验性的 bsmtrace 入侵检测包引入多主机网络支持，实现对来自多个主机的实时 bsm 跟踪的集中监控和警报。
4. 继续分析 CC 审计要求，完善缺失的事件来源，如当前未生成审计记录的用户管理工具。

### [Xen](https://www.freebsd.org/status/report-2007-10-2007-12.html#Xen)

| 链接                                                                              |
| ------------------------------------------------------------------------------- |
| [可以在这里找到一个小的基于文件的磁盘和一些示例配置文件](http://www.fsmware.com/xenofreebsd/7.0/download/) |

联系人：Kip Macy <<kmacy@FreeBSD.org>>

目前该 Port 仅作为客体（即 domU）在 i386/PAE 平台上运行。状态：

* domU 在 8-CURRENT 上自我托管（可以在虚拟机中编译世界和内核）。
* 不支持 Xen 3.0.3 及更早版本。
* 设备结构需要清理，尚未符合 newbus 标准。
* 计划在 5 月之前为 RELENG\_6 和 RELENG\_7 提供 SMP 和 amd64 支持。
* 目前不在路线图上支持 dom0。

#### 待办事项

1. 需要大量清理工作，如果你有兴趣帮助，请与 Kip Macy 或 Scott Long 联系

## [FreeBSD 团队报告](https://www.freebsd.org/status/report-2007-10-2007-12.html#FreeBSD-Team-Reports)

### [安全官员和安全团队](https://www.freebsd.org/status/report-2007-10-2007-12.html#Security-Officer-and-Security-Team)

| 链接                                                     |
| ------------------------------------------------------ |
| <http://www.freebsd.org/security/>                     |
| <http://www.freebsd.org/administration.html#t-secteam> |
| <http://vuxml.freebsd.org/>                            |

联系人：安全官员 <<security-officer@FreeBSD.org>>\
联系人：安全团队 <<security-team@FreeBSD.org>>

自上次状态报告以来，已发布四个关于 FreeBSD 基本系统问题的安全公告，其中一个问题出现在 FreeBSD 以外维护的 `contributed` 代码中。FreeBSD 漏洞和暴露标记语言（VuXML）文档持续更新；自上次报告以来，已增加了 61 条新条目，总数已达到 1023 条。许多新条目由 `ports-security` 团队成员添加。

`ports-security` 团队仍在寻找更多的提交者，以便定期帮助修复 Port 安全问题并将其记录到 FreeBSD VuXML 文档中。希望参与此工作的提交者可以联系 simon@ 获取更多信息。

FreeBSD 安全团队支持以下版本的 FreeBSD：FreeBSD 5.5、FreeBSD 6.1、FreeBSD 6.2 和 FreeBSD 6.3。支持版本的生命周期结束日期已在网站上列出；预计即将发布的 FreeBSD 7.0 版本将获得一年的支持。

## [内核](https://www.freebsd.org/status/report-2007-10-2007-12.html#Kernel)

### [Coda](https://www.freebsd.org/status/report-2007-10-2007-12.html#Coda)

联系人：Robert Watson <<rwatson@FreeBSD.org>>

在过去六个月中，FreeBSD `coda` 内核模块修复了大量错误，并且已添加了手册页以描述该模块。这些错误大多是由于 coda 模块未能跟上 FreeBSD VFS 近年来的众多增强。经过这些修复后，现在可以在 FreeBSD 7.x 和 8.x 上使用 Coda，而不会立即发生 panic，并且可能会持续较长时间。新的手册页明确指出 Coda 是一个实验性的分布式文件系统，尚不适合在 FreeBSD 上进行生产使用，但情况比以前好多了。

### [DDB 脚本、输出捕获和文本转储](https://www.freebsd.org/status/report-2007-10-2007-12.html#DDB-scripting,-output-capture,-and-textdumps)

联系人：Robert Watson <<rwatson@FreeBSD.org>>

内核 DDB 功能已增强，添加了以下几个新功能：

*DDB 脚本* 允许用户在调试器或用户空间中使用新的 ddb(8) 工具定义一组简单的脚本，以自动化调试步骤。脚本可以在进入调试器时自动执行（如 `kdb.enter.panic`、`kdb.enter.break` 等），也可以通过 DDB `run` 命令手动执行。

*DDB 输出捕获* 允许用户请求将 DDB 的输出捕获到缓冲区中，以便从用户空间访问或写入文本转储。

*DDB 文本转储* 是一种新的转储格式，它将内核消息缓冲区、panic 消息、内核配置、内核版本以及 DDB 捕获缓冲区等文本调试信息打包为一个 tarball，写入交换分区，可通过 savecore(8) 提取。这提供了一种紧凑、便携且与内核编译无关的调试包。

在 ddb(4) 和 textdump(4) 中描述了各种有趣的使用公式；这些功能是可分离的，因此你可以例如运行一些 DDB 命令并捕获其输出，然后写出常规的转储并使用 kgdb 提取该输出，或者执行相同操作并将其写出为文本转储。同样，脚本可用于自动化手动调试，或者通过启用输出捕获、运行一系列命令并强制在重启前写出文本转储来实现文本转储。

这些功能已合并到 8-CURRENT 中，并将在 FreeBSD 7.0 发布后合并到 7-STABLE 中。

#### 待办事项

1. 改善将文本转储与 KDB\_UNATTENDED 结合使用的语义。
2. 允许脚本在自动启动后使用 DDB `continue` 命令，自动启动由 KDB 事件（如 `kdb.enter.sysctl` 或 `kdb.enter.break`）触发。

### [FreeBSD SMP 网络堆栈可扩展性](https://www.freebsd.org/status/report-2007-10-2007-12.html#FreeBSD-SMP-network-stack-scalability)

联系人：Robert Watson <<rwatson@FreeBSD.org>>\
联系人：Kris Kennaway <<kris@FreeBSD.org>>

有许多正在进行的项目，涉及提高 FreeBSD 网络堆栈在 7.0 后的 SMP 可扩展性。这些包括：

* 对 BIND9、MySQL、PgSQL 和 Apache 等应用程序负载的详细分析，用于识别性能瓶颈并指导源代码的变更。
* 使用 rwlock(9) 对 pcbinfo 和 inpcb 进行加锁，在 UDP 接收和发送过程中仅获取 pcbinfo 和 inpcb 的读锁——这对于提高 BIND9 性能非常有益，BIND9 在单个 UDP 套接字上同时发送和接收多个线程。
* 将 pcbinfo 拆分为一系列并行数据结构，通过连接元组的哈希值选择特定的 pcbinfo 实例（如果存在歧义的情况，则所有实例都适用）。这将大大减少 pcbinfo 在并行输入情况下的争用，这在具有多个输入队列网络设备（如 Chelsio cxgb 10gbps 驱动程序）的情况下越来越常见。
* 调查 rmlock(9) 的使用机会——rmlocks 提供轻量级的读取获取，但写入获取则较为昂贵，当存在大量读操作而写操作较少时（例如防火墙规则列表保护、pf 钩子注册、地址列表等），rmlock 可能是 rwlock 的合适替代方案。
* 弱连接亲和性，通过网络堆栈或网络卡对连接进行哈希/rss 工作分配，以确定连接的有效亲和性，并将其暴露给用户空间，从而可以在或接近处理该连接输入的 CPU 上执行与该连接相关的工作。软件工作放置已通过 *netisr2* 实现，它创建每 CPU 的 netisr 线程并根据连接属性分配工作。

此外，还有许多其他相关工作，特别是与 10gbps 网络驱动程序相关的工作，特定的关注点包括 BIND9、MySQL、pgsql、Apache 和一般的 TCP 并行性。

### [FreeBSD/mips](https://www.freebsd.org/status/report-2007-10-2007-12.html#FreeBSD/mips)

联系人：Warner Losh <<imp@FreeBSD.org>>\
联系人：Oleksandr Tymoshenko <<gonzo@FreeBSD.org>>\
联系人：Ollivier Houchard <<cognet@FreeBSD.org>>\
联系人：Randall Stewart <<rrs@FreeBSD.org>>

FreeBSD/mips 在使用 gxemul 和基于 4Kc 的 CPU 的 MALTA 板上启动到多用户模式。该移植针对 MIPS32 和 MIPS64 第 1 和第 2 版系统。正在进行工作以支持多核系统。

对 adm 5120、IDT RC32434、Sentry 5 和其他几个目标的初步移植已开始。这些移植在不同的稳定性阶段。

Juniper Networks 已捐赠了一款通用的 MIPS FreeBSD 平台。此移植不在任何实际硬件上运行，但包含了在理想化的 MIPS 硬件上运行所需的部分。FreeBSD/mips 工作组一直在将当前的基础代码和 Juniper 的代码合并成统一的基础代码。此外，Cavium Networks 也捐赠了支持其多核 mips64r2 平台的代码。这些代码也在合并并清理中。合并后的代码库目前已经进入了第一次（或许是第二次）调用 cpu\_switch 之前，但仍会崩溃。该领域的活跃工作仍在进行中。

### [LVM geom 类](https://www.freebsd.org/status/report-2007-10-2007-12.html#LVM-geom-class)

联系人：Andrew Thompson <<thompsa@FreeBSD.org>>

glvm 是一个 geom 类，它从 LVM2（Linux 逻辑卷管理器）磁盘中读取元数据，并为每个逻辑卷创建一个 geom 提供者。例如，名为 vg0 的卷组上的日志 lv 会显示为 /dev/lvm/vg0-logs，可以将其作为磁盘挂载。

该代码已经正常工作，很快将发布进行测试。

### [清理与重写重大 TCP 代码](https://www.freebsd.org/status/report-2007-10-2007-12.html#Major-TCP-Code-Cleanup-and-Rewrite)

| 链接                                                                                                        |
| --------------------------------------------------------------------------------------------------------- |
| [更改日志](http://perforce.freebsd.org/changeList.cgi?CMD=changes\&FSPC=//depot/projects/tcp_new/...)         |
| [TCP 输入源代码](http://perforce.freebsd.org/fileViewer.cgi?FSPC=//depot/projects/tcp_new/netinet/tcp_input.c) |

联系人：Andre Oppermann <<andre@FreeBSD.org>>

FreeBSD 的 TCP 代码随着时间的推移发生了很多变化，并添加了许多新功能。然而，随着时间的推移，代码变得凌乱、复杂，且难以阅读和跟踪。在某些地方，功能已被移除，但主 TCP 功能中的相关代码没有被完全删除。

TCP 代码清理和重写的主要目的是让代码：

* 再次容易阅读；
* 再次容易跟踪；
* 更加简化，便于维护；
* 可验证地正确并符合 RFC 标准；
* 方便扩展新的拥塞控制算法；
* 提高性能。

不少代码已经（重新）编写，但仍有很多工作要做。

#### 待办事项

1. 将私有分支的代码集成到公共的 perforce 仓库中。
2. 完成代码编写与重写。与可插拔拥塞控制算法集成。
3. 完整的代码行为检查，确保符合所有 TCP RFC 和即将发布的 RFC 草案。
4. 扩展测试和其他 TCP 开发者的完整代码审查。

### [多 IPv4/v6 Jail](https://www.freebsd.org/status/report-2007-10-2007-12.html#Multi-IPv4/v6-jails)

联系人：Bjoern A. Zeeb <<bz@FreeBSD.ORG>>

多 IPv4/v6 Jail 项目在 2006 年之前的工作被放弃后，于 1 月初重新启动。

作为完全网络堆栈虚拟化的替代解决方案，该工作旨在提供一种轻量级的多 IP 虚拟化解决方案。由于 IPv6 需求的日益增加，这些变化变得更加重要。

目前的状态包括更新的用户空间工具。内核端已支持在 Jail 中为两个地址族配置多个 IP 地址，同时保留了旧的内核内部查找/检查功能，并且可以在过渡期编译时将 Jail 限制为一个 IP 地址。此外，添加了一个显示 Jail 的 DDB 命令，以便于调试。

作为一个辅助项目，最后的 suser(9) 检查被替换为支持 Jail 中的可选原始 IPv6 套接字的 netinet6/。新的 priv(9) 检查已提交到 HEAD。

#### 待办事项

1. 检查 v4 映射 v6 地址的处理是否正确。
2. 审查/添加 SCTP Jail 检查。
3. 思考如何为有大量 IP 地址的 Jail 提供增强的查找（保留“主”IPv4 地址）。
4. 回归测试和审查。

### [优化 TCP 重组队列](https://www.freebsd.org/status/report-2007-10-2007-12.html#TCP-Reassembly-Queue-Optimization)

\| 链接 |\
\| |\
\| [变更日志](http://perforce.freebsd.org/changeList.cgi?CMD=changes\&FSPC=//depot/projects/tcp_reass/...) |\
\| [TCP 重组队列源文件](http://perforce.freebsd.org/fileViewer.cgi?FSPC=//depot/projects/tcp_reass/netinet/tcp_reass.c) |

联系人：Andre Oppermann <<andre@FreeBSD.org>>

FreeBSD TCP 重组队列系统在今天高速链接和大套接字缓冲区的长距离传输中达到了极限。旧代码与 4.4BSD 几乎没有变化，在处理大 mbuf 链时效率较低。

新代码将连续的段聚合成块，并将块插入尾队列。为新到达的段检查插入点，按其概率顺序进行。这避免了完全遍历链表，效率非常高。

为了防止容易的资源耗尽攻击，有效的 mbuf 使用量会被计算并限制为套接字缓冲区的大小。这样，重组队列就不能被大量小段之间的许多空洞滥用。

进一步的改进是将接收到的 SACK 块跟踪与重组队列结合。重组队列现在跟踪所有段的块。这样再次跟踪 SACK 就不再必要。此外，对 SACK 块的限制被取消，inpcb 结构的大小也减少了很多。

新代码已经稳定，并在测试中成功处理了从世界各地广泛分布的站点下载完整的 FreeBSD CDROM 镜像和 180 个 Port 的 distfile，丢包率为 2%。

#### 待办事项

1. 进一步的小性能和空间优化。
2. 使用新的 ipfw tcptruncate 选项扩展测试，切割 TCP 段并将它们带有完全和部分丢失的情况输入重组队列。
3. 由其他 TCP 开发人员进行完整代码审查。

### [虚拟内存过度分配](https://www.freebsd.org/status/report-2007-10-2007-12.html#VM-Overcommit)

| 链接                                                |
| ------------------------------------------------- |
| [项目页面](http://people.freebsd.org/~kib/overcommit) |

联系人：Konstantin Belousov <<kostikbel@gmail.com>>\
联系人：Peter Holm <<peter@holm.cc>>

该补丁用于计算可能需要的交换空间，并将其限制为总配置交换空间或每个 UID 限制，已被复兴并移植到 8-CURRENT。现在，Peter Holm 正在进行密集测试。请在各种工作负载下进行测试。欢迎提供意见！

## [文档](https://www.freebsd.org/status/report-2007-10-2007-12.html#Documentation)

### [匈牙利文档项目](https://www.freebsd.org/status/report-2007-10-2007-12.html#The-Hungarian-Documentation-Project)

\| 链接 |\
\| |\
\| [匈牙利网页](http://www.freebsd.org/hu/) |\
\| [匈牙利文章](http://www.freebsd.org/doc/hu_HU.ISO8859-2/articles/) |\
\| [Perforce 变更列表](http://perforce.freebsd.org/changeList.cgi?FSPC=//depot/projects/docproj%5fhu/books/handbook/...%2b//depot/projects/docproj%5fhu/share/...) |

联系人：Gábor Kévesdén <<gabor@FreeBSD.org>>\
联系人：Gábor Pályi <<pgj@FreeBSD.org>>

我们已经添加了 FreeBSD 传单的翻译，并维护现有的翻译。FreeBSD 手册的匈牙利语翻译进展巨大。此外，还有一个持续的努力为即将发布的 FreeBSD 版本提供匈牙利语的发布说明。

#### 待办事项

1. 翻译手册
2. 为 HEAD 和 RELENG\_7 添加发布说明

### [西班牙文档项目](https://www.freebsd.org/status/report-2007-10-2007-12.html#The-Spanish-Documentation-Project)

| 链接                                                                   |
| -------------------------------------------------------------------- |
| [志愿者信息](http://www.freebsd.org/doc/es_ES.ISO8859-1/articles/fdp-es/) |

联系人：José Vicente Carrasco Vayá <<carvay@FreeBSD.org>>\
联系人：Gábor Kévesdén <<gabor@FreeBSD.org>>

自上次状态报告以来，我们在网站翻译方面取得了显著进展。已润色了翻译网站的结构，并且我们已更新了大量页面。同时，也翻译了包含重要内容的新页面。除了良好的进展外，仍有许多工作要做。一些页面依然严重过时，一些重要部分缺失。

同时，我们新增了一篇文章的翻译，另一篇翻译仍在等待审查后提交。

#### 待办事项

1. 继续将网站与英文版同步，并翻译更多重要部分。
2. 同步文章与手册。
3. 添加新翻译。

## [用户空间程序](https://www.freebsd.org/status/report-2007-10-2007-12.html#Userland-Programs)

### [malloc(3)](https://www.freebsd.org/status/report-2007-10-2007-12.html#malloc\(3\))

联系人：Jason Evans <<jasone@FreeBSD.org>>

malloc(3) 在多个方面进行了增强，以减少多线程程序在并发使用 malloc(3) 函数时的锁争用。主要的增强包括懒释放和动态领域负载平衡。

懒释放旨在减少使用生产者 - 消费者模型的程序的争用，在该模型中，一个线程生产（分配）对象，而一组工作线程消费（释放）这些对象。作为副作用，懒释放也显著减少了多个无关线程使用相同领域时的锁争用。

分配活动模式会随着程序生命周期的变化而变化。动态领域负载平衡监控领域锁争用，并根据需要重新分配线程到其他领域，从而平滑分配器性能。

为了支持领域负载平衡监控锁争用，我不得不切换到使用 pthread 互斥锁。这本身就平滑了在高负载下的分配器性能，因为 libc 内部的“自旋锁”并非真正的自旋锁，而 malloc 现在在阻塞前会进行短暂的自旋。

我计划将这些更改 MFC 到 RELENG\_7，希望能赶上 FreeBSD 7.1 版本的发布。

### [procstat(1)](https://www.freebsd.org/status/report-2007-10-2007-12.html#procstat\(1\))

联系人：Robert Watson <<rwatson@FreeBSD.org>>

新的命令行工具 procstat(1) 允许详细检查和打印进程属性，包括文件描述符、线程、内核线程堆栈、凭证和进程的虚拟内存映射。为清晰地导出这些信息，内核中增加了几个新的 sysctl，并且 stack(9) 功能也得到了增强，允许捕获来自 curthread 以外线程的内核堆栈。这些功能都不依赖于 procfs，继续消除要求 procfs 来打印进程信息的需求，并且添加了 procfs 无法提供的新类型的信息。内核堆栈打印特别有用，因为它提供了比目前提供的有限 wmesg 上下文更详细的信息，帮助调试用户进程问题和内核问题。procstat 已合并到 FreeBSD 8-CURRENT，并将在 FreeBSD 7.0 发布后合并到 7-STABLE。

#### 待办事项

1. 合并到 RELENG\_7。
2. 添加一个模式来打印进程信号处置。

## [Ports](https://www.freebsd.org/status/report-2007-10-2007-12.html#Ports)

### [Ports 2.0](https://www.freebsd.org/status/report-2007-10-2007-12.html#Ports-2.0)

联系人：Aryeh Friedman <<aryeh.friedman@gmail.com>>\
联系人：Alejandro Pulver <<alepulver@FreeBSD.org>>\
联系人：David Southwell <<david@vizion2000.net>>

完成了初步需求收集。开发工具的选择已完成。整体内部设计已完成。

Ports 2.0 的目标是：

* 使用图论和更灵活的依赖计算重新设计/现代化 Port 构建过程。
* 更好地记录 Ports 1.0 和 2.0。
* 保持与 Ports 1.0 的 100% 用户级兼容性。
* 在长时间的试用期后，在“基本系统”中替换 Ports 1.0。

#### 待办事项

1. 创建引擎。
2. 将 Ports 1.0 的文档从 Porters Guide 和手册合并为单一指南。
3. 创建一个概念验证，通过新系统构建 xorg（包括所有依赖项）。
4. 创建邮件列表和网站。

### [Ports](https://www.freebsd.org/status/report-2007-10-2007-12.html#Ports-)

| 链接                                                                                                |
| ------------------------------------------------------------------------------------------------- |
| [FreeBSD Ports](http://www.freebsd.org/ports/)                                                    |
| [如何贡献到 FreeBSD Ports](http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/)    |
| [FreeBSD Ports 不可获取的 distfile 调查（Bill Fenner 的报告）](http://people.freebsd.org/~fenner/portsurvey/) |
| [FreeBSD Ports 监控系统](http://portsmon.freebsd.org/index.html)                                      |
| [FreeBSD Ports 管理团队](http://www.freebsd.org/portmgr/index.html)                                   |
| [marcuscom Tinderbox](http://tinderbox.marcuscom.com/)                                            |

联系人：Mark Linimon <<linimon@FreeBSD.org>>

Port 数量继续增加，目前已经超过 18,000 个。PR 数量在 6.3/7.0 冻结之前曾降至约 750 个，但现在已回升至约 1000 个，因为我们仍处于 Port 混乱阶段。

由于冻结/混乱，自上次报告以来没有提交任何实验性 Port 运行。尽管另外两次 -exp 运行已经完成，但我们正在等待 7.0R 发布后再提交它们。

待 7.0R 发布，Ports 将发生很大混乱。这是由于长时间的发布周期所积累的变化。准备好迎接以下变化，除了其他变化外：

* 将 KDE 升级到 4.0（正在测试中）
* 升级 gettext
* 升级 libtool
* 引入 perl 5.10
* 最终移除 XFree86（已弃用一段时间）
* 移除其他过期的 Port

大部分 portmgr 活动与发布的 QA 过程有关。此外，linimon 花费了大量时间尝试改善 sparc64 Port 的状态，并发布了更多人员帮助测试 sparc64 Port 的请求。一些人已回应并提供了让提交者在其机器上获得账户的建议。

不幸的是，在这段时间里，我们无法为 ia64-7 构建包。因此，我们目前不再为 ia64 构建包。如果有人愿意参与该架构的工作，请通知 portmgr。

我们目前正在为 amd64-5、amd64-6、amd64-7、amd64-8、i386-5、i386-6、i386-7、i386-8、sparc64-6 和 sparc64-7 构建包。然而，请注意，RELENG\_5 将在 5 月 31 日达到其支持生命周期的结束，从那时起，这两个构建环境的包构建将停止。（8 个构建环境 `*` 18,000 个 Port 应该足以让我们忙碌一段时间。）

除此之外，包的状态比过去一段时间要好。linimon 继续为 portsmon 开发包分析工具。

自上次报告以来，我们已增加了 2 个新的提交者。

#### 待办事项

1. 大部分剩余的 Port PR 是“现有 Port /PR 分配给提交者”。虽然维护者超时政策有助于减少积压，但我们需要做更多工作来使 Port 达到应有的状态。
2. 尽管我们已增加了许多维护者，但仍有超过 4,000 个未维护的 Port（例如，请参见 portsmon 上的列表）。我们始终在寻找有志愿精神的人员，愿意接管至少一些未维护的 Port。此外，amd64 和 sparc64 上的包落后于 i386，我们需要更多的测试人员。

## [其他事项](https://www.freebsd.org/status/report-2007-10-2007-12.html#Miscellaneous)

### [Bug Busting](https://www.freebsd.org/status/report-2007-10-2007-12.html#Bug-Busting)

| 链接                                                                   |
| -------------------------------------------------------------------- |
| [GNATS](http://www.freebsd.org/support.html#gnats)                   |
| [BugBusting 资源](http://wiki.freebsd.org/BugBusting/Resources)        |
| [2008 年 1 月 Bugathon](http://wiki.freebsd.org/Bugathons/January2008) |

联系人：Mark Linimon <<bugmeister_at_FreeBSD_dot_org>>

由于在 freebsd-current@ 上的一篇帖子抱怨用户与开发者之间的沟通差距，Bug Busting 工作得到了极大的关注——特别是我们集思广益讨论了非提交者如何帮助解决问题的想法。两个主要的讨论方向是：传入的 bug 分类（如分类、评分等），以及与用户合作（帮助用户解决不是典型问题报告的问题）。

因此，我们举行了有一段时间以来的第一次 Bugathon（在 EFNet 上的 `#freebsd-bugbusters` 频道）。超过 30 人参与了这次活动。结果，超过 120 个 PR 被关闭，数十个 PR 被置于“反馈”状态。这些 PR 大多数都位于 kern/和 bin/类别中，这两类最需要处理。（新的 PR 到达率在此期间超过 40 个/天，包括 Port，因此总体数量有所减少。）

为了支持这一工作，我们创建了几个新的 wiki 页面，最终捕捉了以前在邮件列表和 IRC 频道中的讨论。还有更多好的想法，Mark Linimon 承诺会继续整理和调查，包括：

* 一个显示“过去 N 天 PR”的网页
* 一种让提交者仅查看已被“审核”或“确认”的 PR 的方式
* 增加我们已完成的工作的宣传，以及我们接下来要做的事情
* 新的 PR 类别、分类和状态，以更好地匹配我们的工作流程

注意：目前我们并不打算替换 GNATS。现在的想法是看看我们能从当前的工作流程中学到什么，并尝试一些低成本的变化，听取不同人的反应。Linimon 认为，任何这些变化如果以后转换到新系统，也能适用。

rwatson 还创建了一个 wiki 页面，记录了关于如何处理报告的各种内核问题的一些想法。虽然这是初步的，但它捕捉了一些专业知识，并将其放在一个地方，方便潜在的志愿者更容易找到。

总体 PR 数量已经回升至接近 5300。虽然这是相对于上次报告的净增，但在这段时间里，由于 src 和 Port 冻结，整体数量有一个峰值。（在此期间，src 和 Port 都处于混乱状态）。最高的数量接近 5500。

总的来说，我们似乎拥有一些势头，且有新的志愿者有兴趣处理用户报告的问题。bugmeister 希望我们能借此机会，在 2008 年剩余时间里取得一些进展。

### [FreeBSD 镜像站点状态](https://www.freebsd.org/status/report-2007-10-2007-12.html#FreeBSD-Mirror-Site-Status)

| 链接                                          |
| ------------------------------------------- |
| <http://www.mavetju.org/unix/ftp-stats.php> |

联系人：Edwin Groothuis <<edwin@FreeBSD.org>>

目前已经有几个网站提供了 FreeBSD FTP 镜像站点的概览，但它们似乎都有一个问题：它们没有手动更新站点列表。例如，尽管 <http://mirrorlist.freebsd.org/FBSDsites.php> 由澳大利亚托管，但它并没有列出澳大利亚的镜像站点，而 <http://people.freebsd.org/~kuriyama/mirrors/> 则没有告诉你哪些文件可以从那里获取。我页面上的数据显示了所有 FTP 镜像站点上 ISO 镜像的可用性。FTP 镜像站点列表是通过 DNS 获取的，方法是做区域传输或直接尝试标准名称。第一个数据块显示了每个服务器、架构和镜像站点的 ISO 镜像目录可用性的快速概览。第二个数据块则显示了每个服务器的 ISO 镜像目录内容的详细可用性。

#### 待办事项

1. 下一步将添加预构建包的可用性。

### [开源解决方案 '08](https://www.freebsd.org/status/report-2007-10-2007-12.html#Opensource-Solutions-'08)

| 链接                                 |
| ---------------------------------- |
| <http://www.solutionslinux.fr/en/> |

联系人：Mathieu Arnold <<mat@FreeBSD.org>>\
联系人：Ollivier Robert <<roberto@FreeBSD.org>>\
联系人：Thierry Thomas <<thierry@FreeBSD.org>>\
联系人：Rodrigo Osorio <<rodrigo@bebik.net>>

像过去几年一样，每年都会在法国巴黎的 La Défense 举办名为“Solutions Linux”的展会。展览将在 1 月 29 日、30 日和 31 日于 CNIT 举行。

这次活动的特别之处在于，展厅 80% 的面积被企业（如 IBM、Novell、Oracle）占用，剩余的 20% 则免费提供给协会和非营利组织，你将在那里找到许多（如果不是全部的话）法国 LUGs、\*BSD、大多数 Linux 发行版、Mozilla、OOo 等。

今年，FreeBSD 将再次设立展位，我们将展示 FreeBSD 是什么，为什么它是最棒的操作系统。我们还将在三天里分发传单和光盘。

展会的入场是免费的，如果你恰好路过，请来看看我们，我们将在 A39 展位等着你。
