FreeBSD 2001 年 8 月状态报告
引言
FreeBSD 项目在 2001 年 8 月取得了显著进展,既包括继续开发 RELENG_4 系列(4.x-STABLE 和 4.x-RELEASE),也包括在 5.0-CURRENT 主开发分支上的进展。在本月,决定将推迟 5.0-CURRENT 的发布,以便 KSE(对细粒度用户线程的支持)能够及时完成,而不是将该支持推迟到 6.0 版本。因此,RELENG_4 系列的生命周期将被延长,并将继续将新特性回溯到该分支。本月 4.4-RELEASE 进入最终测试版,且将很快发布。
本月的状态报告由 Nik Clayton 和 Chris Costello 协助撰写。
后续提交
下个月的提交程序保持不变:报告应在一到两段之间,通过电子邮件提交,格式大致应与本月的提交格式(项目、联系人、链接和正文)相同。提醒将在截止日期前至少一周通过邮件发送到邮件列表 hackers@FreeBSD.org 和 developers@FreeBSD.org ;完整的提交说明将在提醒邮件中提供。
-- Robert Watson
链接 http://people.freebsd.org/~scottl/aac
联系人:Scott Long <scottl@FreeBSD.org>
aac 驱动程序最近得到了诸多关注,现已几乎完成了全部功能。更改包括崩溃转储支持、正确处理控制器发起的命令,以及更完整的管理接口支持。来自 Dell 和 HP 的 Linux RAID 管理工具现在完全可用;FreeBSD 原生版本的该工具也在开发中。这些更改已提交到 -current,并将在 4.4 发布后出现在 -stable 中。
链接:http://pages.infinit.net/sepotvin/
联系人:Stephane Potvin <sepotvin@videotron.ca>
基本的桥接支持现在已功能齐全,内核现在能够探测 PCI 总线。访问总线的基本原语仍然缺失,因此目前还不能附加驱动程序。
联系人:Paul Richards <paul@freebsd-services.com>
BSDCon 欧洲大会的筹备工作进展顺利。我们仍在接受演讲提案,但日程安排已开始填满,因此可能不再接受太久。
包含住宿信息、初步日程安排、演讲者名单和在线支付页面的网站更新将于 9 月 19 日(星期三)上线。
费用为个人 150 欧元,企业 250 欧元。个人定价仅有效至 9 月底,10 月价格将上涨至 200 欧元,11 月的晚注册费用为 250 欧元。
更新后的官网将包括赞助方案列表,我们仍在寻找更多的赞助商。
联系人:Matthew Jacob <mjacob@FreeBSD.org>
联系人:Justin Gibbs <gibbs@FreeBSD.org>
联系人:Kenneth Merry <ken@FreeBSD.org>
自上次状态报告以来没有变化。我们之间有一些讨论,但由于时间不足以及对 FreeBSD 的承诺问题,实际对源代码的提交很少。SMPng 工作将留给那些有想法的开发者。
联系人:Jonathan Lemon <jlemon@FreeBSD.org>
TCP 连接的状态信息主要保存在内核中的 TCP/IP 控制块中,并非所有 TCP 状态都使用整个结构,在某些情况下,通过使用简化版的状态结构,可以节省大量内存。该项目的第一阶段将解决 TIME_WAIT 状态的连接,通过将它们移入一个更小的结构来实现。
该项目已完成初步的研究和粗略设计阶段,实际的代码开发即将开始。
联系人:Josef Karthauser <joe@FreeBSD.org>
工作仍在进行中,目标是让所有 perl 脚本在 perl 的 strict
模式下运行,并将所有 FreeBSD 特定的选项迁移到配置文件(CVSROOT/cfg.pm
)中。我很快会寻找帮助,编写关于如何在自己的代码库中使用这些脚本的指南。有兴趣提供帮助的人员可以通过上述电子邮件地址与我联系。
链接:
http://www.freebsd.org/docs.html
http://www.freebsd.org/docproj/index.html
联系人:Nik Clayton <nik@FreeBSD.org>
联系人:文档项目 <doc@FreeBSD.org>
本月的主要工作集中在《手册》的更新上。原定于 15 号交付印刷的大量新内容已提交并提交到代码库。这包括《安装 FreeBSD》章节的完整重写,大大扩展了新手了解 FreeBSD 的内容,甚至包括了截图。
http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/install.html
当然,欢迎大家提供反馈和贡献。
链接:http://fbsd-nvdriver.sourceforge.net/
联系人:Erik Greenwald <erik@floatingmind.com>
联系人:Joel Willson <siigorny@linuxsveeden.borkborkbork>
NVIDIA 公司通过二进制文件和源代码(在限制性许可下)发布 Linux 驱动程序。FreeBSD NVIDIA 驱动程序项目旨在完全替代驱动程序的源代码组件,使用面向 FreeBSD 4.3 并根据 BSD 许可发布的代码。提供的二进制模块据称与 Windows、BeOS 和 OS/2 上使用的模块相同,因此应具有跨 i80x86 架构的可移植性。
目前该项目处于无限期暂停状态。我们与 NVIDIA 的联系人似乎对该项目很有热情,并且回复电子邮件也很迅速,但当我们发现一些问题,无法在不更改二进制组件或需要解码的错误代码的情况下进行移植时,Nick(联系人)表示他会调查一下,但之后再也没有回复。第一个主要问题是 ioctl 接口,NVIDIA 驱动程序传递一个指针并依赖内核侧复制正确的数据量,而 FreeBSD 则期望参数正确,且复制操作由子系统执行。通过使用 Dave Rufinos 的“ioctl 隧道”方法解决了这个问题。之后,我们发现 X 拒绝加载,并追踪到一个在二进制组件中定义的 ioctl 发生错误。我们无法知道这个 ioctl 是什么,被告知无法签署该组件源代码的 NDA(保密协议),并且已经等了一个月,Nick 仍然没有“调查”。因此,在不违反许可证的情况下,没法有进展,我们认为这些缺陷使得该驱动程序无法移植到除 Linux 之外的任何 * nix
系统。
链接:http://www.feral.com/isp.html
联系人:Matthew Jacob <mjacob@FreeBSD.org>
2001 年 8 月 31 日集成了 2 Gigabit 支持(QLogic 2300/2312 卡)。由于作者对 FreeBSD 的投入时间减少,之前计划的“下一步”——更完整的新 CAM 传输集成,现在可能只会是增加一个 FC-IP 附加模块(因为这可以同时惠及多个平台)。
联系人:Joerg Wunsch <j@uriah.heep.sax.de>
作为持续开发活动的一部分,软盘驱动程序(fdc(4))在之前进行了重构,这只是连续过程的一部分。下一步将实现自动密度选择,这是我计划实现多年的功能。作为其中的一部分,整个密度选择部分已经被重写。2.88 MB 软盘也在愿望清单中,但在尝试实现之前,我需要一台工作正常的 2.88 驱动器。
联系人:Alan Clegg <abc@FreeBSD.org>
联系人:<core-secretary@FreeBSD.org>
核心秘书职位由 Alan Clegg abc@FreeBSD.org 担任。第一份核心秘书报告将在 9 月的第二周发布,并将包括核心小组在 2001 年 8 月讨论的问题。
链接:http://www.freebsd.org/java/
联系人:Greg Lewis <glewis@eyesbeyond.com>
本月大部分工作集中在开发原生 JDK 1.3.1 补丁集上。第三个补丁集已经发布,并伴随 FreeBSD“Ports”的创建。这使得早期使用者更容易访问代码,并自然导致发现了一些 BUG。开发工作大多集中在修复这些问题,项目现在计划在周末发布第四个补丁集,预计 JDK 将在一个合理可用的状态下发布。剩下的一个大挑战是生成一个可用的 HotSpot JVM,这看起来需要一些深入的修改。
我们还欢迎 OpenBSD 的 Heikki Korpela 加入 Ports 移植团队 :)
联系人:Mark Murray <markm@FreeBSD.org>
开发工作仍在继续;pam_unix
已经增加了修改密码的功能,login(1) 已将 PAM 设置为强制使用(并且将会有更多支持 PAM 的功能交由 PAM 处理)。
联系人:FreeBSD 发布工程团队 <re@FreeBSD.org>
FreeBSD 4.4 的发布工程进程在 8 月 1 日左右开始加速,当时“代码冻结”生效。在此期间,所有提交到 RELENG_4 分支的代码都由 re@FreeBSD.org 进行审核(超过 250 段代码需要审核)。在 8 月 15 日发布第一个候选版本后,所有提交都在更加严格的潜在风险与收益权衡下审查。帮助参与发布工程的最好方式是订阅低流量的 freebsd-qa 邮件列表,帮助处理与我们的安装工具(sysinstall)相关的无尽 PR,或致力于开发下一代安装技术替代方案,如 libh 或 OpenPackages 项目。
许多公司捐赠了设备、网络访问或资金来赞助这些活动,包括 Compaq、Yahoo!、Wind River Systems 等。
联系人:Jake Burkholder <jake@FreeBSD.org>
联系人:Thomas Moestl <tmm@FreeBSD.org>
联系人:Robert Drehmel <robert@FreeBSD.org>
sparc64 的开发仍在迅速进行,我们取得了显著进展。值得注意的是,修复了 pmap 模块在实现写时复制映射时的问题,现在 fork() 能按预期工作,已添加信号支持,并且移植在 perforce 代码库中已更新为 KSE。Thomas Moestl 开始着手开发 pci 总线支持,并已为 sparc64 编写了一个基本的 nexus 总线。Sun 的“Psycho”和“Sabre”UPA 到 PCI 桥接器的驱动程序及相关代码已从 NetBSD 移植过来(Sabre 是 UltraSparc IIi 和 IIe 中的片上版本)。PCI 配置、I/O 和内存空间访问已经能够正常工作,直接连接到桥接器的设备的中断分配和传送也已支持,首个 PCI 设备驱动程序可以成功附加并大体上工作。中断路由和 busdma 支持仍需大量工作。
联系人:Maxim Sobolev <sobomax@FreeBSD.org>
联系人:FreeBSD GNOME 团队 <gnome@FreeBSD.org>
本月的主要工作集中在准备 GNOME Fifth-Toe 元包以支持 4.4-RELEASE。在此过程中,许多组件得到了更新,追踪并解决了许多 bug,成功构建了一个包含 97 个组件的元包并使其正常工作。
下个月,项目将重点组织 FreeBSD GNOME 团队的工作,并尝试增加参与该团队的人数(任何愿意参与的人欢迎发送邮件至 gnome@FreeBSD,简要说明如何提供帮助)。
联系人:Doug Rabson <dfr@FreeBSD.org>
当前状态是,ia64 内核能够在模拟器环境中构建并运行到单用户模式,并且已在该环境中进行了轻度测试。我目前的重点是完成 ia64 加载器,以便开始在真实硬件上运行内核。加载器进展顺利,我预计很快就能够加载内核(尽管可能无法执行它们)。
联系人:Mike Silbersack <silby@silby.com>
2001 年 3 月中旬,Guardent 的 Tim Newsham 发现 FreeBSD(以及其他操作系统)初始序列号生成方案可能遭受攻击。为了防范这一威胁,来自 OpenBSD 的随机化序列号生成方案已被移植且内置在 4.3-release 中。不幸的是,非单调生成方式被发现会导致一些应用程序在启动大量快速连接到单一主机时出现严重问题。
为了恢复在这种情况下的正常操作,同时依然能提供强大的抗序列号预测能力,FreeBSD 4.4 使用了 RFC 1948 中规定的算法。该算法将主机和端口信息与一段秘密数据一起哈希,生成每个连接的唯一序列号空间。这样,外发的初始序列号再次变为单调,但也不可被攻击者猜测。
联系人:Matthew Jacob <mjacob@FreeBSD.org>
没有新的状态报告。这个驱动程序将很快重新开始工作,并进行清理以改善性能。
联系人:Bill Fenner <fenner@FreeBSD.org>
FreeBSD 的 IP 组播路由支持最近进行了多方面的更新。一个重要变化是,现在它可以作为 KLD 加载,而不是静态编译到内核中;这对于实验或更新现有系统尤其有用。它现在也能够与内核的 IP 封装基本设施很好地共存,因此,组播隧道可以更好地与 MobileIP、某些 IPSec 隧道以及通用的 IPv4-in-IPv4 隧道共存。
链接:http://www.jp.freebsd.org/man-jp/
联系人:Kazuo Horikawa <horikawa@psinet.com>
联系人:<man-jp@jp.FreeBSD.org>
目标是支持 4.4-RELEASE,一个团队已经开始翻译新合并的手册页 section [125678] 。另一个团队自 5 月以来一直在更新 section 3,目前已经完成三分之一(1/3)。port ja-groff 已更新为基于 groff-1.17.2,并且现在与基本系统具有相同的功能。port ja-man 也已更新,支持在架构子目录下进行搜索,功能与基本系统一致。doc/ja_JP.eucJP/man
层次结构的更新(添加架构子目录)计划在 4.4-RELEASE 之后进行。
联系人:Munechika Sumikawa <sumikawa@FreeBSD.org>
已于 2001 年 7 月将 KAME 项目(http://www.kame.net/)的 IPv6 和 IPsec 实现合并到 FreeBSD CURRENT 和 STABLE 中,与项目的一些贡献者合作。最新的代码包含了若干 bug 修复,已在 FreeBSD STABLE 中完全测试,并将在 FreeBSD 4.4 RELEASE 中出现。因此,新的 RELEASE 版本在 IPv6 和 IPsec 方面将非常稳定。
该项目已指定一名有才华的人负责 KAME 到 FreeBSD 的合并,因此未来的合并工作将更加顺利。
联系人:Julian Elischer <julian@elischer.org>
联系人:Peter Wemm <peter@FreeBSD.org>
联系人:Matt Dillon <dillon@FreeBSD.org>
向内核添加 KSE 线程支持的基本设施的工作已达到“里程碑 2”。
里程碑 2 意味着内核源代码在资源的使用上已经一致地按照每线程和每进程的资源来进行引用,就像当每个进程有多个线程时需要的那样。但关于调度程序、fork 和 exit 等的逻辑更改尚未进行,来允许创建多个线程(也没有添加新的线程系统调用)。这是一个重要的里程碑,因为它代表了内核中仅包含“机械性”变化的最后时刻。要继续前进,我们必须开始添加新的算法和功能。
里程碑 2 的内核可靠,且与匹配的 -current 内核相比没有明显的性能下降(差异小于误差范围,因此有时新内核实际上会略微优于未修改的内核)。
我们希望在发布前,能够提交 KSE 补丁。对大多数开发者来说,主要影响是设备驱动接口将需要在 open、close 和 ioctl 入口点中使用 thread
指针,而不是 Proc
指针。
我们相信会有一些小问题,但我们并不预期在提交时会遇到重大问题。
联系人:Alexander Langer <alex@FreeBSD.org> 联系人:Nathan Ahistrom <nra@FreeBSD.org>
我再次获得了对 libh CVS 仓库的访问权限,目前正在测试一个新的、支持 OBJDIR 的构建结构。完成后,我将继续测试包库并实现缺失的功能。目前,是否导入 libh 到基本系统中正在讨论中(在 arch 邮件列表上)。由于 5.0-RELEASE 的发布已被推迟,我希望 5.0 版本能包含一个 libh 安装程序和包管理系统。我们的确需要一些精通 C++ 的人,他们能够理解当前实现的功能,并且认为参与 libh 项目是有趣的,愿意为此提供帮助。
联系人:Brian Feldman <green@FreeBSD.org>
LOMAC 的 FreeBSD 移植进展顺利,已经具有非常高的稳定性(没有已知的未解决 bug!)。已经实现的功能包括基于路径名的完全功能访问控制的堆叠文件系统覆盖、信号发送的访问控制以及进程的文件支持的内存撤销。
链接:http://people.freebsd.org/~bmilekic/code/mb_slab/
联系人:Bosko Milekic <bmilekic@FreeBSD.org>
分配器似乎是稳定的。感谢 Jiangyi Liu jyliu@163.net,Mbuf 统计信息已重新启用,尽管尚未提交 diff(我正在对其进行清理和最终测试)。接下来将进行更多工作:清理、跟进原始提交中的待办事项,可能在更远的未来将分配器进行通用化,以支持各种与网络相关的分配。
联系人:Hartmut Brandt <brandt@fokus.gmd.de>
已经在多台 FreeBSD 机器和 Marconi ATM 交换机上对 ATM 协议栈进行了测试,运行 CLIP 时似乎相当稳定。对本地 ATM API 的多端口支持已实现,但仍需要一些测试。
联系人:Brooks Davis <brooks@FreeBSD.org>
通过 ifconfig 克隆 vlan 设备的支持已提交到 -current,并将在进一步测试后进行 MFC(合并到稳定分支)。此外,Maksim Yevmenkin 提交了代码,允许在 devfs 系统上克隆 tap 和 vmnet 设备。faith 和 stf 的代码应很快提交。
联系人:Jonathan Lemon <jlemon@FreeBSD.org>
目前,所有网络设备(如 fxp0、lo0 等)都存在于它们自己的命名空间中,并通过套接字接口进行访问。此项目将在/dev 中为网络设备创建设备节点,并以此方式进行控制和访问。
这是一个实验性工作,强烈建议并欢迎对 API 和功能提出建议。尚不清楚是否能够(或是否有必要)提供与通过套接字接口执行的操作完全相同的操作集。
该方法的优点包括可以将 kqueue 过滤器附加到网络设备以进行监控。初步代码已经存在,在网络链路状态变化时发送 kq 事件。其他优点可能包括通过使用文件系统 ACL(访问控制列表)来控制对设备的访问,从而实现更好的访问控制。
联系人:Jonathan Lemon <jlemon@FreeBSD.org>
对于 5.0 版本,目标是使网络堆栈运行时不再依赖 Giant 锁。该领域的初步开发可能集中在将代码和数据结构划分为不同的责任区域。第一阶段的锁定可能会使用几个较小的 mini-giant 代码锁,从而将问题缩小到可管理的范围。
本月的进展包括创建了一个 Perforce 仓库,以正式跟踪锁定更改,并首次提交了 &ifnet
列表的锁定。此外,还对主树进行了一些代码清理,以更好地支持未来的锁定功能。
联系人:Warner Losh <imp@FreeBSD.org>
OLDCARD 的改进已经完成,除了几个老款笔记本(使用 CL-PD6729/30 芯片)和一些 PCI BIOS 问题的罕见案例。虽然仍会进行一些小的工作,但在 4.4R 发布后,只有少数剩余的 bug 会被修复,然后作者将转向 NEWCARD 开发的更广阔领域。
联系人:Brian Somers <brian@freebsd-services.com>
自上个月以来状态未变。补丁已提交,以使 PPP 能够在 HURD 和大部分 Linux 上运行。存在需要解决的 GPL 版权问题。预计在提交 PPP 的 IPv6 支持后,会出现许多冲突。
联系人:Brian Somers <brian@freebsd-services.com>
该软件已提交到 -current 并且似乎功能正常。未解决的问题包括处理 IPV6CP 事件(如 linkup 和 linkdown 脚本)和分配站点本地和全局地址(目前,“iface add”是唯一实际使用链路的方式)。
联系人:Brian Somers <brian@freebsd-services.com>
我曾考虑将 PPPoA 纳入基本系统,但由于 Alcatel Speedtouch 调制解调器固件的分发许可过于严格,因此未能实现。故它已作为 Port 提交,并在 FreeBSD Services 客户站点实时运行。
联系人:Brian Somers <brian@freebsd-services.com>
使 pppoed 在生产环境中正常运行。所有已知问题已修复并提交。
链接:http://www.freesoftware.fsf.org/jailuser
联系人:Evan Sarmiento <ems@open-root.org>
PRFW 是一组为 FreeBSD 内核提供的钩子。它允许用户将代码插入系统调用中,用于创建扩展的安全功能等目的。上周,PRFW 达到了 0.1.0 版本,进行了许多 bug 修复和清理工作。我鼓励任何感兴趣的人访问该网站并加入邮件列表。同时,看看 lsm.immunix.org
,它是 Linux 的钩子。这将是一个很好的对比。
链接:http://phk.freebsd.dk/Gnats/
联系人:Poul-Henning Kamp <phk@FreeBSD.org>
我们取得了一些进展,目前打开的 PR(问题报告)数量已降至 2170 个,相较于三个月前的 3270 个创纪录数字。我们的目标仍然是清除 PR 数据库中的所有“朽木”,确保数据库中只有相关的 PR。非常感谢所有为此做出贡献的人!
链接:http://people.freebsd.org/~scottl/rf
联系人:Scott Long <scottl@FreeBSD.org>
经过两个月的低进展,RAIDframe 的工作再次启动。到 -stable 的移植有一些已知的 bug,但相对稳定。移植到-current 的工作最近完成,补丁将很快发布。RAIDframe 是一个多平台的 RAID 子系统,由 CMU 设计。这是由 Greg Oster 移植的 NetBSD 版本。
链接: http://people.FreeBSD.org/~bmah/relnotes/
联系人:Bruce Mah <bmah@FreeBSD.org>
RELNOTESng,经过 DocBook 格式化的发布文档集,已经合并到 RELENG_4 分支。4.4-RELEASE 将是 FreeBSD 首个采用新风格发布说明、硬件列表等的版本。一些文档正在由日语和俄语翻译团队进行翻译。
可在上述链接上找到 RELNOTESng 的 CURRENT 和 4-STABLE 版本的快照(包括 HTML、文本和 PDF 格式),并不定期但频繁更新。Dima Dorfman dd@FreeBSD.org 和 Nik Clayton nik@FreeBSD.org 一直在努力使 FreeBSD 官方网站自动生成快照。
我的待办事项清单包括:1) 重新同步 FreeBSD 安装文档与手册中的安装章节。2) 更新硬件列表(特别是 PCCARD 和 USB 设备)。3) 更新基本设施,使 RELNOTESng 的架构相关部分能够适配更多硬件平台。
联系人:Matthew Jacob <mjacob@FreeBSD.org>
在 2001 年 8 月 28 日进行了主要的错误处理更新,应该能够解决之前一直存在的大多数 EOM(结束介质)检测问题。仍有一些问题需要修复。接下来需要修复的主要问题是建立一个由 loader(8) 调解的设备异常方法。
链接:http://www.freebsd.org/~jasone/smp/
联系人:John Baldwin <jhb@FreeBSD.org>
联系人:Peter Wemm <wemm@FreeBSD.org>
上个月的更新内容:
已于上个月提交 ast() 修复。
关于抢占式内核的工作目前停滞不前。它在 Alpha 和 SMP 系统上仍然不稳定。
自上个月以来的新进展:
sx 锁现在支持升级和降级。
Witness 现在支持锁的升级和降级。
Jason Evans 已提交信号量实现。
Matt Dillon 已将 Giant 锁推到所有系统调用中。
John Baldwin 正在 p4
jhb_proc
分支上进行进程锁定的工作。John 还在着手将 ktrace 代码改为使用工作线程异步地将跟踪数据写入跟踪文件。这样,ktrace 几乎完全支持多处理器安全,唯一的例外是有几个 ktrace 事件需要 Giant 锁才能调用 malloc(9),并且 ktrgenio() 仍然是同步的。具体来说,ktrpsig()、ktrsysret() 和 ktrcsw() 不再需要 Giant。
Jonathan Lemon 已开始在 p4
netlock
分支上进行网络堆栈锁定的工作。
联系人:Joerg Wunsch <j@uriah.heep.sax.de>
sppp(4)应该与 ISDN4BSD 的子变种进行合并。这将合并 i4b 分支中的一些功能和错误修复(如 VJ 压缩),最终在树中得到单一的 sppp(4)。在此过程中,还考虑合并来自 NetBSD 的许多更改和修复。
联系人:Jonathan Lemon <jlemon@FreeBSD.org>
已经完成同步缓存(syncache)实现,目前正在进行测试和审查。该代码预计将在不久后提交到 -current 分支,并为 -stable 发布补丁集。
联系人:Robert Watson <rwatson@FreeBSD.org>
联系人:<trustedbsd-discuss@TrustedBSD.org>
TrustedBSD 项目继续推进,ACL、Capability 和 MAC 实现取得了进展。此外,DARPA 的支持使得新工作得以进行,包括改进扩展属性代码、增强安全抽象和改进安全文档。由于 FreeBSD 5.0 发布的推迟,现在应该有可能在该版本中包含完整的 MAC 实现。对于那些取得了实质性进展的组件,特定的状态报告会提供更新。
联系人:Robert Watson <rwatson@FreeBSD.org> 联系人:Thomas Moestl <tmm@FreeBSD.org> 联系人:<trustedbsd-discuss@TrustedBSD.org>
正在提交能力(Capabilities)支持到 FreeBSD 的基本系统源码中——用户空间库已完全提交,内核基本设施正在进行集成。
最后更新于
这有帮助吗?