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

引言

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

Robert Watson

链接:旧概念文档见此

联系人:Poul-Henning Kamp <[email protected]>

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

链接

联系人:Maksim Yevmenkin <[email protected]>

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

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

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

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

联系人:Mike Barcroft <[email protected]>

联系人:FreeBSD-Standards 邮件列表 <[email protected]>

在 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 多个新函数和头文件。此外,已开始进行宽字符串和复数支持的工作。

链接:

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

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

联系人:Peter Pentchev <[email protected]>

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

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

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

链接http://www.freebsd.org/java

联系:Greg Lewis <[email protected]>

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

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

链接

项目网页

SNAPSHOT 注记 (日语)

联系:Makoto Matsushita <[email protected]>

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

链接

jpman 项目 (日语)

联系:Kazuo Horikawa <[email protected]>

对于 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。

链接http://www.kame.net/

联系:KAME core team <[email protected]>

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

链接

链接

链接

联系:Julian Elischer <[email protected]>

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

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

链接ftp://ftp.fokus.gmd.de/pub/cc/cats/usr/harti/ngatm/

联系:Harti Brandt <[email protected]>

已将 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。

联系:Poul-Henning Kamp <[email protected]>

联系:Maxime Henrion <[email protected]>

现在,补丁已发送至邮件列表 [email protected],并且未收到任何反对意见,将在近期进行提交。Poul 目前正在自己的源码中测试此补丁。提交后,将开始修改源码中的文件系统,来使用 VFS_NMOUNT 而非 VFS_MOUNT。Mount(8) 也需要进行一些修改。与此同时,正在为 mount(2) 和 kernel_vmount(9) 创建新的手册页。

链接

OpenPAM

联系:Mark Murray <[email protected]>

联系:Dag-Erling Smørgrav <[email protected]>

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

此外,已编写了几个新的模块(pam_lastlog(8),pam_login_access(8)),且已增补 pam_unix(8) 模块,可以执行 login(1) 通常执行的大多数任务,现在已经完全 PAM 化。

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

联系:Kelly Yancey <[email protected]>

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

链接

联系:[email protected] <[email protected]>

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

链接

联系:Chris Faulhaber <[email protected]>

针对 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。

链接http://www.fxp.org/jedgar/ACL/

TrustedBSD 项目官网

联系:trustedbsd-discuss <[email protected]>

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

链接

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

联系:Robert Watson <[email protected]>

在实现有效的 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 访问。

联系:Josef Karthauser <[email protected]>

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

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

最后更新于