FreeBSD版本更新录(202x)
2021-12-09 10:54:11 阿炯

本文是从FreeBSD的产品主页分离出来的,专门用于该发行版本的更新记录,截止到2030年之前。

版本历史
FreeBSD 的发展始于1993年,取源于386BSD。然而因为386BSD源代码的合理性受到质疑以及Novell(当时UNIX的版权拥有者)与柏克莱接连而来的诉讼,FreeBSD在1995年一月发布的 2.0-RELEASE 中以柏克莱加州大学的 4.4BSD-Lite Release 全面改写,FreeBSD Handbook 中有更多 FreeBSD 的发展历史。

FreeBSD 2.0 最值得注意的部份也许是对卡内基美隆大学的 Mach Virtual Memory 系统翻修以及 FreeBSD Ports system 的发明。前者对于高负荷的系统最佳化,后者则是建立了一套简单且强大的机制维护第三方软件。有不少大型站台都使用 FreeBSD(一个巨大的软件收集站台),Hotmail 以及 Yahoo。

FreeBSD 3.0 则引入了 ELF binary 格式,并开始支援多 CPU 系统(SMP,Symmetric multiprocessing)以及 64 位元 Alpha 平台。3.x 对于系统做了非常多的改革,这些措施在当时并没有带来好处,但却是 4.X 成功的基石。

-------------------------------------------------
FreeBSD 5

最后一个版本的 FreeBSD 5 是 5.5,是在 2006年五月发行的。在FreeBSD 4的SMP架构下,在同一时间内只允许一个CPU进入核心(即Giant Lock),FreeBSD 5最大的改变在于改善底层核心Locking机制,审视并改写核心程式码,使得不同的CPU可以同时进入系统核心,藉以增加效率。另外一个重大的改变在于自5.3开始支援m:n执行绪的KSE(Kernel Scheduled Entities),表示m个使用者执行绪共享n个核心执行绪的模式。这个版本的许多贡献是由于商业化版本的BSD OS团队的支援。

-------------------------------------------------
FreeBSD 6

FreeBSD 6为目前的-STABLE发展版本,FreeBSD 6.3在2008年1月18日发行,这个版本主要针对软件的更新,并加入lagg(可以对多张网卡操作)的支援,并引入重新改写的unionfs。

-------------------------------------------------
FreeBSD 7

FreeBSD 7为目前第二个-STABLE发展版本,在2007年6月19日进入发行程序,2008年2月27日7.0-RELEASE正式发布。新增的功能包括了:
* SCTP(实做完成)
* 日志式UFS档案系统:gjournal(实做完成)
* 移植升阳所发展的DTrace(实做完成,但还未交付至CVS)
* 移植升阳所发展的ZFS档案系统(实做完成)
* 使用GCC4(移植完成,目前为4.2.1)
* 对ARM与MIPS平台的支援
* 重写过的USB stack(实做完成,但还未交付至CVS)
* Scalable concurrent malloc实做(已经可以使用)
* ULE排程表2.0(SCHED_ULE)(实做完成),并修改加强为SCHED_SMP(实做完成),在交付至CVS时的正式名称为ULE 3.0,这个版本在8核心的机器上以sysbench MySQL测试的结果,速度上比Linux 2.6快大约10%(无论是使用Google的tcmalloc或是glibc+cfs)
* Linux 2.6模拟层(已经可以使用)
* Camellia Block Cipher(实做完成)

-----------------------------------------------------------------------------------------------------------
FreeBSD 8

2009年11月27日发布,增加如下新特性:
* 虚拟化方面:Xen DOM-U、VirtualBox guest及host支持、层次式jail。
* NFS:对NFSv3 GSSAPI的支持,以及试验性的NFSv4客户端和服务器。
* 802.11s D3.03 wireless mesh网络,以及虚拟Access Point支持。
* ZFS不再是试验性的了。
* 基于Juniper Networks提供MIPS处理器的实验性支持。
* SMP扩展性的增强,显著改善在16内核处理器系统中的性能。
* VFS加锁的重新实现,显著改善文件系统的可扩展性。
* 显著缓解缓冲区溢出和内核空指针问题。
* 可扩展的内核安全框架(MAC Framework)现已正式可用。
* 完全重新的USB堆栈改善了性能和设备兼容性,增加了USB target模式。

-----------------------------------------------------------------------------------------------------------
FreeBSD 9

FreeBSD 9.0将采用全新的文本安装器,升级ZFS文件系统,LLVM/Clang取代GCC成为默认的编译器(主要的原因是BSD与GPL协议在授权上冲突,尤其是GCC将授权协议升级为GPLv3后),支持索尼PlayStation 3等。

编译器变更的相关参考链接:
FreeBSD 10 To Use Clang Compiler, Deprecate GCC
Why is FreeBSD deprecating GCC in favor of Clang/LLVM

-----------------------------------------------------------------------------------------------------------
FreeBSD 10

10.3版本主要是提升了系统稳定性,添加了一些新特性。值得关注的改进:
resolvconf(8) 实用程序更新至 3.7,改进 DNS 隐私保护
添加了新 rc(8) 脚本和 growfs
Linux® 兼容性版本现在支持 Centos™ 6 ports
drm code 现在匹配 Linux® 版本  3.8
改进 FreeBSD/arm 支持
一些 ZFS 性能和可靠性改进

带来了诸多改进和新特性,比如 Linux 兼容性层已允许用户在 amd64(x86_64)硬件上运行64位应用程序。UEFI 引导器也带来了更好的多设备支持、帧缓冲器驱动的通用图形适配器(UGA)和图形输出协议(GOP)处理改进、以及增加了对 ZFS 启动的支持。CAM 目标层现已支持高可用性设置、完整地支持了英特尔 Skylake 及更新一些的芯片、16Gbpps 光纤通道适配器、以及 full Multi-ID(NPIV)功能。此外,FreeBSD 10.3 也能够在基于 UEFI 的系统上使用 ZFS 作为根文件系统了。

Intel FreeBSD Networking Group version 3.1.13-k 现已支持 ixgbe 驱动(以及 X552 / X550T),并且 reboot 实用工具已初步实现了一个 reroot 功能,允许用户挂载来自一个临时来源文件系统的 rootfs,而无需重启操作系统。最后,mking 实用工具已支持 MBR 和 GPT 分区格式下的 NTFS 文件系统,xz archiver 已支持多线程压缩。此外还有 GNOME 3.16.2、TeXLive 2015、X.Org Server 1.17.4 等软件也相应更新了。

-----------------------------------------------------------------------------------------------------------
FreeBSD 11

11.4版本包含对 FreeBSD 内核和用户区的重大更改,包括新驱动程序、硬件支持、新命令或选项、主要 bug 修复和贡献的软件升级等。

其中操作系统内核的更新包括:
linux(4) ABI 兼容性层已经升级到支持 musl 消费者。
fdescfs(5) 文件系统升级到支持 Linux 特定的 fd(4)  /dev/fd 和 /proc/self/fd 行为。
新增多个实时时钟支持。
修复 ng_iface(4) 驱动可能带来的系统崩溃。
升级 ipfw(4) 包过滤器以识别2层和3层数据包,修复 dummynet(4) AQM 包标记问题。
修复 Intel® Apollo Lake™ CPUs 启动问题。

驱动与磁盘方面更新包括:
支持 TAIO USB 多协议适配器(TUMPA)。
cm(4) 和 fpa(4) 驱动已被标记为已弃用,并将在 FreeBSD 12 中删除。
添加 ocs_fc(4) 驱动程序,支持 Emulex 16/8G FC GEN 5 HBA LPe15004 和 LPe160XX,以及 Emulex 32/16G FC GEN 6 HBA LPe3100X 和 LPe3200X。
lmc(4) 驱动已被标记为已弃用,并将在FreeBSD 12中删除。
新增 smartpqi(4) 驱动程序,为 Microsemi®SCSI 控制器提供支持。
clang、llvm、lld、lldb 和 compiler-rt 实用程序以及 libc++ 已经更新为上游版本 8.0.0
ELF 工具链更新为 r 3614 版本
OpenSSL 已更新为 1.0.2s 版
更新 zfs 文件系统来实现并行安装
更新 loader(8) ,来将 Geli(8) 支持扩展到所有体系结构
pkg(8) 实用程序已更新到版本 1.10.5
GNOME 桌面环境已更新为 3.28 版
KDE 桌面环境已更新为 5.15.3 版
几个网络驱动程序固件更新

而用户区的变更包含了用户软件、贡献的软件和系统工具。具体涉及到了 tcpdump、crontab、diskinfo、umount、pw、ps、df、ifconfig、less、file、diff、dtc、bsdinstall 等众多应用的更新。另外还有诸多方面的更新细节,包括启动器、网络、存储和虚拟化等,11.4 已经发布,这是  stable/11 分支的第五个也是最后一个版本。FreeBSD 是一种自由类 Unix 操作系统,是由经过 BSD、386BSD 和 4.4BSD 发展而来的类 Unix 的一个重要分支。更新亮点:
clang、llvm、lld、lldb 和 Compiler-rt 实用程序以及 libc++ 已更新为上游版本 10.0.0
OpenSSL 已更新至版本 1.0.2u
Unbound 已更新至版本 1.9.6
pkg(8) 实用程序已更新至版本 1.13.2
KDE 桌面环境已更新至版本 5.18.4.1.19.12.3
GNOME 桌面环境已更新至版本 3.28
支持重命名 ZFS 书签
添加 certctl(8) 实用程序
对用户态应用程序的一些功能添加和更新
现在,在所有 FreeBSD 版本中都将打印对将来版本中弃用功能的警告
已为 RFC 6649 和 8429 中弃用的 Kerberos GSS API 算法添加了警告

FreeBSD 11.4 生命周期结束

FreeBSD 团队于2021年9月下旬发布公告称,从 2021 年 9 月 30 日开始, FreeBSD 11.4 和 stable/11 分支将结束生命周期 (EOL),不会再收到由 FreeBSD 安全团队提供的技术支持。因此建议 FreeBSD 11.4 用户尽快升级到新版本。FreeBSD 11.4 发布于 2020 年 6 月,这是  stable/11 分支的第五个也是最后一个版本;FreeBSD 11 正式版于 2016 年 9 月发布。这里附上已不再受支持的其他旧版本。

-----------------------------------------------------------------------------------------------------------
FreeBSD 12

12.0版本主要更新亮点包括:
OpenSSL 升级到 1.1.1a (LTS)
Unbound 升级到 1.8.1,DANE-TA 默认开启
OpenSSH 升级到 7.8p1
sshd(8) 添加了额外的 capsicum(4)  支持
Clang、LLVM、LLD、LLDB、compiler-rt 和 libc++ 升级到 6.0.1
vt(4) Terminus BSD Console 字体升级到 4.46
bsdinstall(8) 现在支持 UEFI + GELI 作为安装选项
默认情况下启用 VIMAGE 内核配置选项
默认情况下,amd64 GENERIC 和 MINIMAL 内核配置中启用 NUMA 选项
添加了 netdump(4) 驱动程序,通过该工具可以在系统出现紧急情况时将内核崩溃 dump 传输到远程主机
提高 vt(4) 驱动性能,以 2 至 6 倍的速度绘制文本
对当前一代硬件的图形支持的各种改进
默认情况下,armv6 和 armv7 启用对 capsicum(4) 的支持
UFS/FFS 文件系统已更新,增强了 TRIM/BIO_DELETE 命令,由于同时发送的 TRIM 消息较少,因此减少了读/写请求
更新 NFS 4.1 服务器,带来 pNFS 服务器支持
pf(4) 包过滤器现在可以使用 vnet(9) 在 jail(8) 中使用
升级 bhyve(8),添加了 NVMe 设备模拟
bhyve(8) 现在可以使用 jail(8) 运行
一些 Lua loader(8) 改进
KDE 升级到 5.12.5
更多详情查看发行公告

FreeBSD 团队宣布 FreeBSD 12.2 于2020年1028日正式发布,这是 FreeBSD 12 的第三个稳定版本。本次更新的一些亮点:
引入了对无线网络堆栈的更新和各种驱动程序,以提供更好的 802.11n 和 802.11ac 支持。
添加 ice(4) 驱动,支持英特尔的 100Gb 以太网卡。
更新 jail(8) 实用程序,允许在隔离的环境运行 Linux 。
OpenSSL 已更新至版本 1.1.1h。
OpenSSH 已更新至版本 7.9p1。
Clang,LLVM,LLD, LLDB,compiler-rt 和 libc ++ 已经更新到 10.0.1 。

FreeBSD 12.3

正式于2021年12月上旬发布,这是 FreeBSD 12 分支的第四个版本,该版本主要更新内容在于小的改进和错误修复:
对各种网络驱动的更新。
对上游贡献软件的一些更新。
一些应用的改进和内核错误的修正。

值得一提的用户空间变化包括:
Bhyve 修正了其 NVMe emulation 中的大型 IO 处理。
freebsd-update 更新了一个新的 flags 以支持 jails;
fstyp 现在可以检测 exFAT 文件系统。
growfs 现在可以在读写安装的文件系统上操作。
unzip 现在支持密码保护的档案。

还引入了 bc 5.0、OpenSSL 1.1.1i、SQLite 3.35.5、Subversion 1.14.1 LTS 等。

现在可用于 amd64、i386、powerpc、powerpc64、sparc64、armv6、armv7 和 aarch64 架构。

关于新功能和已知问题的完整列表,可在以下网址查阅:relnoteserrata

FreeBSD 12.2 生命周期结束

FreeBSD 社区发布公告,FreeBSD 12.2 将于2022年3月31日结束生命周期(EOL),未来将不再获得 FreeBSD 安全团队的任何支持与维护。为了避免潜在的安全隐患与漏洞,官方建议目前仍在使用 FreeBSD 12.2 版本的用户尽快升级到更新的版本(FreeBSD 12.3 或 13)。FreeBSD 12.3 于2021年12月发布,因此 FreeBSD 12.2 的生命结束周期符合 FreeBSD 一贯的政策,即「新版本推出 + 3 个月时间」后将结束老版本的支持。如果用户无法或不愿升级的话,就需要时刻留意 FreeBSD 官方的安全公告

FreeBSD 12.4 已于2022年12月上旬正式发布,为FreeBSD 12稳定分支的第 5 个版本。目前支持 amd64、i386、powerpc、powerpc64、powerpc64le、powerpcspe、armv6、armv7、aarch64 和 riscv64 架构。新版本重要变化如下:
ena (4) 内核驱动升级到 2.6.1
if_epair (4) 驱动程序现在支持使用多个核心来处理流量,以提高性能
unbound (8) 程序已升级到 1.16.3
telnetd (8) 守护进程已被弃用
tcpdump (1) 程序现在支持用户在规则上设置一个数字,这些规则将作为 pflog header 的一部分被公开。
OpenSSL 已升级到 1.1.1q
OpenSSH 已升级到 9.1p1
LLVM 工具链套件已升级到 13.0.0
dma (8) 程序已升级到 snapshot 2022-01-27
file (1) 程序已升级到 5.43
libarchive (3) 库已升级到 3.6.0
更多信息可参考发行公告

-----------------------------------------------------------------------------------------------------------
FreeBSD 13

13.0-RELEASE 于2021年4月15日正式发布。FreeBSD 13.0 提供了性能上的改进(尤其是得益于硬件 P-States,英特尔 CPU 的基准跑分有明显提升),升级到 LLVM Clang 11 作为默认的编译器工具链,改进 64 位 POWER 架构支持,以及其他各种网络功能改进。主要变化如下:
各种加载程序修复
增加了对 if_wg(4) 的修复
growfs(8) 工具更新,现在可以在读/写文件系统上工作
几个 ZFS 修复程序
几个 TCP 修复程序
bc(1) 实用程序已更新至版本 3.3.3
已修复 arm64 AES-XTS 回归问题
修复了 ixl(4) 中 VLAN 硬件过滤的问题。

相比于 FreeBSD 12,FreeBSD 13 针对 Intel CPU 提供了更好的性能、改进了升级工具,并采用 efibootmgr 作为 FreeBSD 的 EFI bootloader。此外 Bhyve 虚拟化堆栈也增加了许多新功能。对于面向 i386 架构的 FreeBSD,默认 CPU 类型已从 i486 变为 i686。FreeBSD 13.0 还为整个内核和用户空间进行了许多改进,相信这将是一个值得期待的新版本。

64 位 ARM (AArch64) 现在与 x86_64 并列成为一级架构,EFI 引导改进,AES-NI 现在被默认包含在通用内核构建中,对 i386 的默认 CPU 支持从 i486 提升到 i686,以及其他各种硬件支持改进。在本次更新中,各种过时的 GNU 工具被移除,比如用于 crashinfo 的旧版 GNU Debugger,过时的 GCC 4.2.1 和 Binutils 2.17 被从主树中移除,同时也切换到BSD版本的grep。更多详情请查看这里

FreeBSD 13.1

于2022年5月中旬发布,该版本提供了性能上的改进,以及更好的 RISC-V 支持。下面是一些较为重要的更改项:
用户态应用程序更改,对于 64 位架构,基础系统默认启用了与位置无关的可执行文件 (PIE) 支持。
新的 zfskeys rc(8) 服务脚本,允许在启动期间自动解密使用 ZFS 本机加密的 ZFS 数据集。
NVMe 仿真已升级到 NVMe 规范的 1.4 版。
为巴西葡萄牙语 ABNT2 键盘添加了额外的 Alt Gr 映射。
默认情况下,构建中禁用 svnlite。

运行时库和 API
在 powerpc、powerpc64 和 powerpc64le 上添加了 OpenSSL 的汇编优化代码。
CPU 特性的检测加速了 ARMv7 和 ARM64 的加密操作已得到修复,大大加快了 aes-256-gcm 和 sha256 的速度。
在 risc-v 64 和 riscv-64-sf 上启用构建 ASAN 和 UBSAN 库。
OFED 库现在基于 riscv64 和 riscv64sf 构建。
OPENMP 库现在基于 riscv64 和 riscv64sf 构建。

内核更改
修复 powerpc64 上串行控制台上的输出损坏。
CAS 已支持 Radix MMU。
修复在带有 TCG 的 QEMU 上运行带有 HPT 超级页面的 FreeBSD 出现的问题。
超级页面支持已添加到 powerpc64(le) 上的 pmap_mincore。
在 arm64 上为 32 位 ARM 二进制文件添加了 HWCAP/HWCAP2 辅助参数支持。

平台支持:增加了对 HiFive Unmatched RISC-V 板的支持。

FreeBSD 13.1 稳定版新版本最大的亮点是针对 AMD64 的 UEFI 启动进行了改进,特别是可以让更多的系统现在表现正常,以摆脱传统的 BIOS 启动。另外还增加了对 freebsd-update 的支持,以 allwo 创建启动环境的自动快照,试图使操作系统的更新万无一失。在 13.1 中还有各种各样的硬件驱动改进,特别是改进了英特尔 WiFi 驱动。其他一些变化包括在 64 位架构上默认启用位置独立可执行文件 (PIE) 支持,新的"zfskeys"服务脚本用于自动解密 ZFS 数据集,Bhyve 管理程序的 NVMe 模拟,chroot 现在支持非特权操作,各种 POWER 和 RISC-V 改进,大端(endian)支持改进,支持 HiFive Unmatched RISC-V 开发板,更新对 OpenZFS 文件系统的上游支持,以及这个 BSD 开源生态系统的许多其他变化。

更多详情可查看此处

FreeBSD 13.2-RC6 发布,继续修复 Bug

FreeBSD 13.2-RC4 本来应该是 13.2 版本的最后一个候选版本,但随后又发布了附带修复程序 的 13.2-RC5 ,将发布拖到了2023年4月。进入 4 月后,由于始终存在尚未解决和新出现的问题,FreeBSD 13.2 又发布了第六个候选版本, 附带了另一个修复程序。RC6 修复了在 AMD64 唤醒代码期间重新计算缓解措施的问题。这种缓解措施的重新计算可以解决某些笔记本电脑型号的挂起 / 恢复问题。13.2 版包含非常多新内容,比如将 WireGuard 驱动程序重新引入其流行的开源安全 VPN 隧道的源代码树、默认情况下为 64 位可执行文件启用 ASLR(地址空间布局随机化)、Bhyve 管理程序增强功能、改进的 Intel Alder Lake 支持、Kdump 支持解码 Linux 系统调用,以及一系列其他软件更新和对内核的其他改进。此外,FreeBSD 14.0 预计将在2023年7月中旬作为一项重大功能版本更新。

FreeBSD 13.2

13.2版本已于2023年4月中旬发布,该版本提供了性能上的改进,以及更好的 RISC-V 支持。下面是一些较为重要的更改项:
growfs (7) 启动脚本添加了一个交换分区,在使用原始映像安装到 SD 卡上时非常有用。
zfskeys 启动脚本支持自动加载存储在 ZFS 上的密钥。
添加了一个新的 RC 脚本 zpoolreguid,它将一个新的 GUID 分配给一个或多个 zpool,对于共享数据集时的虚拟化环境很有用。
如果没有 /etc/hostid 文件,并且没有来自硬件的有效 UUID,hostid 启动脚本现在将生成一个随机(版本 4)UUID。
现在可以通过使用 defaultrouter_fibN 和 ipv6_defaultrouter_fibN rc.conf (5) 变量为主要 FIB 添加默认路由。

Userland 应用程序更改
bhyve (8) 实用程序获得了 virtio-input 设备模拟支持,用于将键盘 / 鼠标输入事件注入来宾。
kdump (1) 实用程序已获得对解码 Linux 系统调用的支持。
killall (1) 实用程序现在允许使用语法 -t pts/N 向 pts (4) 上的控制终端发送信号到进程。
添加了一个 nproc (1) 实用程序,与同名的 Linux 程序兼容。
timeout (1) 实用程序已从 /usr/bin 移至 /bin。
pciconf (8) 实用程序添加了对解码 ACS 扩展功能的支持。
procstat (1) 实用程序现在可以使用新的 advlock 命令打印有关文件锁的信息。
pwd_mkdb (8) 实用程序不再将注释从 /etc/master.passwd 复制到 /etc/passwd。
已针对 ppp (8) 改进了 MSS 钳位。
prometheus_sysctl_exporter (8) 中的度量别名已更改,以避免因度量名称冲突而混淆 Prometheus 服务器。
uuidgen (1) 实用程序有一个新选项 -r 来生成随机 UUID,版本 4。
当被 inetd (8) 调用时,ctlstat -P 现在将产生适合 Prometheus 接收的输出;

软件升级
Gavin Howard 的 bc 已经升级到 6.2.4 版本。
expat (libbsdxml) 已升级到版本 2.5.0。
file(文件)已升级到 5.43 版。
less 已经升级到 608 版本。
libarchive 已升级到 3.6.2 版
libedit 已升级至版本 2022-04-11
LLVM 和 clang 编译器已升级到版本 14.0.5
mandoc 已升级到 1.14.6 版本。
OpenSSH 已升级到版本 9.2p1。
OpenSSL 已升级到版本 1.1.1t。
sendmail 已升级到 8.17.1 版本。 68e86d5265bc
sqlite3 已经升级到 3.40.1 版本。
tzcode 已升级到版本 2022g,改进了时区更改检测和可靠性修复。
tzdata 已升级到 2023b 版本。
unbound 已经升级到 1.17.1 版本。
xz 已经升级到 5.4.1 版本。
xz-embedded 已升级到 3
zlib 已经升级到 1.2.13 版本。

运行时库和 API
libmd 添加了对 SHA-512/224 的支持
sysdecode (3) 和 kdump (1) 现在支持 Linux 风格的系统调用跟踪
本机 pthread 库函数现在可以支持 Linux 语义

一般内核更改
bhyve (8) hypervisor 和内核模块 vmm (4) 现在支持一个客户机中超过 16 个 vCPU。可以通过加载程序可调参数 hw.vmm.maxcpu 调整此限制。为 64 位可执行文件启用地址空间布局随机化 (ASLR)。

更多内容请查看更新公告

FreeBSD 13.3

13.3 已于2024年3月中旬发布,该版本主要更新了组件和驱动程序,同时提升了 WiFi 驱动程序稳定性。主要变化如下:
LLVM 和 clang 编译器更新至 17.0.6 版本
OpenSSH 更新至 9.6p1 版本
Sendmail 更新至 8.18.1 版本
ZFS 更新至 OpenZFS 2.1.14 版本
对本机和基于 LinuxKPI 的 WiFi 驱动程序进行了许多稳定性修复
NFS 服务器现在可以在适当配置的 vnet Jail 中运行
更多详情查看 Release Notes

官方此前宣布了停止支持 32 位架构的未来计划:
FreeBSD 15.0 将不包含 armv6、i386 和 powerpc 架构
FreeBSD 16.0 将不包含 armv7 架构
v16 分支至少会一直支持在 64 位内核执行 32 位二进制文件

-----------------------------------------------------------------------------------------------------------
FreeBSD 14.0 计划2023年7月发布

FreeBSD 发布工程团队于2022年8月下旬公布了对目前稳定系列的初步发布规划,包括 FreeBSD 13.2 和 12.4,以及下一代的​ FreeBSD 14.0。FreeBSD 13.0-RELEASE 在 2021 年 4 月首次亮相,而在此之后的两年多时间里,预计将发布 14.0,与 FreeBSD 主要版本之间相隔两年的更新时间保持一致。14.0-RELEASE 暂定于2023年 7 月 17 日发布。为了实现这个目标,内核二进制接口的冻结将在 4 月 25 日左右开始,5 月中旬进入 stable/14 分支,5 月底前开始发布 beta 测试。经过几周的 beta 和 rc 版本,FreeBSD 14.0-RELEASE 有望在 7 月中旬完成。发布工程团队还透露,2022年 12 月将发布 FreeBSD 12.4,2023年 3 月发布 FreeBSD 13.2。

将用 dma 取代 sendmail
sendmail 是一个通用的网络电子邮件发送代理软件,支持多种邮件传输和交付方式。作为 Eric Allman 编写的 delivermail 程序的后继者,sendmail 是开源软件和 Unix 社区中的一个著名项目,于 1983 年首次发布。而此次用来替换 sendmail 的 dma(Dragonfly Mail Agent)则是一个小型轻量级的邮件传输代理(MTA),它接受来自本地安装的邮件用户代理(MUA)的邮件,并将邮件送到本地或远程目的地。由于 dma 并不打算取代真正的大型 MTA,所以 dma 不侦听 25 端口的传入连接。

2022年11月消息,FreeBSD 邮件列表确认,将会用 dma 取代 sendmail 并将前者设为默认的 MTA:正如提交消息所指出的,dma 不是像 sendmail 或 postfix 那样功能齐全的 MTA,而是一个轻量级的 MTA。将其设置为默认值除了降低配置门槛,减少漏洞发生的几率以外,大多数系统其实也仅仅是需要基本的邮件服务,真正需要功能完整的 MTA 的用户是可以手动安装和设置 sendmail 或 postfix 的。

这是一个双赢的局面:为那些不需要功能齐全的 MTA 的用户增加了安全性,而需要完整功能的用户也不会有任何损失。对于 FreeBSD 来说,其实自 2014 年以来就已经在基本系统中拥有一份 dma 副本,可作为可选组件,并通过 WITH_DMAGENT src.conf 启用。FreeBSD 14 计划于 2023 年 7 月发布。v14 Beta 1 将于2023年9月下旬可用,预计在 10 月底前稳定发布。

FreeBSD 14 带来了许多硬件支持改进和相比于 FreeBSD 13 系列的大量内核增强。值得注意的是,FreeBSD 14 是最后一个支持 32 位系统的版本。尽管 FreeBSD 15 将不再支持 32 位硬件平台,但其 64 位系统仍将至少保留到 FreeBSD16 对运行 32 位二进制文件的支持。新增了一个 "fwget" 工具用于获取固件包 - 最初 fwget 可以获取 Intel 和 AMD GPUs 的固件。其他众多变化包括:替换 sendmail 为 dma、Kinst 作为新 DTrace 提供者、makefs 添加 ZFS 支持、boottrace 成为捕获系统启动和关闭过程中跟踪事件的新接口、内核 TLS 卸载处理 TLS1.3 接收端卸载等等。

此外还有 WiFi6 在 WPA 中初始支持,sh 现已成为 root 用户默认 shell,并且 LLVM 工具链也进行了更新。更多其他变化请参阅正在进行中的发行说明。未来几周会有更多 Beta 版及候选版本发布,而 FreeBSD 14-STABLE 应该会在2023年10月底之前发布。

FreeBSD 14.0 的候选发布版(RC1)已于2023年10中旬发布,开发人员正努力争取在 11 月初发布 FreeBSD 14 稳定版。第14版是支持 32 位系统的最后一个系列。FreeBSD 15 将放弃对 32 位硬件平台的支持,但 第 15 版本的 64 位系统将保留对运行 32 位二进制文件的支持。这种 32 位二进制文件的兼容性预计至少会支持到 FreeBSD 16。

FreeBSD 14 还新增了一个用于获取固件包的"fwget"工具,该工具最初可以获取英特尔和AMDGPU 的固件。另外还有许多其他变化包括:用 dma 代替 sendmail、Kinst 成为新的 DTrace 提供者、makefs 增加了 ZFS 支持、boottrace 成为在系统启动和关闭过程中捕获跟踪事件的新接口、内核 TLS 卸载处理 TLS 1.3 的接收端卸载、WPA 初步支持 WiFi 6、sh 现在是 root 用户的默认 shell,以及更新的 LLVM 工具链。基于 ARM64 和 AMD64 的 FreeBSD 14 现在支持多达 1024 个 CPU 核心,高于当前的 256 个核心限制。AMD EPYC Bergamo 现在允许每个插槽 128 个内核/256 个线程,超过了当前 FreeBSD 的限制,因此至少 FreeBSD 14.0 允许使用这些高内核数服务器。

除此之外,FreeBSD 14 的重启速度也会加快,ISA 声卡支持被移除,新的英特尔 QAT 驱动程序比之前的 FreeBSD QAT QuickAssist 技术驱动程序有更多的功能和支持。Netflix 还发起赞助,删除了 FreeBSD 中的许多其他旧驱动程序。正在进行中的发布说明还列出了即将发布的 第 14 版本的其他有趣细节。FreeBSD 14.0-RC1 发布公告概述了 Linux KPI 的更新、各种 WiFi 更新,以及本周候选发布版的竞赛条件修复。在 FreeBSD 14.0-RELEASE 于 11 月 7 日左右发布之前预计至少还会有两个候选版本。

FreeBSD 14.0 已正式于2023年11月下旬发布,这是  stable/14 分支的首个版本,支持 amd64, aarch64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv7, 和 riscv64 架构。主要变化如下:
OpenSSH 升级至 v9.5p1
OpenSSL 升级至 v3.0.12
FreeBSD 13.2-RELEASE 使用 OpenSSL 1.1.1t,所以这是重大升级
bhyve 虚拟机管理程序支持 TPM 和 GPU 透传
FreeBSD 在 amd64 和 arm64 平台支持最多 1024 个内核
ZFS 升级至 OpenZFS v2.2,显著改进性能
实验性 ZFS 镜像可用于 AWS 和 Azure
支持对运行日志软更新的 UFS 文件系统执行后台文件系统检查
TCP 默认拥塞控制机制为 CUBIC……

更多信息可参考第14版的发行说明。负责 FreeBSD 发版工作的主管在其个人博客介绍了一些 FreeBSD 14 的破坏性变化,详情可查看此处

-----------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------


-----------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------

-----------------------------------------------------------------------------------------------------------