经过六个月的开发,FreeBSD 15.1 正式发布。该版本提供 amd64、aarch64、armv7、powerpc64、powerpc64le 和 riscv64 架构的安装包。此外,还提供适用于虚拟化系统(QCOW2、VHD、VMDK、raw)和云环境(例如 Amazon EC2、Google Compute Engine 和 Vagrant)的版本。FreeBSD 15.1 的支持将持续到 2027 年 4 月,15.x 分支的更新将持续到 2029 年 12 月 31 日。
主要变化:
- 无线设备驱动程序 rtw88(Realtek 802.11n/ac)、rtw89(Realtek 802.11ax)和 iwlwifi(Intel 02.11a/b/g/n/ac/ax/be)与内核同步 Linux 7.0.
- 内核实现了一个任务调度器选择框架。除了默认的 SCHED_ULE 调度器之外,amd64 系统上的内核配置现在还包含经典的 SCHED_4BSD 任务调度器的构建版本。内核已添加 kern.sched sysctl 参数,用于在启动时选择任务调度器。
- 为确保在 C23 模式下构建的编译器代码库支持 C23 标准,相关工作已完成。FreeBSD 16 分支预计将全面支持 C23。新标准新增了 nullptr 常量、_BitInt(n) 类型以及 bool、true 和 false 关键字,这些关键字可能会与旧代码中定义的同名标识符发生冲突。支持 C23 将使 FreeBSD 代码能够利用新的语言特性,例如 stdbit.h 头文件、memalignment() 函数、更新后的 limits.h 和 stdint.h(包含 _WIDTH 宏)以及 char8_t 类型。
- ipfw 数据包过滤器能够在查找表中指定任意掩码,从而允许您忽略键和表元素中的任意位组合,例如,您可以使用非连续掩码。 IP地址例如“lookup src-ip4:255.255.253.255”。删除了与 FreeBSD 8 之前发布的 ipfw 数据包过滤器版本兼容的代码。
- 现在可以将 IPv6 数据包路由到以前仅支持 IPv4 的套接字。ifconfig 命令中已添加了“stableaddr”标志,用于生成跨子网一致的稳定 IPv6 地址(无状态地址自动配置,RFC 7217)。
- 用户“root”和“freebsd”的默认 shell 已从 csh 更改为 sh。
- 添加了用于管理系统审计策略的 setaudit 实用程序。
- 查找工具已更新,新增了“-xattr”和“-xattrname”选项,可根据扩展文件属性搜索文件。
- newfs 工具已更新,新增了“-u”选项,用于禁用 UFS2 的软更新和日志记录。
- 用于保存和恢复地址转换表的 ipfs 实用程序已默认移除,并且其运行所需的功能已在内核中禁用(这可以在构建设置中恢复)。
- bsdinstall 脚本默认使用 COMPONENTS 变量指定的组件安装 pkgbase。如果定义了 DISTRIBUTIONS 变量,则仍然可以使用基于发行版集的旧式安装方法。
- tdestroy 函数已添加到标准库中。
strdupa,
strndupa,
posix_spawnattr_getexecfd_np,
posix_spawnattr_setexecfd_np,
pthread_tryjoin_np。
AArch64 系统上的 memcpy、memmove 和 memset 函数使用基于内存操作 (MOPS) 指令的优化。 - libuvmem 库已添加,为 vmem 内存分配机制提供用户空间实现,并为应用程序提供 vmem 兼容的 API。
- 图片 虚拟机 对于云系统,包含了 pkg 软件包管理器,并实现了在首次启动时使用基础系统对软件包进行原子更新的支持。
- 最小内核配置包含 virtio_scsi 驱动程序,该驱动程序允许系统启动。 虚拟机 基于 qemu/kvm。
- pdwait 和 pdfork 系统调用已实现,用于使用进程描述符的新进程创建和终止机制。
- 为了与夹层兼容 Linux 添加了 fcntl F_DUPFD_QUERY,它使用 kcmp KCMP_FILE 检查文件描述符。 Linux-容器。
- 其中包括支持 Wi-Fi 6E 和 Wi-Fi 7 的 Intel AX210/AX211/AX411 无线适配器的 iwx 驱动程序版本。
- 驱动程序已更新。新增了对 Intel E835-XXV-4 和 Intel E835 以太网网络适配器以及 RAID 控制器的支持。 服务器 富士通 PRIMERGY 以及 Google Compute Engine C4 中使用的 NVMe 固态硬盘。改进了对 Raspberry Pi 开发板的支持。新增了对 Intel Alder Lake、Alder Lake-N 和 Emerald Rapids CPU 提供的性能跟踪计数器 (hwpmc) 的支持。
- hid 驱动程序配置为向游戏组的用户授予访问权限,允许使用 libsdl 等库在不提升权限的情况下访问游戏控制器。
- mt 工具可与支持 LTO-10 和 LTO-10P(线性磁带-开放式第 10 代)标准的磁带驱动器兼容。
- zpool 预取命令现在支持 BRT(块引用表)元数据,提高了块克隆和释放的性能。
- NFS 客户端现在支持通过 NFS 导出不区分文件和目录名称大小写的文件系统。
已实现通过 NFSv4 无盘启动,支持将 NFS 分区挂载为根文件系统,并通过 nfsuserd 映射用户名或 ID。此外,还初步支持了带有 POSIX ACL 的 NFSv4.2 扩展。 服务器 NFSv4 客户端增加了对 NFS 客户端中使用的归档属性 (UF_ARCHIVE) 的支持。 Windows. - 现在,启动画面界面允许您设置 PNG 格式的启动画面,以便在系统关闭时显示。
- 添加了 sysctl net.inet.ipf.jail_allowed,允许您将自己的 ipfilter 数据包过滤器设置和规则绑定到 jail 环境。
- 添加了 sysctl allow.vmm_ppt,以将对 PCI 设备的访问转发到基于 bhyve 虚拟机管理程序的隔离环境。
- 基于 virtio 的 GPU 驱动程序实现了对基于 Parallels Desktop 的虚拟环境的支持。
- 新增对细粒度陷阱 (FGT) 寄存器、扩展目标 ID 和内存操作 (MOPS) 指令的支持,扩展了虚拟化功能并提升了 ARM64 系统的性能。此外,还新增了对 ARM64 LASS(线性地址空间分离)扩展的支持,以增强内核空间和用户空间之间的隔离。
- bhyve 虚拟机管理程序帧缓冲区实现已更新,以支持 UNIX 套接字,从而允许将图形控制台转发到离线 jails。
- OpenZFS 2.4.2、OpenSSL 3.5.6、NSS 3.123.1、xz 5.8.3、tcpdump 4.99.6、zlib 1.3.2、zstd 1.5.7、blocklistd 2026-02-07、ncurses 6.6、bsddialog 1.0.5、bmake 20251111、SQLite 3.50.4、unbound 1.25.1、MIT Kerberos 1.22.2、Heimdal Kerberos 1.22.2 的更新版本。
- Spleen 控制台字体已更新至 2.2.0 版本,并新增了字符(长破折号、短破折号、连字符、尖括号、白色方块、叉号和双叉号)。在高密度屏幕上,字符对齐效果得到了提升。Unicode 字符表已更新至 17.0.0 版本,新增了 4803 个字符。
- 黑名单子系统已更名为阻止列表,并启用了 blocklistd 后台进程。rc 脚本和数据包过滤规则中的旧设置仍然有效,但会发出警告。
- OpenPAM 工具包已移至新的 FreeBSD-pam 软件包,Zstandard 库和 zstd 实用程序已移至 FreeBSD-zstd 软件包。
- 对于通过 freebsd-base 软件包安装的系统,禁用了 installworld 和 installkernel 构建脚本的调用,以避免系统状态与软件包不一致。
- 已停止生成 OCI(Oracle 云基础设施)格式的程序集。
- 以下实用程序已被弃用,将在 FreeBSD 16 分支中移除:fdisk、bsdlabel、lpr、lpd、lpc、lpq、lprm、lp、pac、lptest 和 chkprintcap。对于磁盘分区操作,建议使用 gpart 或 bsdinstall 代替 fdisk 和 bsdlabel。对于打印操作,请使用 print/cups 端口或 sysutils/LPRng。 FreeBSD 16 还计划移除 hw.ata.rotating 和 hw.ata.unmapped_io sysctl,以及 hifn(Hifn 7751/7951/7811/7955/7956 加密加速器)、safe(SafeNet SafeXcel 1141/1741 加密加速器)、le(AMD Am7900 LANCE 和 Am79C9xx ILACC/PCnet 以太网)、fdc(软盘控制器)和 agp(加速图形端口)驱动程序。
来源: opennet.ru
