2026 年 4 月,Haiku 项目迎来一个迟来但意义重大的里程碑:ARM64 架构移植成功在 QEMU 中启动至桌面环境。作为 BeOS 的精神继承者,Haiku 自 2001 年启动以来始终专注于 x86 平台,而这次 ARM64 突破不仅意味着架构支持的扩展,更承载着开发者 "在 M1 MacBook Air 上运行 Haiku" 的夙愿。本文将剖析这一移植的技术实现路径,以及从虚拟化到原生硬件适配的关键挑战。
从 x86 到 ARM64:架构迁移的核心工程
Haiku 的 ARM64 移植并非简单的重新编译,而是涉及内核、引导加载器、驱动框架和用户态的全栈改造。核心贡献者 smrobtzz 在 hrev59575 至 hrev59665 期间完成了一系列关键修复:内核基地址重定位、帧指针清理、物理内存映射修正,以及用户态基础环境的构建。这些修改使得 Haiku 能够正确处理 ARM64 的内存模型和异常处理机制。
特别值得注意的是 Apple S5L UART 驱动的加入。这一驱动针对 Apple Silicon 的串口控制器进行适配,为未来原生硬件支持奠定基础。同时,SED4906 贡献的引导加载器页映射修复和 runtime_loader 页大小检查,解决了 ARM64 架构下页粒度差异带来的兼容性问题。
驱动框架的虚拟化验证
当前 ARM64 移植在 QEMU virt机器模型上运行,这为驱动开发提供了可控的测试环境。已验证支持的设备包括:virtio SCSI 存储、virtio 网络、xHCI USB 控制器,以及最多 8 核的 SMP 多处理器配置。这种基于 virtio 的驱动架构具有双重价值:一方面验证了 Haiku 驱动框架在 ARM64 下的稳定性,另一方面这些驱动可直接迁移至支持 virtio 的物理硬件。
然而,虚拟化环境与真实硬件存在本质差异。QEMU 提供的是标准化的设备模型,而 ARM 生态的碎片化意味着每款 SoC 都需要特定的设备树(Device Tree)描述和驱动支持。这也是 Haiku RISC-V 移植先于 ARM64 取得物理机进展的原因之一 ——RISC-V 平台虽然多样,但具备更开放的硬件文档标准。
通往 Apple Silicon 的未知道路
从 QEMU 到原生 M1 硬件,Haiku 仍需跨越三道门槛。首先是引导链:Apple Silicon 采用自定义的引导固件和 iBoot 机制,与标准 UEFI 存在显著差异。尽管 Asahi Linux 项目已对此进行大量逆向工程,Haiku 仍需实现相应的引导加载器适配。
其次是设备树解析。Apple 使用专有的设备树格式描述硬件拓扑,包括 CPU 集群、内存布局、中断控制器和外设连接。Haiku 需要实现解析器将这些信息转换为内核可用的硬件抽象。
最后是 SoC 驱动开发。M1/M2 芯片集成了 Apple 定制的 GPU、神经引擎、安全隔区和电源管理单元,这些组件缺乏公开文档,驱动开发需要依赖社区逆向成果。正如 Haiku 开发者 anevilyak 所言,Apple Silicon 的优势在于硬件标准化程度高 —— 相比 ARM 生态的 "设备树狂野西部",MacBook 型号间的硬件差异相对可控。
跨架构移植的工程启示
Haiku 的 ARM64 移植为操作系统开发者提供了可复用的经验。首先是分阶段验证策略:先通过 QEMU 建立基础架构支持,再逐步扩展到物理硬件。这种方法允许并行推进内核移植与驱动开发,降低调试复杂度。
其次是驱动框架的架构设计。Haiku 采用模块化驱动模型,virtio 驱动可在不同后端(QEMU/KVM、物理硬件)间复用,这种抽象层设计减少了架构迁移的重复劳动。
最后,社区协作的价值不容忽视。Asahi Linux 项目对 Apple Silicon 的逆向成果为 Haiku 等后来者提供了宝贵参考,这种开源生态的知识共享显著降低了新平台适配的门槛。
结语
Haiku ARM64 移植到达 QEMU 桌面是一个重要节点,但距离 "在 M1 MacBook 上运行" 的目标仍有相当距离。对于追求极致桌面体验的 Haiku 而言,ARM64 支持不仅是技术挑战,更是生态扩展的战略选择。随着 RISC-V 和 ARM 在桌面市场的崛起,Haiku 的多架构能力将决定其在未来计算格局中的位置。对于开发者而言,这一移植项目也证明了:即使在 2026 年,从零开始支持新架构仍然是理解操作系统本质的最佳途径。
资料来源
- Haiku 社区 ARM64 进展讨论:https://discuss.haiku-os.org/t/my-haiku-arm64-progress/19044
- OSNews 报道:https://www.osnews.com/story/144799/haiku-on-arm64-boots-to-desktop-in-qemu/
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。