# FreeBSD 2003 年 1-2 月状态报告

## FreeBSD 2003 年 1-2 月状态报告

原文链接：[FreeBSD 2003 年 1-2 月状态报告](https://www.freebsd.org/status/report-2003-01-2003-02.html)

## 引言

FreeBSD 项目又度过了两个忙碌的月份。随着 5.0 版本的发布，关注点转向了通过更细粒度的锁定来提高速度，增加更多高端功能，如 i386 的大内存（PAE）支持，以及在许多其他项目上的进一步进展。预计 FreeBSD 5.1 将在 5 月下旬或 6 月初发布，5.2 将在夏季末发布。关于向 5-STABLE 推进的路线图可以在 <http://docs.freebsd.org/doc/5.2-RELEASE/usr/share/doc/en_US.ISO8859-1/articles/5-roadmap/index.html> 找到。尽管 5.x 系列预计直到 5.2 版本发布时才会完全稳定，但 5.1 版本承诺将是一次令人兴奋的发布，并在速度和稳定性方面相较于 5.0 有显著提升。

不可忽视的是，FreeBSD 4.8，作为 4-STABLE 系列中的最新版本，已经接近发布。大量最后的工作正在进行，以提供诸如 XFree86 4.3.0、英特尔超线程技术（Intel HyperThreading(tm)）支持，当然还有更多的 bug 修复。别忘了在 CD 套件发布时，通过购买副本来支持 FreeBSD 的供应商和开发人员！

感谢，

Scott Long, Robert Watson

### [FreeBSD 的蓝牙栈（Netgraph 实现）](https://www.freebsd.org/status/report-2003-01-2003-02.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>>

我很高兴地宣布，另一个版本现已可以下载：<http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030305.tar.gz>

该版本具有新的内核中 RFCOMM 实现，提供 SOCK\_STREAM 套接字接口。这使得旧的用户空间 RFCOMM 守护进程过时了。人们不应再使用旧的用户空间 RFCOMM 守护进程。该版本还提供了新的 RFCOMM PPP 守护进程，支持 DUN 和 LAN 配置文件。注意：DUN 支持需要 PPP 补丁（支持直接模式下的聊天脚本）。请在邮件列表归档中查找，或直接联系我。启用蓝牙的手机用户现在可以使用手机通过蓝牙访问互联网。

蓝牙套接字层已被清理。人们不应再看到新代码中的 WITNESS 报告。锁定问题已经重新审视，代码现在更为健全，尽管可能还没有完全为 SMP（对称多处理）准备好。无论如何，由于套接字层仍然在 Giant 下运行，因此该代码应该能在 SMP 系统上正常工作。

基于 OpenOBEX 库的简单 OBEX 服务器和客户端已经完成。OBEX 文件推送和 OBEX 文件传输配置文件已经通过 Sony Ericsson T68i 手机和 Windows 2K 上的蓝牙 3COM 栈进行了测试。现在可以通过蓝牙从手机发送图片、通讯录和日历条目。OpenOBEX 库中的一个小错误已被修复，现在 OPEX Put-Empty 命令可以正常工作。

由于 API 发生了变化，用户空间工具必须与内核同步。人们应该安装新的头文件，并重新编译和重新安装所有用户空间工具，作为升级的一部分。对此我深感抱歉。

### [BSDCon 2003](https://www.freebsd.org/status/report-2003-01-2003-02.html#BSDCon-2003)

**链接**

[BSDCon 2003 征文通知](http://www.usenix.org/events/bsdcon03/cfp/)

联系人：Gregory Shapiro <<gshapiro@FreeBSD.org>>

BSDCon 2003 程序委员会邀请你提交关于 BSD 衍生系统及开源世界相关主题的原创和创新论文。感兴趣的主题包括但不限于：

* 嵌入式 BSD 应用程序开发与部署
* 使用 BSD 系统的实际经验
* 在混合操作系统环境中使用 BSD
* 与非 BSD 操作系统的比较；技术、实践、许可（GPL 与 BSD）
* 跟踪非 BSD 系统上的开源开发
* BSD 在桌面上的应用
* I/O 子系统和设备驱动程序开发
* SMP 和内核线程
* 内核增强
* 网络和互联网服务
* 安全
* 性能分析与调优
* 系统管理
* BSD 的未来

扩展摘要的提交截止日期为 2003 年 4 月 1 日。在提交前，请务必查看扩展摘要的要求。选择将基于提交的质量以及该工作是否对社区有兴趣。

我们期待收到你的投稿！

### [缓冲区缓存锁定](https://www.freebsd.org/status/report-2003-01-2003-02.html#Buffer-Cache-lockdown)

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

大部分文件系统缓冲区缓存已被审查并加以保护。vnode 互锁已扩展，以覆盖一些缓冲区标志字段，以便无需单独的互锁。全局缓冲区队列数据结构已加锁，计数器已转换为原子操作。`BUF_*LOCK` 函数增加了一个互锁参数，以便可以安全地从 vnode 清洁和脏列表中移除缓冲区。现在所有访问 buf 字段都需要锁定锁管理器（lockmgr）。之前这一点没有严格执行，因为 splbio 提供了所需的保护。

还有一些代码区域需要保护并清理，以便在没有 Giant 锁的情况下进行推进。最显著的是，目前没有 Giant 锁的背景写入代码是不安全的。此外，缓冲区缓存所依赖的许多 VM 部分也不安全。这项工作是以 VM 和 VFS 子系统很快将不再依赖 Giant 锁为前提进行的。

### [磁盘 I/O 改进](https://www.freebsd.org/status/report-2003-01-2003-02.html#Disk-I/O-improvements)

**链接**

联系人：Poul-Henning Kamp <<phk@FreeBSD.org>>

我们已经将第一个磁盘设备驱动程序（aac）从 Giant 锁下移除，在某些场景下，性能提升可达 20%。设备驱动程序 API 进行了精简，以反映 NO\_GEOM 兼容性已不再必要，这导致大约减少了 1000 行源代码，其中大部分被移除自设备驱动程序。cdevsw 的新 API 更加简洁，且希望更不容易让人困惑。我们引入了自动分配设备主号的功能，已有一些驱动程序开始使用此功能。通过此功能引入的检查表明，手动分配的主号唯一性已经被打破。

我们继续致力于统计收集 API 和 GEOM 节点的手动配置统一 API 的开发。

### [FreeBSD 4.8 发布工程](https://www.freebsd.org/status/report-2003-01-2003-02.html#FreeBSD-4.8-Release-Engineering)

**链接**

[FreeBSD 4.8 发布计划](http://www.freebsd.org/releases/4.8R/schedule.html)

联系人：Murray Stokely <<re@FreeBSD.org>>

FreeBSD 4.8 发布过程已顺利进行。RELENG\_4 分支自 2 月 15 日起进入代码冻结阶段，首个发布候选版本将在 3 月初发布。现已整理出测试指南，并可从 [http://www.FreeBSD.org/releases/4.8R/qa.html](http://www.freebsd.org/releases/4.8R/qa.html) 获取。

开发者应与 <re@FreeBSD.org> 协调，讨论他们希望在此版本中包含的任何更改，用户也鼓励尝试发布候选版本，并在最终版本发布之前尽可能多地帮助找到 bug。

FreeBSD 4.8 代表了“4.X”稳定分支中的最新生产版本。它不包含 1 月份发布的“新技术”5.0 版本中的所有功能。

### [FreeBSD C99 和 POSIX 合规性项目](https://www.freebsd.org/status/report-2003-01-2003-02.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>>

1 月和 2 月是相对平静的几个月，这期间添加了一些 C99 数学函数和宏，包括：fpclassify()、isfinite()、isgreater()、isgreaterequal()、isinf()、isless()、islessequal()、islessgreater()、isnan()、isnormal() 和 signbit()。额外的 C99 数学库支持正在开发中。

### [FreeBSD GNOME 项目](https://www.freebsd.org/status/report-2003-01-2003-02.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>>

FreeBSD 4.8-RELEASE 将延续 5.0-RELEASE 的传统，包含 GNOME 2 作为默认 GNOME 桌面。这意味着 4.8 将随 GNOME 2.2 发布。

在最近的 GNOME 2.2 版本发布之后，GNOME 2.3 快照也在筹备中。开发计划可以从 <http://www.gnome.org/start/2.3/> 获取。Port 将以与 2.1 开发版本相同的方式发布。敬请关注 freebsd-gnome@ 邮件列表以获取更多细节。

目前我们正在为 4.8-RELEASE 进行另一次 Port 冻结。在冻结之后，将提交新的 bsd.gnome.mk，它实际上移除了 USE\_GNOMENG 宏。这个新版本将添加对 GNOME 2 的支持，并为尚未转换为新 GNOME 架构的 Port 设置向后兼容性。有兴趣测试此新 Mk 文件的人可以按照 <http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi> 的说明检查“ports”模块。

### [FreeBSD 安全官团队](https://www.freebsd.org/status/report-2003-01-2003-02.html#FreeBSD-Security-Officer-Team)

**链接**：<http://www.freebsd.org/security/>

联系人：Jacques Vidrine <<nectar@FreeBSD.org>>

在 2002 年 9 月至 2003 年 2 月期间，FreeBSD 安全团队的邮件别名接收了 1297 条消息，远低于夏季的消息量（还记得 Apache 和 OpenSSL 蠕虫吗？4.6.1 版本——哦不，我是说 4.6.2-RELEASE？）。

在此期间：新增了 95 项内容到 SO 问题跟踪数据库；其中 39 项涉及 FreeBSD 基本系统，其余涉及 Port。发布了 9 个新的安全公告，其中 2 个涉及 FreeBSD 独有的问题。

1 月份，SO 发布了新的 PGP 密钥（ID 0xCA6CDFB2，可以在 FTP 网站和手册中找到）。这使得拥有对应私钥的人员与 FreeBSD 安全网站上发布的 security-officer 别名的成员保持一致。此外，这也解决了过时的 PGP 密钥在一些公共密钥服务器上损坏的问题。

2 月份，Sentex 的 Mike Tancsa 向安全官团队捐赠了两台机器。这些机器在测试安全分支、准备补丁和生成更新的二进制文件方面已经提供了很大的帮助。非常感谢 Mike！

### [FreeBSD/MIPS 状态报告](https://www.freebsd.org/status/report-2003-01-2003-02.html#FreeBSD/MIPS-Status-Report)

**链接**

[FreeBSD/MIPS 项目页面](http://www.freebsd.org/projects/mips/)

[FreeBSD/MIPS 平台页面](http://www.freebsd.org/platforms/mips.html)

联系人：Juli Mallett <<jmallett@FreeBSD.org>>

大量头文件已经填写完毕，所有内容都已被存根化。最小功能和数据元素已被存根化或填写完毕。已添加支持一些必要的可调项，以构建真正的内核。已修复 GCC，使其生成正确的局部标签前缀，从而使得能够链接真正的内核。已开始提供足够的内容，以创建并启动真正的内核，运行在真实硬件上。决定仅支持 MIPS-III 及以上架构。

### [jpman 项目](https://www.freebsd.org/status/report-2003-01-2003-02.html#jpman-project)

**链接**

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

[ja-man-doc-5.0.tbz 包](ftp://daemon.jp.freebsd.org/pub/FreeBSD-jp/man-jp/packages-5.0.0/ja-man-doc-5.0.tbz)

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

我们已于 2 月 2 日发布了 5.0-RELEASE 的日语翻译手册页面。大多数在 RELENG\_4 中没有的条目尚未翻译。希望我们能尽快完成这些条目的翻译工作。

### KGI/FreeBSD 状态报告

**链接**

[KGI 项目页面](http://www.freebsd.org/~nsouch/ggiport.html)

[KGI 工作进行中页面](http://kgi-wip.sf.org)

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

最近几个月，KGI 项目的工作非常繁忙。大部分框架已完成调试，适用于典型的使用场景（fb，未加速）。我已将 KII（输入接口）连接到 syscons，通过 atkbd 完成。现在，打开 /dev/graphic 可以工作，并且允许访问帧缓存资源。最后，KGIM（KGI 模块）框架改进了板卡/显示器驱动程序的构建树，现在板卡驱动程序可以加载并分配资源。

待办事项清单中最重要的是：5.0-RELEASE 移动（我目前使用的是 2002 年 5 月的 5.0-current）。大部分调试工作已经完成。现在是验证的时候了！

请注意，自上次报告以来，KGI 项目的主页已经更改。

### 新的 Doceng 团队成立

**链接**：<http://www.freebsd.org/internal/doceng.html>

[FreeBSD 文档工程团队页面](http://www.freebsd.org/internal/doceng.html) |

联系人：Murray Stokely <doceng@FreeBSD.org>

doceng@ 团队是一个新的组织，负责处理与 FreeBSD 文档项目相关的一些元项目问题。该团队的主要职责包括：批准新的文档提交者、管理文档发布过程、确保文档工具链的正常运行、维护文档项目简介，以及保持 doc/ 和 www/ 树的完整性。该团队的现任成员有 Nik Clayton、Ruslan Ermilov、Jun Kuriyama、Bruce A. Mah 和 Murray Stokely。

### PowerPC 平台

联系人：Peter Grehan <grehan@FreeBSD.org>

PowerPC 的工作正在稳步推进。系统现在可以从网络和磁盘启动多用户模式。ATA-DMA 正在与 ATAng 代码集成，并且正在为较旧的 G3 机器添加支持。

### 预读性能

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

对集群预读代码进行了一些改进。它们允许在应用程序执行顺序访问时有更多未完成的 IO 请求。这对 RAID 系统的影响大于单磁盘系统。我们将预读的最大文件系统块数可以通过 sysctl `vfs.read_max` 进行调整。这项优化在简单测试中显示了 20% 的性能提升。

### 网络栈的 SMP 锁定

**链接**

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

已锁定的子系统包括 IP、UDP、TCP、ifaddr 引用计数、syncache、ifnet 列表、路由径向树和 ARP。这些已被提交到树中。此外，原始 IP、转发套接字处理和 Unix 域套接字的 SMP 锁定也已完成并经过测试。目前正在一些子系统中进行工作，以使并行网络处理在 SMP 系统上安全。

### [Newbus 锁定状态报告](https://www.freebsd.org/status/report-2003-01-2003-02.html#Status-Report-for-Newbus-lockdown)

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

Newbus 非对象部分的锁定工作接近完成。设备树使用了一个单一的锁。到目前为止，为了实现这一点，仅对 `subr*bus` 做了最小的修改，但仍存在一些锁的顺序问题。完成这项工作后，调用 device\*\* 例程时将不再需要持有 Giant 锁。kobj 的工作由其他人负责，可能需要更广泛的设计工作，以使其更适合 SMP 环境。

### [支持 PAE 和 x86 上超过 4G 的内存](https://www.freebsd.org/status/report-2003-01-2003-02.html#Support-for-PAE-and-%3E4G-ram-on-x86)

联系人：Jake Burkholder <jake@FreeBSD.org>

PAE 的支持已基本完成，并已提交到 jake\_pae 分支。为支持 PAE 所采取的方案是允许 pmap 模块将页表目录视为 4 个页，而不是 1 个，并尽量避免使用第三级结构——页目录指针表。由于其较小的大小（32 字节），PDPT 不能均匀递归映射，因此不能像 alpha 或 x86-64 架构所使用的页表那样提供常规的多级结构。PAE 支持所需的工作是开发一个用于操作页表项的 API，该 API 将允许在必要时使用幂等的 64 位加载和存储。

已开发并提交了使用 PAE 支持超过 4G 内存的实验性支持，已提交到 Perforce 的 jake\_pae\_test 分支。这涉及添加一个与虚拟地址分开的物理地址类型，供虚拟内存系统和总线代码直接使用物理地址。初步测试显示，支持直接 DMA 到 64 位物理地址的设备驱动程序表现良好。

该项目的资金由 DARPA 和 Network Associate Laboratories 提供，硬件支持由 [FreeBSD Systems](http://www.freebsdsystems.com/) 提供。

### [TCP 拥塞控制](https://www.freebsd.org/status/report-2003-01-2003-02.html#TCP-congestion-control)

**链接**

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

此工作的目标是通过增加对新标准和标准跟踪提案的支持，同时保持对现有规范的遵从，来改善 BSD 网络栈的性能、稳定性和正确性。即将发布的 4.8 和 5.1 版本将是第一个使用新 NewReno 算法的版本。最近，我们实现了有限传输算法（RFC 3042），该算法对具有小拥塞窗口的连接有益，例如，许多短小的 Web 连接。我们还最近增加了对 RFC 3390 中概述的较大起始拥塞窗口的支持。这有助于短的 TCP 连接以及那些具有大往返延迟的连接，例如通过卫星链接的连接。

### [ULE 调度器](https://www.freebsd.org/status/report-2003-01-2003-02.html#ULE-Scheduler)

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

ULE 调度器已被提交到 5.0-CURRENT 分支。欢迎早期用户和实验者尝试，并提交 bug 报告。在某些工作负载下，它比旧的调度器显示出了显著的性能提升。目前存在与优先级公平性相关的问题，但除此之外，交互性能非常好。为了改进负载均衡算法，还需要做更多的工作。预计这将在下个月左右准备好供广泛的 FreeBSD 用户群体使用。


---

# 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/2003/1-2.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.
