OpenBSD 8.0
摘要
OpenBSD 8.0 是第 61 个 OpenBSD 版本,于 2026 年 10 月 20 日发布,针对 amd64、arm64、riscv64 和 sparc64 平台进行了改进,包括更大的内核虚拟地址空间、休眠支持、RISC-V 向量扩展/高级中断架构(Advanced Interrupt Architecture)支持,以及在 sparc64 上切换到 LLVM 工具链。
<p><a href="https://lobste.rs/s/sqdhu7/openbsd_8_0">评论</a></p>
查看缓存全文
缓存时间:
2026/10/20 02:07
# OpenBSD 8.0
来源:https://www.openbsd.org/80.html
Blowfish on a Bike (https://www.openbsd.org/images/blowfishonbike.html)发布于 2026 年 10 月 20 日。(第 61 个 OpenBSD 版本)
版权所有 1997\-2026,Theo de Raadt。8\.0 主题曲:"The Simps on AI (https://www.openbsd.org/lyrics.html#80)"
艺术作品由 yvaneht nioj 和 clanker 创作。
- 查看 FTP 页面 (https://www.openbsd.org/ftp.html) 上的信息,获取镜像服务器列表。
- 前往任一镜像站点的 `pub/OpenBSD/8\.0/` 目录。
- 查看 8\.0 勘误页面 (https://www.openbsd.org/errata80.html),了解已知问题及临时解决方法。
- 查看 7\.9 与 8\.0 版本之间的详细变更日志 (https://www.openbsd.org/plus80.html)。
- signify\(1\) (https://man.openbsd.org/signify.1) 本版本的公钥:
openbsd\-80\-base\.pub:RWSMSt0erHTctUxq2JDAgQRo64ztikp8JvQeiSPte3NZ0Geou0TkTEiE (https://ftp.openbsd.org/pub/OpenBSD/8.0/openbsd-80-base.pub)
openbsd\-80\-fw\.pub:RWRjzXzC89s1iQC9P3xgcdeN6OUoJz9t7ggTY0xBb1W8PfeOzAdwod66
openbsd\-80\-pkg\.pub:RWRspL7ERnSFIscdEvBwVySymWNopP\+CEZHbaB3IMJIt0bUXGBuIfUqC
openbsd\-80\-syspatch\.pub:RWQAeCccO9yAASmUJSCJEW9C5WOP/GAsa5dhMtPPmb5pehzPO7EAmqhK
所有适用的版权声明和致谢信息均包含在 src\.tar\.gz、sys\.tar\.gz、xenocara\.tar\.gz、ports\.tar\.gz 文件中,或在通过 `ports\.tar\.gz` 获取的文件中。
---
### 新特性
以下是 OpenBSD 8\.0 中新增功能和系统的部分列表。完整的列表请参阅通向 8\.0 的变更日志 (https://www.openbsd.org/plus80.html)。
- 平台特定的改进:
- amd64 (https://www.openbsd.org/amd64.html):
- 将 amd64 内核虚拟地址空间从 4G 提升至 512G。
- pmap\(9\) (https://man.openbsd.org/pmap.9) 直接映射现在被放置在随机位置。
- 使用 AES CPU 指令加速交换区加密。
- arm64 (https://www.openbsd.org/arm64.html):
- 添加了休眠支持。
- 使用 AES CPU 指令加速交换区加密。
- 实现了弹跳缓冲区(bounce buffer)。
- luna88k (https://www.openbsd.org/luna88k.html):
- 修复了 m88k 多次 CMMU 寄存器写入的问题。
- 扩展了 m88k 内核模式 CMMU 故障处理,以处理写保护故障。
- 确保 luna88k 的 m8820x\_initialize\_cpu\(\) 在非 MP 内核上初始化逻辑 CPU \#0。
- 加速了 luna88k m8820x\_cpu\_number\(\) 中的 CMMU 页表遍历。
- riscv64 (https://www.openbsd.org/riscv64.html):
- 检测 CPU 扩展,并通过 elf\_aux\_info\(3\) 的 AT\_HWCAP 和 AT\_HWCAP2 查询向用户态通告可用的扩展。
- 添加了 'V' 向量扩展的内核支持。
- 实现了弹跳缓冲区。
- 添加了对 RISC\-V Advanced Interrupt Architecture 的支持;新增 imsic\(4\) (https://man.openbsd.org/imsic.4) 和 aplic\(4\) (https://man.openbsd.org/aplic.4) 驱动。
- 添加了 Sstc 定时器扩展的内核支持。
- sparc64 (https://www.openbsd.org/sparc64.html):
- 为 sparc64 重定位标志表添加了边界检查。
- 将 sparc64 切换至 LLVM 工具链。
- 改进了 SPARCV9 上的内存对齐。
- 其他架构 (https://www.openbsd.org/plat.html):
- 淘汰了对 loongson 架构的支持(无法在 Clang 22 下工作)。
- 为 LLVM 修复了若干 RISC\-V 和 MIPS 的问题。
- 修复了 hppa 保护位的编码。
- 更多平台特定的变更可在下方的硬件支持 (https://www.openbsd.org/80.html#hardware_support) 部分找到。
- 各项内核改进:
- 修复了 open\_wmemstream\(3\) (https://man.openbsd.org/open_wmemstream.3) 中的内存大小计算。
- 修复了 semop\(2\) (https://man.openbsd.org/semop.2) 信号量 ID 在上下文切换期间被销毁/替换的问题。
- 改进了 pagedaemon 换出页面/释放内存时非活动页队列的启发式策略。
- 添加了 getexecpath\(3\) (https://man.openbsd.org/getexecpath.3),用于提供 elf\(5\) (https://man.openbsd.org/elf.5) 程序执行路径的副本。
- 为支持更大的 disklabel 做了更多准备工作。
- 挂起/休眠支持:
- 为 qwz\(4\) (https://man.openbsd.org/qwz.4) 启用了挂起/恢复。
- 使 ufshci\(4\) (https://man.openbsd.org/ufshci.4) 能够在 Samsung Galaxy Book4 Edge 和 HONOR MagicBook Art 14 Snapdragon 上正常经历挂起。
- 当合上笔记本盖子且 machdep\.lidaction=0 时,不再唤醒已挂起的笔记本。
- 添加了全局睡眠模式变量,以区分休眠和"普通"挂起。
- 为 qcuart\(4\) (https://man.openbsd.org/qcuart.4) 添加了挂起/恢复支持。
- 为 bytgpio\(4\) (https://man.openbsd.org/bytgpio.4) 添加了唤醒中断支持,修复了 IdeaPad 从挂起恢复的问题。
- 在休眠解包磁盘镜像时,验证拷贝到 piglet 的数据块大小。
- 在恢复时读取数据块时,验证磁盘镜像大小是否发生整数溢出。
- 在恢复时读取块表时,防止磁盘镜像越界读取。
- 恢复完成后清理帧缓冲区。
- 使 nvme\(4\) (https://man.openbsd.org/nvme.4) 休眠支持专用队列分配失败不再视为致命错误。
- Direct Rendering Manager 及图形驱动:
- 将 drm\(4\) (https://man.openbsd.org/drm.4) 更新至 Linux 6\.18\.53。
- 在 inteldrm\(4\) (https://man.openbsd.org/inteldrm.4) 中添加了对 Intel Arc A 系列(DG2/Alchemist)显卡的支持。
- amd64 上更大的内核虚拟地址空间允许映射超过 4GB 的显存。
- 规避了在部分 Alder Lake 系统上出现的 inteldrm\(4\) (https://man.openbsd.org/inteldrm.4) GuC 超时错误。
- VMM/VMD 改进:
- 添加了每个客户虚拟机最多 64 个 VCPU 的多处理器支持。
- 重新设计为使用文件来管理虚拟机归属。
- 为客户虚拟机添加了 x2apic 模式支持。
- 修复了 vmd\(8\) (https://man.openbsd.org/vmd.8) 启动时无法检测内核的问题。
- 将 vmm\(4\) (https://man.openbsd.org/vmm.4) MMIO 退出时的出错 GPA 提供给 vmd\(8\) (https://man.openbsd.org/vmd.8)。
- 重构了 vmm\(4\) (https://man.openbsd.org/vmm.4) 的退出处理并修正了 RIP 调整。
- 为 vmm\(4\) (https://man.openbsd.org/vmm.4) 的 VMX 路径添加了可变长度指令支持。
- 防止 vmd\(8\) (https://man.openbsd.org/vmd.8) 的 32 位和 64 位 elf\(5\) (https://man.openbsd.org/elf.5) 加载器在处理格式错误的 elf\(5\) (https://man.openbsd.org/elf.5) 文件时发生越界读取。
- 实现了缺失的 lapic/ioapic 模式,修复了 vmd\(8\) (https://man.openbsd.org/vmd.8) 对 32 位 Linux 客户机的支持。
- 为 vmd\(8\) (https://man.openbsd.org/vmd.8) 客户机添加了校验和卸载。
- 添加了 MSI/MSI\-X virtio 设备中断支持。
- 在 vmd\(8\) (https://man.openbsd.org/vmd.8) 中支持真正分割的 split\-virtqueue。
- 为 vmd\(8\) (https://man.openbsd.org/vmd.8) 添加了 i82093aa ioapic 和 i82489dx 兼容 lapic 模拟。
- 改进了 qcow 处理。
- 各项新增的用户态特性:
- netstat\(1\) (https://man.openbsd.org/netstat.1) 现在可以打印接口多播计数器;使 '-q' 更加精确。
- 调整了 ddb\(4\) (https://man.openbsd.org/ddb.4) 默认的 'ps' 输出,分别打印 'struct process' 和 'struct proc'。
- 使 mount\(8\) (https://man.openbsd.org/mount.8) 通过 \-u 支持 DUID;更新文件系统时保留 DUID。
- 实现了通过 sndioctl\(1\) (https://man.openbsd.org/sndioctl.1) 控制 midithru 端口。
- 允许通过 sndioctl\(1\) (https://man.openbsd.org/sndioctl.1) 添加或删除列表元素。
- 添加了 sndiod\(8\) (https://man.openbsd.org/sndiod.8) 服务器 .mode 控制,使其设置变为动态的,可通过 sndioctl\(1\) (https://man.openbsd.org/sndioctl.1) 更改。
- 用户态的更多修复与调整:
- 加载时确保 elf\(5\) (https://man.openbsd.org/elf.5) 头和程序头能放入共享库中。
- 修复了 getpwent\(3\) (https://man.openbsd.org/getpwent.3) yp\_next\(\) 中密钥内存的泄漏。
- 在 patch\(1\) (https://man.openbsd.org/patch.1) 中,解决了格式错误的 ed\(1\) (https://man.openbsd.org/ed.1) 脚本输入导致的死循环。
- 在 authpf\(8\) (https://man.openbsd.org/authpf.8)、pflogd\(8\) (https://man.openbsd.org/pflogd.8)、ldapd\(8\) (https://man.openbsd.org/ldapd.8)、ldpd\(8\) (https://man.openbsd.org/ldpd.8)、lpd\(8\) (https://man.openbsd.org/lpd.8)、radiusd\(8\) (https://man.openbsd.org/radiusd.8)、snmpd\(8\) (https://man.openbsd.org/snmpd.8) 中使用 execv\(3\) (https://man.openbsd.org/execv.3) 的绝对路径。
- uaudio\(4\) (https://man.openbsd.org/uaudio.4) 现在会测试所报告的格式和通道是否可用。
- 当 MIDI 端点以非空缓冲区连接时,不再让 sndiod\(8\) (https://man.openbsd.org/sndiod.8) 中止运行。
- 修复了 sndiod\(8\) (https://man.openbsd.org/sndiod.8) 中两处缺少的 file\_new\(\) 返回值检查。
- 修复了 npppd\(8\) (https://man.openbsd.org/npppd.8) 的 LCP MRU 选项处理。
- 调整 pstat\(8\) (https://man.openbsd.org/pstat.8) 以返回会话领导者进程的 pid;使 '-t \-M' 正常工作。
- 使 eigrpd\(8\) (https://man.openbsd.org/eigrpd.8) 验证 prefixlen 以避免溢出。
- 使 sndiod\(8\) (https://man.openbsd.org/sndiod.8) 在堆上分配所有 midithru 结构。
- 改进的硬件支持与驱动修复,包括:
- 在 Samsung Galaxy Book4 Edge 上启用了 GXTP7936 触摸屏。
- 为 riscv64 K3 PCIe/USB3 组合 PHY 添加了支持。
- 在 riscv64 上启用了 gpioleds\(4\) (https://man.openbsd.org/gpioleds.4)。
- 在 smte\(4\) (https://man.openbsd.org/smte.4)(SpacemiT K1 以太网设备)中改进了接收数据包的错误检查。
- 修复了 SpacemiT K1 SoC 上的常规 MSI 中断。
- 为 smtclock\(4\) (https://man.openbsd.org/smtclock.4) 添加了 SpacemiT K3 SoC 支持。
- 为 qcgpio\(4\) (https://man.openbsd.org/qcgpio.4) 添加了 SC7280 支持。
- 添加了对 SpacemiT K3 dwpcie\(4\) (https://man.openbsd.org/dwpcie.4) PCIe 控制器的支持。
- 添加了 RK3528 I2C5 时钟,用于 Radxa E24C。
- 为 Qualcomm Glymur(X2)SoC 添加了 ACPI 硬件 ID。
- 在 apldart\(4\) (https://man.openbsd.org/apldart.4) 中实现了页表镜像;为 Apple USB 控制器启用 IOMMU。
- 新增 samsabi\(4\) (https://man.openbsd.org/samsabi.4) 驱动,用于 Samsung Advanced BIOS Interface(SABI)。
- 新增 sambat\(4\) (https://man.openbsd.org/sambat.4) 驱动,用于 Samsung 笔记本电池监控。
- 新增 rkotp\(4\) (https://man.openbsd.org/rkotp.4) 驱动,用于 Rockchip OTP 内存。
- 添加了对 Radxa Zero 3 板上用于 CPU 电压的 RK8600 稳压器的支持。
- 添加了更多 AMD "Krackan Point" 设备 ID。
- 修复了 HONOR MagicBook 触摸板的多点触控支持。
- 修复了 esp\(4\) (https://man.openbsd.org/esp.4) 的 FIFO 内存溢出。
- 修复了 softraid\(4\) (https://man.openbsd.org/softraid.4) 重建中潜在的内存泄漏。
- 修复了在 4096 字节扇区磁盘上的 softraid\(4\) (https://man.openbsd.org/softraid.4) 重建。
- 修复了支持 64 位 DMA 的 re\(4\) (https://man.openbsd.org/re.4) 的高内存 mbufs 问题。
- 新增或改进的网络硬件支持:
- 为 em\(4\) (https://man.openbsd.org/em.4) 添加了对 Panther Lake 和 Wildcat Lake 以太网设备的支持。
- 为 ix\(4\) (https://man.openbsd.org/ix.4) 驱动添加了对 Intel E610 以太网设备的支持。
- 新增或改进的无线网络驱动:
- 正确处理 qwx\(4\) (https://man.openbsd.org/qwx.4) 硬件可能返回空数据包的情况。
- 为 qwx\(4\) (https://man.openbsd.org/qwx.4) SRNG DMA 描述符内存添加了缺失的 DMA 同步。
- 正确处理 qwx\(4\) (https://man.openbsd.org/qwx.4) 在附加时 VIF DMA 映射分配失败的情况。
- 修复了 qwx\(4\) (https://man.openbsd.org/qwx.4) vif 列表中过期指针的使用,该问题曾导致崩溃。
- 如果 qwx\_init\(\) 无法使设备进入 RUNNING 状态,正确重置 qwx\(4\) (https://man.openbsd.org/qwx.4) 驱动和设备状态。
- 避免 qwx\(4\) (https://man.openbsd.org/qwx.4) 设备上电期间的竞态条件。
- 在 qwx\(4\) (https://man.openbsd.org/qwx.4) qwx\_activate\(\) 中正确使用 ioctl rwlock。
- 确保 qwx\(4\) (https://man.openbsd.org/qwx.4) rx\_ring\-\>bufs\_max 和 freemap 始终正确初始化。
- 不再让 qwx\(4\) (https://man.openbsd.org/qwx.4) 初始化任务等待 ioctl 锁可用。
- 使 qwx\(4\) (https://man.openbsd.org/qwx.4) 正确处理 qwx\_qmi\_fw\_init\_done\(\) 中发生的错误。
- 修复了 qwx\(4\) (https://man.openbsd.org/qwx.4) 在 AP 之间漫游的问题。
- 只要接口处于 UP 状态,qwx\(4\) (https://man.openbsd.org/qwx.4) 始终允许数据帧中断。
- 为 qwx\(4\) (https://man.openbsd.org/qwx.4) 添加了 40MHz 信道支持。
- 使 qwx\(4\) (https://man.openbsd.org/qwx.4) 仅在有空闲 Rx 环形槽位时才分配新的 mbuf。
- 避免在 qwx\(4\) (https://man.openbsd.org/qwx.4) 中从中断上下文调用 bus\_dmamap\_create\(\)。
- 处理 qwx\(4\) (https://man.openbsd.org/qwx.4) 固件发送的国家代码事件,使关联更加可靠。
- 在命令环重置时重置 qwx\(4\) (https://man.openbsd.org/qwx.4) 命令环的 'queued' 计数器。
- 确保切换 net80211 状态时 qwx\(4\) (https://man.openbsd.org/qwx.4) 的 nq 标志始终被清除。
- 修复了 qwx\(4\) (https://man.openbsd.org/qwx.4) mac config 中设置的 tx/rx 流数量。
- 使 qwx\(4\) (https://man.openbsd.org/qwx.4) 在退出 RUN 状态时发送 PMF good\-bye deauth 帧。
- 确保 qwx\_stop\(\) 中 IFF\_RUNNING 状态期间不会有新任务被调度。防止了 qwz\(4\) (https://man.openbsd.org/qwz.4) 崩溃。
- 使 qwx\(4\) (https://man.openbsd.org/qwx.4) 在扫描树中优先选择 ic\_bss 而非临时节点。
- 在启动 vdev 之后(而非之前)向 qwx\(4\) (https://man.openbsd.org/qwx.4) 固件添加 peer。修复了固件崩溃问题。
- 为 qwx\(4\) (https://man.openbsd.org/qwx.4) 添加了 802\.11n 支持。通告 HT 能力并传递 HT/QoS peer 关联。
- 要求 qwx\(4\) (https://man.openbsd.org/qwx.4) 固件在重置设备前进入 M3 状态。
- 避免在 qwx\(4\) (https://man.openbsd.org/qwx.4) 中从中断上下文调用 bus\_dmamap\_destroy\(\)。
- 为 qwz\(4\) (https://man.openbsd.org/qwz.4) 添加了带 40MHz 宽度的 802\.11n 支持。
- 让 qwz\(4\) (https://man.openbsd.org/qwz.4) 在原生 WiFi 帧中处理 QoS。
- 安装程序、升级、引导加载程序和 pkg 工具的改进:
- 统一了 pkg\_add\(1\) (https://man.openbsd.org/pkg_add.1)、sysupgrade\(8\) (https://man.openbsd.org/sysupgrade.8) 和 syspatch\(8\) (https://man.openbsd.org/syspatch.8) 中对 installurl\(5\) (https://man.openbsd.org/installurl.5) 的处理。
- 修复了 fw\_update\(8\) (https://man.openbsd.org/fw_update.8) 对非限定文件名的可用空间检查。
- 为 fw\_update\(8\) (https://man.openbsd.org/fw_update.8) 可下载的文件大小设置了限制。
- 在 fw\_update\(8\) (https://man.openbsd.org/fw_update.8) 中加强了验证,不再将不可信注释当作数据处理。
- pkg\_add\(1\) (https://man.openbsd.org/pkg_add.1) 现在可以检测并规避 merge\-sets 导致的一些死循环。
- 清除 fw\_update\(8\) (https://man.openbsd.org/fw_update.8) FWURL 末尾的斜杠。
- 从 pkg\_add\(1\) (https://man.openbsd.org/pkg_add.1) 默认搜索路径中移除当前目录。
- 改进了 fw\_update\(8\) (https://man.openbsd.org/fw_update.8) 按文件名下载固件的功能。
- 改进了 SHA256\.sig 未找到时 fw\_update\(8\) (https://man.openbsd.org/fw_update.8) 的错误信息。
- fw\_update\(8\) (https://man.openbsd.org/fw_update.8) 现在会检查本地 SHA256\.sig 的签名。
- 在 fw\_update\(8\) (https://man.openbsd.org/fw_update.8) 中,使 tar\(1\) (https://man.openbsd.org/tar.1) 跳过预期位置之外的文件。
- 不再让 syspatch\(8\) (https://man.openbsd.org/syspatch.8) 在查找潜在更新时下载整个 tgz 文件。
- 安全改进:
- 在 vfs\(9\) (https://man.openbsd.org/vfs.9) 中修复了应用 pledge\(2\) (https://man.openbsd.org/pledge.2) 的问题。
- 修复了对 aplmca\(4\) (https://man.openbsd.org/aplmca.4) SoC 的越界访问尝试。
- 停止在各种工具中使用非标准的 UID\_MAX 和 GID\_MAX。
- 改进了 ipsec\(4\) (https://man.openbsd.org/ipsec.4) 的 AES GMAC 加密。
- 使 iked\(8\) (https://man.openbsd.org/iked.8) 拒绝格式错误和状态不符的 IKEv2 消息。
- 堵住了 x509\_verify 中的内存泄漏(CID 656293)。
- 避免……
相似文章
Ars Technica
OpenBSD 8.0 作为该项目的第 61 个版本正式发布,新增 Intel Arc 显卡支持、AMD64 上 512GB 的内核虚拟地址空间、ARM64 休眠功能、RISC-V 改进,以及 LibreSSL 和 OpenSSH 的更新,同时继续保持其长期以来的安全纪录。
Lobsters Hottest
OpenBSD 7.9 已发布,包含针对 arm64、amd64、luna88k、riscv64 等架构的平台特定改进,以及各种错误修复和增强的硬件支持。
Hacker News Top
OpenBSD 8.0 将引入来自 Linux 6.18 的 inteldrm/radeondrm/amdgpu 图形驱动(含 Intel Arc A 系列支持),并将 Clang/LLVM 22 设为基础编译器,同时带来 vmm/vmd 64 VCPU 客户机、新 WiFi 驱动与 httpd 新特性等多项更新。
Lobsters Hottest
NetBSD 11.0 历经长期延迟后终于发布,现已提供安装镜像和发布说明。该版本承认存在未解决的安全问题,并计划在两个月内发布后续的 11.1 版本。
Lobsters Hottest
HardenedBSD 提供了2026年八月与九月的状态报告,详细介绍了安全更新、基础设施迁移以及操作系统的未来计划,包括实验性功能。