FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 中文期刊
  • 编辑日志
  • 2025-123 下游项目
    • FreeBSD 发布工程:新主管上任
    • GhostBSD:从易用到挣扎与重生
    • BSD Now 与将来
    • 字符设备驱动教程(第三部分)
    • 学会走路——连接 GPIO 系统
    • FreeBSD 中对 SYN 段的处理
    • FreeBSD 2024 年秋季峰会
  • 2024-1112 虚拟化
    • 字符设备驱动程序教程(第二部分)
    • 面向 Linux 和 Windows 用户的 bhyve
    • Xen 与 FreeBSD
    • Wifibox:一种嵌入式虚拟化无线路由器
    • 嵌入式 FreeBSD:Fabric——起步阶段
    • DGP:一种新的数据包控制方法
    • 会议报告:我在都柏林的 EuroBSDCon 体验
  • 2024-0910 内核开发
    • 字符设备驱动程序教程
    • VPP 移植到了 FreeBSD:基础用法
    • 利用 Kyua 的 Jail 功能提升 FreeBSD 测试套件的并行效率
    • FreeBSD 上的 Valgrind
    • 嵌入式 FreeBSD:探索 bhyve
    • TCP/IP 历险记:FreeBSD TCP 协议栈中的 Pacing
    • 实用软件:实现无纸化(Paperless)
  • 2024-0708 存储与文件系统
    • FreeBSD 中的 NVMe-oF
    • FreeBSD iSCSI 入门
    • 使用 ZFS 原生加密保护数据
    • 嵌入式 FreeBSD:打造自己的镜像
    • TCP LRO 简介
    • 基于 Samba 的时间机器备份
  • 2024-0506 配置管理对决
    • 基本系统中的 mfsBSD
    • rdist
    • Hashicorp Vault
    • 在 GitHub 上向 FreeBSD 提交 PR
    • 悼念 Mike Karels
    • 2024 年 5-6 月来信
    • 嵌入式 FreeBSD 面包板
    • TCP/IP 历险记:TCP BBLog
    • 实用软件:开发定制 Ansible 模块
  • 2024-0304 开发工作流与集成
    • FreeBSD 内核开发工作流程
    • FreeBSD 与 KDE 持续集成(CI)
    • 更现代的内核调试工具
    • 从零开始的 ZFS 镜像及 makefs -t zfs
    • 提升 Git 使用体验
  • 2024-0102 网络(十周年)
    • FreeBSD 中的 RACK 栈和替代 TCP 栈
    • FreeBSD 14 中有关 TCP 的更新
    • if_ovpn 还是 OpenVPN
    • SR-IOV 已成为 FreeBSD 的重要功能
    • FreeBSD 接口 API(IfAPI)
    • BATMAN:更优的可移动热点网络方式
    • 配置自己的 VPN——基于 FreeBSD、Wireguard、IPv6 和广告拦截
    • 实用软件:使用 Zabbix 监控主机
  • 2023-1112 FreeBSD 14.0
    • LinuxBoot:从 Linux 启动 FreeBSD
    • FreeBSD 容器镜像
    • 现在用 Webhook 触发我
    • 新的 Ports 提交者:oel Bodenmann (jbo@freebsd.org)
  • 2023-0910 Port 与软件包
    • 回忆录:与 Warner Losh(@imp)的访谈
    • 在你自己的仓库中定制 Poudriere 源
    • Wazuh 和 MITRE Caldera 在 FreeBSD Jail 中的使用
    • PEP 517
    • CCCamp 2023 旅行报告
  • 2023-0708 容器与云
    • 在 Firecracker 上的 FreeBSD
    • 使用 pot 和 nomad 管理 Jail
    • 会议报告:C 与 BSD 正如拉丁语与我们——一位神学家的旅程
    • 抒怀之旅:与 Doug Rabson 的访谈
    • 基于 Jail 的广告拦截教程
    • 我们收到的来信
  • 2023-0506 FreeBSD 三十周年纪念特刊
    • CheriBSD 近十多年的历程
    • AArch64:成为 FreeBSD 新的一级架构
    • 岁月如梭:我个人的时间线
    • 安装 FreeBSD 1.0:回顾 30 年前
    • ZFS 是如何进入 FreeBSD 的呢?
    • 我不是来自约克郡的,我保证!
    • 回忆录:采访 David Greenman Lawrence
    • FreeBSD 和早期的 Unix 社区
    • 早期的 FreeBSD 移植
    • FreeBSD 30 周年:成功的秘诀
    • FreeBSD 在日本:回忆之旅与今日之实
  • 2023-0304 嵌入式
    • CheriBSD port 和软件包
    • 让我们来试试 ChatGPT
    • GPU 直通
  • 2023-0102 构建 FreEBSD Web 服务器
    • ZFS 的原子 I/O 与 PostgreSQL
    • 虚拟实验室——BSD 编程研讨会
    • ZFS 简介
    • 会议报告:落基山庆祝女性计算机科学家
    • 进行中的工作/征求反馈:数据包批处理
    • 基金会与 FreeBSD 桌面
  • 2022-1112 可观测性和衡量标准
    • 在 FreeBSD 的 DDB 内核调试器中编写自定义命令
    • DTrace:老式跟踪系统的新扩展
    • 基于证书的 Icinga 监控
    • 活动监控脚本(activitymonitor.sh)
    • 实用 IPv6(第四部分)
    • EuroBSDCon 会议报道
    • 实用 Port:Prometheus 的安装与配置
    • 书评:《用火解决问题:管理老化的计算机系统(并为现代系统保驾护航)》Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones)
  • 2022-0910 安全性
    • CARP 简介
    • 重构内核加密服务框架
    • PAM 小窍门
    • SSH 小窍门
    • 实用 IPv6(第三部分)
    • 书评:Understanding Software Dynamics(深入理解软件性能——一种动态视角)—— Richard L. Sites 著
    • 访谈:保障 FreeBSD 安全性
    • MCH 2022 会议报告
  • 2022-0708 科研、系统与 FreeBSD
    • 在 FreeBSD 上构建 Loom 框架
    • 教授本科生 Unix 课程
    • FreeBSD 入门研讨会
    • 实用 IPv6(第二部分)
    • 在 2022 年及以后推广 FreeBSD
    • 进行中的工作/征求反馈:Socket 缓冲区
    • FreeBSD 开发者峰会报告
    • 支持 Electromagnetic Field 2022
  • 2022-0506 灾难恢复
    • 使用 FreeBSD 构建高弹性的私有云
    • LLDB 14 —— FreeBSD 新调试器
    • 实用 IPv6(第一部分)
    • 利用 netdump(4) 进行事后内核调试
    • 进行中的工作/征求反馈:FreeBSD 启动性能
    • 实用 Port:在 OpenZFS 上设置 NFSv4 文件服务器
  • 2022-0304 ARM64 是一级架构
    • FreeBSD/ARM64 上的数据科学
    • Pinebook Pro 上的 FreeBSD
    • 嵌入式控制器的 ACPI 支持
    • 进行中的工作/征求反馈:Lumina 桌面征集开发人员
    • 实用 Port:如何设置 Apple 时间机器
  • 2022-0102 软件与系统管理
    • 为 FreeBSD Ports 做贡献
    • 使用 Git 贡献到 FreeBSD Ports
    • CBSD:第一部分——生产环境
    • 将 OpenBSD 的 pf syncookie 代码移植到 FreeBSD 的 pf
    • 进行中的工作/征求反馈:mkjail
    • 《编程智慧:编程鬼才的经验和思考》(The Kollected Kode Vicious)书评
    • 会议报告:EuroBSDCon 2021 我的第一次 EuroBSDCon:一位新组织者的视角
  • 2021-1112 存储
    • 开放通道 SSD
    • 构建 FreeBSD 社区
    • 与完美操作系统同行 27 年
    • 进行中的工作/征求反馈:OccamBSD
    • 通过 iSCSI 导入 ZFS ZIL——不要在工作中这样做——就像我做的那样
  • 2021-0910 FreeBSD 开发
    • FreeBSD 代码审查与 git-arc
    • 如何为 FreeBSD 实现简单的 USB 驱动程序
    • 内核开发技巧
    • 程序员编程杂谈
  • 2021-0708 桌面/无线网
    • 通往 FreeBSD 桌面的直线路径
    • FreeBSD 13 中的人机接口设备 (HID) 支持
    • Panfrost 驱动程序
    • 用 Git 更新 FreeBSD
    • FreeBSD 的新面孔
    • 想给你的桌面加点佐料?
  • 2021-0506 安全
    • 七种提升新安装 FreeBSD 安全性的方法
    • copyinout 框架
    • 使用 TLS 改善 NFS 安全性
    • Capsicum 案例研究:Got
    • 对 Jail 进行安全扫描
  • 2021-0304 FreeBSD 13.0
    • 展望未来
    • FreeBSD 13.0 工具链
    • FreeBSD 13.0 中有新加载器吗?
    • TCP Cubic 准备起飞
    • OpenZFS 中的 Zstandard 压缩
    • 会议报告:FreeBSD 供应商峰会
    • Git 不够吗?
  • 2021-0102 案例研究
    • Tarsnap 的 FreeBSD 集群
    • BALLY WULFF
    • Netflix Open Connect
    • FreeBSD 的新面孔
    • 写作学者的 FreeBSD
    • 在世界之巅
  • 2020-1112 工作流/持续集成(CI)
    • FreeBSD Git 快速入门
    • 使用 syzkaller 进行内核 Fuzzing
    • Mastering Vim Quickly 书评
    • 线上会议实用技巧
    • 在控制台上进行网络监控
  • 2020-0910 贡献与入门
    • 采访:Warner Losh,第 2 部分
    • 代码审查
    • 撰写良好的提交消息
    • 如何在不是程序员的情况下做出贡献——成为 FreeBSD 译者
    • 如何成为文档提交者
    • 谷歌编程之夏
    • 为 FreeBSD 期刊撰写文章
    • 你为什么使用 FreeBSD
    • FreeBSD 的新面孔
  • 2020-0708 基准测试/调优
    • FreeBSD Friday
    • 采访:Warner Losh,第 1 部分
    • 构建和运行开源社区
    • 在 FreeBSD 上轻松搭建我的世界(Minecraft)服务器
    • FreeBSD 的新面孔
  • 2020-0506 网络性能
    • 内核中的 TLS 卸载
    • 访谈:Michael W Lucas
    • FreeBSD 桌面发行版
    • 使用 Poudriere 进行 Port 批量管理
    • FreeBSD 的新面孔
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 工具的变革
  • 规划后续系统
  • OpenZFS
  • 网络
  • 安全
  • 启动加载器
  • 虚拟化
  • 结论
在GitHub上编辑
导出为 PDF
  1. 2021-0304 FreeBSD 13.0

展望未来

上一页对 Jail 进行安全扫描下一页FreeBSD 13.0 工具链

最后更新于1个月前

  • 原文链接:

  • 作者:JOHN BALDWIN

FreeBSD 13.0 版本为用户提供了新功能,并优化了新贡献的工作流程。自 2018 年 12 月发布 12.0 版本以降,FreeBSD 的贡献者一直在忙于修复漏洞,添加新特性。此外,FreeBSD 的开发者们也进一步明确了他们的愿景,专注于 FreeBSD 未来的用户。以下是 13.0 版本中的一些变化的简要列表,详细列表请参阅发布说明。

工具的变革

在过去两年中,FreeBSD 项目的变化并非全部以补丁的形式出现。一些最大的变化体现在用于贡献代码的工具上。第一个重大变化是,FreeBSD 已经从 Subversion 转向 Git,用于存储源代码、文档和 Ports。Git 在软件行业中被广泛使用,对于新贡献者来说,比 Subversion 更加熟悉。Git 的分布式特性也更容易促成非提交者的贡献。FreeBSD 多年来一直提供 Subversion 仓库的 Git 镜像,许多开发者已经使用 Git 来管理进行中的补丁。现在,Git 镜像已经成为官方仓库,所有更改现在直接推送到 Git 而不是 Subversion。FreeBSD 13.0 是第一个仅通过 Git 而非 Subversion 提供源代码的版本。该过程的第一阶段专注于将项目现有的工作流程和工具(如 Phabricator 和 Bugzilla)适配到新的 Git 仓库。下一阶段将使我们能够探索更多工具,如提交前测试和持续集成。

第二个重大变化是采用 AsciiDoc 作为 FreeBSD 文档和网站的源格式。FreeBSD 的文档包括三个主要部分:手册页、书籍和文章(如 FreeBSD 手册)以及项目网站。书籍和文章以前使用一种名为 DocBook 的 SGML 标记语言编写,网站则直接用 HTML 编写。虽然 DocBook 语言非常有表现力,支持诸如调用、脚注和索引等多种功能,但它是个冗长的格式。自从 DocBook 最初设计以来,轻量级的标记语言如 MarkDown 已经变得流行。AsciiDoc 是一种与 MarkDown 相似的轻量级标记语言,同时保留了 DocBook 的表现力。FreeBSD 文档团队最近已将所有书籍、文章和网站转换为 AsciiDoc 格式。这提供了一种更简单、易于阅读的格式,能使新贡献者更容易参与文档编写。

手册页仍然使用一种名为 mdoc 的 troff 方言编写。

规划后续系统

过去几年,FreeBSD 关注的一个变化是更加重视对用户未来将使用的系统的支持,而不是对越来越少用户使用的老旧系统的支持。这并不意味着放弃对所有非全新系统的支持。然而,随着一些老旧系统逐渐被历史淘汰,继续在代码树中维护对这些系统的支持已经不再具有足够的价值。FreeBSD 13.0 移除了对旧款 32 位 ARM 系统和 UltraSparc 平台的支持。同时,一些不再常用的旧设备驱动程序也被移除。此外,鉴于 64 位 x86 系统的主导地位,32 位 x86 架构已被降级为二级架构。

精简我们的关注点使得项目能够将更多资源投入到未来会增长的其他架构和驱动程序上。ARM、PowerPC 和 RISC-V 都经历了重大更新,包括对新驱动程序的支持和性能的提升。64 位 x86 架构现在支持 Hygon Dhyana 处理器,并且在更新的 Intel 处理器上支持 57 位用户虚拟地址。最后,13.0 版本中的所有架构都由内置的 LLVM 工具链支持,包括 clang 编译器和 lld 链接器。通过不再维护对遗留的 GPLv2 工具链的兼容性,FreeBSD 现在能够采用现代语言和工具链功能。(更多内容,请参见 Ed Maste 的文章,《FBSD 13 工具链》,也在本期中。)随着对基本系统中其他 GPL 许可组件的替代或淘汰的变化,这也意味着 FreeBSD 13.0 的基本系统中仅包含两个 GPL 工具和一个 LGPL 库。

OpenZFS

FreeBSD 已经在基本系统中内置 ZFS 十余年。FreeBSD 的 ZFS 支持最初是从 OpenSolaris 移植过来的,并且长期以来一直跟踪公共 OpenSolaris(后来是 illumos)仓库中的 ZFS 支持。过去几年,ZFS 的活跃开发已经从 illumos 仓库移出,转向了跨平台的 OpenZFS 项目。FreeBSD 13.0 用 OpenZFS 的代码替代了来自 illumos 的 ZFS 支持。这带来了若干新特性,包括加密数据集和 ZSTD 压缩。(另见 Allan Jude 的文章,《OpenZFS 中的 Zstandard 压缩》,也在本期中。)

网络

13.0 版本包含了一些网络方面的变化。内核 TLS 卸载使得单个 Web 服务器能够传输数百吉比特的 HTTPS 流量(请参见 John Baldwin 的文章《内核中的 TLS 卸载》)。NFS 客户端和服务器现在支持 NFSv4.2。这包括一个新的系统调用,允许优化服务器端文件拷贝。NFS 客户端和服务器还支持通过内核 TLS 卸载进行 NFS over TLS。

安全

FreeBSD 13.0 的内核包含对内核加密框架的若干改进,该框架用于 geli(8)、ZFS、IPsec 和内核 TLS。64 位 ARM 系统现在将通过 armv8crypto(4) 驱动程序开箱即用地利用加速的软件加密,支持 AES-GCM 和 AES-XTS 加密算法。32 位和 64 位 x86 系统也通过 aesni(4) 驱动程序在默认内核中包括对加速软件加密的支持。

启动加载器

每个内核的启动加载器包含若干变化。首先,当从 UEFI 启动时,默认安装现在将完整的启动加载器安装到 EFI 系统分区。之前,EFI 系统分区中的一个小型启动加载器被用来定位并启动完整的启动加载器。这个双阶段的过程被证明不够灵活,固件现在直接加载完整的启动加载器。其次,在 x86 系统上,启动加载器现在在通过 UEFI 启动和通过 BIOS 启动时,都使用视频控制台上的图形显示。此图形控制台随后交给内核,由 vt(4) 驱动程序作为帧缓冲使用。

虚拟化

FreeBSD 13.0 在作为客户机和主机的虚拟化方面都有若干改进。内核中的 VirtIO 设备驱动程序现在支持 VirtIO 规范的第 1 版。这提高了与提供 VirtIO 设备的虚拟化管理程序、模拟器和仿真模型的兼容性。bhyve(8) 虚拟化管理程序包括若干变化,包括改进的 VNC 支持(包括与 macOS 中内建的“Screen Sharing”VNC 客户端的兼容性)、VirtIO 9p 文件系统共享,以及对虚拟机快照的初步支持。

结论

FreeBSD 13.0 是过去两年中项目社区贡献的成果。感谢所有通过测试快照、报告 bug、提交补丁、在社交媒体上与用户互动以及执行无数其他任务的人。我们希望您喜欢 FreeBSD 13.0。加入我们,迎接下一次开发 FreeBSD 14 的冒险!


JOHN BALDWIN 是一名系统软件开发者。过去 20 年里,他在 FreeBSD 操作系统的多个部分(包括 x86 平台支持、SMP、各种设备驱动程序和虚拟内存子系统)以及用户空间程序中直接提交过更改。除了编写代码,John 还曾在 FreeBSD 核心团队和发布工程团队中任职。他还为 GDB 调试器和 LLVM 做出过贡献。John 与妻子 Kimberly 和三个孩子:Janelle、Evan 和 Bella 住在加利福尼亚州康科德市。

Looking To The Future