Show HN: Kakehashi——Linux ARM上运行macOS二进制的实验性用户空间

Show HN: Kakehashi——Linux ARM上运行macOS二进制的实验性用户空间

_

在 Linux ARM 上运行 macOS 二进制程序:Kakehashi 的实验性方法

操作系统领域是一个错综复杂的织锦,由各种平台和架构交织而成。虽然 Linux 长期以来一直是基于 ARM 系统的开发者和爱好者的首选,但 macOS 仍然是一个强大且流行的环境,尤其是在创意专业人士和开发 Apple 生态系统的开发者中。弥合这两个世界之间的差距一直是一个挑战,但最近用户空间兼容层方面的进步为人们打开了新的大门。其中一个项目在科技界引起了关注,那就是 Kakehashi——一个实验性用户空间层,旨在让 macOS 二进制程序在 Linux ARM 上运行。

跨平台兼容性的挑战

多年来,ARM 架构一直是移动设备的基石,并且最近也成为了桌面和服务器计算的基础。像 Ubuntu、Debian 等其他 Linux 发行版在针对 ARM 优化方面取得了显著进展,使其成为传统 x86 系统的一个可行替代方案。然而,macOS 由苹果公司专为其 x86 处理器(现在包括基于 ARM 的 Apple Silicon)开发,在很大程度上与 Linux ARM 不兼容。

这种不兼容性对需要在基于 ARM 的 Linux 系统上使用 macOS 特定软件的开发者和用户构成了重大障碍。虽然 Wine 和其他兼容层在 Linux 上运行 Windows 二进制程序方面取得了进展,但 macOS 和 Windows 之间的复杂性和差异带来了独特的挑战。macOS 依赖于不同的运行时环境、系统 API 和二进制格式,使得简单的兼容性成为一个非平凡的任务。

Kakehashi 的登场

由 wie-project 开发的 Kakehashi 旨在通过创建一个实验性用户空间层来解决这个问题,该层允许 macOS 二进制程序在 Linux ARM 上运行。该项目仍处于早期阶段,但它展示了一种有前景的跨平台兼容性方法。

它是如何工作的

从本质上讲,Kakehashi 利用用户空间的灵活性来弥合 macOS 和 Linux ARM 之间的差距。与尝试模拟整个 macOS 内核和系统库的传统兼容层不同,Kakehashi 专注于拦截和转换 macOS 二进制程序与 Linux ARM 环境之间的系统调用和 API 交互。

以下是 Kakehashi 运作方式的简化概述:

  1. 二进制拦截:当执行 macOS 二进制程序时,Kakehashi 会拦截该程序进行的系统调用。然后,这些调用被转换为 Linux ARM 内核可以理解的等效操作。

  2. API 翻译:macOS 和 Linux 使用不同的系统 API。Kakehashi 包含一个翻译层,将 macOS API 调用映射到它们的 Linux ARM 等价物。这涉及大量工作,因为这两个生态系统都有它们自己的怪癖和细微差别。

  3. 资源管理:运行一个外部的二进制程序需要仔细管理系统资源。Kakehashi 确保macOS 二进制程序可以访问必要的资源,同时保持稳定性和性能。

翻译系统调用的示例

考虑一个简单的示例,其中 macOS 二进制程序进行系统调用以访问文件系统。在 macOS 中,这可能涉及使用特定参数调用 open()。在 Linux 中,等效调用可能是 openat()。Kakehashi 的翻译层会拦截 open() 调用,将其翻译为 openat(),然后执行适当的 Linux ARM 系统调用。

// macOS 二进制程序
int fd = open("/path/to/file", O_RDONLY);

// Kakehashi 翻译层
int fd = translate_open("/path/to/file", O_RDONLY);

虽然这个示例被简化了,但实际的翻译过程要复杂得多,需要深入理解 macOS 和 Linux ARM 的系统 API。

用户空间在兼容性中的作用

Kakehashi 的方法突出了用户空间在实现跨平台兼容性方面的力量。通过将翻译层保留在用户空间,该项目避免了修改 Linux 内核的需要,而修改内核将是一个更复杂且艰巨的任务。用户空间提供了更大的灵活性和更易于维护,允许开发人员快速迭代并适应 macOS 和 Linux ARM 的变化。

然而,用户空间兼容层也带来了它们自己的挑战。性能开销、内存管理问题和持续翻译的需要可能会影响运行二进制程序的效率和稳定性。Kakehashi 通过精心设计和优化来缓解这些问题,但它仍然是一个实验性项目。

社区反应和未来潜力

Kakehashi 的发布在科技界引起了巨大兴趣,这在 Hacker News 上的积极反响中得到了证明。该项目弥合 macOS 和 Linux ARM 之间差距的潜力可能对开发者和用户产生深远影响。

  • 对于开发者:Kakehashi 可以让开发者在基于 ARM 的 Linux 系统上测试和运行 macOS 特定软件,而无需昂贵的 Apple 硬件或虚拟机。这可以加速跨平台开发和测试工作流程。

  • 对于用户:依赖 macOS 软件但偏爱 Linux ARM 的灵活性和成本效益的爱好者和专业人士可以从 Kakehashi 中受益。它为更广泛的软件打开了大门,而不会牺牲他们喜欢的操作系统。

这意味着什么

Kakehashi 代表了跨平台兼容性方面的一个重要进步,特别是在基于 ARM 的 Linux 系统上。虽然它仍然是一个实验性项目,离成为生产就绪的解决方案还有很长的路要走,但它展示了用户空间兼容层克服不同操作系统之间障碍的潜力。

Kakehashi 的成功将取决于几个因素:

  • 性能:翻译层能否保持对实际应用程序可接受的性能水平?

  • 稳定性:macOS 二进制程序在 Linux ARM 上运行有多可靠,而不会崩溃或表现出意外行为?

  • 社区支持:该项目是否会获得必要的贡献和反馈以进化和改进?

尽管存在这些挑战,Kakehashi 为一个未来提供了启示,在这个未来中,不同操作系统之间的界限变得模糊,软件兼容性不再是一个限制因素。目前,它仍然是一个引人入胜的实验,可能会为更高级的跨平台解决方案铺平道路。

总结

Kakehashi 是一个创新且雄心勃勃的项目,旨在通过实验性用户空间兼容层在 Linux ARM 上运行 macOS 二进制程序。虽然它面临着重大挑战,但它弥合 Apple 生态系统和开放源代码 Linux 世界之间差距的潜力是不可否认的。随着项目的演变,它可能会为开发者和用户提供一个强大的跨平台兼容性工具,推动操作系统领域可能的边界。

Show HN:NixOS-DGX-Spark – 在DGX Spark上使用Nix和NixOS 2026-08-03
二十年的RISC OS Open 2026-08-03

评论区