FreeBSD 2001 年 12 月-2002 年 1 月状态报告
最后作者:FreeBSD 项目
引言
本双月报告涵盖了 2001 年 12 月和 2002 年 1 月期间 FreeBSD 项目的开发活动。在过去的几个月里,取得了多项成就,包括与 KSE 项目相关的重要进展,该项目将调度激活引入到 FreeBSD 内核中,以及一些较少可见的基础设施项目,如对挂载接口的改进、PAM 集成工作和翻译工作。紧接着本状态报告的截止日期,BSD 大会和 FreeBSD 开发者峰会举行,相关内容将在下一个双月报告中介绍,报告将于 3 月底发布。今年晚些时候,美国加州蒙特雷市将举行 USENIX 年度技术大会,现已开始筹备,鼓励大家参加以进一步了解 FreeBSD 的开发动态。
Robert Watson
GEOM——通用的块存储操作
链接:旧概念文档见此
联系方式:Poul-Henning Kamp <phk@FreeBSD.org>
这个项目现在终于开始了,感谢 DARPA 和 NAI 提供的赞助。基础设施代码和数据结构目前正在用户空间模拟环境中成形。基本的 MBR 和 BSD 方法已经编写完毕,设备的 attach/taste/detach 算法已经实现并验证。
FreeBSD 的蓝牙协议栈(Netgraph 实现)
联系方式: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 合规性项目
链接: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 在保加利亚
链接:
http://www.freebsd-bg.ringlet.net/
http://people.freebsd.org/~roam/bg/
联系方式:Peter Pentchev <roam@FreeBSD.org>
“FreeBSD in Bulgarian”旨在为保加利亚用户提供更舒适的 FreeBSD 操作系统使用环境。这包括但不限于字体、键盘布局和区域设置支持、FreeBSD 文档的保加利亚语翻译、本地用户组和各种形式的在线帮助渠道及讨论论坛,以帮助保加利亚人采用和使用 FreeBSD。
已在项目网站上发布了使用 FreeBSD 保加利亚设置的指南。CVS 代码库将在不久后公开,并通过上述链接提供。
独立的项目 http://www.FreeBSD-bg.org/ 已问世,旨在让 FreeBSD 更容易为保加利亚人使用。它还托管了一个讨论 FreeBSD 保加利亚语版本的邮件列表,stable@FreeBSD-bg.org。有关邮件列表的更多信息,请发送一封包含 help 的邮件至 majordomo@FreeBSD-bg.org。
FreeBSD Java 项目
链接: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 每日快照项目
链接:
联系方式:Makoto Matsushita <matusita@jp.FreeBSD.org>
我已将构建机器的操作系统更新为最新的 FreeBSD 5-current 和 4-stable,一切顺利。自 2002 年 1 月以来,我启动了网络杂志——SNAPSHOTS Notes(目前仅提供日语版本)。SNAPSHOTS Notes 为使用 FreeBSD 5-current/4-stable 的用户提供技巧和信息。欢迎随时提供文章或想法(不必限于日语 :-))。
jpman 项目
链接:jpman 项目(日语)
联系方式: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
联系方式:KAME core team <core@kame.net>
KAME 项目目前专注于作用域寻址架构、先进的 API 实现、NATPT 和移动 IPv6 实现。尽管这些内容尚不稳定,无法并入 FreeBSD 代码树,但你可以从上述链接下载并尝试。
KSE 状态报告
链接:
联系方式:Julian Elischer <julian@FreeBSD.org>
KSE 项目(旨在通过内核支持在 FreeBSD 中实现可扩展线程)已达到我所称之为“里程碑 3”。在此里程碑中,可以在单颗 CPU 上运行多线程程序,但该 CPU 上的线程完全并发。换句话说,内核支持当一个线程阻塞时,允许另一个线程在其位置运行。可以在上述网站上获取此功能的演示测试程序。
里程碑 4 将能在多颗 CPU 上运行同一程序的线程,但可能需要来自 SMPng 项目的更多建议。我目前(2 月 6 日)正在准备提交第一组里程碑 3 的更改,这些更改无实际效果,但可以大大减少剩余 diff 的复杂性,以便其他人能更容易阅读。添加对 libkvm 的更改以支持这些 diff 后,应该可以运行 ps 并查看线程化进程中的多个线程。我将在 BSDcon 上演示 KSE/M3。
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
联系方式:Poul-Henning Kamp <phk@FreeBSD.org>
联系方式:Maxime Henrion <mux@sneakerz.org>
现在,补丁已发送至邮件列表 freebsd-arch@FreeBSD.org,并且未收到任何反对意见,将在近期进行提交。Poul 目前正在自己的代码树中测试此补丁。提交后,将开始修改代码树中的文件系统,来使用 VFS_NMOUNT 而非 VFS_MOUNT。mount(8) 也需要进行一些修改。与此同时,正在为 nmount(2) 和 kernel_vmount(9) 创建新的手册页。
PAM
链接:OpenPAM
联系方式: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 的支持
联系方式:Kelly Yancey <kbyanc@FreeBSD.org>
增补了 camcontrol 的页面定义文件格式,如 modepage 和 logpage 定义;向 camcontrol 添加了支持查询和重置日志页面参数的功能。正在考虑是否可能包括对诊断和重要产品数据页面的支持,但这超出了当前项目的范围。新的页面定义文件格式包括基于 SCSI INQUIRY 结果有条件地包含页面定义的能力,还可描述供应商特定的页面。该项目已完成约 90%。
SMPng
联系方式:<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
链接:http://www.fxp.org/jedgar/ACL/
联系方式: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 审计
联系方式:trustedbsd-discuss <trustedbsd-discuss@TrustedBSD.org>
Robert Watson 创建了 TrustedBSD 审计的 Perforce 代码树,这是从 TrustedBSD 基础代码树分支出来的,旨在通过版本控制系统推动开发工作。Andrew Reiter 开始合并一些与框架相关的代码,用于生成审计记录、排队写入以及处理数据写入。关于更新和讨论有大量工作要做,相关讨论可以在 trustedbsd-discuss@TrustedBSD.org 邮件列表中进行。
TrustedBSD MAC 实现
联系方式: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 堆栈
联系方式:Josef Karthauser <joe@FreeBSD.org>
我一直在努力将 NetBSD USB 堆栈中的最新改进集成到 FreeBSD -current 中。NetBSD 和 OpenBSD 目前共享着相同的源代码,FreeBSD 在分支之前曾一度也与它们相同。目标是恢复到这种状态,但两者都有许多需要合并的改进,才能完成这一过程。
目前我在寻找帮助维护 -stable 中 USB 的人。如果你感兴趣,请告诉我。
最后更新于