FreeBSD 2001 年 7 月状态报告
引言
上月的状态报告显然取得了巨大的成功:我收到了无数附带评论、问题和建议的电子邮件。我已尽力在本月的报告中融入这些建议,解决来自这些邮件中的问题,这份报告捕捉到了 FreeBSD 上个月活动的更广泛快照。与上个月的报告不同,本报告更好地反映了非开发活动,如正在进行的会议规划、文档编写等。我希望该趋势在未来的几个月中能得到改善。
关于会议的主题,未来我希望更多地报告与 FreeBSD 相关的出版活动,包括与 FreeBSD 相关的在线期刊文章、纸质期刊、会议论文等。同样,我也有兴趣包括与 FreeBSD 相关的征文通知。我借此机会推广即将在 11 月举行的 BSDCon Europe 会议(该会议的状态已包含在本报告中)以及 USENIX 主办的 2025 年 2 月的 BSD 大会。你的参与和提交使这些会议成为可能,并促进了 FreeBSD 作为新研究、功能开发和应用产品平台的推广。FreeBSD 上进行的工作质量非常高,我们需要让更多人知道。
后续版本提交要求
下月,我们将保持相同的提交要求:报告应为一到两段,通过电子邮件发送,并大致与本月的条目布局一致(项目、联系人、网址和正文)。我将在截止日期前一周再次发送提醒,并提供更具体的说明。一个我希望改进的领域是协调较大项目的相关状态报告,例如新的架构工作或平台移植。这甚至可能会鼓励这些项目内的沟通 :-)。我希望继续专注于吸引更广泛的团体及其活动,包括安全官员、发布工程师和核心团队。
-- Robert Watson < rwatson@FreeBSD.org >
联系人:Mike Smith <msmith@FreeBSD.org>
ACPI(高级配置和电源接口)是一个行业标准,取代了 APM、Intel MPS、PnPBIOS 以及其他 Intel PC 固件接口标准。它也用于 IA64 平台。更多关于 ACPI 的信息请访问:
http://developer.intel.com/technology/iapc/acpi
FreeBSD 的 ACPI 子系统项目主要基于 Intel ACPI 组件架构。本报告概述了该项目的当前状态;未来的更新将专注于发生的变化。
已完全集成 Intel ACPI 解释器,尽管偶尔还会发现一些 bug。
PCI 总线检测和中断路由功能正常,但电源管理的交互需要在核心 PCI 子系统上进行工作。
非 PCI 主板外设探测已实现,但在某些系统上可能存在问题。
已实现电源策略管理器。初步的策略管理器有两种模式:“performance”(性能)和“economy”(节能)。
CPU 速度调节与平台电源策略集成。
系统热监控已实现,但风扇控制可能存在问题。
实现了推按钮挂起和关机功能。
支持使用 ACPI 计时器的系统时间管理。
已实现电池状态监控。
以下领域的工作仍在进行中:
系统挂起和恢复。
时间管理精度/可靠性。
电源配置文件。
用户级管理接口。
PCI 电源管理。
Bug 修复。
联系人:Stephane Potvin <septovin@videotron.ca>
ARM 平台目前进展良好。能够编译内核,并且能够启动到网络子系统初始化时发生崩溃的阶段。目前的参考平台是 Netwinder,但由于许多人对更广泛可用的平台感兴趣,这一平台可能会有所变化。在进一步推进之前,需要完成的工作包括添加 footbridge、定时器和中断支持。pmap 模块尚未完成。
联系人:Doug Barton <dougb@FreeBSD.org>
联系人:Jeroen Ruigrok <asmodai@FreeBSD.org>
在最终导入 BIND 8.2.4 后,终于到了考虑将 BIND 9 导入到 CURRENT 中的时候。当前的计划是将其与 BIND 8 一起导入,以便人们可以在导入问题解决并进行一些测试之前,选择使用任一版本。
联系人:Eric Melville <eric@FreeBSD.org>
尽管获得了新名称,但由于在 BSDi 和 Wind River 之间搬迁时资源的可用性问题,以及开发者的其他承诺,该项目处于停滞状态。在尘埃落定后,项目应有正式的邮件列表,并恢复到活跃状态。
链接:http://www.bsdconeurope.org/
联系人:Paul Richards <paul@freebsd-services.co.uk>
联系人:Josef Karthauser <joe@tao.org.uk>
会议将于 2001 年 11 月 9 日至 11 日在英国布赖顿的 Thistle 酒店举行。
会议的目的是为所有 BSD 衍生操作系统的欧洲用户和开发者提供一个交流平台。会议的形式将与其他会议类似,周六和周日将有 2 天的技术会议。
我们将在本月底敲定会议日程,所有有意做演讲的人应尽快联系我们。演讲内容没有限制;如果以前做过,我们仍然可能希望将其呈现给欧洲观众,并且我们不对演讲内容提出任何要求,因此演讲者可以在其他会议中再次展示这些内容。
我们仍在寻找赞助商。
在第一周我们就收到了 80 个预注册,因此预计会有良好的参与人数。
联系人:Matthew Jacob <mjacob@FreeBSD.org>
联系人:Justin Gibbs <gibbs@FreeBSD.org>
新的 CAM 传输代码开始在更多的 HBA 中得到支持,并且正在进行改进,以实现每个协议的预期支持。至今,关于为 CAM 进行任何 SMPng 工作的进展仍然没有。这是一个相当高的优先级。
链接:http://www.freebsd.org/docs.html
链接:http://www.freebsd.org/docproj/index.html
联系人:文档项目 <doc@FreeBSD.org>
工作继续进行(在 WRS 的大力支持下),旨在更新手册,为第二版印刷版做好准备。最近这一领域的活动非常活跃,待办事项列表可见于:
http://www.FreeBSD.org/docproj/handbook.html
Dima 和其他人做得非常出色,及时跟进与文档项目相关的 PR。
开发者手册, http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/index.html 已经发布了一年;它包含了大量有用的内容,供开发人员在 FreeBSD 上进行开发或为 FreeBSD 进行开发。像往常一样,我们始终需要更多的贡献,不仅是对开发者手册的贡献,还有 FreeBSD 文档全集的贡献。
联系人:Matthew Jacob <mjacob@feral.com>
基本设计没有变化,该项目目前主要处于继续加固和测试用例开发的阶段。下一个主要特性将是完全整合到新的 CAM TRAN 代码中,并全面支持即插即用的设备添加和移除。目前唯一支持的 HBA 是 QLogic。计划在 10 月之前为 QLogic 系列提供 2300(2Gb)和 IP 支持。
链接:http://www.freebsd.org/java/
联系人:Greg Lewis <glewis@eyesbeyond.com>
在过去一个月中,FreeBSD Java 项目的主要进展是发布了 JDK 1.3.1 的初始“仅开发者”补丁集。自该版本发布以来,已经取得了显著进展,开发出了一个更加可用的 alpha 阶段补丁集,预计将转化为 port,类似于当前的 JDK 1.2.2 补丁集。这个新补丁集将包含多个 bug 修复,基本上将 JDK 带到一个适合早期使用者的工作状态,并实现了基于 FreeBSD 用户空间 pthreads 的“本地线程”初步实现。不幸的是,这个实现并非完全功能性,但仍包含其中,期望能够让更多的开发者关注这段代码(尤其是有经验的 pthread 程序员)。我们还要欢迎 Fuyuhiko Maruyama 先生成为新提交者,因其提供了太多优秀的补丁,受到了这个“惩罚”。
链接L:http://www.freebsd.org/news/status/
联系人:Robert Watson <rwatson@FreeBSD.org>>
联系人:Chris Costello <chris@FreeBSD.org>
FreeBSD 每月开发状态报告旨在通过提供每个项目的概况和其状态,帮助用户和开发者了解 FreeBSD 项目的最新动态。撰写时,2001 年 7 月的状态报告正在准备中,且即将发布。FreeBSD 网站现在有一个状态报告部分,当 7 月的报告发布时,该部分将更新并包含 HTML 版本的链接。
联系人:Robert Drehmel <robert@ferrari.de>
sparc64 加载器已经足够功能性,能够使用现有的 openfirmware 库从 UFS 文件系统启动 ELF 二进制文件,该库已经被修订,以完美地适用于 32 位和 64 位架构。接下来将实现对网路启动和模块的支持,随后是更好的 openfirmware 映射策略。
联系人:Brian Dean <bsd@FreeBSD.org>
现在可以在 IA32(i386)架构上为内核调试使用硬件监视点。现在可以使用新的 ddb 命令“hwatch”来设置硬件监视点,该命令类似于现有的“watch”命令。或者,如果需要更大的灵活性,可以使用 ddb 的“set”命令直接访问调试寄存器,从而完全控制处理器硬件调试功能。硬件监视点非常有用,可以帮助跟踪那些难以捉摸的内核内存覆盖错误。硬件监视点甚至可以用于在 ROM 中设置代码断点,这在嵌入式系统中常见。
联系人:Brooks Davis <brooks@FreeBSD.org>
通过 ifconfig 配置 IEEE 802.11 无线设备的支持已经提交到 -current 和 -stable 分支。它包含了配置无线设备所需的大部分功能。目前缺少的功能正在开发中,包括集成的 DHCP 支持,使得只需在 /etc/rc.conf
中添加一项条目即可完全配置 DHCP 网络上的无线设备,以及设置 CTS/RTS 阈值。目前,an(4) 和 wi(4) 驱动程序在 -current 和 -stable 中得到支持,而 awi(4) 设备则在 -current 中得到支持。接下来将进行更多的工作,以支持频率跳跃设备,如 ray(4)。
联系人:Robert Watson <rwatson@FreeBSD.org>
jailNG 是对流行的 jail(8) 服务的从零开始重写,重点改进了管理功能,并提供了更细粒度的可配置性。已编写了初步原型,基于明确命名和配置的 jail,当前正在进行用户空间集成工作。目前,尚不清楚该功能是否将在 5.0-RELEASE 或 5.1-RELEASE 中发布。
链接:http://www.jp.freebsd.org/man-jp/
联系人:Japanese Man Page Project <man-jp@jp.FreeBSD.org>
自 1996 年起,我们一直致力于提供日文版本的 FreeBSD 在线手册。目前,基于 RELENG_4 的手册已翻译完成。翻译版本存放在 doc/ja_JP.eucJP/man
,并通过 ports/japanese/man-doc
提供给用户使用。我们还讨论了相关的命令(例如 ports/japanese/man 和 ports/japanese/groff
)。
链接:http://www.freebsd.org/~jhb/summit/usenix01/
联系人:John Baldwin <jhb@FreeBSD.org>
首届 FreeBSD 内核峰会于 2001 年 6 月 29-30 日在马萨诸塞州波士顿的 Usenix 2001 年度技术大会上举行。网站上发布了多种文件的链接。
注:我(jhb)仍在撰写会议的一般总结。完成后将发布在这里,并通过邮件发送到 -hackers 邮件列表。
链接:http://people.freebsd.org/~jasone/kse/
联系人:Julian Elischer <julian@elischer.org>
我正在对内核进行多线程改造。到目前为止,我已经相对于今天的 -current 提交了超过 400KB 的 diff(我保持我的代码树在发生更改时更新,而不是等到最后一次大更新时再更新)。
我已拆分 proc 结构,并正在修改大部分内核,将线程标识符传递而不是 proc 结构。
迄今为止,以下接口已进行更改:
设备 devsw 条目
vfs 调用
互斥锁
事件
系统调用
调度器
以及其他许多中间代码。
我仍然有很多工作要做,包括大量的“傻编辑”(例如 s/struct
proc
*p/struct
thread
*td/
),通常我会修改一些项目,然后修复在尝试编译时出错的部分。我想将其提交到一个分支,以便其他人可以帮助编辑,但我还没有找到最佳的提交方式。
我已经实现了对调度程序的更改,使得 KSE 被调度而不是进程,线程休眠,让 KSE 获取新的线程。但这个功能还远未完成(事实上,它还不能编译) :-)
请注意,我尚未更新上面列出的文档……在所有提到“ksec”或“KSE-context”的地方,代码使用的是“thread”一词。待 Jason 发给我源代码后,我将尽快更新。
链接:http://groups.yahoo.com/group/FreeBSD-rc
联系人:Doug Barton <dougb@FreeBSD.org>
联系人:Sheldon Hearn <sheldonh@FreeBSD.org>
移植 NetBSD rc.d 的目标是通过将 Luke Mewburn 的 rc.d 工作从 NetBSD 移植到 FreeBSD,来改进 FreeBSD 启动过程。这将使 FreeBSD 在启动和关闭时依赖关系得到优化,同时保持传统的、广受喜爱的单体配置文件系统。
可以在此找到 Luke Mewburn 在 NetBSD 上实施的系统的 USENIX 论文和幻灯片:
http://groups.yahoo.com/group/FreeBSD-rc/message/3
感兴趣的各方在加入讨论列表之前,建议先研究这些材料。
目前的意图是采取一种方法,确保 NetBSD rc.d 系统与移植到 FreeBSD 的系统之间的差异保持最小。这可能会涉及与 Luke 就系统中被识别为潜在改进领域的部分进行讨论。
联系人:Hartmut Brandt <brandt@fokus.gmd.de>
该项目的目标是通过 netgraph(4) 框架实现 ATM 信令和其他 ATM 协议。这应该为在 FreeBSD 上使用 ATM 提供一款易于扩展的架构。目前,完整的 UNI4.0 栈(除了 LIJ 功能)已经实现,包括 ILMI 和 ATM Forum API 的初始版本。还实现了 ATM 上的经典 IP(Classical IP over ATM)。已经为 Fore PCA200E 和 Fore HE-155 卡实现了驱动程序。
联系人:Brooks Davis <brooks@FreeBSD.org>
已从 NetBSD 移植过来网络设备克隆支持。可按需分配虚拟设备,而非在编译时静态分配。我们的实现与 NetBSD 的实现略有不同,我们允许创建特定设备(如 gif0)以及任意设备,而不仅仅是允许特定设备。目前,树中唯一已转换的设备是 gif(4) 设备,已在 -current 和 -stable 中完成转换。正在进行的工作包括将所有其他虚拟网络设备转换,并对 faith、stf 和 vlan 接口进行修改。通常,此转换会伴随着适当的修改,使这些设备完全模块化。
链接:http://oss.software.ibm.com/developerworks/opensource/pthreads/
联系人:Arun Sharma <arun@sharma.dhs.org>
将 NGPT(下一代 pthreads)移植到 FreeBSD
NGPT 是由 IBM 工程师主导的一个项目,旨在实现 MxN 线程(也称为多用户线程到一个内核线程映射)在 Linux 上的实现。我已经将它移植到 FreeBSD,并使用了 rfork(2)。
可以在此找到移植的版本:
http://www.FreeBSD.org/cgi/query-pr.cgi?pr=29239
链接:http://people.freebsd.org/~imp/oldcard-status.html
联系人:Warner Losh <imp@village.org>
资金支持:Monzoon Networking, LLC
本月是集中和整合的月份。许多来自当前版本的更改已经迁移到稳定版本。我改善了电源支持、挂起/恢复交互、硬件中断处理,并增强了在 Windows/NEWCARD 运行后的兼容性。中断路由仍然是完成 MFC 的锁定问题。当前的补丁可以通过上述网站获取。我正在争取在 4.4 版本发布之前完成此工作。
链接:http://www.intel.com/research/mrl/orp/
联系人:Arun Sharma <arun@sharmas.dhs.org>
联系人:eGroups: ORP <orp@egroups.com>
有关 Intel ORP - 可以在此找到一种 BSD 许可的 Java 虚拟机的信息:
http://www.intel.com/research/mrl/orp/
已经测试过的 FreeBSD 补丁可以与 NGPT 一起使用,并已提交到 ORP 项目。可以在这里获取补丁:
http://www.sharma-home.net/~adsharma/projects/orp/orp-freebsd-1.0.5.patch.txt.gz
为了使其与 FreeBSD 的默认(用户级)pthread 实现兼容,还需要解决一些问题。
OpenPackages 旨在创建一款软件补丁打包系统,使得可以在尽可能多的平台上安装第三方程序,而无需对操作系统进行依赖性更改。最初 OpenPackages 基于 BSD ports 系统的代码,并经过来自不同背景的开发者的改进和扩展。
OpenPackages 项目很高兴发布 Milestone 2 代码库。此发布包含一个可用的包构建系统和一个测试包。OP 目前已知可以在以下操作系统的某些版本上构建:FreeBSD、HP/UX、IRIX、Linux(Debian、Red Hat、Suse、Mandrake、TurboLinux、Caldera 等)、NetBSD、OpenBSD、Solaris
联系人:Mark R V Murray <mark@grondar.za>
(首次报告)
对 FreeBSD PAM 模块进行大规模清理和扩展。所有模块都将得到文档化,风格一致(使用 style(9)),并尽可能在功能上做到完整。目前大部分已完成。
联系人:Brian Somers <brian@Awfulhak.org>
已经提交了补丁,使 ppp 在 HURD 和大部分 Linux 系统上可用。但需要解决 GPL 版权相关问题。
联系人:Benno Rice <benno@FreeBSD.org>
我们现在已经具备了设备支持的基础。我们为 OpenFirmware 机器提供了驱动程序 nexus,并支持 Apple UniNorth PCI/AGP 主桥。我目前正在努力使 USB 硬件工作,以便能够实现一个独立于 OpenFirmware 的控制台驱动程序,之后我将尝试让系统通过 NFS 进入单用户模式。
联系人:Brian Somers <brian@freebsd-services.com>
工作已开始,但尚未提交。ppp 使用的 NCP 地址已被抽象化,并且已为 IPv6 地址的过滤器集添加了初步支持。NCP 协商尚未开始。
联系人:Brian Somers <brian@freebsd-services.com>
在生产环境中 pppoed 功能正常。大部分工作已完成并提交。额外工作包括添加选项 -l
,其中 -l label
是 -e exec ppp -direct label
的简写,并调查为什么遗留下来了恶意子进程。
联系人:Evan Sarmiento <ems@open-root.org>
PRFW 是我集成到 FreeBSD 内核中的一组钩子。这使得模块能够以更少的开销轻松拦截系统调用。它还支持按进程 ID 限制,这意味着一个进程可能无法以某种方式使用 X 函数,但另一个进程可以。
进展:我曾在 4.3-RELEASE 中工作,但现在正在将其合并到当前版本中。我将在大约一周后向邮件列表提交补丁。
链接:http://phk.freebsd.dk/Gnats/
联系人:Poul-Henning Kamp <phk@FreeBSD.org>
感谢各位杰出的个人努力,我们现在的开放 bug 报告数量已降至 2300 以下。这意味着我们已经恢复到 2000 年 3 月左右的水平。
联系人:Matthew Jacob <mjacob@feral.com>
该驱动程序在 -current 下目前状态不佳,正在进行一些修复。没有计划进行重大设计或功能更改。曾有添加 TapeAlert 支持的提议,但 HP 通过用户库将其作为二进制产品提供,因此觉得从政治角度来看,最好保持原样。
链接:http://people.freebsd.org/~bmilekic/code/mb_slab/
联系人:Peter Wemm <peter@FreeBSD.org>
联系人:John Baldwin <jhb@FreeBSD.org>
开发
在 smpng
的 p4 分支中,添加了代码以使 ast() 函数循环,关闭当 AST 被触发时,我们正在处理之前触发的 AST 时的竞态条件。
在 jhb_preemption
p4 分支中,正在进行使内核完全抢占的工作。据报道,在 UP x86 上稳定,但在 SMP x86 上会死锁,UP alpha 在关机过程中出现问题,并且可能会无限递归直到栈耗尽。
管理
我们正在使用一个 perforce 仓库进行实时开发工作,可以追踪多个独立的长期进行的工作,并且多个开发人员可以同时在同一变更集上协作。
FreeBSD-current 每小时导入到 p4 中,便于轻松跟踪变化中的 -current 树。
我还没有写好相关的入门文档,但我们已经能够向开发者社区开放。NEWCARD 工作也看起来会在这里完成。Perforce 非常适合追踪这种长期项目,而无需依赖于传递补丁的方式。
KSE 工作现在已提交到 kse p4 分支——感谢 Julian!
KSE 的工作重点是将主要的 API 更改提前合并到基础树中,以便在 5.0 发布之前完成。
联系人:Bosko Milekic <bmilekic@FreeBSD.org>
mb_alloc 是一个专门为 mbufs 和 mbuf 集群设计的分配器。它比旧的 mbuf 分配器提供了许多重要的优势,特别是对于多处理器 (MP) 机器。此外,它还考虑了未来可能的重要增强功能。
mb_alloc 代码已于一个月前提交到 -CURRENT,并且似乎表现良好。在提交之前,进行了初步的性能测试,确保它在性能上与旧的分配器相比没有显著下降,即使在 Giant 仍然存在的情况下。测试结果很有希望 http://people.FreeBSD.org/~bmilekic/code/mb_alloc/results.html —— 还请查看 jlemon 的结果(附文中的链接)。自提交以来,Matt Jacob 提供了有用的反馈和 bug 修复。目前正在进行重新启用 mbtypes 统计信息,并对 netstat(1) 和 systat(1) 进行适当的更改。
联系人:Jake Burkholder <jake@FreeBSD.org>
sparc64 平台已提交到 FreeBSD 仓库。因此,进一步的开发将在 cvs 中进行,而不是作为单独维护的补丁集。自上次状态报告以来,已取得了显著进展,包括:支持使用 ddb 进行内核调试、更完整的 pmap 支持、支持上下文切换和进程创建,以及填充重要的机器相关数据结构。Thomas Moestl 对参与移植工作表现出了浓厚的兴趣,并正在实施对进程浮动点上下文的保存和恢复的支持。我期待与他以及任何其他意外加入的开发者一起工作。
联系人:Jonathan Lemon <jlemon@FreeBSD.org>
这个项目为 FreeBSD 带来了 SYN 缓存实现,以增强其对拒绝服务(DoS)攻击的防护能力。曾考虑使用 SYN cookie 方法,但最终被拒绝,因为它不符合 TCP 协议。SYN 缓存将与 T/TCP、IPv6 和 IPSEC 一起工作,并且每个缓存元素的大小目前小于正常 TCP 控制块的五分之一。
联系人:Robert Watson <rwatson@FreeBSD.org>
这是个忙碌的月份,发生了许多相关的新闻事件。最重要的是,NAI Labs 获得了一项来自美国国防高级研究计划局(DARPA)的 120 万美元的合同,旨在开发与 TrustedBSD 项目相关的多个组件,包括支持可插拔安全模型、改善扩展属性实现、为交换空间和文件系统提供简单的加密支持、文档编写等。
在功能方面,强制访问控制(MAC)、对象标签和改进内核访问控制机制的工作仍在继续,尤其是在进程间授权和凭证管理方面。现在已开始将 NAI Labs 的低水印强制访问控制(LOMAC)方案从 Linux 移植到 FreeBSD,并且已重新授权为 BSD 许可证。我们希望能够在今年晚些时候的 5.0-RELEASE 版本之前完成初步移植。
最后更新于
这有帮助吗?