# FreeBSD 2001 年 12 月-2002 年 1 月状态报告

* 原文链接：[FreeBSD 2001 年 12 月 -2002 年 1 月 状态报告](https://www.freebsd.org/status/report-2001-12-2002-01.html)
* 作者：FreeBSD 项目

## 引言

本报告涉及了 2001 年 12 月和 2002 年 1 月期间 FreeBSD 项目的开发活动。在过去的几个月里，取得了多项成就，包括与 KSE 项目相关的重要进展，该项目将调度激活引入到 FreeBSD 内核中，以及一些较少可见的基础设施项目，如对挂载接口的改进、PAM 集成工作和翻译工作。紧接着本状态报告的截止日期，BSD 大会和 FreeBSD 开发者峰会举行，相关内容将在下一个双月报告中覆盖，报告将于 3 月底发布。今年晚些时候，美国加州蒙特雷市将举行 USENIX 年度技术大会，现已开始筹备，鼓励大家参加以进一步了解 FreeBSD 的开发动态。

Robert Watson

## [GEOM——通用的块存储操作](https://www.freebsd.org/status/report-2001-12-2002-01.html#%22GEOM%22generalized-block-storage-manipulation)

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

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

这个项目现在终于开始了，多亏了 DARPA 和 NAI 获得了赞助。基础设施代码和数据结构目前正在用户空间模拟环境中成形。基本的 MBR 和 BSD 方法已经编写完毕，已经实现并验证设备 attach/taste/dettach 算法。

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

链接

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

该项目正在取得进展。目标是使用 Netgraph 框架设计并实现主机控制器接口（HCI）和链路层控制与适配协议（L2CAP）层。更远的目标是为服务发现协议（SDP）和 RFCOMM 协议（蓝牙链路上的串口仿真）编写支持。所有信息均来自蓝牙规范书 v1.1。

项目状态：进行中。1）设计：基本完成，还有一些小问题需要解决。2）实现：内核 - HCI 和 L2CAP Netgraph 节点已实现；3）用户空间（API，库，工具） - 正在进行中。4）测试：正在进行中。目前没有真正的蓝牙硬件，因此我编写了一些工具，允许我测试代码。其中一些将作为未来用户空间工具的基础。

问题：1) 蓝牙硬件；我没有真实的蓝牙硬件，所以如果有人能捐赠硬件/或规格资料那就太好了。我保证编写所有需要的驱动程序提供给大家。我还保证在收到请求后第一时间归还硬件/规格资料。2) 项目名称；我希望项目名称能反映以下内容：这是一款蓝牙协议栈，基于 FreeBSD 上的 Netgraph 框架实现。

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

链接：<http://people.freebsd.org/~mike/c99/>

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

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

在 12 至 1 月期间，尤其是在实用工具合规性方面，进展显著。为了符合 SUSv3（Single UNIX Specification v3，第三版单一 UNIX 规范），更新了多款实用工具，包括：at(1)、mailx(1)、pwd(1)、split(1) 和 uudecode(1)。为提高其他实用工具的合规性，提交了多个补丁，包括：fold(1)、patch(1)、m4(1)、nice(1)、pr(1)、renice(1)、wc(1) 和 xargs(1)。正在审查和提交这些补丁。编写了两款新的实用工具，分别是 pathchk(1) 和 tabs(1)，这些工具也正在审查中，且将很快提交。

正在审查一个实现大部分了 scanf(3) 要求的补丁，预计很快就会提交。这将使我们能够 MFC 多个新函数和头文件。此外，已开始进行宽字符串和复数支持的工作。

## [保加利亚语版本的 FreeBSD](https://www.freebsd.org/status/report-2001-12-2002-01.html#FreeBSD-in-Bulgarian)

链接：

<http://www.freebsd-bg.ringlet.net/>

<http://people.freebsd.org/~roam/bg/>

联系人：Peter Pentchev <<roam@FreeBSD.org>>

保加利亚语版本的 FreeBSD 项目旨在为保加利亚用户提供更舒适的 FreeBSD 操作系统使用环境。这包括但不限于字体、键盘布局和区域设置支持、FreeBSD 文档的保加利亚语翻译、本地用户组和各种形式的在线帮助渠道及讨论论坛，以帮助保加利亚人采用和使用 FreeBSD。

已在项目网站上发布了使用 FreeBSD 保加利亚设置的指南。CVS 代码库将在不久后公开，并通过上述链接提供。

独立的项目 [http://www.FreeBSD-bg.org/](http://www.freebsd-bg.org/) 已问世，旨在让 FreeBSD 更容易为保加利亚人使用。它还托管了一个讨论 FreeBSD 保加利亚语版本的邮件列表，<stable@FreeBSD-bg.org>。有关邮件列表的更多信息，请发送一封包含 `help` 的邮件至 <majordomo@FreeBSD-bg.org>。

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

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

联系：Greg Lewis <<glewis@eyesbeyond.com>>

过去的两个月对于 FreeBSD Java 项目来说是激动人心的，因为 FreeBSD 基金会与 Sun 签署了一项许可协议，能让我们访问更新的 JDK 源代码和 Java 兼容性套件（JCK）。此许可协议还将能让该项目在完成 JCK 测试后发布 JDK 和 JRE 的二进制版本。目前正在进行此项测试，项目希望能够在不久的将来发布二进制版本。

由于二进制版本未能实现与 FreeBSD 4.5 一同发布，项目将在本周末发布更新的源代码补丁集。此补丁集将包括 Bill Huey 在 FreeBSD“本地”线程子系统方面的进一步工作。此外，得益于 Joe Kelsey 和 Fuyuhiko Maruyama 的辛勤工作，此补丁集将首次包括一款可用的 Java 浏览器插件！

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

**链接**

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

[SNAPSHOT 注记 (日语)](http://www.jp.freebsd.org/snapshots/notes.html)

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

我已将构建机器的操作系统更新为最新的 FreeBSD 5-current 和 4-stable，一切顺利。自 2002 年 1 月以降，我启动了网络杂志——SNAPSHOTS Notes（目前仅提供日语版本）。SNAPSHOTS Notes 提供了有关使用 FreeBSD 5-current/4-stable 的用户的技巧和信息。欢迎随时提供文章或想法（不必限于日语 :-).

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

**链接**

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

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

对于 4.5-RELEASE，Port ja-man-doc-4.5.tgz 已与基本系统同步，除了 OpenSSH 页面（基于 OpenSSH 2.3 而非 2.9）和 Perl5 页面（jpman 项目不维护）。第 3 部分的更新完成了 55%。

OKAZAKI Tetsurou 已将基本系统的 groff 更改集成到 Port japanese/groff 中。MORI Kouji 已修复 Port japanese/man 中的两个 bug。

## [KAME](https://www.freebsd.org/status/report-2001-12-2002-01.html#KAME)

**链接**：<http://www.kame.net/>

联系：KAME core team <<core@kame.net>>

KAME 项目目前专注于作用域寻址架构、先进的 API 实现、NATPT 和移动 IPv6 实现。尽管这些内容尚不稳定，无法并入 FreeBSD 源码，但你可以从上述链接下载，尝试它们。

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

**链接**

[链接](http://www.freebsd.org/~julian/)

[链接](http://www.freebsd.org/~jasone/kse/)

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

KSE 项目（旨在使用内核支持在 FreeBSD 中支持可扩展线程）已达到我所称之为“里程碑 3”。在此里程碑中，可以在单颗 CPU 上运行多线程程序，但该 CPU 上的线程完全并发。换句话说，内核支持线程可通过其他线程运行来阻塞自己。可以在上述网站上获取此功能的演示测试程序。

里程碑 4 将能在多颗 CPU 上运行同一程序的线程，但可能需要来自 SMPng 项目的更多建议。我目前（2 月 6 日）正在准备提交第一组里程碑 3 的更改，这些更改无实际效果，但可以大大减少剩余差异的复杂性，以便其他人能更便于阅读。添加对 libkvm 的更改以支持这些差异后，应该可以运行 'ps' 并查看线程化进程中的多个线程。我将在 BSDcon 上演示 KSE/M3。

## [Netgraph ATM](https://www.freebsd.org/status/report-2001-12-2002-01.html#Netgraph-ATM)

**链接**：<ftp://ftp.fokus.gmd.de/pub/cc/cats/usr/harti/ngatm/>

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

已将 Netgraph ATM 包拆分为多个较小的包：bsnmp 是款通用的 SNMP 守护进程，支持可加载模块。它附带了两个模块：一个实现 MIB-2 中的标准网络接口和 IP 相关部分，另一个用于将其他模块与 NetGraph 子系统接口。ngatmbase 包含 ATM 硬件驱动程序、ng\_atm netgraph 类型以及一些测试工具。该包可使用 ATM PVC。例如，可以使用此包进行 PPP over ATM（PPPoA）。可通过上述链接下载 bsnmp 和 ngatmbase 的 1.0 版本。还有两个其他模块将在 2 月发布：ngatmsig，包含作为 netgraph 节点的 UNI-4.0 信令栈，以及 ngatmip，包含 CLIP 和 LANE-2.0。

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

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

联系：Maxime Henrion <<mux@sneakerz.org>>

现在，补丁已发送至邮件列表 <freebsd-arch@FreeBSD.org>，并且未收到任何反对意见，将在近期进行提交。Poul 目前正在自己的源码中测试此补丁。提交后，将开始修改源码中的文件系统，来使用 VFS\_NMOUNT 而非 VFS\_MOUNT。Mount(8) 也需要进行一些修改。与此同时，正在为 mount(2) 和 kernel\_vmount(9) 创建新的手册页。

## [PAM](https://www.freebsd.org/status/report-2001-12-2002-01.html#Pluggable-Authentication-Modules)

**链接**

[OpenPAM](http://openpam.sourceforge.net/)

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

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

OpenPAM 是一款新的库，旨在替换 FreeBSD 中的 Linux-PAM，它已经编写完成并正在进行集成测试。可从上面的链接下载。

此外，已编写了几个新的模块（pam\_lastlog(8)，pam\_login\_access(8)），且已增补 pam\_unix(8) 模块，可以执行 login(1) 通常执行的大多数任务，现在已经完全 PAM 化。

PAM FDP 文章已暂时搁置——直到 CVS 中的 Linux-PAM 被 OpenPAM 替代，以避免浪费精力在即将过时的文档上。

## [修订版 {mode, log} 页面对 camcontrol 的支持](https://www.freebsd.org/status/report-2001-12-2002-01.html#Revised-{mode,log}page-support-for-camcontrol)

联系：Kelly Yancey <<kbyanc@FreeBSD.org>>

增补了 camcontrol 的页面定义文件格式，如 modepage 和 logpage 定义；向 camcontrol 添加了支持查询和重置日志页面参数的功能。考虑到可能会包括对诊断和重要产品数据页面的支持，但这超出了当前项目的范围。新的页面定义文件格式包括基于 SCSI INQUIRY 结果有条件地包含页面定义的能力，还可描述供应商特定的页面。该项目已完成约 90%。

## [SMPng](https://www.freebsd.org/status/report-2001-12-2002-01.html#SMPng)

**链接**

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

Alfred Perlstein 提交了文件描述符锁定代码，这对于锁定一些重要的全局数据是一个积极的推动。Peter Wemm 在 x86 SMP TLB 驱逐方面取得了 pmap 清理的进展。Matt Dillon 和 John Baldwin 在将对 ucred 的访问移出 Giant 的保护范围方面取得了进展。John Baldwin 还做出了一些提交，以使 alpha 平台的 SMP 正常工作。Matt Dillon 计划继续追踪 fileops 锁定问题，以继续他之前的 Giant 推下（pushdown）工作。

## [TrustedBSD ACL](https://www.freebsd.org/status/report-2001-12-2002-01.html#TrustedBSD-ACLs)

**链接**

联系：Chris Faulhaber <<jedgar@FreeBSD.org>>

针对 cp(1)、ls(1) 和 mv(1) 的补丁，已更新为与 -CURRENT 构建兼容的 POSIX.1e 合规的访问控制列表（ACL）支持。其他系统工具正在评估 ACL 支持，包括 install(1)（补丁已提供）和 mtree(8)。正在进行工作，以验证原生的 getfacl(1)、setfacl(1) 及其他工具在其他启用了 ACL 的系统（例如启用了 ACL 补丁的 Linux）上构建并正常工作，并帮助验证继续进行的 TrustedBSD 工作的 POSIX 合规性及其他系统。最后，还提供了实验性的 Perl 和 PHP 模块，可对 C 语言以外的语言有限访问本地 ACL。

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

**链接**：<http://www.fxp.org/jedgar/ACL/>

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

联系：trustedbsd-discuss <<trustedbsd-discuss@TrustedBSD.org>>

Robert Watson 创建了 TrustedBSD 审计的 Perforce 存储库，这是从 TrustedBSD 基础树分支出来的，旨在推动开发工作使用版本控制系统。Andrew Reiter 开始合并一些与框架相关的代码，用于生成审计记录、排队写入以及处理数据写入。关于更新和讨论有大量工作要做，相关讨论可以在 <trustedbsd-discuss@TrustedBSD.org> 邮件列表中进行。

## [TrustedBSD MAC 实现](https://www.freebsd.org/status/report-2001-12-2002-01.html#TrustedBSD-MAC-Implementation)

**链接**

\[TrustedBSD 项目网站]\(<http://www.trustedbsd.org/>

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

在实现有效的 MAC（强制访问控制）方面进展显著。过去两个月的重点是从一系列硬编码的 MAC 策略过渡到更灵活的实现。已创建可插拔的策略框架（仍在开发中），支持 Biba、MLS、TE、"BSD Extended" 模型，以及示例的 mac\_none 模块。某些模块必须在启动前编译或加载，其他模块可以在运行时引入。改进了网络支持，包括对 IPv4 中 IP 分片的处理改进、支持各种伪接口（如 if\_tun 和 if\_tap）、与用户空间的集成改善、与 NFS 相关的修复、将 VFS 执行从各个文件系统中移出、支持“多级”挂载标志、支持在 procfs 和 devfs 中显式标签化、增加了“extattrctl lsattr”参数，可列出文件系统上的 EA（扩展属性）、在 Biba 和 MAC 策略中支持标签范围等。

接下来两个月的目标包括对 VFS 相关调用的更广泛执行、改进对替代 ABI 的支持、内核中主题和对象标签的灵活性增强、支持 IPv6 和 IPsec，以及对 NFS 服务支持的改善。

开发工作继续在 FreeBSD 的 Perforce 仓库中进行，可通过 cvsup 访问。

## [维护 USB 堆栈](https://www.freebsd.org/status/report-2001-12-2002-01.html#USB-stack-maintenance)

联系：Josef Karthauser <<joe@FreeBSD.org>>

我一直在努力将 NetBSD USB 堆栈中的最新改进集成到 FreeBSD -current 中。NetBSD 和 OpenBSD 目前共享着相同的源代码，FreeBSD 在分支之前曾一度也与它们相同。目标是恢复到这种状态，但两者都有许多需要合并的改进，才能完成这一过程。

目前我在寻找帮助维护 -stable 中 USB 的人。如果你感兴趣，请告诉我。
