Loading... # OpenBSD-current now runs as guest under Apple Hypervisor # 一、新闻概述 ## 1. 标题 OpenBSD-current 现已支持在 Apple Hypervisor 上运行 ## 2. 发布时间 2026 年 1 月 15 日 ## 3. 来源 OpenBSD Journal(undeadly.org) # 二、核心内容 ## 1. 事件摘要 ### A. 主要内容 OpenBSD 项目宣布 OpenBSD/arm64 分支现在可以作为客机操作系统在 Apple Hypervisor 框架上正常运行。这一突破性进展得益于近期的一系列代码提交。 ### B. 核心亮点 - OpenBSD/arm64 成功支持 Apple Silicon Mac 的虚拟化框架 - 修复了 viogpu 显卡驱动的关键内存映射问题 - 完善了 virtio 网络驱动的 MTU 特性支持 - 相关补丁已进入快照版本 ## 2. 关键信息 ### A. 版本信息 - OpenBSD-current(开发版本) - OpenBSD/arm64 架构 ### B. 核心开发者 - Helg Bredow(helg@) - Stefan Fritsch(sf@) ### C. 涉及组件 - Apple Hypervisor 框架 - virtio GPU 驱动(sys/dev/pv/viogpu.c) - virtio 网络驱动(sys/dev/pv/if_vio.c) ## 3. 背景介绍 ### A. 技术背景 Apple Hypervisor 是 Apple 提供的虚拟化框架,允许在 macOS 上创建和管理虚拟机。自 Apple Silicon(M1/M2/M3 系列芯片)推出以来,开发者一直期待在 Apple Silicon Mac 上运行 OpenBSD 虚拟机。 ### B. 技术挑战 OpenBSD 在 Apple Hypervisor 上运行面临两大技术障碍: 1. GPU 驱动的内存映射问题导致 X11 无法正常显示 2. 网络驱动的 MTU 特性协商不完善 # 三、详细报道 ## 1. 主要内容 ### A. 显卡驱动修复 Helg Bredow 提交的补丁修复了 viogpu 驱动的关键问题: ```mermaid graph LR A[viogpu_wsmmap] -->|返回| B[虚拟地址 KVA] B -->|应返回| C[物理地址] C -->|通过| D[bus_dmamem_mmap] D --> E[修复前:黑屏] D --> F[修复后:正常显示] ```  **问题根源**: - viogpu_wsmmap() 函数返回了内核虚拟地址(KVA) - 应该返回物理地址以便通过 bus_dmamem_mmap(9) 映射到用户空间 - 导致 QEMU 启动 X11 时只显示黑屏 - 在 Apple Hypervisor 上会导致内核崩溃 **解决方案**: - 修改 viogpu_wsmmap() 返回物理地址而非虚拟地址 - 添加 bus_dmamap_sync(9) 调用,确保帧缓冲区更新对宿主机可见 - 保证在不同 CPU 核心运行时的内存一致性 ### B. 网络驱动增强 Stefan Fritsch 实现了 VIRTIO_NET_F_MTU 特性支持: ```mermaid sequenceDiagram participant G as 客机系统 participant H as Hypervisor participant D as virtio 网卡驱动 G->>H: 特性协商请求 H-->>G: 支持 VIRTIO_NET_F_MTU G->>D: 获取 hypervisor MTU 限制 D->>D: 设置当前 MTU = hardmtu D->>D: 检查是否超过 ETHER_MAX_HARDMTU_LEN alt MTU 超限 D->>H: 重新协商,禁用 VIRTIO_NET_F_MTU else MTU 正常 D->>D: 使用 hypervisor MTU end ```  **技术细节**: 1. 实现 VIRTIO_NET_F_MTU 特性,允许从 hypervisor 获取 hardmtu 2. 将当前 MTU 设置为与 hardmtu 相同的值(与 Linux 行为一致) 3. 使用 ETHER_MAX_HARDMTU_LEN 作为上限,替代原有的 MAXMCLBYTES 4. 若 hypervisor 请求的 MTU 超过上限,重新协商并禁用该特性 ### C. 技术改进要点 | 组件 | 修改内容 | 影响范围 | |------|---------|---------| | viogpu 驱动 | 修复内存映射返回值 | QEMU 和 Apple Hypervisor 显示 | | viogpu 驱动 | 添加内存同步调用 | 多核 CPU 场景 | | vio 网络驱动 | MTU 特性支持 | Apple Virtualization 兼容性 | # 四、影响分析 ## 1. 行业影响 ### A. 虚拟化生态 OpenBSD 加入 Apple Hypervisor 支持行列,丰富了 Apple Silicon 平台的虚拟化选择。与其他 BSD 系统(如 FreeBSD)形成互补。 ### B. 开源社区 这一进展展示了开源社区对新硬件平台的快速适应能力,为其他操作系统在 Apple Silicon 上的适配提供参考。 ## 2. 用户影响 ### A. 现有用户 对于 Apple Silicon Mac 用户,现在可以在本机运行 OpenBSD 虚拟机进行测试、开发或学习。 ### B. 潜在用户 降低在 Apple 硬件上体验 OpenBSD 的门槛,无需额外硬件即可尝试 OpenBSD 的安全特性。 ### C. 应用场景 - 安全研究与测试环境 - 网络服务虚拟化部署 - OpenBSD 学习与开发 - 防火墙和路由器虚拟 appliance ## 3. 技术趋势 ### A. Apple Silicon 适配 随着 Apple Silicon 芯片的普及,各操作系统对这一平台的适配成为重要趋势。 ### B. 虚拟化标准化 virtio 驱动的完善体现了跨平台虚拟化标准的成熟,有利于异构虚拟化环境的互操作性。 # 五、各方反应 ## 1. 官方回应 OpenBSD Journal 鼓励拥有相应硬件的用户进行测试并提供反馈。 ## 2. 社区反馈 社区期待这一功能能够稳定后合并到稳定版本分支。 ## 3. 技术评价 这一突破展示了 OpenBSD 社区对新硬件平台的快速响应能力,特别是在缺乏官方支持的情况下通过社区协作实现功能适配。 *** ## 参考资料 1. [OpenBSD Journal 原文](https://www.undeadly.org/cgi?action=article;sid=20260115203619) 2. [Apple Hypervisor 文档](https://developer.apple.com/documentation/hypervisor) 3. [OpenBSD/arm64 项目页面](https://www.openbsd.org/arm64.html) 4. [Helg Bredow 的 CVS 提交](https://marc.info/?l=openbsd-cvs&m=176824452210423&w=2) 5. [Stefan Fritsch 的 CVS 提交](https://marc.info/?l=openbsd-cvs&m=176847076401851&w=2) 最后修改:2026 年 01 月 16 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏