经过九个月的开发,FreeBSD 14.4 正式发布。该版本提供适用于 amd64、i386、aarch64、armv7、powerpc、powerpc64 和 riscv64 架构的安装镜像。此外,还准备了适用于虚拟化系统(QCOW2、VHD、VMDK、raw)和云环境(例如 Amazon EC2、Google Compute Engine 和 Vagrant)的构建版本。
FreeBSD 14.5 的下一个更新计划于 2026 年 9 月发布。当前的 FreeBSD 14.4 版本将支持到 2026 年 12 月 31 日,之前的 FreeBSD 14.3 版本将支持到 2026 年 6 月 30 日。总体而言,FreeBSD 14 分支将支持到 2028 年 11 月 30 日,FreeBSD 13.x 分支将支持到 2026 年 4 月 30 日。FreeBSD 15 分支正在并行开发中,下一个版本(15.1)计划于 2026 年 6 月 2 日发布。
FreeBSD 14.4 的主要变化:
- 新增了用于管理声卡设置的 sndctl 实用程序。
- swapon 实用程序已更新,以支持加密的交换文件,可以通过 fstab 使用带有“.eli”后缀的 md 设备来识别这些文件。
- 在 nuageinit 实用程序中,执行初始化 虚拟机新增了对 cloud-init、网络配置和软件包管理的支持。为了与 cloud-init 兼容,新增了以下命令:'runcmd'、'packages'、'fqdn'、'hostname'、'sudo'、'write_files'、'nameservers'、'tzsetup' 和 'doas'。已实现功能齐全的 YAML 解析器。日志记录功能已启用。已实现以下命令:'chpasswd'、'wakeonlan'、'set-name' 和 'match.driver'。
- Spleen 控制台字体已更新至 2.2.0 版本,并新增了字符(长破折号、短破折号、连字符、尖括号、白色方块、叉号和双叉号)。在高密度屏幕上,字符对齐效果也得到了提升。Gallant 控制台字体现已包含超过 4300 个字形,支持西里尔字母,并新增了数学符号、箭头、货币符号和边框等字符集。
- 该软件包包含 9P 文件系统 (p9fs),可与 virtio-9p 设备和 Bhyve 虚拟机管理程序配合使用,使虚拟机能够访问主机文件系统的内容。要加载驱动程序,请在 loader.conf 文件中使用“virtio_p9fs_load=YES”设置。
- tarfs 文件系统经过优化,可以处理大于 4 GB 的文件。
- 在 unionfs 和 nullfs 文件系统中,当处理带有“..”的路径时,对根虚拟节点的检查得到了加强,以阻止允许遍历 jail 环境根目录之外的潜在漏洞。
- Jail 子系统限制父 jail 中的非特权用户对子 jail 中运行的进程进行调试、配置调度器和发送信号。这些操作分别由 PRIV_SCHED_DIFFJAIL、PRIV_DEBUG_DIFFJAIL 和 PRIV_SIGNAL_DIFFJAIL 这三个独立的权限控制。为了恢复进程管理的旧有行为,Jail 中新增了“allow.nounprivileged_parent_tampering”设置。
- Jail 子系统现在支持“met”和“env”参数,允许将任意字符串元数据和环境数据绑定到 Jail 环境。参数可以在创建 Jail 时设置,使用“jail -cm”命令修改,并使用 jls 命令查看。例如,“jail -cm … meta="tag1=value1 tag2=value2" env="configuration"”。现在可以使用“security.jail.meta_maxbufsize”系统控制设置来限制参数中数据的最大大小。
- ngctl 工具新增了“-j”参数,用于在指定的 jail 环境中运行命令。该参数允许在未安装 ngctl 的 jail 环境中操作 netgraph 节点。
- mdo 工具扩展了其功能,允许以不同用户身份运行命令,类似于 su 工具,但它使用的是 mac_do 内核模块和 setcred 系统调用,而不是 setuid。新版本实现了用于管理已启动进程中用户和组 ID 的选项:-k 用于保留当前用户;-g 和 -G 用于设置主组和附加组;-s 用于更改附加组;--euid、--ruid、--svuid、--egid、--rgid 和 --svgid 用于覆盖指定的 ID。
- kadmin Kerberos 管理实用程序已更新,新增了 -f 选项,可将 Heimdal KDC 数据库转储为与 MIT KDC 兼容的格式,从 Heimdal Kerberos 迁移到 MIT Kerberos 而无需完全重新创建数据库。
- 在基础系统中包含的精简版 pkg(7) 包管理器中,选项解析已与完整版 pkg(8) 工具集统一。pkg(7) 命令的选项顺序现在应与 pkg(8) 的行为一致;例如,您应该使用“pkg bootstrap -f”而不是“pkg -f bootstrap”。
- bsdinstall 安装程序不再支持在基于 MBR 的磁盘上使用 ZFS 文件系统进行安装(ZFS 只能用于基于 GPT 的磁盘)。现在,loader.efi 引导加载程序会被复制到所有在基于 ZFS 的磁盘上创建的 ESP(EFI 系统分区)中,以防主磁盘发生故障。
- freebsd-update 实用程序确保严格按照顺序安装共享库:libsys、libc、libthr,然后再安装其余库,从而消除从 FreeBSD 14.x 升级到 15.x 分支时出现的问题。
- newfs 工具中添加了“-u”标志,默认情况下禁用 UFS2 文件系统的“软更新”机制和日志记录。
- PAM 库(可插拔身份验证模块)现在除了可以在 ${LOCALBASE}/lib 目录中搜索模块外,还可以在 ${LOCALBASE}/lib/security 目录中搜索模块。
- net80211 无线协议栈已更新,以支持现代接入点中使用的 VHT160 和 VHT80P80 信道。
- 扩展了硬件支持。iwlwifi 驱动程序已添加对 Intel 无线适配器的 ACPI 支持。ix 和 ixv 驱动程序已更新,以支持 Intel Ethernet E610 2.5G/5G/10G 系列网卡。mfi 和 mrsas 驱动程序已更新,以支持 Fujitsu SAS 6Gbit/s 1GB RAID 控制器 (D3116),该控制器用于…… 服务器 富士通 PRIMERGY。
- 生成的 SD 卡镜像中已添加了对 Raspberry Pi Zero 2W 开发板的支持。
- 用于动态阻止网络端口以防止 DoS 攻击的 blacklistd 后台进程已更新并更名为 blocklistd。
- 基础系统包含一个带有 libyaml Lua 绑定的软件包。
- OpenSSH 已从 9.9p2 版本更新到 10.0p2 版本,默认启用抗量子混合 mlkem768x25519-sha256 算法。
- 第三方组件的更新版本:OpenZFS 2.2.9(原为 2.2.7)、OpenSSL 3.0.16、SQLite 3.50.4、unbound 1.24.1、libucl 0.9.2、expat 2.7.3、libyaml 0.2.5、libarchive 3.8.5、xz 5.8.2、less 685、bmake 20251111、bc 7.1.0。
- 基本安装介质(仅启动)已更新,包含无线设备的固件包,允许使用无线连接通过网络检索安装文件。
- 新增了 sbin/ipfw15 可执行文件,该文件使用新的 KBI(内核二进制接口)编译,以兼容 FreeBSD 15 内核。原有的 ipfw 工具会自动检测新 KBI 的存在,并在必要时运行 ipfw15,以便在升级到 FreeBSD 15 时正确加载数据包过滤规则。
- 对 RIP 路由协议(routed、rtquery、route6d、rip6query)的支持已被弃用,并将被移除。建议使用 ports 集合中的 'bird' 或 'quagga' 软件包,而不是 'routed'。
- 内核内置的 MIDI 音序器实现已被弃用。
- 删除了与 FreeBSD 8 之前发布的 ipfw 数据包过滤器版本兼容的代码。
来源: opennet.ru
