OpenBSD 8.0

Lobsters Hottest 产品

摘要

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)。 - 避免……

相似文章

OpenBSD 8.0 正式发布,安全纪录依旧保持完好

Ars Technica

OpenBSD 8.0 作为该项目的第 61 个版本正式发布,新增 Intel Arc 显卡支持、AMD64 上 512GB 的内核虚拟地址空间、ARM64 休眠功能、RISC-V 改进,以及 LibreSSL 和 OpenSSH 的更新,同时继续保持其长期以来的安全纪录。

OpenBSD 7.9 发布

Lobsters Hottest

OpenBSD 7.9 已发布,包含针对 arm64、amd64、luna88k、riscv64 等架构的平台特定改进,以及各种错误修复和增强的硬件支持。

NetBSD 11.0 发布

Lobsters Hottest

NetBSD 11.0 历经长期延迟后终于发布,现已提供安装镜像和发布说明。该版本承认存在未解决的安全问题,并计划在两个月内发布后续的 11.1 版本。

HardenedBSD 2026年八月与九月状态报告

Lobsters Hottest

HardenedBSD 提供了2026年八月与九月的状态报告,详细介绍了安全更新、基础设施迁移以及操作系统的未来计划,包括实验性功能。