# FreeBSD 2002 年 11-12 月状态报告

原文链接：[FreeBSD 2002 年 11-12 月状态报告](https://www.freebsd.org/status/report-2002-11-2002-12.html)

FreeBSD 5.0 终于发布了。在完成对代码树的最终修饰的同时，FreeBSD 开发人员也找到了时间处理其他事项。IA64 在 Itanium2 平台上迈出了重要的步伐，开始了将所有驱动程序转换为使用 busdma 并禁止使用 vtophys() 的工作，硬件加密支持和 DEVD 已经合并到代码树中，NewReno 问题也已修复，同时开始着手锁定内核的网络层。此外，高性能、模块化的调度器开始成形，很快将成为内核的一个受欢迎的补充。

展望未来，重点将放在稳定 5.0 版本并提高其性能。待我们在这一领域达到了目标，就会创建 RELENG\_5（即 5-STABLE）分支，希望我们能尽快实现这一目标。同时，4.x 系列的下一个版本 4.8 的准备工作也将很快开始。当然，稳定 5.x 的最佳方式就是安装并运行它！

谢谢，

Scott Long, Robert Watson

## [FreeBSD 蓝牙栈（Netgraph 实现）](https://www.freebsd.org/status/report-2002-11-2002-12.html#Bluetooth-stack-for-FreeBSD-\(Netgraph-implementation\))

**链接**

[最新快照](http://www.geocities.com/m_evmenkin/)

[Linux BlueZ 栈](http://bluez.sf.net/)

[OpenOBEX](http://sourceforge.net/projects/openobex)

联系人：Maksim Yevmenkin <<m_evmenkin@yahoo.com>>

我很高兴地宣布，所有的内核模块和一些用户空间工具已经进入了 FreeBSD 源码树。非常感谢 Julian Elischer 的帮助。

遗憾的是，自上次报告以来没有大变化。发现了一些小问题，并且提供了补丁，若有需要可联系我。我将准备所有补丁并提交给 Julian 审核。

OBEX 服务器和客户端（基于 OpenOBEX 库）几乎完成。目前正在进行互操作性测试。如果有人有硬件并且有时间，请与我联系。HCI 安全守护进程已经实现并与 Sony Ericsson T68i 手机和 Windows 栈进行了测试。现在可以建立安全的蓝牙连接了。

有些人对 RFCOMM 守护进程表示不满。这些人希望使用支持 GPRS 和蓝牙的手机访问互联网。如果你遇到此问题，请与我联系寻求可能的解决方法。我的下一个目标是实现稳定的 RFCOMM，以解决所有这些问题。

## [busdma 驱动程序转换项目](https://www.freebsd.org/status/report-2002-11-2002-12.html#busdma-driver-conversion-project)

**链接**

<http://www.freebsd.org/projects/busdma/>

联系人：Maxime Henrion <<mux@FreeBSD.org>>

这个项目进展非常顺利。amd(4) 和 xl(4) 驱动程序现在已经转换为使用 busdma API，sparc64 已经得到了 bus\_dmamap\_load\_mbuf() 和 bus\_dmamap\_load\_uio() 函数的支持，gem(4) 和 hme(4) 驱动程序已更新为使用 bus\_dmamap\_load\_mbuf() 而非 bus\_dmamap\_load()。

如项目页面所示，仍有很多工作需要完成。不过，由于有许多开发人员正在参与此项目，预计很快会有更多驱动程序完成转换。

## [DEVD](https://www.freebsd.org/status/report-2002-11-2002-12.html#DEVD)

联系人：Warner Losh <<imp@FreeBSD.org>>

Devd 已经被集成到 FreeBSD 5.0-RELEASE 中。集成后的代码支持多种配置选项。现在配置文件已完全解析，并且执行了相应的操作。

未来在这一领域的工作可能会局限于改进 devctl 接口。/dev/devctl 可能会在后续版本中成为一个可克隆的设备。也计划支持通过 devctl 控制单个设备。

## [捐赠团队状态报告](https://www.freebsd.org/status/report-2002-11-2002-12.html#Donations-Team-Status-Report)

**链接**

[捐赠主页](http://www.freebsd.org/donations/)

[FreeBSD 开发者需求列表](http://www.freebsd.org/donations/wantlist.html)

[已完成的捐赠](http://www.freebsd.org/donations/donors.html)

联系人：Michael Lucas <<donations@FreeBSD.org>>

捐赠项目在 2002 年处理了几十个捐赠，并成功地安置了大多数捐赠物品。我们仍然急需 SMP 和 Sparc 设备。你可以在捐赠网页上查看我们的需求信息以及已经处理的捐赠物品。

我们越来越依赖开发者需求列表来安置项目提供的物品，并利用提交统计数据来帮助安置物品。因此，提前请求所需物品的活跃提交者有很大机会得到它们。活跃度较低的提交者，或者没有提前请求所需物品的提交者，优先级会稍低，但不会被排除在外。

我们正在简化捐赠的税务扣除流程，并希望很快能有相关消息。同时，我们也在不断努力加速和减少内部流程，以便尽快将更多设备送到更多人手中。

特别感谢 David O'Brien 和 Tom Rhodes 的支持，使得团队取得了更大的成功。同时，FreeBSD 基金会在处理可税前扣除捐款方面也提供了很大的帮助。

## [Fast IPsec 状态](https://www.freebsd.org/status/report-2002-11-2002-12.html#Fast-IPsec-Status)

联系人：Sam Leffler <<sam@FreeBSD.org>>

该项目的主要目标是修改 IPsec 协议，使用从 OpenBSD 导入的内核级加密子系统（参见其他部分）。次要目标是对 IPsec 协议进行一般性能调优。

这项工作将成为 5.0 版本的一部分。由于对加密子系统的改进，性能得到了提升。

## [FFS 卷标签支持](https://www.freebsd.org/status/report-2002-11-2002-12.html#FFS-volume-label-support)

**链接**

[当前补丁集](http://people.freebsd.org/~gordon/patches/volume.diff)

联系人：Gordon Tetlow <<gordon@FreeBSD.org>>

该项目的目标是在 FFS 超级块中使用少量空间存储用户选择的卷标签。然后，GEOM 模块会将卷标签暴露到 devfs 中的命名空间。这个想法是简化磁盘交换和系统间文件系统管理的过程。

目前，基本功能已经实现。我已将部分补丁提交给相关子系统的维护者进行审核。尚未解决命名空间冲突的问题，但基本功能已完成。

## [FreeBSD C99 和 POSIX 合规性项目](https://www.freebsd.org/status/report-2002-11-2002-12.html#FreeBSD-C99-&-POSIX-Conformance-Project)

**链接**

<http://www.freebsd.org/projects/c99/>

<http://people.freebsd.org/~schweikh/posix-utilities.html>

联系人：Mike Barcroft <<mike@FreeBSD.org>>

联系人：FreeBSD-Standards 邮件列表 <<standards@FreeBSD.org>>

FreeBSD 中 POSIX 实用程序合规性列表（见上文链接）已更新，以反映当前的实际情况。基础实用程序合规性只剩下少量工作。

在 API 方面，已实现 grantpt()、posix\_openpt()、unlockpt()、wordexp() 和 wordfree()，并添加了头文件 `<wordexp.h>`。

目前，我们的项目状态板上有大约 40 个未分配的任务，涵盖文档、实用程序到内核编程等多个方面。我们鼓励任何有兴趣的开发者查看状态板，看看是否有感兴趣的任务。

## [FreeBSD GNOME 项目](https://www.freebsd.org/status/report-2002-11-2002-12.html#FreeBSD-GNOME-Project)

**链接**

[FreeBSD GNOME 项目主页](http://www.freebsd.org/gnome/)

联系人：Joe Marcus <<marcus@FreeBSD.org>>

联系人：Maxim Sobolev <<sobomax@FreeBSD.org>>

联系人：Adam Weinberger <<adamw@FreeBSD.org>>

由于在本报告期间大部分时间内 Ports 被冻结，因此官方 CVS 树中并未有太多 GNOME 更新。然而，开发工作并未停止。GNOME 2.2 接近完成，许多 FreeBSD 用户已开始测试来自 [MarcusCom CVS 仓库](http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi) 的 GNOME 2.1 Port 源。如果有其他人感兴趣，请按照上面提供的 cvsweb 链接的说明操作，并检出 `ports` 模块。

即将发布的 FreeBSD 5.0-RELEASE 将成为第一个默认提供 GNOME 2.0 桌面环境的版本。在上述 Port 冻结期间，所有 GNOME 2 Port 已被修复，确保它们能在 i386 和 Alpha 平台上正常构建和打包。不幸的是，Mozilla Port 在 Alpha 上无法成功构建，xpcom 代码仍然存在问题，但正在继续修复以使其在 Alpha 上工作。

最后，FreeBSD Mono（一个开源 C# 运行时）Port 也获得了新的进展。Mono 已更新到 0.17（最新发布版本），Juli Mallett 已将 gtk-sharp（GTK+ 的 C# 绑定）移植到 FreeBSD。

## [FreeBSD 软件包集群工作](https://www.freebsd.org/status/report-2002-11-2002-12.html#FreeBSD-Package-Cluster-work)

链接：<http://bento.freebsd.org/>

联系人：Kris Kennaway <<kris@FreeBSD.org>>

三个 FreeBSD 软件包集群（i386、alpha、sparc64）已统一运行于同一台主服务器上，而不再使用三台独立的主服务器。这释放了一些机器资源，可以作为额外的客户端机器，同时简化了管理开销。现在，所有三种架构的构建日志都可以在 `http://bento.FreeBSD.org` 网页上查看。sparc64 软件包集群现在有三台构建机器（一台 u5 和两台 u10），并且即将创建一个 ia64 集群。

软件包构建现在会追踪一个 Port 连续构建失败的次数（html 汇总可在 bento 网站查看）。这可以帮助追踪突然出现问题的 Port（例如，由于升级错误或 FreeBSD 源树的变化），并且后续会在 Port 连续失败 5 次时，向 Port 维护者发送通知。目前这个功能仍是实验性的，需要进一步的代码更改以稳定运行。

## [FreeBSD 发布工程](https://www.freebsd.org/status/report-2002-11-2002-12.html#FreeBSD-Release-Engineering)

**链接**

[发布工程主页](http://www.freebsd.org/releng/index.html)

联系人：Scott Long <<re@FreeBSD.org>>

十一月和十二月对发布工程团队来说特别繁忙。Scott Long 加入团队，帮助处理秘书和通讯任务，而 Brian Somers 退出团队，专注于其他项目。

FreeBSD 5.0-DP2 在经过多次延迟和期待后于十一月发布，标志着 5.0 成为现实所需的最后一个里程碑。此后，我们在 CVS 的 HEAD 分支上实施了代码冻结，并发布了 5.0-RC1。接着创建了 RELENG\_5\_0 分支，并从该分支发布了 5.0-RC2。此时，仍然存在一些关键问题，因此我们计划在新的一年发布 RC3，并将最终的 5.0-RELEASE 日期推迟到 1 月中旬。到本文发布时，FreeBSD 5.0-RELEASE 应该已经发布。

目前，RELENG\_5（也就是 5-STABLE）分支将不会创建。FreeBSD 4.x 版本将继续发布，4.8 计划于 2003 年 3 月发布。4.x 系列的发布将由 Murray Stokely 领导，5.x 系列的发布将由 Scott Long 领导。待 HEAD 达到可接受的性能和稳定性目标，RELENG\_5 分支将被创建，并且 HEAD 将转向 6.0 的开发。我们希望在今年春季的 5.1 版本中实现这一目标。

## [FreeBSD/ia64 状态](https://www.freebsd.org/status/report-2002-11-2002-12.html#FreeBSD/ia64-Status)

**链接**

<http://people.freebsd.org/~peter/ia64.diff>

<http://www.freebsd.org/platforms/ia64/>

联系人：Peter Wemm <<peter@FreeBSD.org>>

联系人：Marcel Moolenaar <<marcel@FreeBSD.org>>

得益于 Marcel Moolenaar 的大量工作，ia64 移植已在新的 Itanium2 基础的 hp 机器上运行。目前我们在 hp rx2600 上运行，因为这些机器是由 Hewlett-Packard 和 Intel 慷慨捐赠的。我们曾经使用过一台原型的 Intel Tiger4 系统，但不得不归还这台机器，我们不确定它是否仍在运行。为了使这些系统能够运行所需的大多数更改都在 Perforce 树中，而不在 -current 或 RELENG\_5 的 CVS 树中。因此，源自 CVS 的构建（包括 -current、5.0-RC 系列以及预计的 5.0-RELEASE）仅能在过时的 Itanium1 系统上使用。

过去几个月已进行了大量的稳定性和功能修复，包括初步支持 libc\_r。操作系统似乎足够稳定，能够承载持续的工作负载——例如，它现在可以构建软件包了。我们仍然没有 gdb 支持，甚至无法读取核心文件。

## [法语 FreeBSD 文档项目](https://www.freebsd.org/status/report-2002-11-2002-12.html#French-FreeBSD-Documentation-Project)

**链接**

[法语 FreeBSD 文档项目](http://www.freebsd-fr.org/)

\[翻译成法语的 FreeBSD 网站]\(<http://www.freebsd-fr.org/index-trad.html>

[手册的翻译](http://people.freebsd.org/~blackend/doc/fr_FR.ISO8859-1/books/handbook/)

[类似于 Daemon News 的法语网站](http://www.freebsd-fr.info/)

联系人：Sebastien Gioria <<gioria@FreeBSD.org>>

联系人：Marc Fonvieille <<blackend@FreeBSD.org>>

联系人：Stéphane Legrand <<stephane@FreeBSD.org>>

大部分文章也已翻译完毕。Marc 仍在翻译手册，目前已经翻译了 60%。Stéphane 开始将我们法语本地化的网站整合到美国 CVS 树中。Sébastien 仍在维护发布说明。

我们启动了一个新网站 [www.FreeBSD-fr.info，类似于](http://www.FreeBSD-fr.info，类似于) Daemon News 的法语网站。Netasq 捐赠了我们的新服务器；我们将在接下来的几周内将其安装到新的托管服务提供商处。目前的大工作是翻译 FAQ，而未来的主要项目将是手册页面的翻译。

## [硬件加密支持状态](https://www.freebsd.org/status/report-2002-11-2002-12.html#Hardware-Crypto-Support-Status)

联系人：Sam Leffler <<sam@FreeBSD.org>>

该项目的目标是导入 OpenBSD 的内核级加密子系统。该功能为计算加密哈希、密码和公钥操作提供内核和用户级访问硬件加密设备的能力。该功能的主要客户包括内核 RNG（/dev/random）、网络协议（例如 IPsec）和 OpenSSL（通过 /dev/crypto 设备）。

这项工作将成为 5.0 版本的一部分，并已提交到 -stable 源树，以便纳入 4.8 版本。

最近的工作集中在提高性能。现在维护了系统统计信息，并且添加了一个可选的分析性能的分析功能。使用此功能后，使用加密 API 的开销已显著减少。

ubsec（Broadcom）驱动程序已更改，以显著提高负载下的性能。此外，驱动程序中的几个内存泄漏已被修复，并且已启用公钥支持。

即将进行的工作将集中在跨多个加密设备平衡负载请求，并集成 OpenSSL 0.9.7，后者将自动启用应用程序使用加密硬件。

## [jpman 项目](https://www.freebsd.org/status/report-2002-11-2002-12.html#jpman-project)

**链接**

[jpman 项目](http://www.jp.freebsd.org/man-jp/)

联系人：Kazuo Horikawa <<horikawa@FreeBSD.org>>

我们一直在更新基于 RELENG\_5 的日语翻译手册页面。所有现有条目已更新，但有 15 个例外条目未更新，其中大部分需要大规模更新。我们还需要添加 RELENG\_4 中不存在的翻译。

## [KGI/FreeBSD 状态报告](https://www.freebsd.org/status/report-2002-11-2002-12.html#KGI/FreeBSD-Status-Report)

**链接**

<http://www.freebsd.org/~nsouch/ggiport.html>

<http://www.kgi-project.org/>

联系人：Nicholas Souchu <<nsouch@FreeBSD.org>>

KGI（内核图形接口）是个内核基础设施，提供给用户应用程序访问硬件图形资源（DMA、IRQ、MMIO）的方法。KGI 已经作为一个独立的项目在 Linux 下提供。KGI/FreeBSD 项目旨在将 KGI 集成到 FreeBSD 内核中。

KGI/FreeBSD 最近收到捐赠了 2 张 PCI 显卡（Matrox Millennium II 和一张即将到来的 Mach64），其他的捐赠也正在提议中。请查看 FreeBSD 网站获取更多详细信息。感谢 donation@ 组织和推动捐赠，感谢捐赠者对 KGI/FreeBSD 的贡献。

在过去几个月中，KGI/FreeBSD 进展良好。大部分映射硬件资源到用户空间的 VM 问题已经解决，并且已进行第一次编码尝试。这个原型工作揭示了与当前 Linux 实现的 API 兼容性问题，并且在 KGI 开发邮件列表上进行了广泛讨论。如果你对这些问题感兴趣，请问我，我很乐意与你分享。

大部分编码工作现在已经完成。让我们开始调试吧！

## [SMP 感知调度器](https://www.freebsd.org/status/report-2002-11-2002-12.html#SMP-aware-scheduler)

联系人：Jeff Roberson <<jeff@FreeBSD.org>>

在 5.1 版本中，将提供一个新的调度器，作为当前调度器的可选组件。它已经设计得能很好地与 KSE 和 SMP 配合使用。一些想法借鉴自 Solaris 和 Linux，同时也采用了许多新颖的做法。它在系统中进程数量方面具有 O(1) 性能，并且具有 CPU 亲和性，这应该能为许多应用程序提供性能提升。

该调度器仍有一些未完成的工作和许多调整，尽管它相当稳定。在正式发布之前，请参阅发布到架构邮件列表的帖子和随后的讨论，获取更多详细信息。

## [网络堆栈的 SMP 锁定](https://www.freebsd.org/status/report-2002-11-2002-12.html#SMP-locking-for-network-stack)

联系人：Jeffrey Hsu <<hsu@FreeBSD.org>>

工作仍在继续，目的是继续锁定网络堆栈。最近，重点放在了 IP 堆栈上。该计划涉及一系列相关部分，锁定 ifaddr 引用计数、inet 列表、ifaddr 使用、ARP 代码、路由树和路由条目。目前，我们已经完成了这一路径的 3/5。

除了 TCP 和 UDP 之外，其他网络协议如原始 IP、IPv6、AppleTalk 和 XNS 也需要进行锁定。大约四分之一的这些剩余协议已经锁定，并将在 IP 堆栈锁定后提交。

协议无关的套接字层需要与协议相关的锁一起正确工作并进行锁定。这个部分大部分已经完成，只剩下需要进行大量测试和代码清理的工作。

最后，还需要进行一次遍历来锁定设备驱动程序和各种统计计数器。

## [TCP 拥塞控制](https://www.freebsd.org/status/report-2002-11-2002-12.html#TCP-congestion-control)

**链接**

联系人：Jeffrey Hsu <<hsu@FreeBSD.org>>

这一工作修复了我们 TCP 堆栈中与拥塞控制相关的一些问题。第一项任务是修复我们的 NewReno 实现。随后，接下来的紧急修复是解决与窗口更新和重复确认计数相关的问题。当这部分稳定后，我们将修改恢复代码，利用 SACK 信息。最终，这个项目将更新 BSD 堆栈，加入有限传输（Limited Transmit）和其他新的互联网标准以及标准跟踪改进。

## [TrustedBSD 项目：访问控制列表](https://www.freebsd.org/status/report-2002-11-2002-12.html#TrustedBSD-Project:-Access-Control-Lists)

**链接**

[TrustedBSD 项目](http://www.trustedbsd.org/)

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

联系人：TrustedBSD 讨论列表 <<trustedbsd-discuss@TrustedBSD.org>>

主要是修复 bug 和用户空间应用程序的调整；新增了操作扩展属性上的 ACL 的接口；修复了与 ACL 标志相关的 ls 错误。补丁程序正在测试和审查中，旨在让 cp、mv、gzip、bzip 和其他应用程序支持 ACL 保留。新增了 tunefs 标志，以便简化 ACL 的配置，尤其是在 UFS2 文件系统上。

目前正在考虑做出一些更改，以利用 Linux/Solaris 的 umask 语义：目前我们实现的是 POSIX.1e/IRIX 在文件、设备、FIFO 和目录创建时合并 umask、ACL 掩码和请求的创建模式。Solaris 和最新的 Linux 补丁忽略了默认 ACL 上的 umask；这需要在我们的 VFS 中重新安排 umask 处理，尽管其结果会非常有用。我们正在探索如何以低影响的方式实现这一目标。

## [TrustedBSD 项目：MAC 框架](https://www.freebsd.org/status/report-2002-11-2002-12.html#TrustedBSD-Project:-MAC-Framework)

**链接**

[TrustedBSD 项目](http://www.trustedbsd.org/)

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

联系人：TrustedBSD 讨论列表 <<trustedbsd-discuss@TrustedBSD.org>>

框架更改：

* 对 KLD 系统调用（模块加载、卸载、状态）进行检测
* 对 NFSd 系统调用进行检测
* 对 swapoff(2) 进行检测
* 对每个架构的 sysarch() 特权部分进行检测
* 使用条件变量，允许调用者在加载/卸载策略时等待框架“空闲”，而不是返回 EBUSY
* 在 devfs\_mount 结构中存储挂载指针，供策略使用
* 改进回环接口中“重新对齐”数据包拷贝情况的标签处理
* 提供完整路径以帮助策略正确标记 devfs 对象创建（尚未合并）
* 尝试将 MAC 标签移到 m\_tags 中（尚未合并）
* NFS 服务器现在使用真实的 ucreds，而不是修改过的 ucreds，这意味着我们可以开始为 NFS 操作实施基础工作（尚未合并）

策略更改：

* LOMAC：mac\_lomac 替代 lomac（LOMAC 现在使用 MAC 框架）
* SEBSD：改进对基于 SELinux genfs 的 devfs 标记支持
* 处理硬链接检查
* 支持通过 sysctl 导出进程过渡信息以供登录等使用
* 登录现在会提示选择角色
* 允许重新加载策略
* TTY 标记
* 从 Linux 引入的锁定适配
* 许多政策适配和修复
* 现在可以在强制模式下启动！
* mac\_bsdextended：修复 VAPPEND 未映射到 VWRITE 的 bug，导致带 O\_APPEND 的打开失败

用户空间更改：

* setfmac(8) 现在支持 setfsmac(8) 执行模式，接受初始标记规范文件。支持 SELinux 兼容模式，能够接受 SELinux 标签规范文件并使用 SEBSD 模块
* sendmail(8) 现在在邮件投递时设置用户标签作为上下文切换的一部分

文档更改：

* 更新 MAC 命令行工具、模块、管理员提示等的手册页
* 更新《FreeBSD 开发者手册》中的 MAC 策略和入口点章节
* FreeBSD 手册中的 MAC 部分

## [无线网络状态](https://www.freebsd.org/status/report-2002-11-2002-12.html#Wireless-Networking-Status)

联系人：Sam Leffler <<sam@FreeBSD.org>>

该项目的目标是改进系统中的无线网络支持。在本报告发布时，802.11 链路层代码应该已经提交。一个使用该代码的 wi 驱动程序应该很快提交。计划转换其他驱动程序，并为新设备提供驱动支持。

下一阶段计划是支持 802.1x/EAP（包括作为客户端和认证方）。


---

# 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/2002/11-12.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.
