本报告包括了 2014 年 10 月至 12 月之间与 FreeBSD 相关的项目。这是 2014 年计划的四个报告中的最后一份。
2014 年第四季度,FreeBSD 系统进行了许多重要的改进,特别是在与其他系统的兼容性方面取得了显著进展。这包括对 Linux 兼容层的重大改进,该层用于在 FreeBSD 上运行 Linux 二进制文件,以及对 WINE 的移植,用于运行 Windows 应用程序。虚拟化支持得到提升,FreeBSD 获得了在 Xen 的新高性能 PVH 模式下作为域 0 运行的能力,bhyve 增加了对 AMD 的支持,并且新增了创建 FreeBSD 虚拟机镜像的工具。
这一季度也是工具链的活跃期,编译器、调试器和其他组件进行了大量改进,包括对 C++14 的初步支持,预计在 FreeBSD 10.2 中完成。
感谢所有报告者的出色工作!
涉及 2015 年 1 月至 3 月期间的提交截止日期为 2015 年 4 月 7 日。
联系方式:FreeBSD 发布工程团队 <re@FreeBSD.org>
FreeBSD 发布工程团队负责设定和发布 FreeBSD 官方项目发布的时间表,宣布代码冻结并维护相应的分支等工作。
FreeBSD 10.1-RELEASE 周期已于 11 月 14 日完成,标志着 stable/10 分支的第二个正式发布点,比原定时间表晚了近三周。
为了支持当前不受支持的平台,虚拟机镜像的制作工作持续进行,重点主要放在 Amazon EC2、Google Compute Engine 和 Openstack 上。
特别感谢 Ian Lepore 和 Warner Losh,现已为需要 u-boot 的 FreeBSD/arm 提供新的 Port。自 12 月下旬以来,已开始将现有的 FreeBSD/arm 发布构建工具迁移为使用这些新 Port。
该项目由 FreeBSD 基金会赞助。
联系方式:Frederic Culot <portmgr-secretary@FreeBSD.org> 联系方式: Ports 团队 <portmgr@FreeBSD.org>
截至 2014 年第四季度末, Ports 包含超过 24,000 个 Port,PR 数量略高于 1,400。与上一季度一样, Ports 经历了持续的活动,共进行了近 6,000 次提交,关闭了超过 1,600 个 Port PR!
在第四季度,五位新开发者获得了 Port 提交权限(gordon@、jmg@、jmmv@、bofh@、truckman@),六位开发者的提交权限被暂时保管(sylvio@、pclin@、flz@、jsa@、anders@、motoyuki@)。
在管理方面,miwi@ 决定在 11 月辞去其 portmgr 职位。第四季度期间,团队无其他变动。
这一季度还发布了第四个季度分支,即 2014Q4。
在质量保证方面,共进行了 39 次实验运行,以验证敏感的更新或清理工作。
第四季度在 PR 方面做了大量工作,我们非常希望看到提交者在 2015 年也能致力于关闭尽可能多的 PR!
2014 年是我们 Ports 历史上提交次数最多的一年!在 PR 方面,为了保持我们心爱的树的良好状态,我们希望开发者明年能继续保持同样的承诺!
联系方式:FreeBSD 核心团队 <core@FreeBSD.org>
FreeBSD 核心团队构成了项目的“董事会”,负责决定项目的总体目标和方向,并管理 FreeBSD 项目领域的具体事务。
在 2014 年第四季度,FreeBSD 核心团队完成了一个长期项目——重建 FreeBSD 论坛。选择的解决方案是许可 XenForo;核心团队感谢 FreeBSD 基金会支付该软件的许可费用。
在 9 月份的 EuroBSDCon 会议后,关于“新支持模型”的讨论激烈展开。大家认识到,在 10.1-RELEASE 发布之前尝试立即改变模型为时已晚,因此这一变化将瞄准 11.0-RELEASE。
为了确保 10.1-RELEASE 在发布时支持最新的 X Window 系统和 KDE4,核心团队批准了将 new Xorg
作为默认选项,并及时构建了该版本的包。
Git 被正式从测试版提升为正式支持的版本控制系统。Git 作为只读资源对下游用户开放,并包含来自 SVN 的导出副本,SVN 是主库,也是唯一的读写仓库。FreeBSD 的 Git 仓库(从主 SVN 版本控制导出)将很快在 https://git.freebsd.org/
上提供,核心团队一直在积极确保有足够的 Git 管理员,并为他们提供适当的文档,以维护良好的 Git 服务。
核心团队在一些提交者之间就系统源代码更新进行调解,并处理了关于其他关键领域工作代码质量的投诉。虽然此类分歧偶尔会发生,但核心团队提倡常规使用 Phabricator 服务,以便在提交前审查工作。及早发现问题符合项目的最佳利益,在开放的审查环境中讨论变更,应该能最大程度地减少立即撤销变更的对抗性要求。
核心团队正在为一个拟议的 QA 团队起草章程,该团队将包括发布工程和安全团队的成员,以及对标准遵从性有兴趣的提交者。预计 QA 团队将负责将代码从 HEAD 合并到 STABLE 分支,针对这些更新进行集成测试,并处理提交给 FreeBSD 项目的第三方补丁和漏洞修复。
在这一季度,核心团队发布了两位新的提交权限,并暂时保管了两位提交者的权限。
联系方式: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/amd64 平台上运行的虚拟机监控程序。目前,它支持运行 FreeBSD(8.x 或更高版本)、Linux i386/x64、OpenBSD i386/amd64 和 NetBSD/amd64 虚拟机。目前的开发集中在启用更多的客户操作系统,并实现其他虚拟机监控程序中的功能。
2014 年 10 月,bhyve 对 AMD 处理器的支持已提交至 -CURRENT,并已合并到 10-STABLE,将在 10.2 版本中包含。
2014 年 11 月,在 FreeBSD Vendor Summit 上进行了 bhyve 状态更新的演示。幻灯片可以在 http://people.freebsd.org/~neel/bhyve/bhyve_update_vendor_summit_2014.pdf 上找到。
本季度对 bhyve 进行了若干改进:
OpenBSD/i386 虚拟机现在可以启动多个 vcpu。
NetBSD/amd64 虚拟机现在完全支持。
改进了 AHCI 仿真,使其在重负载下更具韧性。
对 PIC 仿真进行了各种改进,以支持启动传统虚拟机。
完整功能的 RTC 设备仿真,允许虚拟机更改日期/时间,并支持定时和报警中断。
在 vmm.ko 中合并所有定时器仿真。这使得使用单一时钟源进行所有定时器仿真成为可能。
允许跟踪虚拟机所遭遇的每个异常。在调试虚拟机双重和三重故障时非常有用。
仿真最近的 Linux 虚拟机访问的特定平台 MSR。
对 grub-bhyve 进行了各种错误修复,使其能够启动 OpenBSD/i386 和 Centos 4.x 虚拟机。
grub-bhyve 现在能够使用 --cons-dev 选项连接到 nmdm(4) 控制台。
改进文档。
bhyveucl 是一个基于 libUCL 配置文件启动 bhyve 实例的脚本。更多信息请参见 https://github.com/allanjude/bhyveucl。
支持非 UEFI 感知虚拟机的 CSM BIOS 启动。
增加对 virtio-scsi 的支持。
改进 virtio-net,增加卸载功能,支持多个队列。
实现 Intel 82580 和 e1000 网卡仿真。
支持 Netmap。
灵活的网络后端:wanproxy、vhost-net。
从 bhyveload + bhyve 转向单进程模型。
支持以非 root 用户运行 bhyve。
为流行的虚拟机文件格式(VMDK、VHD、QCOW2)添加过滤器。
为视频实现抽象层(不在基本系统中使用 X11 或 SDL)。
支持 VNC 作为视频输出。
暂停/恢复支持。
实现实时迁移。
支持嵌套 VT-x(bhyve 在 bhyve 中运行)。
支持其他架构(ARM、MIPS、PPC)。
联系方式:Dimitry Andric <dim@FreeBSD.org> 联系方式:Ed Maste <emaste@FreeBSD.org> 联系方式:Roman Divacky <rdivacky@FreeBSD.org>
在年底之前,我们将 clang、llvm 和 lldb 更新到了 3.5.0 版本。这些版本都包含了许多改进。有关详细信息,请参阅链接中的发布说明。
这是首个需要 C++11 支持来构建的版本。目前,FreeBSD 10.0 及更高版本提供了该支持,至少在 x86 平台上是如此。
在不久的将来,来自 llvm.org 的更多组件将会在基本系统中更新,libc++ 和 libcompiler-rt 很可能是首先更新的组件。
感谢 Ed Maste、Roman Divacky、Andrew Turner、Justin Hibbits 和 Antoine Brodin 在此次导入过程中提供的宝贵帮助。
尽管大部分受到此更新影响的 Port 已经修复,但仍有一些 Port 无法与 clang 3.5.0 更新兼容。 在大多数情况下,这些问题较为简单,如新的警告或稍微严格的错误检查(主要针对 C++ 程序)。解决这些问题不应花费太多时间。
目前仍有一些 ARM、PowerPC 和 Sparc64 架构的开放问题,任何对此有帮助的贡献都将不胜感激。
联系方式:Baptiste Daroussin <bapt@FreeBSD.org> 联系方式:Warner Losh <imp@FreeBSD.org> 联系方式:Brooks Davis <brooks@FreeBSD.org>
外部工具链项目的主要目标是能够使用非默认工具链构建 world 和内核。这对于以下情况非常有帮助:
准备迁移到较新版本的工具链组件。
将 FreeBSD 移植到新架构。
从一个带有 GCC 4.2 的 FreeBSD 升级到带有 clang 3.5+ 的版本(clang 3.5+ 需要比 GCC 4.2 更现代的工具链来引导构建)。
最初的外部工具链工作仅支持 clang。它已经扩展,支持了最近的 GCC(已测试 4.9.1)和最近的 binutils(2.24 和 2.25)。
大量修复已提交至 HEAD,以支持 ld(1) 在 binutils 2.17.50(基本系统中的版本)和 binutils 2.24+ 之间的行为不兼容的变化。
在构建内核时,已禁用大量警告,以确保可以使用较新的 GCC(首先是 4.6,接着是 4.9.1)构建内核。
构建系统已经被更改,以便在使用较新的 GCC(4.6+)构建 world 时,将 libc++ 作为 C++ 标准库实现。
为了简化使用外部工具链,以下预配置选项已添加到 Ports 中:
amd64-xtoolchain-gcc
powerpc64-xtoolchain-gcc
sparc64-xtoolchain-gcc
这些软件包将依赖于 GCC 的特殊版本(最小化交叉构建的 GCC)和 binutils。要使用它们,请运行:make CROSS_TOOLCHAIN=powerpc64-gcc TARGET=powerpc TARGET_ARCH=powerpc64
通过这项努力,已经能够成功构建并运行使用 GCC 4.9.1 和 binutils 2.24 构建的内核和 world,支持 sparc64、amd64(稍作调整)、powerpc 和 powerpc64 架构。
为 FreeBSD 的 mips、arm 和 aarch64 支持 GCC 4.9 补丁,并将补丁提交给上游。
为 binutils 2.25 适配并上游提交 aarch64 补丁。
添加更多预配置选项。
联系方式:Steve Wills <swills@FreeBSD.org>
Google Cloud 是一个云计算平台,允许用户在由 Google 维护的云中运行托管服务和服务器。此项目的目标是提供一种简便的方法来创建和管理在 Google Cloud 上运行的 FreeBSD 安装。
好消息:
FreeBSD 10.1 运行良好。你可以创建一个镜像并启动它,通过标准的 ssh、gcloud 命令或通过网页控制台(在网页浏览器窗口中进行 ssh)登录。有关如何操作的更多细节,请参见链接。基本上,你应该能够使用以下命令:
然后,使用以下命令启动一个镜像:
这些命令是 Port google-cloud-sdk 的一部分,包含了与 Google Cloud 交互的所有命令。此外,还有一个 Port google-daemon,用于运行实例以创建用户并设置他们,还有一个 Port google-startup-scripts,负责按照节点元数据中指定的内容运行启动/关机脚本。
此外,firstboot-growfs Port 已经恢复,这样新的实例将会扩展它们的根文件系统。(感谢 Colin Percival 最初创建了这个 Port。)
还有一个 Port firstboot-freebsd-update,可以在首次启动时更新系统,但目前被禁用(见下文)。类似地,firstboot-pkgs Port /脚本将在首次启动时安装指定的包。
总体来说,Google Cloud Compute 非常不错;实例在大约 60 秒内启动,价格也非常合理,对于长期使用还有自动折扣。首次用户可以获得 $300 的信用,此外还可以免费试用。这个信用覆盖了相当长的时间,实例也相当快,即使是没有 SSD 的实例。
坏消息:
Google 并不像 AWS 那样轻松分享非官方镜像,所以你需要使用我的公共 tar 文件创建自己的镜像。该 tar 文件是使用链接部分中的脚本创建的。该脚本可以用来生成定制的镜像,尽管没有官方镜像(而且近期也不会有)。
在 Google Cloud 上运行 FreeBSD 存在一些问题,列在任务部分。
CPU 8 和 16 实例似乎会随机重启。
谷歌人员报告的重复 UFS panic,但我认为这些问题并非 Google Cloud 特有。panic 消息是 ffs_valloc dup alloc
。
运行 freebsd-update 会导致系统无法启动,因此更新无法工作。(其他情况下重启正常。)
Ports 中没有 gcimagebundle 命令,因此无法轻松地从运行中的机器创建镜像。
启动脚本中存在一些小问题,它应该在从现有系统创建镜像时重新生成 ssh 密钥。
10.1 可以运行,但 10.0 无法启动;其他版本尚未测试。
sysctl 节点 kern.vm_guest 无法检测到它在一个虚拟机中。
vtnet 驱动程序需要在 16 CPU 实例上禁用 wq,但目前为了简便,已在所有地方禁用。
谷歌的 safe_format_and_mount 命令(用于格式化和挂载新附加磁盘)还需要一些工作,但这实际上只是一个附加功能。
我需要研究 vtnet 的 irq affinity。
我们需要支持虚拟化时钟;bryanv@ 正在这方面进行工作。事实上,他在虚拟化领域的所有持续工作可能会使事情运作得更好。
如果能够禁用加载器之前的 spinner,那将会更好,因为它会弄乱控制台日志。禁用该功能已在 HEAD 中;希望它能在 10-STABLE 发布之前 MFC 到 10-STABLE。
联系方式:Michael Gmelin <freebsd@grem.de>
Acer C720 Chromebook 是一款功能强大且价格低廉的笔记本电脑,设计用于运行 Google 的 Chrome OS。该项目旨在将 FreeBSD 引入 C720,提供一种简单的方式,让用户在广泛可用且廉价的硬件上体验 FreeBSD。
截至此更新,大部分系统功能均已正常工作,包括键盘、WiFi、声音、VESA 图形、触控板和 USB。电池续航时间为合理的 5 到 6 小时(与 Chrome OS 发布的 8.5 小时电池寿命相比)。
精简补丁并将其合并到 HEAD。
实现挂起/恢复功能(取决于 Haswell 支持)。
联系方式:Git 讨论列表 <freebsd-git@FreeBSD.org>
一些 FreeBSD 开发人员表示有兴趣改进工具和文档,以便在处理 FreeBSD 代码时更方便地使用 Git 源代码管理(SCM)系统。以下是该领域工作的亮点:
应 Alfred Perlstein 的要求,创建了一个新的邮件列表 freebsd-git@FreeBSD.org,用于讨论在 FreeBSD 项目中使用 git。
Alfred Perlstein 提交了一个补丁到 git。这个补丁允许开发人员在 git 中处理源代码树,并使用 git-svn 将该树的更改直接推送到 Subversion 仓库并设置 Subversion 属性。在此补丁之前,git-svn 无法正确设置 Subversion 属性。对 FreeBSD 开发人员来说,这一点很重要,因为 FreeBSD Subversion 仓库会阻止未正确设置某些 Subversion 属性的提交。git 项目接受了这个变更,提交哈希为 83c9433。
Alfred Perlstein 更新了 Git 工作流的 Wiki 文档,包含了如何使用 git-svn 提交到 FreeBSD Subversion 仓库的信息。
Bartek Rutkowski 编写了一个脚本,将 Github 和 FreeBSD Bugzilla 集成。当用户在 Github 上提交针对 FreeBSD 源代码树的 pull 请求时,该脚本将在 FreeBSD Bugzilla 中打开一个新的 PR。这样,用户就可以通过 Github 的 pull 请求提交代码和补丁,并让 FreeBSD 开发人员在 Bugzilla 中跟踪该请求。当前,Github 上的 pull 请求无法直接合并到 FreeBSD 源代码树中,因为主源代码仓库目前是 Subversion。Github 上的 FreeBSD 源代码树是 FreeBSD Subversion 仓库的只读镜像。Craig Rodrigues 协调了 Bartek Rutkowski 和 bugmeister@FreeBSD.org 的工作,推动此事,并为 Bartek Rutkowski 提供了足够的 Bugzilla 访问权限,以便通过脚本打开 PR。
Github 集成脚本尚未部署,且尚未对所有针对 FreeBSD 源代码树的 pull 请求生效。Bartek Rutkowski 和 bugmeister@FreeBSD.org 需要解决脚本部署到生产环境中的最终细节。该脚本必须支持通过 HTTP POST 请求访问,因为它使用 Github REST API。Bartek Rutkowski 和 bugmeister@FreeBSD.org 需要达成协议,确定该脚本的存放位置,并进行安全审计。
联系方式:Craig Rodrigues <rodrigc@FreeBSD.org> 联系方式:Jenkins 管理员 <jenkins-admin@FreeBSD.org> 联系方式:FreeBSD 测试 <freebsd-testing@FreeBSD.org>
自上次状态报告以来,许多人在多个领域提供了帮助,推动了 FreeBSD 中的持续集成和测试工作。以下是一些亮点:
Jenkins 项目在其博客中提到,FreeBSD 如何使用 Jenkins 和 kyua 运行操作系统级测试。
Craig Rodrigues 提交了补丁,将 Jenkins 升级为使用 JNA 4.1.0。Jenkins 项目在 Jenkins 1.586 版本中接受了这些补丁 [JENKINS-24521],解决了 Jenkins 在 FreeBSD 上的 PAM 身份验证支持问题 [JENKINS-21507]。
Craig Rodrigues 在 2014 年 11 月 3 日的开发者与供应商峰会上做了一个名为“Kyua 和 Jenkins 测试框架”的演讲。在演讲中,Craig Rodrigues 介绍了在 FreeBSD 源代码树的每次提交时,如何在 bhyve 虚拟机内使用 kyua 运行近 3000 个测试。kyua 测试结果导出为 JUnit XML 格式,然后由 Jenkins 用于生成带有图表的基于 Web 的测试报告。
許立文设置了一个 Jenkins 构建,名为 FreeBSD_Doc-igor,来运行由 Warren Block 编写的 Igor 工具。Igor 用于校对 FreeBSD 文档,并报告各种错误。
Craig Rodrigues 设置了一个 Jenkins 构建,名为 FreeBSD_HEAD_sparc64,来构建 sparc64 架构的 FreeBSD HEAD 分支。
Ngie Cooper 导入了更多来自 NetBSD 的测试。导入后,/usr/tests 目录中现在有超过 3000 个测试。
Xinuous 的 Susan Stanziano 运行了 kyua 测试,并提供了关于测试错误的反馈,在 bhyve 虚拟机中运行这些测试。
Microsoft 的 Andy Zhang 运行了 kyua 测试,并提供了关于测试错误的反馈,在 Hyper-V 2012R2 虚拟机中运行。
Steve Wills 在 Google Compute Engine 上运行了 FreeBSD 测试,并提供了测试结果。
Craig Rodrigues 向 Homebrew 包管理系统提交了一个 kyua 包的配方,Homebrew 项目已接受该配方。现在,kyua 可以通过 Homebrew 包轻松地在 OS X 上安装。希望这将使得与 OS X 共享更多的测试基础设施和脚本变得更加容易。
Craig Rodrigues 向 Debian 项目提交了 kyua 包,批准仍在等待中。该包将使得在使用 Debian 包的 Linux 发行版(如 Debian、Ubuntu 和 Linux Mint)上安装 kyua 更加容易。希望这将使得与 Linux 共享更多的测试基础设施和脚本变得更加容易。
Brian Gardner 提交了运行 OpenJDK 回归测试工具 jtreg 的脚本。测试结果以 JUnit XML 格式提供,可以直接导入 Jenkins。
Ahmed Kamal,一位经验丰富的 devops 专家和 Ubuntu 项目的过去贡献者,提供帮助,协助 Craig Rodrigues 改进使用 Saltstack 自动化框架在 FreeBSD 集群中部署 Jenkins 节点的自动化工作。Ahmed 有兴趣为 FreeBSD 项目提供帮助。
Craig Rodrigues 与 Adrian Chadd 合作,设置了 MIPS 目标的 Jenkins 构建。下一步将是使 kyua 测试在 QEMU MIPS 虚拟机中运行。
设置基于不同架构的更多构建。
使用 DevOps 框架(如 Saltstack)改进 Jenkins 集群节点的维护。
获取反馈,以改进 Kyua 快速入门指南。
感兴趣的人可以加入 freebsd-testing@FreeBSD.org 邮件列表,提供帮助。
联系方式:Ed Maste <emaste@freebsd.org>
ELF 工具链项目提供 BSD 许可证下的编译工具和库,用于构建和分析 ELF 对象。该项目最初是 FreeBSD 的一部分,但现在已转为独立项目,以鼓励更多开源开发者社区成员的参与。FreeBSD 的 libelf 和 libdwarf 现在从上游源代码导入,位于 contrib/elftoolchain 中。
ELF 工具链提供了一组与 GNU Binutils 套件等效的工具。该项目的目标是将这些工具导入 FreeBSD 基本系统,以便我们拥有一组最新且得到维护的工具,并且能够支持新的 CPU 架构,如 arm64。
以下工具已经导入,并且通过设置 src.conf 选项 WITH_ELFTOOLCHAIN_TOOLS=yes
可用:
addr2line
nm
size
strings
strip (elfcopy)
一个 Port 的 exp-run 揭示了这些工具中的一些 bug。这些 bug 正在 FreeBSD 源树中修复,并且正在提交给上游项目。
ELF 工具链的 readelf 待添加了缺失的 ELF 注释解析功能后,也将启用。ELF 工具链的 elfcopy 提供与 Binutils 的 objcopy 等效的功能,并接受相同的命令行参数。为了成为替代 objcopy 在基本系统中所有用例的可行方案,它必须支持写入便携式可执行(PE)格式的二进制文件,这些格式由 UEFI 启动代码使用。
ELF 工具链项目当前并不提供 as、ld 和 objdump 的替代品。对于 FreeBSD,这些工具可能会从 LLVM 项目获取。
该项目由 FreeBSD 基金会赞助。
导入 readelf。
为 readelf 添加缺失的功能。
为 elfcopy 添加缺失的功能,并迁移基本系统构建。
修复通过模糊测试工具输入发现的问题。
将默认选项切换为 WITH_ELFTOOLCHAIN_TOOLS
。
联系方式:pkg 团队 <pkg@FreeBSD.org>
软件包开发团队发布了 pkg(8) 1.4 版本。该版本修复了许多 bug,并添加了一些新功能:
对 plist 中传递的路径进行更严格的检查
更改 ABI 字符串,使其更接近 MACHINE_ARCH
添加三方合并功能
支持多仓库配置的保守升级
多仓库优先级
1.4 版本开发方向的一个重要部分是稳定现有功能并改善 pkg(8) 在小型/嵌入式机器上的体验(减少内存使用和加速操作)。
pkg(8) 不仅是 FreeBSD 的软件包管理器,也是 DragonflyBSD 的软件包管理器。已添加对在 OS X 和 Linux 上构建 pkg(8) 的支持。这项工作将允许其他操作系统选择采用 pkg(8) 来管理其软件包,并吸引新开发者加入该项目。
添加更多回归测试。
将 FreeBSD 基本系统打包。
允许在创建软件包时使用 mtree 作为 plist。
实现灵活的依赖关系。
测试开发分支。
需要更多开发者,请查看 GitHub 上的 Issues。
联系方式:Roger Pau Monné <royger@FreeBSD.org> 联系方式:Justin T. Gibbs <gibbs@FreeBSD.org>
在本季度,几乎所有待定的 Xen 更改都已提交,使 FreeBSD 可以在新的 PVH 模式下作为 Dom0 使用。FreeBSD 支持的功能集仍然有限,但应该足以让 FreeBSD 作为 Dom0 进行基本使用。支持从 FreeBSD 引导加载程序启动 Xen 的功能将在不久后提交到 HEAD。
除了在各种硬件上进行测试,工作现已转向改善 Xen 本身的 PVH 支持,以使其与传统的 PV Dom0 功能平衡,并将 PVH ABI 声明为稳定。
关于来宾改进(在 DomU 中运行 FreeBSD),也有正在进行的工作,旨在为 Xen blkfront 添加未映射 IO 支持,这项工作被阻止,等待对通用跳跃缓冲区代码进行一些修改。
该项目由 Citrix Systems R&D 和 Spectra Logic Corporation 赞助。
在不同硬件上进行测试。
改善 netback 和 blkback 后端的性能。
与上游 Xen 合作,改进 PVH 并使其稳定。
改进通用跳跃缓冲区代码以支持 blkfront 对齐要求,从而支持未映射的 BIOS。
联系方式:Dmitry Chagin <dchagin@FreeBSD.org>
Linux 兼容层项目的主要目标是在 FreeBSD 上执行需要 glibc 2.20 或更高版本的多线程 Linux 应用程序。glibc 2.20 需要 Linux 内核(或其仿真版本)为 2.6.32 或更高版本。目前的障碍是当前的 Linuxulator 使用本地 FreeBSD 进程来仿真 Linux 线程,这会导致多个问题,包括进程重父和线程去除、wait() 和信号处理等问题。重用 FreeBSD 内核代码进行线程管理将比为 Linuxulator 创建完全新的伪线程管理代码更为理想。
目前,Linux 兼容层项目已实现了支持 glibc 2.20 所需的所有系统调用,并且更多功能已经实现,使仿真 Linux 内核版本达到 2.6.32:
使用本地线程仿真 Linux 线程
实现了 VDSO 支持,包括 DWARF 信号跳板,这对于 pthread_cancel() 中的栈展开至关重要
实现了某些 Linux 发行版使用的 "vsyscall hack",包括 CentOS 6
实现了 epoll() 系统调用仿真
添加了对 x86_64 的支持
修复了许多 bug
该项目的代码位于 FreeBSD 项目的 Subversion 仓库 base/user/dchagin/lemul(稍微有些过时)。为了促进将改进合并到 head,已经将一些补丁放到 reviews.FreeBSD.org 上,标签为 #lemul。接近一半的补丁已经获得了 Ed Maste 和 Edward Tomasz Napierała 的批准。
在接下来的一两个月内审查并合并 lemul 分支到 head。
实现本地和 Linuxulator 的 inotify() 系统调用。
为 x86_64 Linuxulator 实现 ptrace() 系统调用。
为 Linuxulator 实现 signalfd() 和 timerfd() 系统调用。
为 Linuxulator 实现优先级继承 Futexes。
扩展 xucred 支持,这是许多 Linux 应用程序所需的。
联系方式:Ryan Stone <rstone@FreeBSD.org>
PCI 单根 I/O 虚拟化(SR-IOV)是 PCIe 标准的一个可选部分,提供对 PCIe 设备虚拟化的硬件加速。当 SR-IOV 被使用时,PCI 设备中的一个功能(称为物理功能,PF)将在 PCI 总线上呈现多个虚拟 PCI 功能(VF)。这些 VF 是完全独立的 PCI 设备,能够访问 PF 的资源。例如,在网络接口卡上,VF 可以独立于 PF 发送和接收数据包。
SR-IOV 的最明显用途是虚拟化。像 bhyve 这样的虚拟机监控程序可以为每个虚拟机实例化一个 VF,并通过 PCI 直通将 VF 分配给虚拟机。这将允许多个虚拟机共享对 PCI 设备的访问,而无需与虚拟机监控程序进行昂贵的通信,从而大大提高虚拟机中的 I/O 性能。
PCI 基础设施的核心工作已完成并正在审核中。目前计划在一月底之前将 PCI 基础设施提交到 head。
除了 PCI 基础设施之外,个别 PCI 驱动程序必须扩展以实现 SR-IOV。ixl(4) 驱动程序的 SR-IOV 实现正在进行中,该驱动程序支持英特尔 XL710 系列 40G 和 10G NIC。目前计划在一月底之前将其提交审查。ixgbe(4) 的实现也在进行中,但尚无完成时间表。
该项目由 Sandvine Inc. 赞助。
联系方式:Konstantin Belousov <kib@FreeBSD.org> 联系方式:Peter Holm <pho@FreeBSD.org>
在上个季度,FreeBSD 的进程管理进行了若干改进。
增加了 Reaper 功能,允许进程可靠地跟踪其所有子进程的运行和退出状态。该功能旨在改进像 timeout(1) 或 poudriere 这样的工具,防止跑偏的孙子进程逃脱控制进程的控制。该功能的设计参考了 DragonFlyBSD 和 Linux 中类似的设施,并借鉴了 Solaris 合同的一些做法。已在 r275800 提交到 HEAD。
FreeBSD 的暂停代码无法确保系统(包括软件和硬件)处于稳定一致的状态。其中一个方面是用户模式进程活动尚未停止,它们继续向硬件发出请求。在 SUSPEND_CHILD 后,期望驱动程序能够正确处理这些调用并不现实。
我们开发了一种机制,在安全点停止用户模式线程,在这些点上它们已知不会占用或等待内核资源,特别是不会等待设备请求完成。该机制基于现有的单线程代码,但进行了扩展,允许外部线程将某些进程置于停止状态。此外,增加了一种在暂停之前同步文件系统的功能,确保一致的元数据和尽可能多的缓存用户数据被写入稳定存储,以最大限度地减少恢复失败时可能造成的损害。
该代码对系统的一些部分施加了压力,导致在多个领域(包括进程管理、缓冲区缓存和系统调用处理程序)发现了一些 bug。这些 bug 已被修复,修复和功能通过一系列提交(最终在 r275745 提交)得到了完成。
在上述工作中,我们注意到进程自旋锁的职责明显超载(进程锁也是如此)。在 r275121 中将自旋锁拆分为每个功能的锁。结果,也在 r275372 中消除了对它的递归调用。
该项目由 The FreeBSD Foundation 赞助。
联系方式:Edward Tomasz Napierała <trasz@FreeBSD.org>
UEFI 安全启动是一种机制,要求启动驱动程序和操作系统加载程序必须通过授权密钥进行加密签名。它会拒绝执行任何没有正确签名的软件,旨在保护启动驱动程序和操作系统加载程序免受恶意篡改或替换。
该项目将为 FreeBSD 提供安全启动支持的初步阶段,内容包括:
创建 gnu-efi 工具链、Matthew Garrett 的 shim 加载程序和 sbsigntools 的 Port /软件包
扩展 shim 提供一个 API,供 boot1.efi 加载并验证由 shim 已知的密钥签名的二进制文件
编写 uefisign(8),一个 BSD 授权的工具,用于使用 UEFI 规范要求的 Authenticode 签名 EFI 二进制文件。
该项目由 The FreeBSD Foundation 赞助。
确保签名格式与 UEFI 规范要求完全匹配。
验证正确签名、错误签名和未签名的加载程序组件是否得到正确处理。
调查签名的内核 ELF 对象(包括模块)。
联系方式:Bjoern A. Zeeb <bz@FreeBSD.org>
自 2006 年以来,Linux 计时器功能的初步支持已经存在,但未经过测试。本次更新修正了最初的实现,并使其不仅适用于 i386,也可用于 amd64 上的 32 位 Linux 兼容层。
从 FreeBSD 10.1 开始,这使得用户能够在 FreeBSD 系统上运行另一个 FPGA 高级综合工具链和仿真平台。
该项目由 DARPA 和 AFRL 赞助。
联系方式:John-Mark Gurney <jmg@FreeBSD.org>
该项目为 OpenCrypto 框架添加了对 AES-GCM 和 AES-CTR 模式的支持。软件版本和 AES-NI 加速版本都已功能完善、工作正常并已提交。Ermal Luçi (eri@) 正在为 IPsec 添加对附加模式的支持。
该项目由 The FreeBSD Foundation 和 Netgate 赞助。
提交提供 NIST KAT 向量的 Port,以便已提交的测试能够运行。
联系方式:Nathan Whitehorn <nwhitehorn@freebsd.org> 联系方式:Justin Hibbits <jhibbits@freebsd.org> 联系方式:Adrian Chadd <adrian@freebsd.org>
IBM 和 OpenPOWER 基金会正在推动 POWER8 系统的更广泛软件和硬件生态系统。从 1 月 3 日开始,我们已在 Tyan GN70-BP010 POWER8 服务器上进行开机工作,这是一款四核 3 GHz 系统,拥有 32 个硬件线程。
该 Port 的主要目标是 OpenPOWER 硬件上提供的 PowerKVM 虚拟机监控程序。它使用与之前的 POWER 硬件上已支持的 PowerVM 虚拟机监控程序相同的软件接口。目标是在 FreeBSD 10.2 中完全支持此操作模式。目前,FreeBSD 在使用除内置虚拟化 SCSI 外的其他大容量存储驱动程序时可在虚拟机监控程序下运行;与 SCSI 驱动程序相关的问题应该很快解决。
长期目标是也能在裸机系统上运行。这需要与 OPAL 系统固件的交互,并开发用于板载 PCI、控制台和中断控制器硬件的设备驱动程序。截至 1 月 4 日,FreeBSD 内核已成功向控制台打印初始消息。
该项目由 FreeBSD 基金会赞助。
修复 PowerKVM 中的虚拟化 SCSI 驱动程序。
编写 OPAL 驱动程序。
将 loader(8) 与 petitboot 引导加载程序集成。
联系方式:Andrew Turner <andrew@FreeBSD.org> 联系方式:Ed Maste <emaste@FreeBSD.org> 联系方式:Zbigniew Bodek <zbb@semihalf.com>
ARM 的 64 位架构引起了越来越多的关注。正式名称为 AArch64,也被称为 ARMv8 和 arm64。Andrew Turner 于 2012 年底开始了 FreeBSD/arm64 移植的初步工作。
FreeBSD Foundation 目前与 ARM、Cavium、Semihalf 团队和 Andrew Turner 合作,正在将 FreeBSD 移植到 arm64,并且在 2014 年最后一个季度取得了显著进展。
截至年底,FreeBSD 已经能够在 arm64 上启动至单用户模式,执行静态和动态应用程序。正在审查的补丁使 FreeBSD 能够启动到多用户模式,预计这些补丁将很快合并。这包括在用户空间和内核中实现许多存根函数。通过这些更新,FreeBSD 已经能够在 ARM 基金会模型和 QEMU 完整系统仿真上启动到多用户模式。
Cavium 提供了他们的 Thunder X 硬件的软件仿真器。FreeBSD 在该仿真器上的启动工作已经开始,包括为 ARM 通用中断控制器 v3(GICv3)编写新的驱动程序,并为 PCIe 根复合体编写初步驱动程序。通过这些更新,FreeBSD 已能够在该仿真器上启动,为硬件测试做准备。进一步的工作正在进行中,以增加完整的 PCIe 启动,并为 GICv3 中断翻译服务(ITS)和 MSI-X 增加支持。
进一步改进已在引导加载器中进行,以允许它从 UEFI 获取扁平化设备树数据并传递给内核。在内核中,已对 busdma、CPU 标识和中断处理进行改进,并添加了初步的 KDB 支持。
用于测试该移植的硬件将安装在由 Sentex Communications 托管的 FreeBSD 测试集群中。第一个参考平台,Cavium 的 ThunderX,预计将在 1 月中旬到达集群。
该项目由 FreeBSD 基金会、ARM 和 Cavium 赞助。
在真实硬件上启动并测试内核支持。
实现剩余的用户空间库和二进制文件。
制作可安装映像。
联系方式:Marcel Moolenaar <marcel@FreeBSD.org>
许多 FreeBSD 工具提供了对正在运行的 FreeBSD 系统操作状态的洞察,因此这些工具被用来定期监控系统。这些工具通常提供人类可读的输出,有时甚至优化为适应传统终端的有限宽度。这些工具通常也会被其他程序使用,其他程序希望以不同的方式呈现输出或作为其他用户界面的一部分。对于这些用例,处理机器可读的输出比处理人类可读的输出要好得多。
Juniper Networks 创建了一个名为 libxo 的库,它使得工具可以轻松地生成多种格式的输出。默认情况下,输出为文本,但引入了 --libxo 选项后,可以将其更改为 XML、JSON 和 HTML。FreeBSD 项目已经将此库导入到基本系统中,并正在重新编写工具以使用 libxo。
与此相关,FreeBSD 现在还拥有 xo 工具,允许脚本增长相同的功能。与在脚本中使用 echo 或 printf 不同,输出可以通过 xo 工具完成。
df、w 和 wc 工具已经转换为使用 libxo。netstat 工具正在转换中,其他工具也计划进行转换。
FreeBSD 包含许多工具,它们可以受益于能够生成多种输出格式的功能,但这些工具太多,短时间内无法由少数人完成转换工作。如果你或你的公司希望看到某个特定工具的转换,请考虑了解 libxo 并尝试进行该工具的转换,以提供帮助。
联系方式:Baptiste Daroussin <bapt@FreeBSD.org> 联系方式:Ulrich Spoerlein <uqs@FreeBSD.org> 联系方式:文档团队 <docs@FreeBSD.org>
mandoc(1) 已成为 HEAD 上的默认手册页格式化工具——man(1) 将默认使用 mandoc(1) 来格式化手册页,如果失败,则回退到 groff(1)。
这一变化还修复了 FreeBSD man(1) 命令无法正确处理压缩手册页中的 ".so" 的问题。
文档团队花了大量时间修复 mandoc(1) 在 FreeBSD 手册页中报告的问题,这大大提高了我们的手册页质量。
大多数仍然存在问题的手册页来自 contrib/,对于这些问题,应该向上游报告并修复。
"manlint" 目标也已切换为使用 mandoc -Tlint,这使得该目标在处理手册页时更为有用。
一些 groff(1) 和 mandoc(1) 之间的格式差异已经被发现,并报告给 mandoc 的上游开发者。
将 makewhatis(1) 切换为 mandoc(1) 附带的版本。
找到一种方法,在 Port 中检测到不兼容 mandoc(1) 的手册页,并为其创建使用 groff(1) 的 catpages。
从基本系统中移除 groff(1)。
联系方式:FreeBSD GNOME 团队 <gnome@FreeBSD.org>
FreeBSD GNOME 团队负责维护 FreeBSD 上的 GNOME、MATE 和 CINNAMON 桌面环境及图形用户界面。GNOME 3 是 GNU 项目的一部分。MATE 是 GNOME 2 桌面的一个分支。CINNAMON 是使用 GNOME 3 技术,但具有 GNOME 2 外观和感觉的桌面环境。
这一季度对 GNOME 团队来说是一个令人兴奋的时刻。我们将 GNOME 3.14.0 和 CINNAMON 2.2.16 导入了 Ports。与此同时,我们移除了旧的 GNOME 2.32 桌面。两周后,我们将 GNOME 更新为 3.14.2,并将 CINNAMON 更新为 2.4.2,这些更新是在准备初始 GNOME 3.14.0 导入时完成的。
我们将开发仓库迁移到了 GitHub。该仓库的结构如下:主分支是原始的 FreeBSD Ports,我们有针对特定主题的分支,例如 MATE 1.9 的移植(mate-1.10 分支)和 GNOME 3.15 的移植(gnome-3.16 分支)。GNOME 3.14 分支(gnome-3.14)不再使用或更新,因为内容已提交到 Port,但为了历史原因仍然保留。
GNOME 网站有些过时。正在着手更新开发部分。如果你有兴趣,欢迎提供帮助。
MATE 1.10 的移植工作正在进行中;最新的 1.9 版本已在 mate-1.10 分支中提供。
GNOME 3.16 的移植工作正在进行中,相关内容已在 gnome-3.16 分支中提供。
联系方式:FreeBSD 上的 KDE 团队 <kde@FreeBSD.org>
FreeBSD 上的 KDE 团队专注于打包和确保 KDE 和 Qt 在 FreeBSD 上的体验尽可能好。
如上个季度所提到的,Alonso Schaich (alonso@) 成为了一名提交者,并且自那时以来,在他的导师 Raphael Kubo da Costa (rakuco@) 和 Max Brazhnikov (makc@) 的帮助下,已经取得了显著进展,协助维护所有与 Qt 和 KDE 相关的 Port。
本季度,Qt 5.3 最终被提交到 Ports 中。为了实现这一目标,进行了大量的工作,包括清理和/或更改 Qt5 Port 基础设施,以使其更易于维护,同时也最终使得在系统上已经安装较旧版本的情况下构建较新版本成为可能。
我们还在我们的实验性 area51 仓库中更新了 KDE,并提交了其他 Port 的几个更新,如 KDevelop 和 KDE Telepathy。总体而言,我们已处理以下版本:
CMake 3.1.0(在 area51 中,正在进行实验性运行,准备提交到 Ports )
Calligra 2.8.6(在 area51 中)
KDE 4.14.2(已提交到 Port ),4.14.3(在 area51 中)
KDE Telepathy 0.8.0(已提交到 Port )
KDevelop 4.7.0(已提交到 Port )
Qt 5.3.2(已提交到 Port )
Tobias Berner 为更新 QtCreator 到 3.3.0 以及 KDE Frameworks 5 Port 贡献了补丁,这些补丁正在审核中,准备纳入我们的实验性 area51 仓库。
将 Qt5 更新为 5.4.0。
尝试为 FreeBSD 上的去除 HAL 的工作做出贡献,近期这一工作似乎获得了更多支持。
将 KDE Frameworks 5 Port 添加到我们的实验性仓库中。
联系方式:Johannes Meixner <xmj@FreeBSD.org> 联系方式:Allan Jude <allanjude@FreeBSD.org> 联系方式:Vassilis Laganakos <vassilis@einval.com>
在 Ports 中,Linux 模拟堆栈已升级以包含 CentOS 6.6,更新于 11 月 11 日。经过解决了若干引入的错误后,我们终于能够将默认的 Linux 用户空间从 Fedora 10 更新到 CentOS 6.6,更新于 12 月 9 日。提供更新的 Linux 用户空间和支持库使得大量 Linux 应用能够在 FreeBSD 上运行。
提供更新的基于 Fedora 的用户空间的目标是支持更多桌面导向的应用程序,这些应用程序需要比 CentOS 6 提供的库更新的版本。提供 CentOS 用户空间的 64 位版本将允许仅以 64 位形式提供的应用程序(例如一些科学和数学相关的应用程序)在 FreeBSD 上运行。对 64 位二进制文件的支持还需要 64 位 Linux 内核模拟层的支持,这部分来自 lemul 分支,尚需进一步测试和审查,才能合并到 HEAD 中。
该项目由 Perceivon Hosting Inc. 和 ScaleEngine Inc. 赞助。
将 Allan Jude 的 64 位 Linux Port 更新到 CentOS 6.6。
将 Fedora 20 基本/用户空间 Port 添加到 ports/head。
重构 Mk/bsd.linux-*.mk 以便促进上述更新。
推动 Dmitry Chagin 的 lemul 分支的测试和合并(更新的 Linux 内核模拟和 64 位支持)。
联系方式:FreeBSD 图形团队 <freebsd-x11@FreeBSD.org>
Mesa 已经升级到 10.3,然后是 10.4,用于 FreeBSD 10.1-RELEASE 和 11-CURRENT。我们测试发布候选版本,因此这个 Port 现在通常会在新版本发布后不久进行更新。Mesa 10.x 在 OpenGL 标准支持、性能和稳定性方面带来了巨大的改进,尤其是对于 Radeon 用户。Mesa 9.1 保持支持 FreeBSD 9.x,但我们计划修复这一点;见下文。
graphics/gbm 和 devel/libclc 是 Mesa 用于实现 OpenCL 的新 Port。下一步是完成 Mesa 的 libOpenCL.so(名为 Clover)的 Port。这将使用户能够在 Radeon GPU 上运行 OpenCL 程序。
xserver 已从 1.12 升级到 1.14。这是支持 Mesa 9.1 的最后一个 xserver 版本。变更已在博客文章中介绍。最显著的变化是从基于 HAL 的输入设备检测后端切换到基于 devd(8) 的后端。hald(8) 仍然被许多桌面环境需要,但 X.Org 服务器本身已不再依赖它。
xserver 是最后一个支持选项 WITH_NEW_XORG
的 Port。该选项现在已经完全移除。这是将 WITH_NEW_XORG 和 WITH_KMS 添加到废弃开关列表的契机,帮助用户清理他们的 make.conf。同时,新的 xorg 替代 pkg 仓库也已废弃。
经过讨论,默认启用了以下两个选项:
graphics/dri 中的 TEXTURE_FLOAT,允许 Mesa 宣布支持 OpenGL 3.0+;
print/freetype2 中的 LCD_FILTERING,启用子像素渲染引擎,改善字体抗锯齿效果。
这两个包现在提供了更好的开箱体验。用户如果不喜欢这些选项,可以取消并重新构建 Port。无需重新构建任何其他东西。
在内核方面,Tijl Coosemans 将 AGP 支持重新添加到 TTM 内存管理器,从而支持 Radeon 驱动程序。他的工作已合并到 stable/10 分支,并将在 FreeBSD 10.2-RELEASE 中提供。
我们已将 Ports 开发树迁移到 Git 和 GitHub。跟踪官方 Ports 中的更改和准备补丁变得更加容易。此外,我们可以接受 pull 请求。有关此更改的所有原因已在博客中详细说明,工作流程也已在 wiki 中描述。
XDC 2014(X 开发者大会)是一场非常棒的会议。恢复与图形堆栈开发者的关系取得了成功!报告已在博客中发布。
我们的路线图中的下一项任务是:
提供 FreeBSD 10.1-RELEASE 的 i915 驱动程序给 FreeBSD 9.x 用户通过新 Port。这项工作正在进行中,但它将使我们能够移除 Mesa 9.1,并使 Mesa 10.4 在所有地方可用。
待 Mesa 9.1 被移除,我们可以将 xserver 更新为 1.16。
查看 “图形” wiki 页面以获取最新信息。
联系方式:Gerald Pfeifer <gerald@FreeBSD.org> 联系方式:David Naylor <dbn@FreeBSD.org> 联系方式:Kris Moore <kmoore@FreeBSD.org>
FreeBSD 上的 Wine 项目在过去三个季度中稳步推进,并已更新了以下版本的 Port :
稳定版本:1.6.2(3 次 Port 修订)
开发版本:1.7.16 到 1.7.33
这些 Port 已为 FreeBSD 8.4、9.1+、10.0+ 和 CURRENT 的 amd64 提供了构建的包(通过 Port emulators/i386-wine 和 i386-wine-devel 提供)。
取得的成就包括:
将 33 个补丁上游提交到 Wine 项目,以修复 FreeBSD 上的问题 —— 非常感谢 Gerald 的这项工作。
迁移到 USES 框架。
使用 X 合成扩展构建 Wine。
增加对 MPG123 和 V4L 的支持。
将对 Port -devel 所做的更改回溯到稳定 Port,并修复了细节问题。
为 Compholio 补丁创建了新的 Wine Port。
将 i386-wine(-devel) 更改为设置 LD_LIBRARY_PATH_RPATH 变量。
改进了 i386-wine(-devel) 的库捆绑。
对 i386-wine(-devel) 的 patch-nvidia.sh 脚本进行改进。
各种其他小更改。
我们感谢所有为反馈或补丁贡献的志愿者。我们还欢迎 kmoore@ 加入 Wine 团队,他在将 wine-compholio 引入 Ports方面做出了巨大贡献。
Wine 的未来发展将聚焦于:
创建一个支持 64 位的 Wine Port (即 Wine64)。
创建一个支持 WoW64 的 Wine Port (即 Wine + Wine64)。
修复 FreeBSD 8 和 9 上的目录列表问题。
维护和改进 Wine 是一项重大任务,直接影响 FreeBSD 上的最终用户,包括许多游戏玩家。如果你有兴趣帮助,请与我们联系。我们将非常欢迎补丁、提供关注点建议或与你进行交流。
打开任务和已知问题(请参阅 Wine wiki 页面)。
FreeBSD/amd64 集成(请参阅 i386-Wine wiki 页面)。
移植 WoW64 和 Wine64。
联系方式:FreeBSD Xfce 团队 <xfce@FreeBSD.org>
Xfce 是一款免费的桌面环境,适用于 Unix 和类 Unix 平台,如 FreeBSD。它旨在提供快速和轻量级的性能,同时保持视觉上的吸引力和易用性。
在这一季度,团队保持了以下应用程序的更新:
misc/xfce4-weather-plugin 0.8.5
science/xfce4-equake-plugin 1.3.6
sysutils/xfce4-netload-plugin 1.2.4
sysutils/xfce4-systemload-plugin 1.1.2
www/midori 0.5.9
x11/xfce4-taskmanager 1.1.0
x11/xfce4-whiskermenu-plugin 1.4.2
x11-wm/xfce4-desktop 4.10.3
还新增了两个 Port (来自我们的仓库):
deskutils/xfce4-volumed-pulse
x11/xfce4-dashboard
此外,我们正在着手下一个稳定版本,以下 Port 已更新:
sysutils/xfce4-power-manager 1.4.2
x11/xfce4-dashboard 0.3.4
x11-wm/xfce4-session 4.11.1
我们向上游提交了一些补丁。
bug #11104,保持 Ristretto 中的“壁纸设置”与 xfdesktop >= 4.11 兼容
bug #11249,在桌面项目编辑器中添加“隐藏”选项(被拒绝)
bug #11413,使用 sysctl(3) 和 acpi_video(4) 来支持背光
一个常见问题解答正在编写中 D1305。
找到解决方法,当 acpi_video(4) 不起作用时(面板崩溃);OpenBSD 似乎也有相同的问题。
清理补丁,以便在 Ports 中添加新的面板插件。
继续撰写文档,特别是《Porter's Handbook》。
联系方式:Michael Lucas <mwlucas@michaelwlucas.com>
第一本小型 FreeBSD 书籍《FreeBSD Mastery: Storage Essentials》现已上市。
Lucas 正在撰写有关 ZFS、专用文件系统和 jail 的 FreeBSD 书籍。希望它们能在 BSDCan 2015 上发布。
可以通过他的博客获取最新状态,或者在 Twitter 上关注 @mwlauthor。
将 BSDCan 推迟到六月,这样他就有更多时间来写新书。
联系方式:FreeBSD 翻译邮件列表 <freebsd-translators@FreeBSD.org>
已创建一个新的邮件列表,供将 FreeBSD 文档和程序从英语翻译成其他语言的人使用。讨论内容可以包括方法、工具和技巧。鼓励现有翻译人员加入,以便有一个统一的联系点。欢迎新翻译人员和希望参与翻译的人加入。
新成员被要求介绍自己,并提到他们有兴趣翻译的语言。
鼓励现有翻译人员加入。
欢迎并教育新志愿者。
继续实施更新和更易用的翻译系统和工具。
联系方式:Brad Davis <brd@FreeBSD.org>
我们开发了一种使用 Packer 创建 FreeBSD Vagrant 镜像的方法,以便在 VMware 和 VirtualBox 上运行。
Packer 是一个创建多个平台相同机器镜像的工具,基于单一的源配置。
Vagrant 是一个用于创建和配置轻量、可重复、便携的开发环境的工具。
要开始使用,请克隆 Git 仓库并按照 README 中的说明进行操作。更多信息可参见 Packer 和 Vagrant 网站。
联系方式:FreeBSD 论坛管理团队 <forum-admins@>
在 FreeBSD 基金会的赞助下,FreeBSD 论坛已迁移到 XenForo 软件。新软件更强大且易于使用。虽然整个论坛团队都有贡献,但 Daniel Geržo 出色地完成了现有用户和消息的导入工作,并恢复了用户们常常要求的“感谢”功能。此次升级已经完成,正好赶上 FreeBSD 10.1 发布后新用户的大量涌入,我们已经看到使用量的增加。
拥有 @FreeBSD.org 邮箱地址的开发者可以联系论坛管理员,获取带有开发者标记的 “@” 后缀的论坛用户名。
我们感谢基金会使这一切成为可能,也感谢用户在论坛上的耐心和持续参与!
此项目由 FreeBSD 基金会赞助。
鼓励更多开发者和用户尝试新的论坛。
继续收集用户反馈以进行调优和改进。
联系方式:Deb Goodkin <deb@FreeBSDFoundation.org>
FreeBSD 基金会是一家 501(c)(3) 非营利组织,致力于支持和推广全球 FreeBSD 项目和社区。大部分资金用于支持 FreeBSD 开发项目、会议和开发者峰会;购买设备以扩大和改善 FreeBSD 基础设施;并为项目提供法律支持。
我们结束了这一年,超出了筹款目标,筹集了超过 2,372,132 美元,来自 1670 名捐赠者!感谢所有在 2014 年做出捐赠的人。
我们发布了《FreeBSD 期刊》的第五期和第六期,年末时订阅人数超过 6300,超出了我们第一年 5000 订阅者的目标。我们还增加了桌面/数字版,使人们可以通过浏览器阅读杂志。我们还与期刊编辑委员会举行了会议,并制定了未来两年的编辑日程。这包括未来期刊的主题和文章。
我们是 2014 年 EuroBSDCon 的金牌赞助商,也是之前开发者峰会的赞助商。我们的几位团队成员参加了会议,使我们能够举行一次非正式的面对面董事会会议,重点支持欧洲地区。Kirk McKusick 举办了为期两天的 FreeBSD 教程,Erwin Lansing 帮助组织了开发者峰会。我们赞助了 5 位 FreeBSD 贡献者参加了此次会议。
我们是 Grace Hopper Conference 的赞助商。Dru Lavigne 进行了 "FreeBSD 介绍" 演讲,受到了广泛欢迎。我们还赞助了 Shteryana Shopova 与 Dru 一同代表 FreeBSD 在我们的展位上展示。
我们是 MeetBSD 的赞助商。我们大部分团队成员参加了这次会议。Kirk McKusick 讲解了 BSD 历史。我们还设有展位,并筹集了超过 2200 美元的捐款。我们赞助了一位人员参加了此次会议。
George 组织并主持了 MeetBSD 之后的两天硅谷供应商和开发者峰会。在这些峰会上,许多工作得以启动并完成,例如,Kirk 与各方合作推动 ino64(64 位 inode 编号)项目的进展。该项目自 2011 年作为编程之夏项目启动以来,经过一段时间停滞,现已推动进入系统。
除了上述会议,我们还帮助在以下会议中推广 FreeBSD:
LISA 会议上,Dru Lavigne 的 FreeBSD BoF 讨论会吸引了大量观众。我们还访问了湾区的一些大型 FreeBSD 用户,讨论他们使用 FreeBSD 的情况、计划和需求,并帮助促进他们与项目之间的合作。
Cheryl Blain 加入了我们的董事会,带来了强大的商业发展和筹款经验。
我们收到了历史上最大的一笔捐款,我们的财务主管制定了一个捐赠基金策略,以供我们跟进。
我们增加了 FreeBSD 的营销工作,以帮助推广和倡导 FreeBSD,并教育人们使用 FreeBSD。我们的一些 FreeBSD 营销亮点包括:
创建了 FreeBSD 10 宣传册
创建了“加入我们”宣传册以招募新成员
创建了“推荐”宣传单,鼓励更多公司为我们撰写 FreeBSD 推荐信
这些宣传单可在 FreeBSD 基金会网站 上获取,供 FreeBSD 倡导者在世界各地的会议中推广 FreeBSD。我们还在 FreeBSD Journal 和 USENIX ;login: 杂志中投放了基金会和 FreeBSD 的广告。我们正在制作每月的时事通讯,突显我们上个月对 FreeBSD 项目的支持工作。我们还发布了我们的 2014 年 12 月半年度时事通讯。
我们重新设计并推出了我们网站的第一阶段。现在,网站应该更易于导航,并能帮助你找到获取帮助或帮助基金会所需的信息。
Glen Barber 访问了微软总部,并与微软 Hyper-V 开发人员合作,解决了提供 FreeBSD 镜像给 Microsoft Azure 平台的未解决问题。
Glen 还访问了 NYI 合作设施,安装和配置了基金会购买的新服务器。
我们完成了 10.1-RELEASE 发布周期。
我们的项目开发人员和承包商一直在进行各种项目,以增加功能并改进 FreeBSD。其中一些报告已包含在本报告中。这个季度的一些工作项目包括为 FreeBSD 添加对 64 位 ARM 架构的支持、更新的 vt(4) 控制台和 UEFI 启动支持的集成工作、Secure Boot、优化内核中的 iSCSI 目标和发起者堆栈、基于 autofs 的自动挂载守护进程、迁移到 ELF 工具链、以及在 FreeBSD 加密框架中实现现代 AES 模式。
要了解更多我们如何支持 FreeBSD 项目和社区的信息,请阅读我们的 半年度时事通讯。