FreeBSD 2014 年第一季度状态报告

引言

本报告涉及了 2014 年 1 月到 3 月之间与 FreeBSD 相关的项目。这是计划中的四个报告中的第一个。

2014 年第一季度对于 FreeBSD 来说,依然是个忙碌且丰收的时节。Ports 团队发布了其具有里程碑意义的第一个季度 stable 分支。FreeBSD 在 ARM 架构上的发展持续推进,现在已能够在基于 ARM 的 ChromeBook 上运行。现在可以在多核 ARM 系统上实现 SMP。继续改进 bhyve——原生的 FreeBSD 虚拟机监控程序。一款完整的测试套件正在成型,并且 Jenkins 持续集成系统已经实现。FreeBSD 对 GCC 的补丁正在进行前向移植,Clang/LLVM 调试器 LLDB 也正在移植中。桌面使用也有所改进,工作集中在 Gnome、KDE、Xfce、KMS 视频驱动、X.org 和 vt(新控制台驱动程序,支持 KMS 和 Unicode)。Linux 和 Wine 二进制兼容层也得到了改善。UEFI 启动支持已经合并到主干中。FreeBSD 基金会继续支持 FreeBSD 的发展,赞助会议、会议以及众多开发项目。这些仅仅是其中的一部分!继续阅读,了解更多信息。

感谢所有报告者的卓越工作!本报告包含了 41 项内容, 希望你喜欢阅读。

涉及 2014 年 4 月至 6 月的提交截止日期为 2014 年 7 月 7 日。

联系方式:FreeBSD 集群管理团队 <admins@>

FreeBSD 集群管理团队负责管理项目所依赖的机器,这些机器用于同步分布式工作和通信。在本季度,团队完成了以下工作:

  • 将主电子邮件配置汇总到一个源代码控制仓库中。

  • 将 FreeBSD Web 服务器 CGI 服务迁移到新的位置(由赞助商提供)。

  • 进一步增强了我们的内部监控工具。

  • 新增了由 Yandex 托管的俄罗斯 pkg(8) 镜像。

  • 将 FreeBSD 基金会的 Web 服务迁移到新的服务器(由赞助商提供)。

此项目由 FreeBSD 基金会赞助。

联系方式:FreeBSD 核心团队 <core@FreeBSD.org>

FreeBSD 核心团队是项目的董事会,负责决定项目的整体目标和方向,并管理 FreeBSD 项目范围内的特定领域。

2014 年第一季度对核心团队来说是一个非常活跃的时期。John Baldwin 和 David Chisnall 继续协调为 9.x 和 10.x 系统提供新版 X.Org 所需的工作。随着 vt(4)(syscons(4) 的继任者,提供 KMS 支持的控制台)被合并到 stable/9 和 stable/10 中,一个备用的 pkg(8) 仓库正在为 vt(4) 和新版 X.Org 的广泛测试做准备。除此之外,John Baldwin 发布了关于新文件和具有非标准许可证文件的许可证政策。感谢 Gavin Atkinson 的努力,FreeBSD 再次成功进入了谷歌编程之夏项目,这是第十次参与。David Chisnall 报告称,libc++ 和 libstdc++ 现在都可以成功构建,因为所有符合标准的必需数值函数的实现都已添加。

核心团队在项目团队和职能上进行了一次年度审查,团队成员必须声明是否希望继续他们的服务。因此,Florian Smeets 替代 David Wolfskill 担任 Postmaster 团队的负责人,而 Glen Barber 从 Ken Smith 手中接过了 Release Engineer 领导职位。核心团队祝贺 Florian 和 Glen,并感谢 David 和 Ken 长期以来的工作。

核心团队批准了设立 Ports 安全团队的提案,该团队负责维护已移植应用程序的安全更新。在与 Port 管理团队的协调下,pkg_tools 最终被弃用,并标记为 End-of-Life 日期,以清除为 pkg(8) 开辟道路。Ports 管理团队还请求提供一种可靠跟踪用户空间 ABI 和 KBI 变化的方式,以便在 Ports 中使用。理想情况下,这可以通过在每次修复时增加 __FreeBSD_version 的值来实现,因此相应的讨论最终确定冻结发行版的 ABI 注释标签,以保持 freebsd-update(8) 的二进制补丁大小较小。相关的 Errata Notice 很快将会发布。

本季度仅有一个提交权限被保管。我们没有新的提交者加入 src/ 仓库。

联系方式:FreeBSD 文档工程团队 <doceng@FreeBSD.org>

FreeBSD 文档工程团队负责定义并跟进文档项目中提交者的目标。团队很高兴地宣布新成员——Warren Block。2014 年 3 月初,FreeBSD 文档工程团队成员开始负责 FreeBSD 网站管理员团队的工作。

链接:

http://www.FreeBSD.org/ports/

http://www.freebsd.org/doc/en_US.ISO8859-1/articles/contributing-ports/

http://portsmon.freebsd.org/index.html

http://www.freebsd.org/portmgr/index.html

http://blogs.freebsdish.org/portmgr/

http://www.twitter.com/freebsd_portmgr/

http://www.facebook.com/portmgr

http://plus.google.com/communities/108335846196454338383

联系方式:Thomas Abthorpe <portmgr-secretary@FreeBSD.org> 联系方式:Frederic Culot <culot@FreeBSD.org> 联系方式:FreeBSD Ports 管理团队 <portmgr@FreeBSD.org>

FreeBSD Ports 管理团队的职责是确保 FreeBSD Ports 开发者社区提供的 ports 是功能齐全、稳定、最新且特性丰富的。同时,团队还需协调提交者和开发人员之间的工作。

Ports 正在缓慢接近 25,000 个 ports 的阈值,而 PR(问题报告)数量已超过 1,800 个。在第一季度,我们新增了四位提交者,保管了三个提交权限,并恢复了一位提交权限。

在 1 月,担任最长时间的 Port 经理 Joe Marcus Clarke 从他的团队活跃工作中退下。同时,Ion-Mihai Tetcu 也退下了工作。幸运的是,得益于第一次 portmgr-lurkers 入选,我们能够用 Mathieu Arnold 和 Antoine Brodin 替换他们。

自 3 月 1 日起,第二批 portmgr-lurkers 开始了为期四个月的活跃工作。接下来的两位候选人是 Alexey Dokuchaev 和 Frederic Culot。

本季度还发布了第一个季度分支,即 2014Q1。此分支旨在提供一个稳定且高质量的 Ports,其中与安全修复相关的补丁以及与打包和运行时修复相关的补丁被从主分支回移植。

持续的维护工作进入了 redports.org,包括 QAT 运行和 ports 与安全更新。

待办事项

  1. 如前所述,许多 PR 仍然滞留。我们希望看到提交者专注于尽可能关闭这些 PR。

联系方式:FreeBSD Postmaster 团队 <postmaster@FreeBSD.org>

FreeBSD Postmaster 团队负责确保邮件正确地送达提交者的电子邮件地址,确保邮件列表的正常运行,并采取措施防止项目邮件服务可能遭遇的干扰,如处理垃圾邮件、病毒和恶意邮件过滤。

在 2014 年第一季度,团队完成了以下可能对公众感兴趣的事项:

  • 继续讨论当前和可能未来的邮件及垃圾邮件过滤。

  • 发现新的一年里需要做的工作(关于电子邮件归档),尽可能完成了工作,并记录下了下次操作的步骤。

  • 根据 Pietro Cerutti 的请求,将 Kubilay Kocak 添加到捐赠名单中。

  • 将 Warren Block 添加到 doceng。

  • 确保 portmgr 接收 pkg-fallout 消息的退信。

  • 创建了一个 jenkins-admin 邮件别名。

  • 重新启用了 Mailman 密码提醒邮件。

  • 发现所有 Mailman 的定时任务在 11 月升级时被禁用,重新启用了这些任务。这导致了如摘要邮件未发送等问题。

联系方式:FreeBSD 发布工程团队 <re@FreeBSD.org>

FreeBSD 发布工程团队负责设定和发布 FreeBSD 官方项目发布的时间表,宣布代码冻结,并维护相应的分支等工作。

在 1 月初,团队发现 FreeBSD 10.0 中出现了若干最后时刻的阻塞问题,这导致最终发布版本的构建被延迟。FreeBSD 10.0-RELEASE 于 1 月 20 日发布,推迟了两个月。

FreeBSD 9.3-RELEASE 的发布周期时间表已经制定并发布在网站上,发布周期将于 5 月初开始。

团队正在进行集成嵌入式架构支持的工作,作为发布构建过程的一部分。目前,支持多个 ARM 内核,特别是 Raspberry Pi、BeagleBone 和 WandBoard。

该项目由 FreeBSD 基金会赞助。

联系方式:Craig Rodrigues <rodrigc@FreeBSD.org> 联系方式:Jenkins 管理员 <jenkins-admin@FreeBSD.org> 联系方式:FreeBSD 测试 <freebsd-testing@FreeBSD.org>

Jenkins 是许多公司和开源项目用于持续集成(CI)的框架。CI 允许开发人员将代码提交到源代码管理(SCM)系统,如 Subversion,然后由自动化程序检出、构建和测试代码。Jenkins 是用 Java 语言实现的。

Ed Maste 回顾了 Craig Rodrigues 在 FreeNAS 项目中使用 Jenkins 进行的一些 CI 工作,并鼓励他为 FreeBSD 项目建立类似的系统。在 FreeBSD 集群管理团队的帮助下,他设置了一台运行两个 bhyve 虚拟机(jenkins-9.FreeBSD.org 和 jenkins-10.FreeBSD.org)的 FreeBSD 机器,并在这些机器上设置了 FreeBSD head 版本和几个稳定分支的构建。通过 jenkins.FreeBSD.org 提供的 web 界面,可以查看这些构建的状态。当任何构建失败时,系统会发送电子邮件到 freebsd-current 或 freebsd-stable 邮件列表。系统还会向最近提交代码的人员(自上次成功构建以来)发送电子邮件。

在 Jenkins 设置过程中,Craig Rodrigues 遇到了在 FreeBSD 9.2 和 FreeBSD 10.0 上运行 Java 的问题。这些问题源于 FreeBSD 虚拟内存(VM)子系统的更改。在 FreeBSD 9.2-RELEASE 上,运行 Jenkins 时,Java 会导致内核崩溃。这个问题已知,并在 9.2-RELEASE-p3 中修复。在 FreeBSD 10.0-RELEASE 上,Java 进程会随机崩溃。禁用 vm.pmap.pcid_enabled sysctl(3) 变量似乎解决了该问题。在 kern/187238 中,Henrik Gulbrandsen 提交了修复 FreeBSD VM 的补丁,Konstantin Belousov 已经将这些补丁提交到主干,目前正在进行测试。

在设置运行 Jenkins 进程的 bhyve 虚拟机时,Craig Rodrigues 编写了脚本,通过 rc.d 启动脚本启动 bhyve 虚拟机,并将其发布到 GitHub。

2014 年 2 月 19 日,Craig Rodrigues 通知 FreeBSD 开发者,Jenkins 已在 FreeBSD 集群中运行,开发者可以通过 web 界面查看构建状态。

2014 年 3 月 13 日,Craig Rodrigues 在美国加利福尼亚州山景城的 Bay Area FreeBSD 用户组(BAFUG)上做了 Jenkins 工作的演讲。该演讲的视频由 iXsystems 录制并上传到网上。

Craig Rodrigues 组建了一个志愿者团队 jenkins-admin 来帮助维护 jenkins.FreeBSD.org,并扩展 FreeBSD 集群中 Jenkins CI 的使用。jenkins-admin 包括以下人员,他们负责以下领域:

  • R. Tyler Croy 是 FreeBSD 开发者和 Jenkins 开发者,他将致力于修复 FreeBSD 特定的 Jenkins 错误。他首先着手修复 Jenkins 用于与 PAM 系统进行用户身份验证的 libpam4j 库。发布版的 libpam4j 目前无法在 FreeBSD 上运行。

  • 許立文负责维护 devel/jenkins Port。他设置了一个 Jenkins 构建,该构建运行扫描构建静态分析工具 scan-build,这是 LLVM 的一部分。

  • Steven Kreuzer 具有 Jenkins 系统管理经验。他在 jenkins.FreeBSD.org 上设置了多个构建,包括 FreeBSD 文档的 Jenkins 构建。他正在研究如何使用 Ansible 自动化配置在 FreeBSD 集群中运行 Jenkins 的虚拟机。

  • Craig Rodrigues 将在 2014 年 5 月 15 日的 FreeBSD Devsummit 上主持持续测试工作组,并将在 2014 年 5 月 17 日做 Jenkins 演讲。他还希望与 Julio Merino 合作,将 Jenkins 和 Kyua 集成。他们已经在 freebsd-testing 邮件列表中就此交换了一些邮件。

  • Steve Wills 负责维护 devel/jenkins-lts Port。他已经在 jenkins.FreeBSD.org 上实现了多个构建,这些构建检测 FreeBSD Port 仓库中的提交,然后使用 Poudrière 构建 Ports。

3 月底,Roman Bogorodskiy 向 jenkins-admin 报告说,他已成功运行 Jenkins libvirt 插件,并与他修改的 libvirt 集成以支持 bhyve。他提供了一个博客链接,描述了他的经验。

该项目由 iXsystems, Inc. 赞助。

待办事项

  1. 获取 LDAP 和 web 服务器的证书,以替换自签名证书。

  2. 在不同分支和不同配置下设置更多 FreeBSD 基础仓库的 Jenkins 构建。

  3. 在不同 FreeBSD 版本下设置更多 FreeBSD Port 仓库的 Jenkins 构建。

  4. 与 Kyua 集成,使 Jenkins 能够运行 Kyua 测试并将结果直接报告到 Jenkins 的原生 web UI 中。

  5. 编写脚本,将 Jenkins 构建的 FreeBSD 结果启动在 bhyve 虚拟机或真实硬件上。

  6. 修复 FreeBSD 上的 libpam4j。

  7. 在 2014 年 5 月 15 日的 Devsummit 上主持持续测试工作组。

  8. 在 2014 年 5 月 17 日的 BSDCan 上做 Jenkins 演讲。

链接

联系方式:Jason Edwards <sub.mesa@gmail.com>

ZFSguru 是一款多功能服务器设备,重点关注存储。它旨在将所有优秀的 BSD 和 ZFS 技术带给更广泛的受众,同时也为更高级的用户提供独特的功能和自定义选项。

默认的 ZFSguru 安装仅包含 Samba 和一个 web 界面设置,但可以通过安装名为服务的插件来轻松扩展功能。这样可以避免用户运行他们不需要且不想要的程序。高级用户仍然可以像使用普通的 FreeBSD 安装那样使用 ZFSguru,并使用 100% ZFS 设置(Root-on-ZFS)。ZFSguru 不会删除任何功能,使用类似 GENERIC 的内核,仅添加了一些额外的设置,如 InfiniBand 网络、设备轮询和 AltQ。这意味着你可以像使用 FreeBSD 安装一样使用 ZFSguru。

在 2014 年的第一个月,ZFSguru 发布了 beta9 版本的 web 界面。此次发布大幅改进了对 Samba 和 NFS 配置的支持。特别是,它为 Samba 权限添加了一个方便的拖放界面。这使得新手用户可以在各种配置下轻松配置共享访问。它既具有控制性,也具有可用性,无需手册即可操作。这就是 ZFSguru 的风格。

已经发布了基于 FreeBSD 9.2、10.0 和 head 的新系统版本。实验性的 head 版本支持 vt(4) 和 X.org 7.12.4,以及 Intel/Radeon KMS 图形驱动程序。也就是说,它包含了 FreeBSD 图形开发的最新进展。ZFSguru 项目计划在不久的将来发布 stable/10 构建,其中也包括 vt(4) 的 MFC 补丁,带有 Unicode 支持的 KMS 系统控制台。有关更多信息,请查看 vt(4) 条目。

现在,ZFS 版本 5000 在 9.2、10.0 和 head 构建中都是通用的。LZ4 压缩是 ZFS 版本 5000 的关键特性。否则,用户被建议保持其池版本不变,以最大限度地与尽可能多的 ZFS 平台兼容。只有当需要其功能时,才升级池,这样会放弃与旧存储平台的兼容性。

待办事项

  1. ZFSguru beta10 将增加新 Samba 功能的兼容性,特别是与非 Gecko 浏览器的兼容性。它还将修复一些小 bug,并通过重新设计的远程数据库系统 GuruDB 来加速某些页面的加载。

  2. ZFSguru beta11 将添加 ZFSguru 中尚缺的一个主要功能:迁移管理器。该功能允许用户维护包含其 ZFSguru 安装配置的文件。它可以像固件一样使用——将机器恢复到快照配置的精确状态和配置。它使用户能够维护 ZFSguru 配置的备份,并轻松升级到更新的 ZFSguru 系统版本。

  3. 自动化系统构建应带来更多系统镜像版本发布。

  4. 新网站,配有新的论坛和登录系统。

  5. 开发者网站,提供 GitLab 设置,允许提交 bug 报告、代码贡献、维基和墙面留言。GitLab 也作为 ZFSguru 服务提供,供有兴趣尝试 GitLab 的用户使用。

联系方式:Shawn Webb <lattera@gmail.com> 联系方式:Pintér Olivér <oliver.pntr@gmail.com>

地址空间布局随机化(ASLR)是一种计算机安全技术,用于防止缓冲区溢出攻击。为了防止攻击者可靠地跳转到内存中某个特定的已被利用的函数,ASLR 会随机排列程序关键数据区域的位置,包括可执行文件的基址、栈、堆和库的位置,来防止攻击者猜测内存地址。

我们已经为所有架构添加了 ASLR 支持。由于该功能的主要开发人员最有权限访问 amd64 架构,因此开发重点放在了 amd64 架构上。其他架构,如 ARM,存在已知的 ASLR 实现 bug,我们正在努力修复这些问题。我们还为多个基础应用程序添加了位置独立可执行文件(PIE)支持。

待办事项

  1. Shawn 拥有一台树莓派(RPI)。PIE 的功能仍有 90% 的问题。调试并修复 RPI 上的主要问题。现有的 NX 栈保护在 RPI 上未生效。正确实施的 ASLR 需要 NX 栈。

  2. Shawn 将于 2014 年 4 月 6 日收到一台 sparc64 服务器。他将测试 sparc64 上的 ASLR,识别并修复出现的 bug。

  3. Olivér 已经发现 Linux 兼容层存在一个或多个 bug,他将着手修复这些问题。

  4. Shawn 将清理代码并为更多基础应用程序添加 PIE 支持。他还将为 Ports 添加 PIE 支持,以便更广泛使用。

  5. Shawn 将在 BSDCan 2014 上做一个关于 ASLR 的演讲。

联系方式:Konstantin Belousov <kib@FreeBSD.org>

更新 Intel 图形芯片组驱动程序(i915kms)的项目正在进行中,目标是将其更新为 Linux 上游代码的最新快照。由于外部因素,进展有所延迟,但预计将在不久的将来达到一个有用的里程碑。

该项目由 FreeBSD 基金会赞助。

联系方式:Edward Tomasz Napierała <trasz@FreeBSD.org>

新的 FreeBSD 内核 iSCSI 堆栈在 FreeBSD 10.0-RELEASE 中已基本完成,但仍在向 FreeBSD head 提交持续的增强功能和 bug 修复,计划在 FreeBSD 10.1-RELEASE 发布时将其合并回 stable/10。

许多问题已得到解决,包括启用数据摘要时操作非常缓慢、影响 Hyper-V 故障转移集群的持久预留 bug,以及影响 Dell Equallogic 用户的协商问题。

还进行了许多增强功能,例如对重定向的支持,这是某些高可用性设置所必需的,并且在 iscsictl 工具中增加了修改会话参数的能力。以前,必须删除会话并重新添加。

该项目由 FreeBSD 基金会赞助。

联系方式:Edward Tomasz Napierała <trasz@FreeBSD.org>

自动挂载项目已接近功能原型阶段,预计将在下个月发出测试调用。用户空间部分包括 automountd(8) 守护进程,旨在与 OS X、Solaris 和 Linux 中的对应工具完全兼容,且几乎已完成。内核组件的工作仍在继续。

该项目由 FreeBSD 基金会赞助。

联系方式:Ryan Stone <rstone@FreeBSD.org>

PCI 单根 I/O 虚拟化(SR-IOV)是 PCIe 标准的一个可选部分,为 PCIe 设备的虚拟化提供硬件加速。当启用 SR-IOV 时,PCI 设备中的一个功能(称为物理功能或 PF)将会在 PCI 总线上呈现多个虚拟 PCI 功能(VF)。这些 VFs 是完全独立的 PCI 设备,能够访问 PF 的资源。例如,在网络接口卡上,VFs 可以独立地发送和接收数据包,而不依赖于 PF。

SR-IOV 最明显的应用场景是虚拟化。像 bhyve 这样的虚拟机监控程序可以为每个虚拟机实例化一个 VF,并使用 PCI 直通技术将 VFs 分配给虚拟机。这将允许多个虚拟机共享对 PCI 设备的访问,而无需与虚拟机监控程序进行昂贵的通信,从而大大提高虚拟机 I/O 性能。

该项目有两个部分。第一部分是在 PCI 子系统中实现一个 API,用于创建 VFs 并配置标准的 PCI 功能,如 BAR。第二部分是更新支持 SR-IOV 的 PCI 设备驱动程序,以配置它们的 VFs。例如,网络接口驱动程序通常需要为 VF 分配一个 MAC 地址,并配置接口以将发送到该 MAC 地址的数据包路由到 VF。

目前计划仅为 ixgbe(4) 驱动程序提供 SR-IOV 支持。PCI 子系统 API 设计为通用的,应该能支持任何设备的 SR-IOV,但支持 SR-IOV 需要大量的驱动程序工作,鉴于时间和硬件的限制,目前并没有计划支持其他设备。

目前,ixgbe(4) 已能够创建 VFs,而 ixgbevf 驱动程序能够传输流量。仍然需要完成支持 VLAN 标签、多播地址和其他 VF 特性的工作。此外,VF 配置需要更好地与 PF 初始化路径集成,以确保 PF 重置时不会中断 VFs 的操作。

该项目由 Sandvine, Inc. 赞助。

联系方式:Ilya Bakulin <ilya@bakulin.de>

SDIO 是一种作为现有 SD 卡标准扩展的接口,允许通过标准的 SD 控制器将不同的外设连接到主机。当前市场上销售的外设包括 WLAN/蓝牙模块、摄像头、指纹识别器和条形码扫描器。FreeBSD 驱动程序作为现有 MMC 总线的扩展实现,添加了许多新的 SDIO 特定总线方法。Marvell SDIO WLAN/BT(Avastar 88W8787)模块的驱动程序原型也在开发中,参考了现有的 Linux 驱动程序。

SDIO 卡检测和初始化已完成;大多数必要的总线方法已实现并经过测试。

WiFi 驱动程序能够将固件加载到卡上并初始化它。为了有效地处理 SDIO 卡,需要将 MMC 堆栈迁移到新的锁定模型。FreeBSD CAM 实现被认为是一个不错的选择。正在进行将 MMC 传输集成到 CAM 的工作。

待办事项

  1. SDIO 堆栈:完成 CAM 迁移。XPT 层几乎完成。缺少的是 SIM 模块,计划使用修改版的 SDHCI 控制器驱动程序,外设模块则需要移植 mmcsd(4) 驱动程序。

  2. Marvell SDIO WiFi:将其连接到 FreeBSD 网络堆栈,编写代码实现所需功能,如发送和接收数据、网络扫描等。

联系方式:Ed Maste <emaste@FreeBSD.org>

统一可扩展固件接口(UEFI)为 x86 计算机提供启动和运行时服务,是传统 BIOS 的替代品。该项目将适配 FreeBSD 加载程序和内核启动过程,以支持当今服务器、桌面和笔记本计算机中常见的 UEFI 固件。

从 Rui Paulo 的 i386 EFI 加载程序开始,Benno Rice 在 2013 年开发了一个工作中的 amd64 加载程序原型,得到了 FreeBSD 基金会的赞助。在经过精炼后,该工作已从 projects/uefi Subversion 分支合并到 FreeBSD head 中。该项目包括构建 UEFI 启用的加载程序所需的基础设施,以及内核端的更改,以解析加载程序提供的元数据。

还有许多集成任务需要完成,计划在 FreeBSD 10.1-RELEASE 发布时将 UEFI 安装和启动支持合并到 stable/10 中。

该项目由 FreeBSD 基金会赞助。

待办事项

  1. 编写手动安装文档,包括双重启动配置。

  2. 实现从 UFS/ZFS 文件系统的链式加载。

  3. 将 UEFI 配置与 FreeBSD 安装程序集成。

  4. 支持安全启动。

联系方式:Aleksandr Rybalko <ray@FreeBSD.org> 联系方式:Ed Maste <emaste@FreeBSD.org> 联系方式:Ed Schouten <ed@FreeBSD.org>

vt(4) 是对现有的、较老的虚拟终端模拟器 syscons(4) 的现代替代品。最初由于 syscons(4) 缺乏对 Unicode 的支持以及基础设施问题,推动了该项目的发展,后来该项目扩展为支持内核模式设置(KMS)的需求。

该项目现已合并到 FreeBSD 的 head、stable/10 和 stable/9 分支中。因此,可以通过使用 VT 内核配置(i386 和 amd64)或将 GENERIC 内核配置文件中的两行:

device sc
device vga

替换为以下内容来进行测试:

device vt
device vt_vga

或者,为了进行 UEFI 测试,可以使用以下行:

device vt
device vt_efifb

主要亮点:

  • 支持 Unicode。

  • 支持 CJK 字符的双宽字符。

  • 类似 xterm(1) 的终端模拟。

  • 支持内核模式设置(KMS)驱动程序(i915kms、radeonkms)。

  • 支持每个终端窗口不同的字体。

  • 简化的驱动程序。

已支持架构和硬件的简要状态:

  • amd64(VGA/i915kms/radeonkms)——可用。

  • ARM 帧缓冲——可用。

  • i386(VGA/i915kms/radeonkms)——可用。

  • IA64 —— 未测试。

  • MIPS —— 未测试。

  • PPC 和 PPC64 —— 可用,但尚未支持 X.Org。

  • SPARC —— 在某些硬件上可用(例如,Ultra 5)。

  • vesa(4) —— 进行中。

  • i386/amd64 nVidia 驱动程序 —— 不支持。应使用 VGA(计划支持 VESA)。

  • Xbox 帧缓冲驱动程序 —— 将删除,因为不再使用。

该项目由 FreeBSD 基金会赞助。

待办事项

  1. 在 /usr/share/ 下为 vt(4) 创建子目录以存储键盘映射和字体。

  2. 实现 vidcontrol(1) 支持的剩余功能。

  3. 编写 vt(4) 手册页。(此项工作正在进行中。)

  4. 支持由 kbd 设备直接处理键盘(无需 kbdmux(4))。

  5. 支持 CJK 字体。(此项工作正在进行中。)

  6. 解决某些架构上的性能问题。

  7. 默认切换到 vt(4)。

联系方式:Peter Grehan <grehan@FreeBSD.org> 联系方式:Neel Natu <neel@FreeBSD.org> 联系方式:John Baldwin <jhb@FreeBSD.org> 联系方式:Tycho Nightingale <tychon@FreeBSD.org> 联系方式:Allan Jude <freebsd@allanjude.com>

bhyve 是一款在 FreeBSD 平台上运行的第一类虚拟机监控程序。目前,它仅支持 FreeBSD(9.x 及更高版本)和 Linux 虚拟机;当前的开发工作旨在扩大对其他 x86 64 位操作系统的支持。在所有参与者的共同努力下,bhyve 已作为 FreeBSD 10.0-RELEASE 的一部分发布。对 bhyve 的兴趣增加以及首个可用版本的发布,带来了极好的反馈和许多错误报告。

本季度,bhyve 做出了一些重要改进:

  • 可选地忽略对未实现的 MSR 的访问。

  • 支持通过 ACPI S5 状态进行软关机。

  • 通过 SIGTERM 支持 ACPI 的优雅关机。

  • 修复了 Linux 虚拟机上 virtio-blk 设备在大于 4GB 内存时的问题。

  • 增加块层后端最大请求,以匹配 AHCI 命令队列深度。

  • 添加 SMBIOS 支持。

  • 改进了 nmdm 的支持,打开 tty 时非阻塞。

  • 添加 HPET 设备仿真。

  • 实现了在新 Intel CPU 上的虚拟中断传递和已发布中断处理 VT-x 特性。

  • 增加对启动 FreeBSD/i386 虚拟机的支持。

  • 增加对像 AVX 这样的特性的虚拟化 XSAVE 支持。

  • 增加支持通过 bhyveload 启动 ZFS。

待办事项

  1. 改进文档。

  2. 为 bhyve 编写手册章节。

  3. 将修复和新特性合并到 stable/10。

  4. 支持使用 UEFI 启动,而不是用户空间加载程序。

  5. 对 FreeBSD 提供 CSM BIOS 启动支持(当前没有 UEFI 支持)。

  6. 增加对 virtio-scsi 的支持。

  7. 改进 virtio-net,增加卸载特性,支持多个队列。

  8. 实现 Intel 82580 和 e1000 网络接口卡仿真。

  9. 支持 Netmap。

  10. 灵活的网络后端:wanproxy、vhost-net。

  11. 改进资源计数。

  12. 转向单进程模型,而非 bhyveload 和 bhyve。

  13. 支持以非 root 身份运行 bhyve。

  14. 增加对流行虚拟机文件格式(VMDK、VHD、QCOW2)的支持。

  15. 实现视频抽象层(不依赖 X11 或 SDL 基本系统)。

  16. 支持 VNC 作为视频输出。

  17. 实现 USB 和声音支持。

  18. 支持挂起/恢复。

  19. 支持实时迁移。

  20. 支持嵌套 VT-x(bhyve 中的 bhyve)。

  21. 支持其他架构(ARM、MIPS、PPC)。

链接:

http://www.openstack.org http://www.opencontrail.org https://github.com/Semihalf/openstack-devstack https://github.com/Semihalf/openstack-nova https://github.com/Semihalf/contrail-vrouter https://blueprints.launchpad.net/nova/+spec/freebsd-compute-node

联系方式:Grzegorz Bernacki <gjb@semihalf.com> 联系方式:Michał Dubiel <md@semihalf.com> 联系方式:Dominik Ermel <der@semihalf.com> 联系方式:Rafał Jaworowski <raj@semihalf.com>

OpenStack 是一个云操作系统,控制数据中心中大量计算、存储和网络资源。OpenContrail 是一个网络虚拟化(SDN)解决方案,包括一个网络控制器、虚拟路由器和分析引擎,可以与像 OpenStack 或 CloudStack 这样的云编排系统集成。

该工作的目标是使 FreeBSD 成为使用 OpenContrail 虚拟化网络的 OpenStack 完全支持的计算主机。主要开发领域包括:

  • bhyve 的 Libvirt 虚拟化驱动程序。

  • 通过 libvirt 计算驱动程序支持 bhyve(以及整体 FreeBSD 平台)在 nova-compute 中的使用。

  • 将 OpenContrail vRouter(转发平面内核模块)移植到 FreeBSD。

  • 将 OpenContrail Agent(网络控制节点)移植到 FreeBSD。

  • 集成与性能优化。

当前的开发状态允许展示一个运行在 FreeBSD 主机上的 OpenStack 工作演示,计算节点组件正常运行:

  • 本地 bhyve 虚拟化程序通过 nova-compute 组件驱动,用于使用 libvirt 启动虚拟机实例,使用 nova-network 组件提供简单的桥接网络功能。

  • 也可以使用 QEMU 代替 bhyve。

  • 网络方面的主要目标是使用符合现代 OpenStack 网络 API("neutron")的 OpenContrail 解决方案。

此外,OpenContrail vRouter 内核模块的初步移植已完成,并成功处理主机上的所有网络通信。

该项目由 Juniper Networks 赞助。

链接

联系方式:Ruslan Bukin <br@FreeBSD.org>

一种 Chromebook 型号是基于三星 Exynos 5 Dual 系统芯片的 ARMv7 Cortex-A15 个人计算机。目前,该项目的状态允许这些笔记本电脑从 USB 闪存启动 FreeBSD——运行稳定(包括 SMP),并且可以构建第三方应用程序。显示器和键盘也能正常工作。

感谢 Peter Grehan 提供硬件支持。

待办事项

  1. 实现键盘轮询模式。

  2. 增加对即将推出的第二代 Chromebook 的支持。

  3. 编写 SD、SATA 驱动程序。

联系方式:Andrew Turner <andrew@FreeBSD.org>

Arm64 是 FreeBSD 移植到 ARMv8 CPU 的名称,采用 AArch64 模式。直到最近,所有的 ARM CPU 设计都是 32 位的。随着 ARMv8 架构的引入,ARM 增加了一个新的 64 位模式,称为 AArch64。

在将 FreeBSD 构建并运行在 ARM 基础模型上的进展非常顺利。FreeBSD 可以为此架构进行构建,但需要一些外部工具,包括 objdump(1) 和 ld(1)。这些工具由一个外部的 binutils 版本提供,直到可以编写替代工具。

FreeBSD 将在基础模型上启动初始启动过程。加载程序已经移植到 AArch64 UEFI 环境中,可以加载并运行内核。内核能够创建初始的页表,以便能够从虚拟内存中运行。然后,它可以执行 C 代码来解析加载程序提供的内存映射。这是当前内核启动的最大进展。

目前,该工作正在 FreeBSD Subversion 仓库的一个项目分支中进行,见链接。

待办事项

  1. 实现初始的 pmap(9) 层。

  2. 编写缺失的与机器相关的代码。

  3. 在真实硬件上进行测试。

联系方式:Andrew Turner <andrew@FreeBSD.org>

FreeBSD 已更新,以允许使用 ARM EABI ABI 的 VFP 变种。VFP 单元是 ARM 硬件,用于执行浮点运算。此更新改变了 ABI,以提高使用浮点运算的代码的性能。默认情况下,FreeBSD 在所有 10.0 版本的发布中已经使用 ARM EABI。

这对在 ARMv6 或 ARMv7 SoC 系统上运行浮点运算的 FreeBSD/arm 用户非常重要。它消除了 libc 中浮点运算的慢速软件支持。这个更新与现有 ABI 大致兼容,唯一的例外是浮点值如何传递给函数。由于浮点值不会传递到内核,因此 armv6 和 armv6hf 内核将与任何用户空间兼容。

作为此更改的一部分,已更新一些支持函数,以在可用时使用 VFP 单元。现有的 armv6 目标架构将保留,以应对没有 VFP 单元的 SoC 或与新 ABI 不兼容的现有二进制文件。

待办事项

  1. 测试。

  2. 更多测试。

链接

联系人:Ian Lepore <ian@FreeBSD.org> 联系人:Olivier Houchard <cognet@ci0.org> 联系人:Wojciech Macek <wma@semihalf.com>

FreeBSD 现在支持在各种 ARM 多核系统上进行对称多处理(SMP)。将 SMP 引入 ARM 的工作已经进行了一段时间,但在过去两个月中,FreeBSD ARM 开发者社区的强力推动,使得 SMP 支持变得更加稳健并准备投入生产环境。

随着越来越多基于 ARM 的开发板和小型低功耗计算机系统的出现,这些系统配备了多核处理器。FreeBSD 现在能够充分利用这些计算能力,使得这类系统对终端用户和希望基于类似设计创建产品的供应商更具吸引力。

从 FreeBSD 头文件 r264138 起,SMP 已在所有当前支持的具有多核处理器的系统的配置文件中默认启用。这包括基于以下处理器系列的系统:

  • Allwinner A20

  • Freescale i.MX6

  • Marvell Armada XP

  • Samsung Exynos 5

  • Texas Instruments OMAP4

我们计划在 10.1-RELEASE 发布前将这项工作合并到 stable/10 分支。

此项目由 Microsemi, Inc. 和 Semihalf sp.j. 提供赞助。

联系人:Pawel Jakub Dawidek <pjd@FreeBSD.org>

auditdistd(8) 守护进程负责通过 TCP/IP 网络安全可靠地分发审计日志文件。

该守护进程现在支持客户端证书,可用于自动配置接收端 — 接收的日志文件的目录名称根据客户端证书中的 commonName 字段确定。无需再将每个发送者添加到接收端的配置文件中。

发送者的功能已扩展,允许将审计日志文件发送到多个接收端。

现在已实现完整的公钥基础设施(PKI)支持,包括对每一级的完整证书链验证、证书吊销列表(CRL)验证,并支持多个证书颁发机构(CA)证书。

此项目由 FreeBSD 基金会赞助。

联系人:Warner Losh <imp@FreeBSD.org>

在 Brooks Davis 启用外部 Clang 工具链的工作基础上,本项目希望将这一功能推广到 GCC,并同时支持不同版本的这些编译器,用于 FreeBSD 基本系统和内核。我们还希望能够实现完全从头开始交叉编译一个 Port,而不需要任何初始的二进制工件。

待办事项

  1. 设置 Subversion 项目仓库。

  2. 解决 GCC 和 Clang 对 -B 参数解释的差异问题。

  3. 支持仅基于 xdev 构建的编译器构建整个树。

  4. 支持仅基于 ports 构建的 GCC 编译器构建整个树。

  5. 支持将 FreeBSD 引导到新平台的完整引导。

联系人:Warner Losh <imp@FreeBSD.org>

并非所有的 FreeBSD 对 GCC 的修改都已经反映到上游。一大部分平台支持以及一些小的改进(例如内核格式检查器)需要向前移植(并且如果可能的话,将其推送到 GCC 上游)。

我们将专注于 FreeBSD Ports 中的 lang/gcc* Port,尝试将这些改进(可选地)包括到这些构建中。由于与外部工具链增强项目结合时的引导问题,可能需要对正常构建做一些调整。

联系人:Julio Merino <jmmv@FreeBSD.org>

FreeBSD 测试套件项目旨在为 FreeBSD 提供一套全面的测试,这些测试既易于开箱即用,也可以在系统开发过程中运行。测试套件安装在 /usr/tests/ 中,使用 kyua(1) 命令行工具(Ports 中的 devel/kyua)来运行这些测试。更多细节请参见项目页面。

自上次状态报告以来,我们在多个领域努力完善测试框架,主要进展包括:

  • 已准备并发布了项目的路线图,参见链接。

  • 通过各开发者的努力,已向测试套件添加了许多测试,特别是从 src/tools/regression/ 中整合了一大批旧测试。目前,共有 509 个测试用例在持续运行。

  • 稳定/10 分支中的测试基础设施已与主分支同步。现在应该可以无缝地将更改及其测试(如果有的话)合并到稳定分支。

  • 原先只执行 amd64 构建的测试集群已扩展为同时执行 i386 构建。此外,已配置了金丝雀机器,以便在部署前正确验证集群配置的更改。

  • 在 AsiaBSDCon 2014 上进行了 Kyua 和 FreeBSD 测试套件的教程讲解。教程资料已公开,详情请参见链接。

  • 由于 Google Code 停止提供文件下载,Kyua 和 ATF 的上游网站已迁移至 GitHub。

待办事项

  1. 默认启用测试套件的构建。

  2. 为测试集群中的失败或缺失测试运行添加警报。

  3. 为测试集群添加 bhyve 支持,以提高周转时间。

  4. 简化并改进 Kyua HTML 报告。特别是,报告将合并为单个 HTML 文件,便于管理,并包含更多有助于调试的详细信息,例如系统构建时的修订版、整个运行的日期和时长,或已安装的包列表等。

  5. 为 Kyua 添加 JUnit XML 输出,以便更好地与 Jenkins 集成。此项工作正在积极进行中,预计将在 BSDCan 2014 上准备好。

联系人:Ed Maste <emaste@FreeBSD.org>

LLDB 是与 Clang/LLVM 关联的调试器项目。它支持 Mac OS X、Linux 和 FreeBSD 平台,且正在进行对 Windows 的支持工作。它建立在 LLVM 项目中的现有组件上,例如使用 Clang 的表达式解析器和 LLVM 的反汇编器。

自上次状态更新以来,大部分工作集中在修复 bug 和实现 FreeBSD 上缺失的功能。这些改进现已包含在基本系统中的 LLDB 快照中,并更新至上游 Subversion 修订版 r202189。新更新的亮点包括:

  • 改进了远程 GDB 协议客户端。

  • 修复了大端目标的 bug。

  • 初步支持 libdispatch(GCD)队列调试。

  • 添加了 step-avoid-libraries 设置。

  • 改进了 IO 子系统(包括初步工作支持 curses GUI)。

  • 支持硬件断点。

  • 改进了通过手写汇编函数的堆栈展开。

  • 处理 variadic 函数的 DW_TAG_unspecified_parameters

  • 修复了 Ctrl+C 中断正在运行的子进程问题。

  • 修复了内存泄漏、LLDB 段错误、C++ 解码器、ELF core 文件、DWARF 调试信息等各种 bug。

LLDB 当前尚未默认构建,但可以通过在 src.conf(5) 中添加 WITH_LLDB= 来启用。对于那些希望更密切关注开发进展的人,将提供一个 Port。

此项目由 DARP/AFRL、SRI International 和剑桥大学赞助。

待办事项

  1. 添加远程调试支持(兼容 gdbserver 的 debugserver)。

  2. 添加对本地和 core 文件内核调试的支持。

  3. 在所有非 amd64 架构上实现、修复或测试支持。

  4. 验证交叉调试功能。

  5. 调查并修复测试套件失败的问题。

  6. 将 LLDB 包装为 Port。

  7. 在支持的架构中默认启用基本系统中的 LLDB。

联系人:Chromium on FreeBSD 团队 <freebsd-chromium@FreeBSD.org>

Chromium 是一项开源网页浏览器项目,Google Chrome 就是从这个项目中获取源代码。两个浏览器共享大部分代码和功能,尽管在功能上有一些小差异,而且它们的许可协议不同。在过去的四年中,Chromium 团队一直忙于将 Chromium 移植到 FreeBSD。这涉及到为 FreeBSD 修补浏览器,使其能够运行,跟踪和记录安全更新,并将补丁回归到上游。

尽管 FreeBSD 上已经有多个浏览器可用,但 Chromium 的优势包括:

  • 上游对安全问题的快速响应,导致大约每两周更新一次。

  • 为 FreeBSD 提供安全功能的测试平台,例如 Capsicum。虽然当前浏览器并未包含对这一能力和沙箱框架的支持,但一个针对 Chromium 早期版本的概念验证实现仅用了一个周末就完成。

George Liaskos 和 René Ladan 正在忙于将剩余的 FreeBSD 特定补丁提交回上游。除了使未来的更新更加简便,这有时还会提高整体代码质量。

Jonathan Anderson 最近更新了 Chromium 的 Capsicum 补丁,并与上游讨论这些补丁。

待办事项

  1. 推广 FreeBSD。尽管补丁已被人类和机器人接受,但 FreeBSD 并不是一个官方平台,因此开发者的态度各不相同。虽然 René Ladan 认为现在可能还为时过早,但调查如何使 FreeBSD(甚至 OpenBSD)成为一个官方平台,特别是在硬件和程序方面,可能会有所收获。

  2. 如果你熟悉大型源代码树,可以尝试在 FreeBSD 上构建 Chromium 的 Git 版本。如果你也愿意签署 Google 的贡献者许可协议,可以加入测试并向上游提交补丁。

联系人:John Marino <marino@FreeBSD.org>

Ada 是一种结构化、静态类型、命令式、广泛应用的面向对象高级编程语言,源自 Pascal 和其他语言,最初针对嵌入式和实时系统。自上次报告以来,Ada Port 的数量显著增长。目前有近 50 个与 Ada 相关的 Port,并且新的 Port 不断添加。

之前的计划是将基于 GCC 4.7 的 GNAT 编译器升级到基于 GCC 4.8 的版本,但最终跳过了 GCC 4.8,现在 GNAT 基于 GCC 4.9 成为标准 Ada 编译器,完全支持新的 ISO 标准 Ada 2012。迁移到更新的编译器使得多个重要 Port 如 PolyOrb 和 GPRBuild 升级到了最新版本。事实上,几乎每个 Ada Port 目前都处于其最新的上游版本。

对于非 Windows 平台的 Ada 开发,FreeBSD 和 DragonFly 无疑是首选平台。其他候选平台包括 Debian 和 Fedora,但这些平台上的 Ada 软件很少是 FreeBSD Ports 中没有的,并且 FreeBSD 上的版本通常更新。Ports 还提供了其他平台上找不到的软件,如 USAFA 的 Ironsides DNS 服务器、libsparkcrypto、matreshka、GNATDroid(Android 交叉编译器)和几个开发者库。

希望将 Ada Port 添加的一个项目是 SPARK 2014(见链接),这将使 FreeBSD 成为专业、安全关键应用开发的一个选项。此软件包预计将在夏初发布第一个版本。

联系人:Gerald Pfeifer <gerald@FreeBSD.org>

尽管在 FreeBSD 10 及更高版本中,基本系统中使用的老版本 GNU 编译器(GCC)正在逐步淘汰,但仍有许多用户希望使用——且一些平台需要——使用 GCC。

为此,Ports 中提供了多个版本的 GCC,包括 lang/gcc46、lang/gcc47、lang/gcc48 和 lang/gcc49,它们分别跟踪相关发布分支的上游快照,更重要的是,lang/gcc 作为 GCC 的标准版本,是当 Port 请求 USE_GCC=yes 时的默认版本,也是某些 USES=compiler 的情况所用版本。

在 Christoph Moench-Tegeder 的大力帮助下,他修复了许多 Port 并使不少 Port 遵守 CXXFLAGS、LDFLAGS 和相关选项,我们成功将标准版本从 GCC 4.6.4 升级到 GCC 4.7.3。Christoph 的修复同样惠及 Clang 和其他现代编译器。

对于 lang/gcc 的用户来说,这次升级非常顺利,我们通常建议使用这个 Port,而非指定版本的 Port。

在服务了十年后,lang/gcc34 退役,lang/gcc44 也在其中一半的服务时间后退役。

另外,在 John Marino 的帮助下,GCC Port 的许可证现在正确反映了编译器本身的 GPLv3 和运行时的 GPLv3 与 GCC 运行时库异常条款。后者使得使用 GCC 构建和分发非自由软件成为可能。

待办事项

  1. 将 lang/gcc 从 GCC 4.7 升级到 GCC 4.8。

联系人:FreeBSD GNOME 团队 <gnome@FreeBSD.org>

GNOME 是一种桌面环境和图形用户界面,运行在计算机操作系统之上。GNOME 是 GNU 项目的一部分,并可与包括 FreeBSD 在内的各种类 Unix 操作系统一起使用。

合并 GNOME 3 的准备工作正在进行中。文档工作有些滞后,但我们得到了关于粗略工作的坚实反馈,推动了这一进展。与此同时,需要旧版 GNOME 2 桌面 Port 的 Port 已经开始废弃。当 GNOME 桌面组件更新为 GNOME 3 版本时,这些 Port 将会失效。

得益于 Ryan Lortie(GNOME 开发者)、Ting-Wei Lan(上游贡献者)和 Koop Mast 的共同努力,我们现在拥有一个由 FreeBSD 支持的 JHbuild 构建系统。JHbuild 是一个构建系统,用于构建 GNOME 上游代码。每天两次,它会尝试从特定分支(通常是 Git 主分支)构建 GNOME 组件,以捕捉编译问题。一个积极的副作用是,它让上游知道 GNOME 仍在非 Linux 系统上运行,同时将 GNOME 代码库暴露给 Clang 编译器和 libc++。自从该项目启动以来,已经修复了超过一百个问题。

Gustau Perez 已经加入并在我们开发仓库的 ports-experimental 树中准备了 GNOME 3.12 的 Port 集。我们决定优化 GNOME 3.12,它将在准备工作(大部分)完成并且我们对其稳定性满意后进行合并。

Gustau Perez 还将 Cinnamon 2.0 移植到 FreeBSD。它将在 GNOME 3 合并后出现在 Ports 中。

MATE 1.8 于 4 月初发布,GhostBSD 的 Eric Turgeon 自愿为 FreeBSD 做这个更新。请注意,这次更新仍然基于 GTK+ 2,而基于 GTK+ 3 的 MATE 计划在 1.10 版本中推出。

待办事项

  1. 完成合并 GNOME 3 所需的工作。文档工作、 Port 废弃等。

  2. 完成 MATE 1.8 的移植工作。

  3. 协调图形团队更新 Cairo 至 1.12。

联系人:KDE/FreeBSD 团队 <kde@FreeBSD.org>

KDE 是一个国际化的自由软件社区,生产一套跨平台的应用程序,设计用于在 Linux、FreeBSD、Solaris、Microsoft Windows 和 OS X 系统上运行。KDE/FreeBSD 团队继续改进在 FreeBSD 上运行的 KDE 软件和 Qt。

在本季度,团队保持了大部分 KDE 和 Qt Port 的最新,处理了以下版本的发布:

  • KDE SC: 4.12.2、4.12.3 和 4.12.4;Workspace: 4.11.6、4.11.7 和 4.11.8

  • Qt: 5.2.1

  • KDevelop: 4.6.0

  • Digikam(及 KIPI 插件): 3.5.0

因此——根据 PortScout——kde@ 目前有 526 个 Port (从 464 增长),其中 98.86% 是最新的(从 88.15% 增长)。iXsystems 继续为团队提供机器,以构建软件包并测试更新。他们已经为 KDE/FreeBSD 团队提供了长期支持,我们对此非常感激。

一个重大变化是 KDE3 Port 的废弃,以及将 KDE4_PREFIX 移动到 LOCALBASE。此外,Qt5 的工作继续推进成熟。Raphael Kubo da Costa 一直在与上游合作,确保 Baloo(KDE SC 4.13 中的 Nepomuk 继任者)可以在非 Linux 系统上编译和运行。他的工作不仅惠及 FreeBSD,还对其他 BSD 系统和 OS X 产生了影响。

和往常一样,团队一直在寻找更多的测试人员和移植者,所以请联系我们并访问我们的主页(见链接)。如果能有更多的帮助,尤其是在消除对已废弃的 HAL 项目的依赖以及提供与 KDE 的 Bluedevil 蓝牙接口集成等任务上,将尤为有用。

该项目由 iXsystems, Inc. 赞助。

待办事项

  1. 更新过时的 Port,参见 PortScout 列表。

  2. 继续推进 Qt 5 的工作。

  3. 确保整个 KDE 堆栈(包括 Qt)与 Clang 和 libc++ 正常构建和运行。

  4. 移除对 HAL 的依赖。

联系人:Roman Bogorodskiy <novel@FreeBSD.org>

Libvirt 是一个虚拟化库,提供统一的 API,支持多种虚拟化管理程序(如 Qemu/KVM、Xen、LXC 等),并且是多个项目使用的流行库。2014 年 3 月发布的 Libvirt 1.2.2 是首次支持 bhyve 的版本。启用 bhyve 支持后,消费者可以在 libvirt 准备就绪的应用程序中使用 bhyve,而无需进行大量努力。

目前,libvirt 已支持 bhyve 的几乎所有关键功能,如虚拟机生命周期(启动、停止)、桥接网络和 virtio/SATA 驱动程序支持。工作还在继续,以实现更多的 API 调用并覆盖 bhyve 提供的更多功能。

待办事项

  1. 为 libvirt 添加接口驱动支持,需要为 FreeBSD 提供 netcf Port。

联系人:Benjamin Kaduk <bjk@FreeBSD.org>

AFS 是一个分布式网络文件系统,起源于卡内基梅隆大学的 Andrew 项目。OpenAFS 是 AFS 协议的开源实现,源自 IBM AFS,并在 IBM 公共许可证下发布。FreeBSD 上的 OpenAFS(net/openafs Port )适用于轻度使用,但尚未准备好用于生产环境。

在经历了一段时间的暂停后,我们有机会接手这个移植项目。最近的工作重点是调查阻止使用磁盘缓存缓存文件数据的错误。一个内部的 "lookupname" 抽象旨在返回一个未加锁的引用 vnode,但实际上返回了一个已加锁的引用 vnode,导致了各种失败模式,具体取决于启用了多少内核调试选项。

待办事项

  1. 跟踪涉及 AFS 根 vnode 上错误引用计数的问题,这会在关闭时产生警告。

  2. 审计所有 vnode 操作代码中的锁定情况——预计仍然会有一些锁定不正确的区域,尽管在轻负载下没有明显的问题。

联系人:FreeBSD 图形团队 <graphics-team@FreeBSD.org>

在内核方面,Radeon KMS 驱动程序已合并至 stable/9,并将包含在 FreeBSD 9.3-RELEASE 中。现在,9.x 和 10.x 分支都共享对 Intel 和 AMD GPU 的支持。

接下来的大任务是更新 DRM 通用代码和 i915 驱动程序。这两个项目都在取得良好进展,预计 DRM 更新将在四月进行更广泛的测试。Radeon 驱动程序的更新也在待办事项清单中,但目前尚未安排。

在 Ports 和软件包方面,上一季度报告中提到的 Cairo 1.12 更新已经准备好提交,因为测试人员反馈要么报告了改进,要么没有回归问题。需要提醒的是,从 Cairo 1.10 切换到 1.12 会在使用 xf86-video-intel 2.7.1 时产生显示伪影,但修复了与其他硬件/驱动程序组合的类似问题。此外,Cairo 1.12 是 Pango 1.36.0、GTK+ 3.10 和 Firefox 27.0 所必需的。此更新发布时,将会向 freebsd-x11 邮件列表发布预警邮件。

在图形堆栈的 Port 开发树中,新的 Mesa Port 正在开发中。这些 Port 是支持 GLAMOR(例如用于 Radeon HD 7000+ 显卡的基于 GL 的 2D 加速库)和 OpenCL(使用 GPU 执行非图形计算)所必需的。我们已经能够运行一些 OpenCL 程序 Hello World,在 darktable 中玩 OpenCL,但在 Clover(Mesa 的 libOpenCL 实现)和 Clang/libc++ 之间有些兼容性问题。

我们正在准备一个替代的 pkg(8) 仓库,使用 WITH_NEW_XORG 构建的软件包。目标是简化 KMS 驱动程序的使用并推进图形堆栈的更新。主 pkg(8) 仓库将继续使用默认设置(在 head 上设置了 WITH_NEW_XORG,但在稳定分支上没有)。

这将为废弃 WITH_NEW_XORG 和移除旧堆栈铺平道路。当前计划是在 2015 年 1 月 31 日 10.0-RELEASE 终止生命周期后执行此操作。届时,唯一支持的版本将是 8.4-RELEASE、9.3-RELEASE 和 10.1-RELEASE。FreeBSD 9.3 和 10.1 将完全支持使用较新的堆栈。不幸的是,FreeBSD 8.x 缺少所需的内核 DRM 基础设施:支持 X.Org 会阻碍图形堆栈的进展,待 WITH_NEW_XORG 被移除,我们将不再支持 8.x 作为桌面系统。因此,请在 9.3 或 10.1 发布时升级。

待办事项

  1. 查看图形和 WITH_NEW_XORG 维基页面,以获取最新信息。

联系人:Johannes Meixner <xmj@chaot.net>

Linux 仿真层依赖于 Linux 基础发行版及其相关的非基础软件的 Linux Port。Fedora 10 于 2006 年被导入,这也显现了出来——当前的 Linux 软件,如 Skype 4、Sublime Text 2,甚至现代游戏在提供的库中无法运行。

CentOS 6.5 于 2013 年 12 月发布,并将支持到 2017 年,因此它是更新 Port 基础设施的理想基础。基于 Carlos Jacobo Puga Medina 的工作,所有使用 Linux 的 Port 已经更新,以便与 Fedora 10 或 CentOS 6.5 一起工作。

该项目的目标是使 CentOS 6.5 成为默认的 Linux 发行版,从而让 FreeBSD 用户无需依赖虚拟化(如 VirtualBox),甚至双重启动,也能享受运行现代 Linux 二进制文件的体验。

该项目由 Goldener Grund OŸ 赞助。

待办事项

  1. 清理 Mk/bsd.linux-*.mk 并修复 ports/187786 中检测到的错误。

  2. 在 git 仓库中恢复将 c6 设置为默认的更改。

  3. 测试。

  4. 审查补丁并导入到 Ports 中(任何帮助都非常感激)。

  5. 在 Ports 中进行充分测试后,设置 c6 为默认。

联系人:Gerald Pfeifer <gerald@FreeBSD.org> 联系人:David Naylor <dbn@FreeBSD.org>

Wine 是一款免费开源的软件应用,旨在允许为 Microsoft Windows 设计的应用程序在类 Unix 操作系统上运行,如 FreeBSD。Wine 项目在本季度处于维护模式,已更新以下版本的 Port :

  • 稳定版本: 1.6.2

  • 开发版本: 1.7.9 至 1.7.15

这些 Port 为 amd64 架构提供了软件包,用户可以通过 Portemulators/i386-wine 和 emulators/i386-wine-devel 获取。

待办事项

  1. 查看 Wine 维基页面中的待办事项和已知问题部分。

  2. FreeBSD/amd64 集成,详细信息请参阅 i386-Wine 维基页面。

  3. Port 化 WoW64(支持 Windows 32 位和 64 位在同一个 Port 中)和 Wine64。

联系人:FreeBSD Xfce 团队 <xfce@FreeBSD.org>

Xfce 是一款面向 Unix 和类 Unix 平台(如 FreeBSD)的自由软件桌面环境,旨在提供快速、轻量化的体验,同时保持视觉吸引力和易用性。Xfce 团队继续保持 Xfce 桌面的每个部分都处于最新状态。

最近的提交涉及:

  • 应用程序

    • Midori (0.5.7)

    • xfburn (0.5.0)

    • xfce4-parole (0.5.4)

    • xfce4-taskmanager (1.0.1)

    • xfce4-tumbler (0.1.30)

  • 面板插件:

    • xfce4-clipman-plugin (1.2.5)

    • xfce4-equake-plugin (1.3.4)

    • xfce4-wavelan-plugin (0.5.11)

    • xfce4-whiskermenu-plugin (1.3.2)

我们还在跟踪核心组件的开发(可以在你的仓库中找到)。请参阅链接以获取如何升级这些库的文档。

  • garcon (0.3.0)

  • libxfce4menu (4.11.1)

  • libxfce4util (4.11.0)

  • xfce4-appfinder (4.11.0)

  • xfce4-desktop (4.11.4)

  • xfce4-dev-tools (4.11.0)

  • xfce4-panel (4.11.0)

  • xfce4-parole (0.6.0)

  • xfce4-settings (4.11.2)

  • xfce4-session (4.11.0)

  • xfce4-wm (4.11.1)

  • xfce4-xkb-plugin (0.7.0)

待办事项

  1. 为 xfce4-taskmanager 添加对 DragonFly 的支持。

  2. 完成将 Tango 图标主题替换为 GNOME,以解决 ports/183690(请参阅链接,Midori 仍需修复)。

联系人:Allan Jude <freebsd@allanjude.com> 联系人:Benedict Reuschling <bcr@FreeBSD.org> 联系人:Warren Block <wblock@FreeBSD.org>

ZFS 是 FreeBSD 的一项重要特性。目前在手册和在线文档中的 ZFS 相关文档严重不足。许多来自 Sun 和 Oracle 的原始文档已不再提供,或者被移除,或者是关于 ZFS 专有版本的内容。

新用户对于 ZFS 有很多问题,但关于 ZFS 的错误建议却比正确信息要多得多。当前的 FreeBSD 手册中的 ZFS 章节从配置 i386 机器以运行 ZFS 开始,这样的内容更可能吓跑新用户,而不是帮助他们正确使用 ZFS。

在 BSDCan 2013 上,开始了撰写全新 ZFS 手册章节的工作。目前该章节约包含 16,000 字,涉及了 zpool(8) 和 zfs(8) 工具的所有子命令、委托、调优,并且有一个专门的部分定义和解释了 ZFS 的术语和特性。

剩下的部分是常见问题解答(FAQ),帮助用户解决他们在使用 ZFS 时可能遇到的常见问题。希望听到其他用户的经验、问题、误解、注意事项、障碍和对 FAQ 部分的建议。此外,还希望有一个使用案例部分,突出一些 ZFS 相比传统文件系统的优势。

请将建议发送到 freebsd-doc 邮件列表。

该项目由 ScaleEngine, Inc. 赞助。

待办事项

  1. 由 Matt Ahrens(ZFS 的共同创造者)进行技术审查。

  2. 改进委托部分。

  3. 改进调优部分,添加在 head 中新增的 sysctl。

  4. 添加关于 jails 和 jailed 属性的章节。

  5. 添加 FAQ 部分。

  6. 添加使用案例部分。

  7. 一般编辑和审查。

联系人:Gavin Atkinson <gavin@FreeBSD.org> 联系人:Glen Barber <gjb@FreeBSD.org> 联系人:Wojciech Koszek <wkoszek@FreeBSD.org>

FreeBSD 很高兴能够再次成为 2014 年谷歌编程之夏的参与组织。这是我们第十次参与该项目,每年自项目创立以来我们都被选为参与组织。

今年,管理员特别努力地在大学中宣传编程之夏,联系了大约 350 所主要是波兰、英国、非洲和美国的大学,宣传编程之夏项目,特别是 FreeBSD 的参与。我们联系了技术部门和学生社团。我们制作了多种语言的海报,建议 FreeBSD 的提交者和用户将这些海报分发到当地的大学。

FreeBSD 收到了学生提交的 39 个提案,并从 Google 获得了 15 个名额。现在我们面临一个不太愉快的挑战:如何从 39 个提案中选择,既要考虑提案的质量、可行性和受欢迎程度,又要确保我们能够为每个被选中的学生提供优质的指导体验。所有导师都是自愿担任的,我们会根据导师的专业领域、项目兴趣以及与学生匹配相似的时区来配对学生和导师,以改善学生的体验。最终被接受的学生名单预计将在 4 月 21 日公布。

联系人:Deb Goodkin <deb@FreeBSDFoundation.org>

FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于支持和推动全球 FreeBSD 项目和社区。大部分资金用于支持 FreeBSD 开发项目、会议和开发者峰会,购买设备以扩展和改善 FreeBSD 基础设施,并为项目提供法律支持。

我们发布了第一期 FreeBSD 期刊,这是我们新的在线 FreeBSD 期刊。来自 FreeBSD 社区和外部社区的积极反馈令人难以置信。本季度我们开始了第二期的文章撰写和推广工作。我们还开始着手制作该杂志的动态版,可以在多种网页浏览器中阅读,包括在 FreeBSD 上运行的浏览器。

今年,我们将更多的资金投入到 FreeBSD 的宣传和教育中。你将看到更多的宣传资料、白皮书、文章等,以帮助推广 FreeBSD。

基金会于 1 月在加利福尼亚州伯克利举行了董事会会议。我们讨论了年度的长期战略和规划。我们制定了 2014 年的预算,计划筹集至少 100 万美元,并支出 90 万美元。

两项基金会赞助的项目已完成。第一个项目由 Google 共同赞助,将 Casper 守护进程集成到 FreeBSD 中。第二个项目是针对 FreeBSD 集群的 auditdistd(8) 改进。

基金会赞助的项目继续进行:Konstantin Belousov 更新了 Intel 图形驱动程序;Ed Maste 为 amd64 添加了 UEFI 引导支持;Edward Tomasz Napierała 对 autofs 自动挂载程序和内核 iSCSI 堆栈进行了增强和修复;Aleksandr Rybalko 更新了 vt(4) 系统控制台。每个项目的详细更新可以在本季度状态报告中找到。

我们是 2014 年 NYCBSDCon 的金牌赞助商,活动于 2 月 8 日在纽约举行,几位董事会成员出席了此次会议。我们还在 2 月 22-23 日的 SCALE(洛杉矶)和 3 月 22-25 日的 ICANN(新加坡)上进行了展示。

我们是 AsiaBSDCon 2014(东京,3 月 15-16 日)的赞助商。董事会成员 佐藤広生 是该会议的组织者。董事会成员 Kirk McKusick 和 George V. Neville-Neil 进行了教程讲解,Kirk 还做了主题演讲。董事会成员 Dru Lavigne 负责基金会展台,并在其中一场会议上发言。

我们成为了 BSDCan 2014(5 月 16-17 日)的 Gold+ 赞助商,并已开始联系供应商参加开发者峰会,该峰会将在 BSDCan 前两天举行。

董事会成员 George、Kirk 和 Robert Watson 推动完成了他们合著的书籍《FreeBSD 操作系统设计与实现》的最终草稿。

ITWire 编辑 Sam Varghese 发表了对 Kirk 和基金会技术经理 Ed Maste 的采访,讨论了 FreeBSD 安全引导状态。

FreeBSD 标志现在已正式注册为商标,代表 FreeBSD 操作系统。我们正在努力扩展商标注册范围,超出仅限于 FreeBSD 操作系统的范畴,但目前在使用它于服装和其他非操作系统商品时,仍需使用 TM 符号。我们继续审核请求并授权使用 FreeBSD 商标。

在完成 10.0-RELEASE 后,基金会系统管理员和发布工程师 Glen Barber 开始着手将 FreeBSD/arm 图像构建支持纳入发布构建过程。由于这项工作,FreeBSD/arm 图像现在作为每周开发快照构建的一部分生成,并可以从任何 FreeBSD FTP 镜像站点下载。当前支持的内核配置包括 BEAGLEBONE、RPI-B、PANDABOARD、WANDBOARD-QUAD 和 ZEDBOARD。

2 月份,George 访问了湾区的六家大型 FreeBSD 用户公司。这些会议旨在促进 FreeBSD 用户与 FreeBSD 项目之间的合作交流。它是一个交换信息的机会,了解客户正在做什么,以及项目中正在开展的工作。这也是一个尝试将客户与正在从事相关领域工作的 FreeBSD 开发者对接的机会。

最后更新于

这有帮助吗?