开发者生态
morning
OpenBSD 7.9
2026-05-19
1 阅读
bradley_taunt
新增内容 这是 OpenBSD 7.9 中包含的新功能和系统的部分列表。有关完整列表,请参阅 7.9 之前的变更日志。特定于平台的改进:arm64:在arm64上启用ice(4)。通过新增或添加现有驱动程序,增加了对 RK3588 和 RK3576 SoC 的支持。向 sdmmc(4) 添加了对 Genesys Logic GL9755 SDHC 控制器(包括某些 Apple Silicon 笔记本电脑上的 SDHC 控制器)的支持。 amd64 :向 amdpmc(4) 添加了 SMU 支持。 SMU 是埋藏在 AMD SoC 内部深处的微控制器,需要进行调整才能在挂起状态下达到最低功耗状态。禁用 amdgpu 中的面板自刷新 (PSR),以避免 ThinkPad X13 gen 6 上潜在的挂起。将 amd64 上的 MAXCPU 增加到 255。在 amd64 上,我们现在在使用前将 DM PTE/PDE 页面清零。这修复了 RAM 超过 512GB 的计算机上的错误。在 AMD Zen/Zen+ (Zen 1) 上观察到浮点状态泄漏得到缓解。 luna88k :将 luna88k 编译器切换为 gcc4。默认情况下将 luna88k 切换为 PIE(位置无关可执行文件)。 riscv64:具有 SpacemiT K1 SoC 的系统通过以下(以及更多)更改获得了支持:添加了 smtclock(4) ,这是 SpacemiT K1 SoC 上时钟/重置控制器的驱动程序。添加了更多驱动程序以支持 SpacemiT K1 SoC。实现了对 Zicbom(缓存块管理)和 Svpbmt(基于页面的内存类型)扩展的支持。将 SpacemiT K1 设备树添加到 riscv64 miniroot 上,以便在安装过程中可以访问它们。使“指令访问错误”(EXCP_FAULT_FETCH) 陷阱被视为 PROT_EXEC。这修复了 SpacemiT X60 内核上的随机 SIGSEGV。向 dwpcie(4) 添加了 SpacemiT K1 支持。其他架构:修复了ice(4)中大端系统上的各种错误,使其可以在sparc64上运行。将 powerpc64 内存屏障更改为“同步”。重新设计并改进了 TLB 对 alpha 的击落。提升 mips64 CPU 计数以在 MP 系统上获得多个软网络线程。确保将 sparc64 上的所有 FPU 寄存器初始化为全 1(或 -NaN),而不仅仅是低 32 个寄存器。修复了 sun4u sparc64 cpu 上的停车互斥体。更多特定于平台的更改可以在下面的硬件支持部分找到。各种内核改进:引入了一种机制来管理调度程序中不同速度的CPU内核。 sysctl(8) 变量“hw.blockcpu”采用 4 个字母的序列:S(用于 SMT)、P(常规性能 CPU)、E(高效 CPU,通常快 80% 到 50%)和 L(昏昏欲睡的 CPU),后者甚至更慢。设置此项以选择要踢出调度程序的 CPU(默认为 SL)。目前适用于 amd64 和 arm64。用“停车”锁替换了内核互斥体中的 cas 自旋锁。当存在未完成的分页请求时,停止强制页面守护进程休眠。实现了 ddb(4) stop 命令,该命令将 SIGSTOP 发送到指定的 pid。当从 amdgpu 上的 X 输入 ddb 时,使 ddb(4) 输出可见。添加了基础设施,以允许未来支持每个磁盘最多 52 个分区。通过预先预分配 32 个交换簇,进行了更改以避免从 pagedaemon 的 swapcrypt 路径内分配内存。更改了页面守护程序通过过度创建非活动页面和空闲页面来创建空闲内存的策略,以便对内存进行碎片整理。拒绝加载没有 PT_LOAD exec 段的二进制文件。挂起/休眠支持:实现延迟休眠:为了防止挂起时电池耗尽,此功能会在可配置的时间后唤醒挂起的系统,然后立即执行休眠。 machdep.hibernatedelay sysctl(2) 用于配置系统从挂起状态唤醒并进入休眠状态的秒数。 SMP 改进:解锁套接字拼接。解锁了 icmp6_sysctl()。解锁了 IGMP 慢速超时。在 amd64 和 arm64 上启用并行故障处理。使 bse(4) 中断 mp 安全。使用 rwlock 保护 IGMP 和 MLD6 快速定时器。直接渲染管理器和图形驱动程序:将 drm(4) 更新至 Linux 6.18.22。 VMM/VMD 和虚拟化改进:采用基于 PCI 的语义,通过返回全 1 来读取不支持或无效的寄存器。较新的 Linux 内核已开始使用 128 位功能空间。添加了 sysctl(8) machdep.vmmode 以指示主机或访客状态(以及 SEV 模式)。添加了 vmboot,这是一个微型内核,允许 sysupgrade(8) 适用于 vmd(8) 虚拟机。允许虚拟机上的 cd(4) / vioscsi(4) 使用机密计算方法,例如AMD SEV。修复了 vmmci 超时触发期间 vmd(8) 中的段错误。在 vmd(8) 中为 amd64 和 i386 启用 32 位直接内核启动。修复了 vmd(8) 虚拟机暂停屏障使用中的竞争问题。修复了 vmm(4) 虚拟机终止路径中的竞争。在 vmm(4) 中添加了 AMD SysCfg MSR 模拟。使 OpenBSD 在 Apple 虚拟化上工作。如果 tsc 频率已知,则仅在 vmm(4) 中公开 pvclock(4)。减少了内存映射中的 vmd(8) lowmem 区域,以帮助解决 Linux 客户机重启问题。防止 vcpu 不停止时 vmd(8) 暂停死锁。固定定时器