原文链接:FreeBSD 2002 年 11-12 月状态报告
FreeBSD 5.0 终于发布了。在完成对代码树的最终修饰的同时,FreeBSD 开发人员也找到了时间处理其他事项。IA64 在 Itanium2 平台上迈出了重要的步伐,开始了将所有驱动程序转换为使用 busdma 并禁止使用 vtophys() 的工作,硬件加密支持和 DEVD 已经合并到代码树中,NewReno 问题也已修复,同时开始着手锁定内核的网络层。此外,高性能、模块化的调度器开始成形,很快将成为内核的一个受欢迎的补充。
展望未来,重点将放在稳定 5.0 版本并提高其性能。待我们在这一领域达到了目标,就会创建 RELENG_5(即 5-STABLE)分支,希望我们能尽快实现这一目标。同时,4.x 系列的下一个版本 4.8 的准备工作也将很快开始。当然,稳定 5.x 的最佳方式就是安装并运行它!
谢谢,
Scott Long,Robert Watson
链接
联系人:Maksim Yevmenkin <m_evmenkin@yahoo.com>
我很高兴地宣布,所有的内核模块和一些用户空间工具已经进入了 FreeBSD 源码树。非常感谢 Julian Elischer 的帮助。
遗憾的是,自上次报告以来没有大变化。发现了一些小问题,并且提供了补丁,若有需要可联系我。我将准备所有补丁并提交给 Julian 审核。
OBEX 服务器和客户端(基于 OpenOBEX 库)几乎完成。目前正在进行互操作性测试。如果有人有硬件并且有时间,请与我联系。HCI 安全守护进程已经实现并与 Sony Ericsson T68i 手机和 Windows 栈进行了测试。现在可以建立安全的蓝牙连接了。
有些人对 RFCOMM 守护进程表示不满。这些人希望使用支持 GPRS 和蓝牙的手机访问互联网。如果你遇到此问题,请与我联系寻求可能的解决方法。我的下一个目标是实现稳定的 RFCOMM,以解决所有这些问题。
链接
http://www.freebsd.org/projects/busdma/
联系人:Maxime Henrion <mux@FreeBSD.org>
这个项目进展非常顺利。amd(4) 和 xl(4) 驱动程序现在已经转换为使用 busdma API,sparc64 已经得到了 bus_dmamap_load_mbuf() 和 bus_dmamap_load_uio() 函数的支持,gem(4) 和 hme(4) 驱动程序已更新为使用 bus_dmamap_load_mbuf() 而非 bus_dmamap_load()。
如项目页面所示,仍有很多工作需要完成。不过,由于有许多开发人员正在参与此项目,预计很快会有更多驱动程序完成转换。
联系人:Warner Losh <imp@FreeBSD.org>
Devd 已经被集成到 FreeBSD 5.0-RELEASE 中。集成后的代码支持多种配置选项。现在配置文件已完全解析,并且执行了相应的操作。
未来在这一领域的工作可能会局限于改进 devctl 接口。/dev/devctl 可能会在未来版本中成为一个可克隆的设备。也计划支持通过 devctl 控制单个设备。
链接
联系人:Michael Lucas <donations@FreeBSD.org>
捐赠项目在 2002 年处理了几十个捐赠,并成功地安置了大多数捐赠物品。我们仍然急需 SMP 和 Sparc 设备。你可以在捐赠网页上查看我们的需求信息以及已经处理的捐赠物品。
我们越来越依赖开发者需求列表来安置项目提供的物品,并利用提交统计数据来帮助安置物品。因此,提前请求所需物品的活跃提交者有很大机会得到它们。活跃度较低的提交者,或者没有提前请求所需物品的提交者,优先级会稍低,但不会被排除在外。
我们正在简化捐赠的税务扣除流程,并希望很快能有相关消息。同时,我们也在不断努力加速和减少内部流程,以便尽快将更多设备送到更多人手中。
特别感谢 David O'Brien 和 Tom Rhodes 的支持,使得团队取得了更大的成功。同时,FreeBSD 基金会在处理可税前扣除捐款方面也提供了很大的帮助。
联系人:Sam Leffler <sam@FreeBSD.org>
该项目的主要目标是修改 IPsec 协议,使用从 OpenBSD 导入的内核级加密子系统(参见其他部分)。次要目标是对 IPsec 协议进行一般性能调优。
这项工作将成为 5.0 版本的一部分。由于对加密子系统的改进,性能得到了提升。
链接
联系人:Gordon Tetlow <gordon@FreeBSD.org>
该项目的目标是在 FFS 超级块中使用少量空间存储用户选择的卷标签。然后,GEOM 模块会将卷标签暴露到 devfs 中的命名空间。这个想法是简化磁盘交换和系统间文件系统管理的过程。
目前,基本功能已经实现。我已将部分补丁提交给相关子系统的维护者进行审核。尚未解决命名空间冲突的问题,但基本功能已完成。
链接
http://www.freebsd.org/projects/c99/
http://people.freebsd.org/~schweikh/posix-utilities.html
联系人:Mike Barcroft <mike@FreeBSD.org>
联系人:FreeBSD-Standards 邮件列表 <standards@FreeBSD.org>
FreeBSD 中 POSIX 实用程序合规性列表(见上文链接)已更新,以反映当前的实际情况。基础实用程序合规性只剩下少量工作。
在 API 方面,已实现 grantpt()、posix_openpt()、unlockpt()、wordexp() 和 wordfree(),并添加了头文件 <wordexp.h>
。
目前,我们的项目状态板上有大约 40 个未分配的任务,涵盖文档、实用程序到内核编程等多个方面。我们鼓励任何有兴趣的开发者查看状态板,看看是否有感兴趣的任务。
链接
联系人:Joe Marcus <marcus@FreeBSD.org>
联系人:Maxim Sobolev <sobomax@FreeBSD.org>
联系人:Adam Weinberger <adamw@FreeBSD.org>
由于在本报告期间大部分时间内 Ports 被冻结,因此官方 CVS 树中并未有太多 GNOME 更新。然而,开发工作并未停止。GNOME 2.2 接近完成,许多 FreeBSD 用户已开始测试来自 MarcusCom CVS 仓库 的 GNOME 2.1 Port 源。如果有其他人感兴趣,请按照上面提供的 cvsweb 链接的说明操作,并检出 ports
模块。
即将发布的 FreeBSD 5.0-RELEASE 将成为第一个默认提供 GNOME 2.0 桌面环境的版本。在上述 Port 冻结期间,所有 GNOME 2 Port 已被修复,确保它们能在 i386 和 Alpha 平台上正常构建和打包。不幸的是,Mozilla Port 在 Alpha 上无法成功构建,xpcom 代码仍然存在问题,但正在继续修复以使其在 Alpha 上工作。
最后,FreeBSD Mono(一个开源 C# 运行时)Port 也获得了新的进展。Mono 已更新到 0.17(最新发布版本),Juli Mallett 已将 gtk-sharp(GTK+ 的 C# 绑定)移植到 FreeBSD。
联系人:Kris Kennaway <kris@FreeBSD.org>
三个 FreeBSD 软件包集群(i386、alpha、sparc64)已统一运行于同一台主服务器上,而不再使用三台独立的主服务器。这释放了一些机器资源,可以作为额外的客户端机器,同时简化了管理开销。现在,所有三种架构的构建日志都可以在 http://bento.FreeBSD.org
网页上查看。sparc64 软件包集群现在有三台构建机器(一台 u5 和两台 u10),并且即将创建一个 ia64 集群。
软件包构建现在会追踪一个 Port 连续构建失败的次数(html 汇总可在 bento 网站查看)。这可以帮助追踪突然出现问题的 Port(例如,由于升级错误或 FreeBSD 源树的变化),并且后续会在 Port 连续失败 5 次时,向 Port 维护者发送通知。目前这个功能仍是实验性的,需要进一步的代码更改以稳定运行。
链接
联系人:Scott Long <re@FreeBSD.org>
十一月和十二月对发布工程团队来说特别繁忙。Scott Long 加入团队,帮助处理秘书和通讯任务,而 Brian Somers 退出团队,专注于其他项目。
FreeBSD 5.0-DP2 在经过多次延迟和期待后于十一月发布,标志着 5.0 成为现实所需的最后一个里程碑。此后,我们在 CVS 的 HEAD 分支上实施了代码冻结,并发布了 5.0-RC1。接着创建了 RELENG_5_0 分支,并从该分支发布了 5.0-RC2。此时,仍然存在一些关键问题,因此我们计划在新的一年发布 RC3,并将最终的 5.0-RELEASE 日期推迟到 1 月中旬。到本文发布时,FreeBSD 5.0-RELEASE 应该已经发布。
目前,RELENG_5(也就是 5-STABLE)分支将不会创建。FreeBSD 4.x 版本将继续发布,4.8 计划于 2003 年 3 月发布。4.x 系列的发布将由 Murray Stokely 领导,5.x 系列的发布将由 Scott Long 领导。待 HEAD 达到可接受的性能和稳定性目标,RELENG_5 分支将被创建,并且 HEAD 将转向 6.0 的开发。我们希望在今年春季的 5.1 版本中实现这一目标。
链接
http://people.freebsd.org/~peter/ia64.diff
http://www.freebsd.org/platforms/ia64/
联系人:Peter Wemm <peter@FreeBSD.org>
联系人:Marcel Moolenaar <marcel@FreeBSD.org>
得益于 Marcel Moolenaar 的大量工作,ia64 移植已在新的 Itanium2 基础的 hp 机器上运行。目前我们在 hp rx2600 上运行,因为这些机器是由 Hewlett-Packard 和 Intel 慷慨捐赠的。我们曾经使用过一台原型的 Intel Tiger4 系统,但不得不归还这台机器,我们不确定它是否仍在运行。为了使这些系统能够运行所需的大多数更改都在 Perforce 树中,而不在 -current 或 RELENG_5 的 CVS 树中。因此,源自 CVS 的构建(包括 -current、5.0-RC 系列以及预计的 5.0-RELEASE)仅能在过时的 Itanium1 系统上使用。
过去几个月已进行了大量的稳定性和功能修复,包括初步支持 libc_r。操作系统似乎足够稳定,能够承载持续的工作负载——例如,它现在可以构建软件包了。我们仍然没有 gdb 支持,甚至无法读取核心文件。
链接
[翻译成法语的 FreeBSD 网站](http://www.freebsd-fr.org/index-trad.html
联系人:Sebastien Gioria <gioria@FreeBSD.org>
联系人:Marc Fonvieille <blackend@FreeBSD.org>
联系人:Stéphane Legrand <stephane@FreeBSD.org>
大部分文章也已翻译完毕。Marc 仍在翻译手册,目前已经翻译了 60%。Stéphane 开始将我们法语本地化的网站整合到美国 CVS 树中。Sébastien 仍在维护发布说明。
我们启动了一个新网站 www.FreeBSD-fr.info,类似于 Daemon News 的法语网站。Netasq 捐赠了我们的新服务器;我们将在接下来的几周内将其安装到新的托管服务提供商处。目前的大工作是翻译 FAQ,而未来的主要项目将是手册页面的翻译。
联系人:Sam Leffler <sam@FreeBSD.org>
该项目的目标是导入 OpenBSD 的内核级加密子系统。该功能为计算加密哈希、密码和公钥操作提供内核和用户级访问硬件加密设备的能力。该功能的主要客户包括内核 RNG(/dev/random)、网络协议(例如 IPsec)和 OpenSSL(通过 /dev/crypto 设备)。
这项工作将成为 5.0 版本的一部分,并已提交到 -stable 源树,以便纳入 4.8 版本。
最近的工作集中在提高性能。现在维护了系统统计信息,并且添加了一个可选的分析性能的分析功能。使用此功能后,使用加密 API 的开销已显著减少。
ubsec(Broadcom)驱动程序已更改,以显著提高负载下的性能。此外,驱动程序中的几个内存泄漏已被修复,并且已启用公钥支持。
即将进行的工作将集中在跨多个加密设备平衡负载请求,并集成 OpenSSL 0.9.7,后者将自动启用应用程序使用加密硬件。
链接
联系人:Kazuo Horikawa <horikawa@FreeBSD.org>
我们一直在更新基于 RELENG_5 的日语翻译手册页面。所有现有条目已更新,但有 15 个例外条目未更新,其中大部分需要大规模更新。我们还需要添加 RELENG_4 中不存在的翻译。
链接
http://www.freebsd.org/~nsouch/ggiport.html
联系人:Nicholas Souchu <nsouch@FreeBSD.org>
KGI(内核图形接口)是个内核基础设施,提供给用户应用程序访问硬件图形资源(DMA、IRQ、MMIO)的方法。KGI 已经作为一个独立的项目在 Linux 下提供。KGI/FreeBSD 项目旨在将 KGI 集成到 FreeBSD 内核中。
KGI/FreeBSD 最近收到捐赠了 2 张 PCI 显卡(Matrox Millennium II 和一张即将到来的 Mach64),其他的捐赠也正在提议中。请查看 FreeBSD 网站获取更多详细信息。感谢 donation@ 组织和推动捐赠,感谢捐赠者对 KGI/FreeBSD 的贡献。
在过去几个月中,KGI/FreeBSD 进展良好。大部分映射硬件资源到用户空间的 VM 问题已经解决,并且已进行第一次编码尝试。这个原型工作揭示了与当前 Linux 实现的 API 兼容性问题,并且在 KGI 开发邮件列表上进行了广泛讨论。如果你对这些问题感兴趣,请问我,我很乐意与你分享。
大部分编码工作现在已经完成。让我们开始调试吧!
联系人:Jeff Roberson <jeff@FreeBSD.org>
在 5.1 版本中,将提供一个新的调度器,作为当前调度器的可选组件。它已经设计得能很好地与 KSE 和 SMP 配合使用。一些想法借鉴自 Solaris 和 Linux,同时也采用了许多新颖的做法。它在系统中进程数量方面具有 O(1) 性能,并且具有 CPU 亲和性,这应该能为许多应用程序提供性能提升。
该调度器仍有一些未完成的工作和许多调整,尽管它相当稳定。在正式发布之前,请参阅发布到架构邮件列表的帖子和随后的讨论,获取更多详细信息。
联系人:Jeffrey Hsu <hsu@FreeBSD.org>
工作仍在继续,目的是继续锁定网络堆栈。最近,重点放在了 IP 堆栈上。该计划涉及一系列相关部分,锁定 ifaddr 引用计数、inet 列表、ifaddr 使用、ARP 代码、路由树和路由条目。目前,我们已经完成了这一路径的 3/5。
除了 TCP 和 UDP 之外,其他网络协议如原始 IP、IPv6、AppleTalk 和 XNS 也需要进行锁定。大约四分之一的这些剩余协议已经锁定,并将在 IP 堆栈锁定后提交。
协议无关的套接字层需要与协议相关的锁一起正确工作并进行锁定。这个部分大部分已经完成,只剩下需要进行大量测试和代码清理的工作。
最后,还需要进行一次遍历来锁定设备驱动程序和各种统计计数器。
链接
联系人:Jeffrey Hsu <hsu@FreeBSD.org>
这一工作修复了我们 TCP 堆栈中与拥塞控制相关的一些问题。第一项任务是修复我们的 NewReno 实现。随后,接下来的紧急修复是解决与窗口更新和重复确认计数相关的问题。当这部分稳定后,我们将修改恢复代码,利用 SACK 信息。最终,这个项目将更新 BSD 堆栈,加入有限传输(Limited Transmit)和其他新的互联网标准以及标准跟踪改进。
链接
联系人:Robert Watson <rwatson@FreeBSD.org>
联系人:TrustedBSD 讨论列表 <trustedbsd-discuss@TrustedBSD.org>
主要是修复 bug 和用户空间应用程序的调整;新增了操作扩展属性上的 ACL 的接口;修复了与 ACL 标志相关的 ls 错误。补丁程序正在测试和审查中,旨在让 cp、mv、gzip、bzip 和其他应用程序支持 ACL 保留。新增了 tunefs 标志,以便简化 ACL 的配置,尤其是在 UFS2 文件系统上。
目前正在考虑做出一些更改,以利用 Linux/Solaris 的 umask 语义:目前我们实现的是 POSIX.1e/IRIX 在文件、设备、FIFO 和目录创建时合并 umask、ACL 掩码和请求的创建模式。Solaris 和最新的 Linux 补丁忽略了默认 ACL 上的 umask;这需要在我们的 VFS 中重新安排 umask 处理,尽管其结果会非常有用。我们正在探索如何以低影响的方式实现这一目标。
链接
联系人:Robert Watson <rwatson@FreeBSD.org>
联系人:TrustedBSD 讨论列表 <trustedbsd-discuss@TrustedBSD.org>
框架更改:
对 KLD 系统调用(模块加载、卸载、状态)进行检测
对 NFSd 系统调用进行检测
对 swapoff(2) 进行检测
对每个架构的 sysarch() 特权部分进行检测
使用条件变量,允许调用者在加载/卸载策略时等待框架“空闲”,而不是返回 EBUSY
在 devfs_mount 结构中存储挂载指针,供策略使用
改进回环接口中“重新对齐”数据包拷贝情况的标签处理
提供完整路径以帮助策略正确标记 devfs 对象创建(尚未合并)
尝试将 MAC 标签移到 m_tags 中(尚未合并)
NFS 服务器现在使用真实的 ucreds,而不是修改过的 ucreds,这意味着我们可以开始为 NFS 操作实施基础工作(尚未合并)
策略更改:
LOMAC:mac_lomac 替代 lomac(LOMAC 现在使用 MAC 框架)
SEBSD:改进对基于 SELinux genfs 的 devfs 标记支持
处理硬链接检查
支持通过 sysctl 导出进程过渡信息以供登录等使用
登录现在会提示选择角色
允许重新加载策略
TTY 标记
从 Linux 引入的锁定适配
许多政策适配和修复
现在可以在强制模式下启动!
mac_bsdextended:修复 VAPPEND 未映射到 VWRITE 的 bug,导致带 O_APPEND 的打开失败
用户空间更改:
setfmac(8) 现在支持 setfsmac(8) 执行模式,接受初始标记规范文件。支持 SELinux 兼容模式,能够接受 SELinux 标签规范文件并使用 SEBSD 模块
sendmail(8) 现在在邮件投递时设置用户标签作为上下文切换的一部分
文档更改:
更新 MAC 命令行工具、模块、管理员提示等的手册页
更新《FreeBSD 开发者手册》中的 MAC 策略和入口点章节
FreeBSD 手册中的 MAC 部分
联系人:Sam Leffler <sam@FreeBSD.org>
该项目的目标是改进系统中的无线网络支持。在本报告发布时,802.11 链路层代码应该已经提交。一个使用该代码的 wi 驱动程序应该很快提交。计划转换其他驱动程序,并为新设备提供驱动支持。
下一阶段计划是支持 802.1x/EAP(包括作为客户端和认证方)。