FreeBSD 2002 年 9-10 月状态报告
最后更新于
最后更新于
原文链接:
FreeBSD 项目的又一段忙碌的时光带来了 5.0-CURRENT 分支的显著成熟和功能完善。而且时机恰到好处,因为在你阅读下个状态报告时,我们希望你已经在桌面上运行着 FreeBSD 5.0!在过去的两个月里,我们见证了 sparc64 升级为 Tier 1(完全支持)状态、高质量存储加密模块的集成、硬件加速 IPsec 支持的提交、通用“设备守护进程”的加入,用于处理硬件连接/断开事件,取代了早期的单一用途和总线特定守护进程,RAIDFrame 的提交,以及 TrustedBSD 工作的成熟度提升。我们还见证了 4.x 分支的另一版成功发布,即 4.7-RELEASE,这将继续作为生产支持平台,而 5.X 则正逐步到位。
在接下来的两个月里,FreeBSD 项目将几乎完全专注于确保 5.0 的成功:提高系统的稳定性和性能,并增加能够在 5.0 上构建和运行的应用程序池。在你阅读此报告时,发布工程团队已经宣布 5.0 的代码冻结,并发布了 DP2。接下来会有一系列的发布候选版本(RC),然后是正式发布。如果你有兴趣参与测试过程,请帮忙——一台备用计算机和一份烧录到 CD 上的 DP 和 RC ISO 镜像将产生影响。预发布版本的操作系统通常会有一些警告提示!你也许还会对发布工程团队制作的早期采用者指南感兴趣,帮助你判断何时适合从 4.x 分支过渡到 5.x 分支。
感谢,
Robert Watson, Scott Long
链接
联系人:Maksim Yevmenkin <>
我很高兴地宣布,现已可以下载另一个工程版发布,网址为
此版本包括了一些小的错误修复和新的 Port OpenOBEX 库。快照包含对 H4 UART 和 H2 USB 传输层的支持,主机控制器接口(HCI),链路层控制与适配协议(L2CAP)以及蓝牙套接字层。它还带有一些用户空间实用程序,可以用来配置和测试蓝牙设备。此外,还有几个手册页。
Port 服务发现协议(SDP)已更新至版本 0.8(从 BlueZ-sdp-0.8 移植)。大多数 RFCOMM 问题已解决,现在 rfcommd 可以与 Windows(3COM、Xircom 和 Widcomm)和 Linux 栈兼容。
新增支持的 USB 设备 - EPoX BT-DG02 加密狗。我还收到关于 Mitsumi USB 加密狗和 C413S 蓝牙手机的成功报告(L2CAP 和 SDP 正常工作,等待 RFCOMM 报告)。
我目前正在开发 OBEX 服务器(推送和文件传输协议),它将基于 OpenOBEX 库(包括在快照中)。
链接
[BSDCon 2003 征稿启事](http://www.usenix.org/events/bsdcon03/cfp/
BSDCon 2003 项目委员会邀请你提交原创和创新的论文,内容涉及与 BSD 衍生系统及开源世界相关的话题。感兴趣的主题包括但不限于:
嵌入式 BSD 应用开发与部署
使用 BSD 系统的实际经验
在混合操作系统环境中使用 BSD
与非 BSD 操作系统的比较;技术、实际、许可证(GPL 与 BSD)
跟踪非 BSD 系统上的开源开发
BSD 桌面应用
I/O 子系统和设备驱动程序开发
SMP 和内核线程
内核增强
网络和互联网服务
安全性
性能分析与调优
系统管理
BSD 的未来
提交的扩展摘要截止日期为 2003 年 4 月 1 日。在提交之前,请务必查看扩展摘要的要求。选择将基于书面提交的质量以及工作是否对社区有吸引力。
我们期待收到你的投稿!
链接
2002 年 10 月 10 日标志着我们项目的一周年纪念。在这段时间里,我们在 FreeBSD 的标准合规性方面取得了显著进展。FreeBSD 5.0-RELEASE 将是我们辛勤工作的展示平台。我们希望我们的不懈努力对 FreeBSD 和那些维护或考虑将其软件移植到 FreeBSD 的软件供应商产生了积极的影响。
在 API 方面,添加了 _Exit(3)
(是 _exit(2)
的别名),sysconf(3) 已更新为符合 POSIX.1-2001 标准,并且一些 glob(3) 的新增功能已经 MFC(合并到主分支)。insque()、lsearch() 和 remque() 函数家族已经重新实现并从 libcompat 移至 libc。实现了多个宽字符函数,包括所有 printf() 和 scanf() 变体。最后,向 printf(3) 添加了对宽字符格式类型(%C
、%S
、%lc
、%ls
)的支持。
在实用程序合规性方面,getconf(1) 的合规性得到了更新,c99(1)(c89(1) 的新版本)已实现,cd(1) 和 command(1) 的更改已 MFC。
近 20 个头文件已更新以符合适用标准。剩余标准头文件的合规性问题已不多。由于 5.0-RELEASE 的准备工作,这一领域的工作进展放缓。
DEVD 已经集成到 FreeBSD 的当前版本中。它是在一个不完全的状态下集成的。然而,在目前的状态下,它仍然能处理一些简单的任务,比如在插入 SCSI pcmcia 卡时运行 camcontrol rescan
,或在插入以太网卡时运行 /etc/pccard_ether
。更复杂的正则表达式匹配功能尚未完成。Devd 只处理设备的到达和离开,但尚未处理未知设备。此外,除了监听设备事件之外,还希望 /dev/devctl 能够允许对设备树进行一些直接控制。
该项目的主要目标是修改 IPsec 协议,以使用从 OpenBSD 导入的内核级加密子系统(详见其他地方)。次要目标是对 IPsec 协议进行性能调优。
此项工作已提交至 -current。要配置使用它,请在系统配置文件中指定选项 FAST_IPSEC
。目前,仅支持 IPv4。
链接
Evolution 1.2 也即将发布。Ximian 已发布其第一个候选版本 1.1.90,并已移植到 FreeBSD,可以从上述 MarcusCom CVS 仓库中获取。待 Ximian 正式发布 Evolution 1.2,将会将其放入 FreeBSD Ports 中。
Mozilla Port 也已更新。我们现在跟踪所有三个发布的 Mozilla 版本。mozilla-vendor Port 跟踪 1.0.x 分支,mozilla 跟踪 1.1.x,mozilla-devel 跟踪 1.2.x。mozilla-devel Port 现在支持反锯齿字体和 GTK+-2 接口。
最后,GNOME 团队欢迎他们的新成员 Adam Weinberger。Adam 一直在为 GNOME Port 和文档提交补丁。目前,他在 GNOME 2.2 的移植工作中非常活跃。我们很高兴欢迎他加入。
链接
自上次状态报告以来,BSD Java 移植团队继续稳步推进。最令人兴奋的消息来自我们最新的团队成员,FreeBSD 提交者 Alexey Zelkin。
多亏了大量的辛勤工作,主要由 Alexey 完成,项目已经非常接近能够发布我们的第一个 1.4 JDK 补丁集。报告显示,在 -CURRENT 下运行情况非常好,而 -STABLE 支持稍微落后(部分归功于 Max Khon 的 libc_r MFC)。
项目已经发布了另一个针对 1.2.2 JDK 的补丁集,主要是为了增加对 OpenBSD 和 JPDA 的支持。目前项目的大部分精力集中在 1.3 和 1.4 上,但我们仍然希望根据需要将相关修复回溯到 1.2.2。
Nate Williams 一直在幕后努力,将我们迁移到一个新的 CVS 服务器,该服务器由 FreeBSD 基金会捐赠。项目非常感激基金会的长久支持。请支持他们,以便他们能够继续支持我们和其他重要的 FreeBSD 工作!
已创建邮件列表 freebsd-mips,并在 //depot/projects/mips
中创建了一个 Perforce 分支。为了允许在一个架构平台下存在多个 MIPS(和 PowerPC)元平台,已进行必要的更改,并正在推送回主 FreeBSD 树中。一些初步的头文件工作已经完成,并且将 ARCBIOS 接口移植到内核的工作已经开始。在 Perforce 分支中,工具链已更新和修改,以支持 FreeBSD/MIPS(大端)目标。某些早期的启动代码证明 GDB MIPS 模拟器能够正常工作,至少是对于 R3000 代码,尽管是否支持 R3000 仍在讨论中。还做出了一些初步的架构决策,以指导当前的工作。
最近,sparc64 移植有了很多进展。Sysinstall 和 make release 都已工作,可以用来构建可安装的快照。Port gdb5.3 现在可以正常工作,并且多亏了 Thomas Moestl,内核崩溃转储也得到了支持,可以通过 gdb 进行分析。这两个项目是核心团队认为 FreeBSD/sparc64 成为 Tier 1 架构所必需的最后两个事项,这意味着 sparc64 的 5.0-RELEASE 将得到发布工程团队和安全官员团队的正式支持。
最近,Jake Burkholder 一直在研究除了可启动 ISO 之外的替代安装方法,包括一个可以写入现有机器的交换分区的迷你根文件系统。Thomas Moestl 一直在完善发布过程,确保发布文档可以正确构建,并且可以通过发布过程生成 Ports 的 README 文件。
现已可以在 FreeBSD FTP 站点和镜像站点的目录 /pub/FreeBSD/development/sparc64/5.0-20021031-SNAP
中下载通过 make release 构建的实验性 ISO。预计到 11 月中旬,新的 5.0-SNAP 发布将会在几天内推出,每隔一段时间可以下载并进行 FTP 安装,具体取决于 CPU 性能和带宽。
GBDE 已经提交到 -current。
“基于 Geom 的磁盘加密”模块提供了一种非常强大的加密机制,可以保护 GEOM "磁盘"。该算法已经通过了几位经验丰富的加密专家的非正式审查。任何 GEOM 设备都可以通过 GBDE 进行保护,包括整个物理磁盘、MBR 切片、BSD 分区等。然而,无法从加密分区启动。
GBDE 的重点是保护“冷”磁盘介质。(FreeBSD 并没有很好地保护运行系统中的密钥材料不被泄露。)对于冷介质,唯一可行的攻击方式是猜测密码短语。
GBDE 多级保护方案总结:最多可以使用四个独立的密码短语解锁其各自独立的 2048 位主密钥副本。这些主密钥使用 AES/256/CBC 进行保护,密钥由从密码短语派生的 SHA-2 哈希生成。一个加盐的 MD5 哈希覆盖 sectoroffset,“挑选”出哪些主密钥字节参与 MD5 哈希,从而生成每个特定扇区的 "kkey"。kkey 使用 AES/128/CBC 加密 PRNG 生成的单次密钥,进而使用 AES/128/CBC 加密实际的扇区数据。
GBDE 具有主密钥销毁和密码短语作废功能。
有关更多细节,请参阅 gbde(4) 和 gbde(8)。
该软件由 Poul-Henning Kamp 和 NAI Labs(Network Associates, Inc. 的安全研究部门)为 FreeBSD 项目开发,属于 DARPA/SPAWAR 合同 N66001-01-C-8035("CBOSS")的一部分,作为 DARPA CHATS 研究计划的一部分。
链接
GEOM 代码现在已成为大多数(如果不是所有的话?)架构的默认设置,libdisk/sysinstall 中剩余的少数问题正在解决中。
尽管我们离完成 GEOM 的开发还有一定距离,但其当前的功能集对 FreeBSD 来说是一个重要的进步,不仅为新架构(如 sparc64、ia64 等)提供了即时支持,而且因为它从一开始就被设计为 SMPng 代码。
该软件由 Poul-Henning Kamp 和 NAI Labs(Network Associates, Inc. 的安全研究部门)为 FreeBSD 项目开发,属于 DARPA/SPAWAR 合同 N66001-01-C-8035(CBOSS
)的一部分,作为 DARPA CHATS 研究计划的一部分。
该项目的目标是导入 OpenBSD 内核级加密子系统。该设施为计算加密哈希、密码和公钥操作提供内核和用户级别对硬件加密设备的访问。该设施的主要客户端是内核 RNG(/dev/random)、网络协议(如 IPsec)以及 OpenSSL(通过 /dev/crypto 设备)。
该工作已经提交到 -current 树中。要配置该功能,请在系统配置文件中指定设备 crypto,或者可以加载 crypto 模块。/dev/crypto 设备支持通过设备 cryptodev 引入,或者通过加载 cryptodev 模块。存在两个加密设备驱动程序:ubsec(用于基于 Broadcom 的 PCI 硬件)和 hifn(用于基于 Hifn 的 PCI 硬件)。
预计该工作将于报告发布时完成并集成到 -stable 源代码树中。
链接
最近,5-current 版本发布程序出现问题,导致该项目未能发布新的快照。但 5-current FreeBSD/i386 版本已于 2002 年 10 月下旬恢复!我计划为 5-current 构建每日 FreeBSD/sparc64 快照。敬请期待...
链接
对于 4.7-RELEASE,我们在 4.7-RELEASE 发布后的 10 天内私下发布了 ja-man-doc-4.7.tgz 包,其中包含 man[1256789] 条目。Man3 更新没有进展,因为我们忙于更新其他部分。我们决定正式暂停 Man3 更新,因为我们需要把大部分时间用于赶上即将发布的 5.0-RELEASE。
链接
KDE/FreeBSD 团队在过去两个月里一直致力于两个主要目标:维护 KDE 3.0.x Port 和为即将发布的 KDE 3.1 版本做准备。
KDE 3.0 的维护由 Alan Eldrige 负责:9 月份开始时,FreeBSD 仓库中移除了 Port KDE 2.x。随后发布了 KDE 3.0.4 包,并更新了 FreeBSD Ports。
KDE 3.1 的准备工作由 Will Andrews 负责:我们花费了大量精力来改进 Fruitsalad 构建系统。现在,我们能够直接从 KDE CVS 创建包。
链接
KSE 代码现已具备了所有基本的内核功能,可以开始被用户空间使用。仍然有一些工作需要完成,尤其是在测试和熟悉阶段。
系统的常规工具尚未更改。例如,ps 和 top 等工具需要了解线程的情况。
内核中还有很多代码假设每个进程中只有一个线程。信号的处理方式尚未最终确定(尽管它们会被发送到进程中的一个随机线程 :-/)。
然而,系统调用和数据结构已经就绪。测试程序成功启动了几个线程,可以在不同的处理器上调度它们,并在完成后关闭它们。预计在本报告发布时,用户空间可能已经能够使用 KSE 对 pthread 线程进行简单调度。
我仍然需要有人接管 "官方" 网页的管理工作,因为 Jason 已经离开了。我确实不擅长 LaTeX。
链接
< http://www.FreeBSD.org/projects/libh.html>
自上次状态报告以来进展不大,除了我们现在已经恢复了仓库和开发网页的在线,感谢 John De Boskey 提供的硬件和带宽支持,免费为项目提供了托管服务。我们还将 LibH 移植到了 GCC 3.x,以便它能够在 -CURRENT 上正确编译。然而,这破坏了 tvision,因为它不能在 GCC 3.x 下编译,因此我们转向了 rhtvision,但这又导致了链接问题,所以目前我们没有控制台前端。
关于 Hui 重写和 SWIG 绑定的工作停滞了。Alex 提出了一个简单的补丁,使 Ports 系统使用 LibH 的 pkg_create 脚本来构建 libh 包,这样我们就接近实现一个真正的 pkg_create(1) 替代品了。我重写了里程碑列表,以显示一些更相关和鼓舞人心的任务,这些任务将被依次处理,以推动 LibH 向前发展。
NEWCARD 的工作继续进行。在过去几个月中,解决了一些 bug。现在你可以加载和卸载驱动程序(包括桥接),以测试对 pccard/cardbus 总线代码的更改。现在可以加载一个具有 pccard 附加的驱动程序,并使先前插入的卡片进行探测和附加。CardBus 也支持这种功能。虽然在 5.0 发布之前还有一些问题需要解决,但随着 devd 的集成,OLDCARD 的大部分老功能已经在 NEWCARD 中得以实现(目前剩下的最大问题是插座的电源控制,以及 pccardc dumpcis)。
链接
通用唯一标识符(UUID)是 128 位的值,可以在不同的节点(主机)上独立生成,产生全球唯一的字符串。UUID 也称为全局唯一标识符(GUID)。FreeBSD(libc)对 UUID 的支持符合 DCE 1.1 RPC 规范。
UUID 支持已添加到 FreeBSD -CURRENT,并将出现在 5.0 版本中。它在 IA-64 平台的 GPT 分区处理中得到了广泛应用。目前,已经提供了一个简单的手册页,概述了提供的 uuid 例程。uuidgen(1) 的许多文档补充和改进正在处理中。
PowerPC 移植已经在 NewWorld G3/G4 机器上运行无盘启动一段时间了。正在编写支持 Apple 分区图的 GEOM 模块。预计不久后将提供可安装的 ISO 镜像。
链接
RAIDFrame 于 10 月下旬被导入到 FreeBSD-current,这是 18 个月后的一个重要里程碑。它仍然非常实验性,不适合用于生产环境。网站上有一份详细的待办事项清单,我希望很快能开始处理这些事项。不过,我鼓励大家尝试并报告错误。
链接
发布工程(RE)团队已于 2002 年 10 月 10 日完成并发布了 FreeBSD 4.7 版本。此版本包含了多个基于系统的第三方软件程序的更新,以及 FreeBSD 4.6.2 的所有安全和 bug 修复。4.X 系列的下一个版本将是 FreeBSD 4.8,计划于 2003 年 2 月 1 日发布。
然而,在此之前,将发布 FreeBSD 5.0。到目前为止,由于各种稳定性问题,我们尚未能够发布 5.0-DP2 开发者快照。得益于许多开发者的努力,我们相信大多数问题已经得到解决。RE 团队希望强调的是,FreeBSD 5.0 将包含一些新的代码和特性,这些特性尚未经过广泛测试,保守的用户可能希望在近期继续跟踪 4.X 系列版本。为了提供更多信息,我们在 5.0 的发布文档中添加了《早期采用者指南》。
Brian Somers 因时间压力辞去了 RE 团队的职务。我们感谢他在 FreeBSD 4.5、4.6、4.6.2 和 4.7 中的所有帮助,我们希望继续与他作为同行开发者合作。
Scott Long 仁慈地提供帮助,改善了 RE 团队与其他开发社区之间的沟通。我们非常感谢他的帮助。
链接
在过去两个月里,TrustedBSD 的大部分进展都集中在提升 ACL 和 MAC 实现的成熟度,以及将这些特性的新增方面合并到 FreeBSD 的主 CVS 仓库中,计划包含在 FreeBSD 5.0 中。这包括针对 sparc64 进行的优化、更好的系统对象调度、尤其是 vnode 和管道实现的锁定修复与优化、对符号链接上 MAC 标签的改进支持、在某些锁定场景下支持异步进程标签更改、移除对“临时标签”的使用并优先使用对象类型特定标签,减少政策中的冗余或混乱的标签管理代码,改进避免在 M_NOWAIT 场景下进行内存分配以优化同步缓存中的套接字分配、调度链接操作、修复涉及标签创建的 devfs 竞争条件问题、改进对 mmap 等 VM 事件的处理、改进套接字发送/接收事件的调度(区分于套接字传输/传递事件)、支持使用新系统调用操作符号链接上的 EA、支持挂载时使用 MNT_ACLS 和 MNT_MULTILABEL 标志,以及使用 tunefs 设置的 FS_ACLS 和 FS_MULTILABEL 超块标志以关键有用的默认值、修复 UFS ACL 代码中的内存泄漏、启用 UFS ACL 支持,默认启用 GENERIC、文件创建、删除和重命名的调度点、支持与 SELinux 的 execve_secure() 风格相似的 mac_execve() 执行接口,允许标签过渡请求作为 exec 操作的一部分,支持 NFS 查找的一致性处理、支持对多播封装数据包、ATM 数据包、FDDI 数据包、STF 数据包的标签处理、修订标签接口以避免用户空间解析每个政策元素,将政策实现细节进一步抽象到库代码中。
此外,对于 Biba 和 MLS 策略,改为使用单级套接字,支持部分标签更新,添加 mac.9 手册页,修订用户 API 系统调用,实现 mac_get_pid(),以及其他相关内容,创建 mac.conf(5) 来指定标签默认值,检查包括 swapon()、settime()、sysctl()、reboot()、acct() 等在内的多种系统操作,推出命令行工具用于维护文件和进程标签,支持与登录类相关联的用户标签、su 支持标签更改、ifconfig 支持接口标签、ps 支持进程标签、ls 支持文件标签、ftpd 支持登录标签,Biba 和 MLS 权限概念的发展,以及转向 C99 稀疏结构初始化,恢复对政策入口点的完整类型检查。
该项目的目标是改善系统中的无线网络支持。初步工作将整合由 Atsushi Onoe 为 NetBSD 完成的 802.11 链路层代码。该核心支持代码实现了 BSS、IBSS 和 Ad Hoc 模式下 Station 和 AP 操作所需的基本 802.11 协议。随后,无线设备驱动程序将被修订,以使用这一通用代码,而不是它们各自的私有实现。
在这一初步阶段之后,无线网络支持将扩展以支持工作组、企业和城市(例如网状网络)环境中所需的功能。这将包括全面的电源管理支持、用于在桥接配置中运行多个 AP 的 802.1D 生成树协议、QoS 支持和增强的安全协议(LEAP、AES、EAP)。还计划支持新的硬件设备。
联系人:Gregory Shapiro <>
联系人:Mike Barcroft <>
联系人:FreeBSD-Standards 邮件列表 <>
联系人:Warner Losh <>
联系人:Sam Leffler <>
联系人:Joe Marcus <>
联系人:Maxim Sobolev <>
联系人:Adam Weinberger <>
在过去的两个月里,GNOME 活动频繁。GNOME 已开始发布即将推出的 GNOME 2.2 桌面开发快照。FreeBSD 的移植工作已开始,并且不再局限于主 Ports,而是在 中进行。如果你有兴趣测试新的桌面环境,请按照上述 cvsweb 链接中的说明操作,并检出 port
模块。
联系人:Greg Lewis <>
联系人:Juli Mallett <>
联系人:Jake Burkholder <>
联系人:Thomas Moestl <>
联系人:Poul-Henning Kamp <>
联系人:Poul-Henning Kamp <>
联系人:Sam Leffler <>
联系人:Makoto Matsushita <>
联系人:Kazuo Horikawa <>
联系人:Will Andrews <>
联系人:KDE-FreeBSD 邮件列表 <>
联系人:Julian Elischer <>
联系人:David Xu <>
联系人:Jonathon Mini <>
联系人:Daniel Eischen <>
联系人:Antoine Beaupré <>
联系人:Alexander Langer <>
联系人:Warner Losh <>
联系人:Marcel Moolenaar <>
联系人:Peter Grehan <>
联系人:Scott Long <>
联系人:<>
联系人:Robert Watson <>
联系人:TrustedBSD 讨论邮件列表 <>
联系人:Sam Leffler <>