# FreeBSD 2002 年 2-4 月状态报告

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

## 引言

本报告涉及了 2002 年 2-4 月期间 FreeBSD 的开发活动。这几个月非常忙碌——在旧金山举行的 BSDCon、FreeBSD 开发者峰会、5.0-CURRENT 的初次开发预览，更不用说 5.0 功能集（SMPng、sparc64、GEOM 等等）的重大进展了。

在接下来的两个月里，将举行 USENIX ATC（强烈推荐这场活动，适合开发者和用户参加），并且一系列新的软件组件将合并至代码树，如 UFS2 和 TrustedBSD MAC 框架。我们还将完成 FreeBSD 核心团队的选举，预计在下次报告发布时，新一届核心团队将正式上线。更多动态敬请关注！

Robert Watson

## [“GEOM” - 通用块存储操作](https://www.freebsd.org/status/report-2002-02-2002-04.html#%22GEOM%22generalized-block-storage-manipulation)

**链接**

[旧概念文档在此](http://www.freebsd.org/~phk/Geom/)

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

GEOM 代码取得了一定进展，在某些方面超越了当前代码，但在其他方面仍有欠缺。工作继续进行，旨在为用户空间操作“幻数数据”（启动块、磁盘标签、MBR 等）提供通用接口。

在启用 GEOM 后，现在所有 FreeBSD 平台都能识别 PC 式的 MBR、i386 磁盘标签、alpha 磁盘标签、PC98 扩展 MBR 和 SUN/Solaris 式的磁盘标签。

## [Athlon MTRR 问题](https://www.freebsd.org/status/report-2002-02-2002-04.html#Athlon-MTRR-Problems)

联系人：David Malone <<dwmalone@FreeBSD.org>>

FreeBSD 的 MTRR 代码已针对 Athlon 内存类型范围寄存器中有时出现的异常值进行了增强。这些异常值的问题曾导致在某些主板上无法运行 XFree 4.2。实验表明，这些未被文档记载的值可能控制着 BIOS/ROM 的映射，或者与 SMM 有关。如果有人能提供这些值的含义，敬请告知，以便我们完成 MTRR 代码的编写。

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

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

我正在慢慢推进。可下载第二版工程已经发布，链接是 <http://www.geocities.com/m_evmenkin/ngbt-fbsd-20020506.tar.gz>

此版本包括对 H4 UART 传输层、主机控制器接口（HCI）、链路层控制和适配协议（L2CAP）及蓝牙套接字层的支持。它还附带了几款用户空间工具，可以用来配置和测试蓝牙设备。

我目前正在实现 RFCOMM 协议（通过蓝牙链路进行串口仿真）。我的下一个目标是从 BlueZ（`http://bluez.sf.net`）将服务发现协议（SDP）移植过来。我也在考虑增加 USB 设备支持（只要找到或购买硬件）。

问题：1）蓝牙硬件；我有几张 PC-CARD 卡用于开发和测试，但我希望能有更多。2）时间；我的日常工作已经开始，所以我将花更多时间做能赚钱的事情。

## [光纤通道](https://www.freebsd.org/status/report-2002-02-2002-04.html#Fibre-Channel)

**链接**

\[项目状态页面]\(<http://people.freebsd.org/\\~mjacob/fibre\\_channel.html>

联系人：Matthew Jacob <<mjacob@FreeBSD.org>>

在过去的几个月里，光纤通道的错误修复和加固工作持续进行着。

后续的工作将包括使目标模式正确且高效地工作。

LSI-Logic 芯片的 MPT Fusion 驱动也在评估中。

## [FreeBSD ARM 平台](https://www.freebsd.org/status/report-2002-02-2002-04.html#FreeBSD-ARM-Port)

**链接**：<http://pages.infinit.net/sepotvin>

联系人：Stephane E. Potvin <<sepotvin@videotron.ca>>

自上次进度报告以降，大幅清理了初始化代码（感谢 NetBSD 的 acort32 port），并且添加了部分 DDB 支持。我现在正努力使 pmap 模块正常运行。最新的补丁集只有初始化的修改。我尝试在我的 iPAQ 上使现有代码运行，但未成功（通过串口下载内核实在太痛苦了）。如果有人成功将任何 iPAQ 设备作为 USB 存储设备在 `*BSD` 上工作，请与我联系。

## [FreeBSD C99 和 POSIX 兼容性项目](https://www.freebsd.org/status/report-2002-02-2002-04.html#FreeBSD-C99-&-POSIX-Conformance-Project)

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

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

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

自上次状态报告以降，参与实用工具兼容性工作的两位开发者获得了 FreeBSD CVS 仓库的提交权限，以加速开发进程。最后，以下实用工具已符合兼容标准，它们是：csplit(1)、env(1)、expr(1)、fold(1)、join(1)、m4(1)、mesg(1)、paste(1)、patch(1)、pr(1)、uuencode(1)、uuexpand(1) 和 xargs(1)。printf(1) 工具已符合 1992 版 POSIX.2 标准，正在规划后续的开发。

在头文件方面，取得了很大进展。具体而言，基于应用程序请求的标准，控制头文件组件可见性的基础设施已添加至 `<sys/cdefs.h>`。部分类型定义方式的改进也已完成，这促成了 `<sys/_types.h>` 的创建。后续的改进计划包括合并 `<machine/ansi.h>` 和 `<machine/types.h>`。此外，头文件 `<strings.h>`、\<string.h> 和 `<sys/un.h>` 已符合 POSIX.1-2001 标准。

在 API 方面，scanf(3) 增加了对五个新长度修饰符（hh、j、ll、t 和 z）的支持。为了实现两个额外的转换说明符（j 和 z），已开发出相应的补丁，并预计很快会提交到 printf(9)。

此外，项目的网站已迁移到主 FreeBSD 网站。现可通过本状态报告顶部的链接访问。请更新你的书签。

## [FreeBSD 开发者峰会](https://www.freebsd.org/status/report-2002-02-2002-04.html#FreeBSD-Developer-Summit)

**链接**：<http://www.freebsd.org/events/2002/bsdcon-devsummit.html>

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

第二届 FreeBSD 开发者峰会于 2 月在旧金山的 BSD 大会后举行，取得了巨大的成功。约有 40 位开发者亲自参加，另外五位通过电话参与，许多人通过网络直播观看。在为期八小时的马拉松式会议中，讨论了各种开发话题，包括向 KOBJ 系统添加继承功能、向新架构移植 Ports、让工具链适应新架构、GEOM 可扩展存储设备框架、未来网络栈的变化、TrustedBSD 特性、KSE、SMPng 和发布工程计划。此次活动由 DARPA 和 NAI 实验室赞助，网络直播由 Joe Karthauser 提供，带宽由雅虎提供。后续类似活动的计划现已开始；可以在上面提供的链接找到讨论的总结/记录。

## [FreeBSD 软件包构建集群](https://www.freebsd.org/status/report-2002-02-2002-04.html#FreeBSD-Package-building-Cluster)

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

软件包是通过 FreeBSD Ports 集群（i386 和 alpha 机器）以及位于 `/usr/ports/Tools/portbuild/` 的脚本构建的。为了提高效率并增加包构建过程的灵活性，在过去的几个月里，我一直在清理和增补这些脚本。至今的主要改进：清理并模块化脚本，以避免代码重复并减少持续的维护需求；优化构建过程，使其更具健壮性（尤其是在客户端机器发生故障时）；以及可在构建过程中断后重新启动包构建。i386 包集群目前正运行着 FreeBSD 5.0-CURRENT，并已证明其是暴露内核 bug 的有用测试平台，尤其是那些仅在系统负载下才会出现的 bug。

后续的计划包括实现增量包重建，只构建自上次运行以来发生变动的包。这将使得包在 CVS 提交到 Ports 集群后的一到两个小时内，可以在 FTP 网站上进行提供。我们还希望在不久的将来建立 sparc64 包集群，但这取决于适当的硬件。

## [FreeBSD/KGI](https://www.freebsd.org/status/report-2002-02-2002-04.html#FreeBSD/KGI)

**链接**：<http://www.freebsd.org/~nsouch/ggiport.html>

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

FreeBSD/KGI 项目始于去年，源自将 GGI 移植到 VGL。KGI（内核图形接口）是一款内核基础设施，提供用户应用程序访问硬件图形资源（DMA、IRQ、MMIO）。作为一个独立项目，KGI 在 Linux 上已可用。FreeBSD/KGI 项目的目标是将 KGI 集成到 FreeBSD 内核中。目前主要是移植工作，但后续会针对 FreeBSD 进行优化。目前 FreeBSD/KGI 仍在开发中，但尚不能运行，代码仅供阅读和编译。更有趣的是，可以在项目网址上找到一些设计提示。

## [GCC 3.1](https://www.freebsd.org/status/report-2002-02-2002-04.html#GCC-3.1)

联系人：David O'Brien <<obrien@FreeBSD.org>>

自 2002 年 5 月 9 日星期四起，FreeBSD 5-CURRENT 已使用 GCC 3.1 的预发布快照作为系统 C 编译器。在这一切开始时，编译器在 i386、Alpha、Sparc64 和 IA-64 平台上构建 world 时运行良好。已知在 Alpha 上的原子操作存在问题，导致 GCC 3.1 构建的内核无法启动。

目前无法构建 C++ 支持库（如 libstdc++ 等），因此无法使用系统的 C++ 编译器。

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

**链接**

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

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

最近 GNOME 项目经历了不少变化。首先，更新的作者最近获得了提交位权限。Joe Marcus Clarke 现在拥有了 CVS 访问权限，他主要从事 GNOME 项目的工作。Joe 已关闭了大量 GNOME 问题报告，并修补了一些现有的 GNOME 1.4 组件。

GNOME 2 的移植工作仍在继续。我们已完成 GNOME 2.0 API 的移植，并且 GNOME 2.0 桌面移植工作已经完成了 75%。待完成后，GNOME 1.4 和 GNOME 2.0 将共存于 Ports。两者的 API 可以在同一 PREFIX 中并行安装，但各自的桌面将保持独立。为了优雅地处理这两个版本的桌面，Maxim Sobolev 正在改进 `bsd.gnome.mk`。

现有的 GNOME 1.4 组件也收到了许多更新，来保持与 gnome.org 上的稳定版本同步。我们已经看到许多“1.0”里程碑版本的发布，包括最近的 AbiWord 1.0.0。在接下来的几周里，我们将确保所有 GNOME 1.4 组件在 bento 上构建正确的包，这样 GNOME 1.4 就能出现在 4.6-RELEASE CD 上。

## [移植 IA64](https://www.freebsd.org/status/report-2002-02-2002-04.html#IA64-Port)

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

IA64 过去几个月非常忙碌。除了 gcc，我们现在已经完全支持 IA64 自主开发。Doug Rabson 施展了他的魔法，实现了 32 位 i386 应用程序二进制文件的执行，尽管还需要做更多工作才能让 `ld-elf.so.1` 在不同的底层页面大小下正常工作。我们一直使用 i386 的 perforce 二进制文件进行实际的开发工作，并从 IA64 系统本身提交。Marcel Moolenaar 一直在处理 SMP 和机器检查支持。我们已在开发机上长时间稳定运行 SMP 内核。现在 syscons 也能正常工作。我们已经制作了一款自引导的 run-root-on-cdrom ISO 镜像（灵感来自 sparc64 同仁），并用它从空白硬盘手动安装了 IA64 系统。除了少数几个小问题外，我们现在已经完成了完整的“make world”功能。sysinstall 也能在 IA64 上正常工作。我们计划很快制作一个相对可用的引导/安装 CD-ROM 镜像。

## [改进 FreeBSD 启动脚本](https://www.freebsd.org/status/report-2002-02-2002-04.html#Improving-FreeBSD-Startup-Scripts)

**链接**

<http://home.pacbell.net/makonnen/rcng.html>

<http://groups.yahoo.com/group/FreeBSD-rc/>

<http://www.mewburn.net/luke/bibliography.html>

<http://www.netbsd.org/Documentation/rc/>

联系人：Doug Barton <<dougb@FreeBSD.org>>

联系人：Mike Makonnen <<makonnen@pacbell.net>>

联系人：Gordon Tetlow <<gordont@gnf.org>>

Mike Makonnen 在将 FreeBSD 的启动脚本移植到 NetBSD 框架方面做了大量出色的工作。下一步似乎是尽量减少我们实现与 NetBSD 原始脚本集之间的差异。

## [FreeBSD 上的 IPMI 工具](https://www.freebsd.org/status/report-2002-02-2002-04.html#IPMI-Tools-for-FreeBSD)

**链接**：<http://www.freebsd.org/~dwhite/ipmi/>

联系人：Doug White <<dwhite@FreeBSD.org>>

FreeBSD 上的 IPMI 工具是一套用于探索通过智能平台管理接口（IPMI）获得的信息的 C 和 Python 应用程序及模块，这些接口由 Intel 和 HP 在服务器主板上实现。IPMI 是一项开放标准，具有为采用者提供专利保护，定义了标准接口来访问板载管理硬件。管理硬件包括 CPU、传感器（如温度探针和风扇速度）、存储库（如系统事件日志和可更换单元（FRU）库存）以及其他系统信息。

最近发布了一组基本工具，利用 KCS 和 SMIC 系统接口检索系统事件日志、FRU 存储库和系统传感器。目前正在研究更多的功能。非常欢迎提出更多功能和程序的建议。

## [jp.FreeBSD.org 每日快照项目](https://www.freebsd.org/status/report-2002-02-2002-04.html#jp.FreeBSD.org-daily-SNAPSHOTs-project)

**链接**

[项目网页](http://snapshots.jp.freebsd.org/)

[项目网页（日语版）](http://www.jp.freebsd.org/snapshots/)

联系人：Makoto Matsushita <<matusita@jp.FreeBSD.org>>

有几个新的话题，包括：源代码巡览现在分为内核部分和用户空间部分、RELENG\_4\_x 分支的另一个快照（目前为 4.5-RELEASE-p4）、将多款软件包（包括 XFree86 4.x）添加到安装 CD-ROM 中、新的仅 cd 启动 ISO 镜像、修复了 duplex.iso 的问题等。更多详情请查看项目网页。同时，我计划将 FreeBSD/alpha 发行版添加到该项目中——敬请关注。

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

**链接**

[jpman 项目页面（面向用户和开发者，日语版）](http://www.jp.freebsd.org/man-jp/)

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

4.5-RELEASE 的日文手册包 ja-man-doc-4.5.tgz，曾在 1 月 31 日发布（如之前的状态报告所述）并与 OpenSSH 2.3 一同发布，将于 3 月 3 日更新为基于 OpenSSH 2.9 的新包。从那时起，我们一直在更新 4.6-RELEASE 的日文手册页。对于新翻译和大量更新，我们做出了很多努力。

第三部分的更新已完成 73%。

## [KAME](https://www.freebsd.org/status/report-2002-02-2002-04.html#KAME)

**链接**

[KAME 项目主页](http://www.kame.net/)

[KAME 项目路线图](http://www.kame.net/roadmap-2002.html)

联系人：Shinsuke SUZUKI <<suz@kame.net>>

KAME 项目已延长至 2004 年 3 月，并且我们已经确定了这两年的项目路线图。第一年用于实现，剩下的一年则是将我们的成果回馈到其他 BSD 项目中（有关更多细节，请参见上面的 URL）。一个重要的变化是，由于缺乏人力资源，KAME 不再支持 NAT-PT，尽管 KAME 快照仍然包含它。

鈴木伸介（<suz@kame.net>）开始与 Umemoto-san（<ume@FreeBSD.org>）合作，从事 KAME 和 FreeBSD 合并的任务。一些 KAME 的工作（关键错误修复、最新的 Port pim6sd 和 racoon 等）已于今年 4 月合并到 4-stable 中。

## [KSE](https://www.freebsd.org/status/report-2002-02-2002-04.html#KSE)

**链接**

<http://www.freebsd.org/~julian/>

<http://www.freebsd.org/~jasone/kse/>

联系人：Julian Elischer <<julian@FreeBSD.org>>

联系人：Jonthan Mini <<mini@FreeBSD.org>>

KSE 项目由于缺乏开发一度停滞，但最近由 Jonathan Mini 重新接手。目前，主要的工作集中在准备将“里程碑 3”代码纳入 -CURRENT。

该项目仍在朝着“里程碑 4”努力（让同一进程的线程在多个 CPU 上运行），由于 SMPng 项目在过去几个月的工作，这个目标现在应该会更容易实现。

项目在多个领域需要帮助，特别是在把 libc\_r（pthreads）库移植到 KSE 的线程模型方面。

## [Libh](https://www.freebsd.org/status/report-2002-02-2002-04.html#Libh)

**链接**

[主项目页面](http://www.freebsd.org/projects/libh.html)

联系人：Antoine Beaupré <<anarcat@anarcat.ath.cx>>

联系人：Alexander Langer <<alex@FreeBSD.org>>

联系人：Nathan Ahlstrom <<nra@FreeBSD.org>>

我们现在有了可加载的 mfsroot 软盘。它仅包含磁盘编辑器（实际上是款磁盘分区工具），已增补该工具，并且可能已接近最终产物。它的目标是将 newfs(1) 和 mount(1) 步骤分为单独的对话框，因此弱化了复杂性。我们已经实现了一个基本的 fstab 类，用于操作 `/etc/fstab` 和挂载点。顺便说一句，这可能会在 libh 之外找到用武之地。Libh 软件包格式仍然不完整，并且有些错误，因此这是我接下来的目标。

目前正在进行 API 文档工作，借助 doxygen(1)，因此现在有了更多文档，供那些希望开始使用 libh 的人参考。

所有这些都促使我准备发布 libh 的另一个 alpha 预览版，它将很快在 ports 中可用（版本 0.2.2）。此外，一位新提交者（okumoto）加入了该项目（和我一起），他目前正在清理构建系统。虽然已经几个月没有新进展了，但不要担心，我们仍然需要你的帮助，才能真正推进这一工作！

## [在网络栈中锁定 PCB](https://www.freebsd.org/status/report-2002-02-2002-04.html#locking-up-pcb's-in-the-networking-stack)

**链接**

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

我一直在指导某人进行网络栈中协议控制块（PCB）的锁定。她已经完成了 TCP 和 UDP 的工作，我目前正在与她一起审查补丁，并解决一些网络锁定顺序的问题。接下来是锁定原始协议接口控制块。

## [Netgraph ATM](https://www.freebsd.org/status/report-2002-02-2002-04.html#Netgraph-ATM)

**链接**

[NgAtm 介绍](http://www.fokus.fhg.de/research/cc/cats/employees/hartmut.brandt/ngatm/index.html)

联系人：Harti Brandt <<brandt@fokus.fhg.de>>

现已发布 1.1 版本的 FreeBSD-current。它包括 SNMP-daemon 包 bsnmp、驱动包 ngatmbase、UNI4.0 信令包 ngatmsig 和网络仿真包 ngatmnet。NgAtm 使直接在 ATM 上运行的应用程序成为可能，也能使用 ATM-Forum LAN 仿真来在 ATM 上使用 IP。目前，我们正在开发一款简单的交换机模块，实施网络侧信令和 ILMI，以及简单的路由和呼叫接纳控制。

## [网络接口克隆与模块化](https://www.freebsd.org/status/report-2002-02-2002-04.html#Network-interface-cloning-and-modularity)

联系人：Brooks Davis <<brooks@FreeBSD.org>>

对 stf(4)、faith(4) 和环回接口的支持已经提交到 current。stf 和 faith 的支持已 MFC。现在的 API 已发生更改，将单元分配移入通用克隆代码，从而减少了每个驱动程序所需的支持代码量。为提高与 NetBSD 的 API 兼容性，将很快提交代码改进，以及对 discard 接口和 ppp(4) 接口的克隆支持。

感谢 <mux@FreeBSD.org> 提供的环回支持和单元分配清理工作。

## [新的 mount(2) API](https://www.freebsd.org/status/report-2002-02-2002-04.html#New-mount\(2\)-API)

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

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

新的 mount API 的补丁现已提交到树中。多款文件系统也已转换为此新的 mount API，包括 procfs、linprocfs、fdescfs 和 devfs。我正在将更多文件系统转换为 nmount，实际上 UFS 已经完成了。由于与 UFS2 工作存在冲突，尚未提交，但应该很快会提交。由于我对 API 做了一些修改，目前还没有手册页。我希望能很快完成它们。

## [NEWCARD](https://www.freebsd.org/status/report-2002-02-2002-04.html#NEWCARD)

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

NEWCARD 尝试将 CardBus 功能与 PCI 功能合并，但未能正确路由中断。为了合并创建了一分支，稍后将其合并到主线中。由于生活中有太多其他事情要处理，因此进展缓慢。

## [OpenSSH](https://www.freebsd.org/status/report-2002-02-2002-04.html#OpenSSH)

联系人：Dag-Erling Smørgrav <<des@FreeBSD.org>>

OpenSSH 已升级至 3.1，似乎所有问题都已解决。OpenSSH 现在将使用 PAM 来进行 ssh1 和 ssh2 的身份验证。

## [PAM](https://www.freebsd.org/status/report-2002-02-2002-04.html#PAM)

**链接**

[2002 年 3 月 PAM 活动报告](http://people.freebsd.org/~des/pam/pam-2002-03.html)

[2002 年 4 月 PAM 活动报告](http://people.freebsd.org/~des/pam/pam-2002-04.html)

联系人：Mark Murray <<markm@FreeBSD.org>>

联系人：Dag-Erling Smørgrav <<des@FreeBSD.org>>

现在痛苦的部分已完成，所有与身份验证相关的实用工具都已转换为 PAM（除了那些不适用的情况，如 Kerberos 或 OPIE 特定命令）。OpenPAM 已经完成（除了少数缺失的手册页），并且似乎运行良好。

更多详情，请参阅上面链接的活动报告。

## [移植 PowerPC](https://www.freebsd.org/status/report-2002-02-2002-04.html#PowerPC-Port)

**链接**

[当前引导信息](http://jeamland.net/~benno/powerpc-boot.txt)

联系人：Benno Rice <<benno@FreeBSD.org>>

正在推进 PowerPC 的移植。它现在可以挂载根文件系统并执行 init，但在尝试映射 init 的文本段时失败。我希望很快能让它启动我的假 init“Hello, world!”，之后我计划尝试将一些 libc 部分放置好，以便能够构建 `/bin` 和 `/sbin`，并尝试进入实际的单用户模式。

## [ppp RADIUS/MS-CHAP 支持](https://www.freebsd.org/status/report-2002-02-2002-04.html#ppp-RADIUS/MS-CHAP-support)

联系人：Brian Somers <<brian@FreeBSD.org>>

libradius 现在支持 RADIUS 厂商属性扩展，user-ppp 现在能够通过 RADIUS 服务器进行 MS-CHAP 认证。创建了新的 Port net/freeradius，来支持 RADIUS 服务器中的 MS-CHAP。

将很快加入支持 MS-CHAPv2。

该工作由 Monzoon 赞助。

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

**链接**

<http://www.freebsd.org/releng/>

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

发布工程团队于 2002 年 4 月 8 日发布了 FreeBSD [5.0-DP1](http://www.freebsd.org/releases/5.0R/DP1/announce.html)。该开发者预览版让开发人员和其他感兴趣方有机会测试即将在 5.0-RELEASE 中出现的一些新特性。该发行版已知存在一些 bug 和不稳定区域，仅应用于（非生产环境的）测试和开发。

接下来的 FreeBSD 发行版将是 4.6-RELEASE（定于 2002 年 6 月 1 日发布）和 5.0-DP2（定于 2002 年 6 月 25 日发布）。关于发布计划和更多信息，可以访问团队在 FreeBSD 网站上的新专区（请参见上面的链接）。

最后，团队新增了两名成员：Brian Somers 和 Bruce A. Mah。

## [SMPng](https://www.freebsd.org/status/report-2002-02-2002-04.html#SMPng)

**链接**

联系人：John Baldwin <<jhb@FreeBSD.org>>

联系人：<<smp@FreeBSD.org>>

SMPng 项目在过去几个月中进展显著。2 月份，Seigo Tanimura-san 提交了首轮进程组和会话锁定。Alfred Perlstein 还为大多数管道实现添加了锁定。3 月份，Alfred 修复了 `select()` 锁定的几个问题，并在多个系统调用中减少了 Giant 的使用。Andrew Reiter 为内核模块元数据添加了锁定，Jeff Roberson 编写了一款新的 SMP 友好型 slab 分配器，以替代 zone 分配器和内核内 malloc()。对临界区 API 的使用进行了清理，以避免被误用为禁用和启用中断的替代方案。此外，Matt Dillon 对 i386 架构上的临界区代码的机器相关（MD）部分进行了优化。4 月份，还锁定了多个子系统。有关更多详情，请查看 SMPng 网站和待办事项列表。

当前的工作进展有：Andrew Reiter 正在为内核链接器添加锁定，Bosko Milekic 正在为 i386 架构添加轻量级中断线程。Seigo Tanimura-san、Alfred Perlstein 和 Jeffrey Hsu 也在努力锁定网络堆栈的各个部分。Alan Cox 已开始修复 VM 子系统中现有的锁定，并将其中的一些部分移出 Giant。John Baldwin 编写了 turnstiles 的实现，并在 jhb\_lock Perforce 分支中实现了自适应互斥锁。这些自适应互斥锁在 i386、alpha 和 sparc64 上似乎稳定，但 turnstile 代码仍然包含一些棘手的锁顺序反转。John 还计划在不久的将来提交 API `p_canfoo()` 的变更，使用 td\_ucred，并完成使 ktrace(4) 使用工作线程的任务。

## [审计 TrustedBSD](https://www.freebsd.org/status/report-2002-02-2002-04.html#TrustedBSD-Audit)

**链接**

[TrustedBSD 主网页](http://www.trustedbsd.org/)

联系人：Andrew Reiter <<arr@FreeBSD.org>>

联系人：TrustedBSD 审计邮件列表 <<trustedbsd-audit@TrustedBSD.org>>

在过去几个月里，进展基本停滞，直到最近才有一些更新。最近对审计代码的修改包括将使用的区域更新为 UMA 区域，清理了一些旧的杂乱代码，并开始尝试将审计写入线程实现为 ithd。下一步是决定记录将被写入何处——是写入本地磁盘，还是上传到用户空间然后处理。之后，目标是扩大被审计的事件数量，同时也进行一些性能测试程序。我将在不久后向 trustedbsd-audit 邮件列表发布关于最近变更的详细信息。

## [TrustedBSD MAC](https://www.freebsd.org/status/report-2002-02-2002-04.html#TrustedBSD-MAC)

**链接**

[TrustedBSD 主网页](http://www.trustedbsd.org/)

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

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

在过去三个月里，TrustedBSD MAC 源码有了很多活动。初步提交了 SEBSD 代码（NSA FLASK 和 SELinux 实现）；许多以前通过内核选项直接链接到内核的 MAC 策略被移到了内核模块中；增强了框架的灵活性，特别是与对象标签生命周期相关的部分；引入了额外的标签和访问控制钩子；为展示框架灵活性引入了新策略（包括清理进程间授权、额外的 VFS 钩子、改进对多标签文件系统的支持、网络启动、IPv6、IPsec、对流套接字上“对等”标签的支持）。当前的模块包括 Biba 完整性策略、MLS 保密性策略、类型强制、`BSD 扩展`（可用于文件系统保护的类似防火墙的规则集）、`ifoff`（按策略限制接口通信）、mac\_seeotheruids（限制其他用户的进程等的可见性）、`babyaudit`（简单的审计实现）和 SEBSD（FLASK/SELinux 移植）。

在接下来的一个月里，将最终完成完全动态标签的迁移，可使策略在运行时引入与进程凭证、vnode、套接字、挂载点、接口和 mbuf 相关的新状态，从而开发出广泛的灵活的基于标签的政策。此外，应用程序 API 将重新设计和重新实现，以更好地支持完全动态的政策框架。我们计划在 6 月提供初步的补丁集供审查，计划在 6 月中旬提交该补丁集。

可以从 TrustedBSD CVS 树（位于 cvsup10.FreeBSD.org）获取更新的原型代码。

## [UMA](https://www.freebsd.org/status/report-2002-02-2002-04.html#UMA)

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

FreeBSD 的新内核内存分配器已提交至 5.0。UMA 是一种基于 slabs 的分配器，支持内存回收、对象缓存、类型稳定存储和每 CPU 自由列表，以优化 SMP 性能。它既有 malloc(9) 接口，也有特定对象类型的 zone 式接口。uma(9) 很快将可用。

## [FreeBSD 的通用磁盘文件系统](https://www.freebsd.org/status/report-2002-02-2002-04.html#Universal-Disk-Filesystem-for-FreeBSD)

**链接**

[UDF 主页面](http://people.freebsd.org/~scottl/udf)

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

联系人：Jeroen Ruigrok <<asmodai@wxs.nl>>

UDF 文件系统的只读支持已于 4 月检查并提交到 5-CURRENT 分支。Jeroen 正在为 4-STABLE 进行反向移植。下一阶段是编写 newfs\_udf，然后继续添加写支持。仍在寻找志愿者来处理一次性写入媒体（如 CD-R）的读写支持。

## [Wi Hostap](https://www.freebsd.org/status/report-2002-02-2002-04.html#Wi-Hostap)

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

针对基于 Prism2 和 Prism2.5 的无线卡的主机接入点支持已集成到内核。这项工作主要基于 Thomas Skibo 的初步实现。

## [零拷贝套接字](https://www.freebsd.org/status/report-2002-02-2002-04.html#Zero-Copy-Sockets)

**链接**

[零拷贝补丁和信息](http://people.freebsd.org/~ken/zero_copy/)

联系人：Ken Merry <<ken@FreeBSD.org>>

我发布了新的零拷贝套接字快照，这是自 2000 年 11 月以来的初次更新。该代码已移植到了最新的 -current，且巨型代码现在已加上互斥保护。此外，零拷贝发送和接收可以通过 sysctl 有选择地启用和禁用，从而更容易对比有无零拷贝的性能。欢迎进行评论和反馈。


---

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