FreeBSD 2003 年 1-2 月状态报告

FreeBSD 2003 年 1-2 月状态报告

原文链接:FreeBSD 2003 年 1-2 月状态报告

引言:

FreeBSD 项目又度过了两个忙碌的月份。随着 5.0 版本的发布,关注点转向了通过更细粒度的锁定来提高速度,增加更多高端功能,如 i386 的大内存(PAE)支持,以及在许多其他项目上的进一步进展。预计 FreeBSD 5.1 将在 5 月下旬或 6 月初发布,5.2 将在夏季末发布。关于向 5-STABLE 推进的路线图可以在 http://docs.freebsd.org/doc/5.2-RELEASE/usr/share/doc/en_US.ISO8859-1/articles/5-roadmap/index.html 找到。尽管 5.x 系列预计直到 5.2 版本发布时才会完全稳定,但 5.1 版本承诺将是一次令人兴奋的发布,并在速度和稳定性方面相较于 5.0 有显著提升。

不可忽视的是,FreeBSD 4.8,作为 4-STABLE 系列中的最新版本,已经接近发布。大量最后的工作正在进行,以提供诸如 XFree86 4.3.0、英特尔超线程技术(Intel HyperThreading(tm))支持,当然还有更多的 bug 修复。别忘了在 CD 套件发布时,通过购买副本来支持 FreeBSD 的供应商和开发人员!

感谢,

Scott Long, Robert Watson

链接

最新快照

Linux BlueZ 栈

OpenOBEX

联系人:Maksim Yevmenkin <m_evmenkin@yahoo.com>

我很高兴地宣布,另一个版本现已可以下载:http://www.geocities.com/m_evmenkin/ngbt-fbsd-20030305.tar.gz

该版本具有新的内核中 RFCOMM 实现,提供 SOCK_STREAM 套接字接口。这使得旧的用户空间 RFCOMM 守护进程过时了。人们不应再使用旧的用户空间 RFCOMM 守护进程。该版本还提供了新的 RFCOMM PPP 守护进程,支持 DUN 和 LAN 配置文件。注意:DUN 支持需要 PPP 补丁(支持直接模式下的聊天脚本)。请在邮件列表归档中查找,或直接联系我。启用蓝牙的手机用户现在可以使用手机通过蓝牙访问互联网。

蓝牙套接字层已被清理。人们不应再看到新代码中的 WITNESS 报告。锁定问题已经重新审视,代码现在更为健全,尽管可能还没有完全为 SMP(对称多处理)准备好。无论如何,由于套接字层仍然在 Giant 下运行,因此该代码应该能在 SMP 系统上正常工作。

基于 OpenOBEX 库的简单 OBEX 服务器和客户端已经完成。OBEX 文件推送和 OBEX 文件传输配置文件已经通过 Sony Ericsson T68i 手机和 Windows 2K 上的蓝牙 3COM 栈进行了测试。现在可以通过蓝牙从手机发送图片、通讯录和日历条目。OpenOBEX 库中的一个小错误已被修复,现在 OPEX Put-Empty 命令可以正常工作。

由于 API 发生了变化,用户空间工具必须与内核同步。人们应该安装新的头文件,并重新编译和重新安装所有用户空间工具,作为升级的一部分。对此我深感抱歉。

链接

BSDCon 2003 征文通知

联系人:Gregory Shapiro <gshapiro@FreeBSD.org>

BSDCon 2003 程序委员会邀请你提交关于 BSD 衍生系统及开源世界相关主题的原创和创新论文。感兴趣的主题包括但不限于:

  • 嵌入式 BSD 应用程序开发与部署

  • 使用 BSD 系统的实际经验

  • 在混合操作系统环境中使用 BSD

  • 与非 BSD 操作系统的比较;技术、实践、许可(GPL 与 BSD)

  • 跟踪非 BSD 系统上的开源开发

  • BSD 在桌面上的应用

  • I/O 子系统和设备驱动程序开发

  • SMP 和内核线程

  • 内核增强

  • 网络和互联网服务

  • 安全

  • 性能分析与调优

  • 系统管理

  • BSD 的未来

扩展摘要的提交截止日期为 2003 年 4 月 1 日。在提交前,请务必查看扩展摘要的要求。选择将基于提交的质量以及该工作是否对社区有兴趣。

我们期待收到你的投稿!

联系人:Jeff Roberson <jeff@FreeBSD.org>

大部分文件系统缓冲区缓存已被审查并加以保护。vnode 互锁已扩展,以覆盖一些缓冲区标志字段,以便无需单独的互锁。全局缓冲区队列数据结构已加锁,计数器已转换为原子操作。BUF_*LOCK 函数增加了一个互锁参数,以便可以安全地从 vnode 清洁和脏列表中移除缓冲区。现在所有访问 buf 字段都需要锁定锁管理器(lockmgr)。之前这一点没有严格执行,因为 splbio 提供了所需的保护。

还有一些代码区域需要保护并清理,以便在没有 Giant 锁的情况下进行推进。最显著的是,目前没有 Giant 锁的背景写入代码是不安全的。此外,缓冲区缓存所依赖的许多 VM 部分也不安全。这项工作是以 VM 和 VFS 子系统很快将不再依赖 Giant 锁为前提进行的。

链接

联系人:Poul-Henning Kamp <phk@FreeBSD.org>

我们已经将第一个磁盘设备驱动程序(aac)从 Giant 锁下移除,在某些场景下,性能提升可达 20%。设备驱动程序 API 进行了精简,以反映 NO_GEOM 兼容性已不再必要,这导致大约减少了 1000 行源代码,其中大部分被移除自设备驱动程序。cdevsw 的新 API 更加简洁,且希望更不容易让人困惑。我们引入了自动分配设备主号的功能,已有一些驱动程序开始使用此功能。通过此功能引入的检查表明,手动分配的主号唯一性已经被打破。

我们继续致力于统计收集 API 和 GEOM 节点的手动配置统一 API 的开发。

链接

FreeBSD 4.8 发布计划

联系人:Murray Stokely <re@FreeBSD.org>

FreeBSD 4.8 发布过程已顺利进行。RELENG_4 分支自 2 月 15 日起进入代码冻结阶段,首个发布候选版本将在 3 月初发布。现已整理出测试指南,并可从 http://www.FreeBSD.org/releases/4.8R/qa.html 获取。

开发者应与 re@FreeBSD.org 协调,讨论他们希望在此版本中包含的任何更改,用户也鼓励尝试发布候选版本,并在最终版本发布之前尽可能多地帮助找到 bug。

FreeBSD 4.8 代表了“4.X”稳定分支中的最新生产版本。它不包含 1 月份发布的“新技术” 5.0 版本中的所有功能。

链接

http://www.freebsd.org/projects/c99/

http://people.freebsd.org/~schweikh/posix-utilities.html

联系人:Mike Barcroft <mike@FreeBSD.org>

联系人:FreeBSD-Standards 邮件列表 <standards@FreeBSD.org>

1 月和 2 月是相对平静的几个月,这期间添加了一些 C99 数学函数和宏,包括:fpclassify()、isfinite()、isgreater()、isgreaterequal()、isinf()、isless()、islessequal()、islessgreater()、isnan()、isnormal() 和 signbit()。额外的 C99 数学库支持正在开发中。

链接

FreeBSD GNOME 项目主页

联系人:Joe Marcus <marcus@FreeBSD.org>

联系人:Maxim Sobolev <sobomax@FreeBSD.org>

联系人:Adam Weinberger <adamw@FreeBSD.org>

FreeBSD 4.8-RELEASE 将延续 5.0-RELEASE 的传统,包含 GNOME 2 作为默认 GNOME 桌面。这意味着 4.8 将随 GNOME 2.2 发布。

在最近的 GNOME 2.2 版本发布之后,GNOME 2.3 快照也在筹备中。开发计划可以从 http://www.gnome.org/start/2.3/ 获取。Port 将以与 2.1 开发版本相同的方式发布。敬请关注 freebsd-gnome@ 邮件列表以获取更多细节。

目前我们正在为 4.8-RELEASE 进行另一次 Port 冻结。在冻结之后,将提交新的 bsd.gnome.mk,它实际上移除了 USE_GNOMENG 宏。这个新版本将添加对 GNOME 2 的支持,并为尚未转换为新 GNOME 架构的 Port 设置向后兼容性。有兴趣测试此新 Mk 文件的人可以按照 http://www.marcuscom.com:8080/cgi-bin/cvsweb.cgi 的说明检查“ports”模块。

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

联系人:Jacques Vidrine <nectar@FreeBSD.org>

在 2002 年 9 月至 2003 年 2 月期间,FreeBSD 安全团队的邮件别名接收了 1297 条消息,远低于夏季的消息量(还记得 Apache 和 OpenSSL 蠕虫吗?4.6.1 版本——哦不,我是说 4.6.2-RELEASE?)。

在此期间:新增了 95 项内容到 SO 问题跟踪数据库;其中 39 项涉及 FreeBSD 基本系统,其余涉及 Port。发布了 9 个新的安全公告,其中 2 个涉及 FreeBSD 独有的问题。

1 月份,SO 发布了新的 PGP 密钥(ID 0xCA6CDFB2,可以在 FTP 网站和手册中找到)。这使得拥有对应私钥的人员与 FreeBSD 安全网站上发布的 security-officer 别名的成员保持一致。此外,这也解决了过时的 PGP 密钥在一些公共密钥服务器上损坏的问题。

2 月份,Sentex 的 Mike Tancsa 向安全官团队捐赠了两台机器。这些机器在测试安全分支、准备补丁和生成更新的二进制文件方面已经提供了很大的帮助。非常感谢 Mike!

链接

FreeBSD/MIPS 项目页面

FreeBSD/MIPS 平台页面

联系人:Juli Mallett <jmallett@FreeBSD.org>

大量头文件已经填写完毕,所有内容都已被存根化。最小功能和数据元素已被存根化或填写完毕。已添加支持一些必要的可调项,以构建真正的内核。已修复 GCC,使其生成正确的局部标签前缀,从而使得能够链接真正的内核。已开始提供足够的内容,以创建并启动真正的内核,运行在真实硬件上。决定仅支持 MIPS-III 及以上架构。

链接

jpman 项目

ja-man-doc-5.0.tbz 包

联系人:Kazuo Horikawa <horikawa@FreeBSD.org>

我们已于 2 月 2 日发布了 5.0-RELEASE 的日语翻译手册页面。大多数在 RELENG_4 中没有的条目尚未翻译。希望我们能尽快完成这些条目的翻译工作。

KGI/FreeBSD 状态报告

链接

KGI 项目页面

KGI 工作进行中页面

联系人:Nicholas Souchu nsouch@FreeBSD.org

最近几个月,KGI 项目的工作非常繁忙。大部分框架已完成调试,适用于典型的使用场景(fb,未加速)。我已将 KII(输入接口)连接到 syscons,通过 atkbd 完成。现在,打开 /dev/graphic 可以工作,并且允许访问帧缓存资源。最后,KGIM(KGI 模块)框架改进了板卡/显示器驱动程序的构建树,现在板卡驱动程序可以加载并分配资源。

待办事项清单中最重要的是:5.0-RELEASE 移动(我目前使用的是 2002 年 5 月的 5.0-current)。大部分调试工作已经完成。现在是验证的时候了!

请注意,自上次报告以来,KGI 项目的主页已经更改。

新的 Doceng 团队成立

链接http://www.freebsd.org/internal/doceng.html

FreeBSD 文档工程团队页面 |

联系人:Murray Stokely doceng@FreeBSD.org

doceng@ 团队是一个新的组织,负责处理与 FreeBSD 文档项目相关的一些元项目问题。该团队的主要职责包括:批准新的文档提交者、管理文档发布过程、确保文档工具链的正常运行、维护文档项目简介,以及保持 doc/ 和 www/ 树的完整性。该团队的现任成员有 Nik Clayton、Ruslan Ermilov、Jun Kuriyama、Bruce A. Mah 和 Murray Stokely。

PowerPC 平台

联系人:Peter Grehan grehan@FreeBSD.org

PowerPC 的工作正在稳步推进。系统现在可以从网络和磁盘启动多用户模式。ATA-DMA 正在与 ATAng 代码集成,并且正在为较旧的 G3 机器添加支持。

预读性能

联系人:Jeff Roberson jeff@FreeBSD.org

对集群预读代码进行了一些改进。它们允许在应用程序执行顺序访问时有更多未完成的 IO 请求。这对 RAID 系统的影响大于单磁盘系统。我们将预读的最大文件系统块数可以通过 sysctl vfs.read_max 进行调整。这项优化在简单测试中显示了 20% 的性能提升。

网络栈的 SMP 锁定

链接

联系人:Jeffrey Hsu hsu@FreeBSD.org

已锁定的子系统包括 IP、UDP、TCP、ifaddr 引用计数、syncache、ifnet 列表、路由径向树和 ARP。这些已被提交到树中。此外,原始 IP、转发套接字处理和 Unix 域套接字的 SMP 锁定也已完成并经过测试。目前正在一些子系统中进行工作,以使并行网络处理在 SMP 系统上安全。

联系人:Warner Losh imp@FreeBSD.org

Newbus 非对象部分的锁定工作接近完成。设备树使用了一个单一的锁。到目前为止,为了实现这一点,仅对 subrbus 做了最小的修改,但仍存在一些锁的顺序问题。完成这项工作后,调用 device* 例程时将不再需要持有 Giant 锁。kobj 的工作由其他人负责,可能需要更广泛的设计工作,以使其更适合 SMP 环境。

联系人:Jake Burkholder jake@FreeBSD.org

PAE 的支持已基本完成,并已提交到 jake_pae 分支。为支持 PAE 所采取的方案是允许 pmap 模块将页表目录视为 4 个页,而不是 1 个,并尽量避免使用第三级结构——页目录指针表。由于其较小的大小(32 字节),PDPT 不能均匀递归映射,因此不能像 alpha 或 x86-64 架构所使用的页表那样提供常规的多级结构。PAE 支持所需的工作是开发一个用于操作页表项的 API,该 API 将允许在必要时使用幂等的 64 位加载和存储。

已开发并提交了使用 PAE 支持超过 4G 内存的实验性支持,已提交到 Perforce 的 jake_pae_test 分支。这涉及添加一个与虚拟地址分开的物理地址类型,供虚拟内存系统和总线代码直接使用物理地址。初步测试显示,支持直接 DMA 到 64 位物理地址的设备驱动程序表现良好。

该项目的资金由 DARPA 和 Network Associate Laboratories 提供,硬件支持由 FreeBSD Systems 提供。

链接

联系人:Jeffrey Hsu hsu@FreeBSD.org

此工作的目标是通过增加对新标准和标准跟踪提案的支持,同时保持对现有规范的遵从,来改善 BSD 网络栈的性能、稳定性和正确性。即将发布的 4.8 和 5.1 版本将是第一个使用新 NewReno 算法的版本。最近,我们实现了有限传输算法(RFC 3042),该算法对具有小拥塞窗口的连接有益,例如,许多短小的 Web 连接。我们还最近增加了对 RFC 3390 中概述的较大起始拥塞窗口的支持。这有助于短的 TCP 连接以及那些具有大往返延迟的连接,例如通过卫星链接的连接。

联系人:Jeff Roberson jeff@FreeBSD.org

ULE 调度器已被提交到 5.0-CURRENT 分支。欢迎早期用户和实验者尝试,并提交 bug 报告。在某些工作负载下,它比旧的调度器显示出了显著的性能提升。目前存在与优先级公平性相关的问题,但除此之外,交互性能非常好。为了改进负载均衡算法,还需要做更多的工作。预计这将在下个月左右准备好供广泛的 FreeBSD 用户群体使用。

最后更新于

这有帮助吗?