Kakehashi: 在Linux ARM上运行macOS二进制文件
Show HN: Kakehashi – Experimental userspace to run macOS binaries on Linux ARM
Kakehashi 是一个实验性用户态翻译层,让开发者能在 Linux aarch64 环境(包括 Docker 和 UTM)中直接运行 macOS ARM64 的二进制文件。它无需 JIT,通过映射独立的 libSystem 和翻译 BSD 系统调用来实现。目前已成功运行 7-Zip 和 curl 等工具,旨在帮助团队利用廉价的 Linux 算力替代昂贵的 macOS 运行器,显著降低 CI/CD 成本。
产品的目标并非追求与原生 macOS 同等的速度,而是在廉价的 Linux aarch64 运行器上运行 Darwin 命令行工具,从而替代稀缺且昂贵的 macOS 资源。
HN 评论区
61- idieifkiwdu
这项目真酷,不过有个真心话想问:为什么大家总爱给这类项目起这么烂的名字?我知道软件工程师在起名这事儿上确实没什么创意天赋,但天哪,Kakehashi 这名字实在太难听了。
- 13rac1
有趣的项目!鉴于 WINE/Proton 在 Windows 应用上的成功,MacOS 应用的长期愿景是可行的。
你了解 Darling 项目吗?https://github.com/darlinghq/darling 那里有个支持 ARM64 的公开 PR:https://github.com/darlinghq/darling/pull/1753 你们能合并力量一起搞吗,还是说你们的目标差异太大?
- vlad_kalinkin
Hi HN,
我启动了一个实验性项目,目标是在 Linux ARM 机器上原生运行 macOS 命令行二进制文件。
目前,我们已有以下可用的原型:
- 7-Zip:在包含 8k 个文件的文件树上通过了多线程压缩测试。目前比原生 Linux 执行慢约 5.2 倍,但我已经规划好了明确的优化方案来缩小这一差距。
- curl:超过 200 个命令和选项成功通过了我们的自动化 Docker 测试脚本。
- Xcode Tools Git:基础版本控制命令(init, add, commit)已能运行,但尚未保证 100% 稳定。
非常欢迎大家提出建设性的批评、架构建议以及反馈!
谢谢!
- Arshad-Talpur
这是我找了很久的东西,不过我浏览了仓库和文档,感觉问题比想象中更大,解决方案似乎还太早期。我很好奇你们打算如何推进,会持续关注。
- derefr
如果你不在乎是否拥有完全可分发的镜像,而是愿意采用类似现代老式主机游戏反编译项目的做法(即编译项目时需要原始游戏 ROM 作为输入),那么像这样的项目会不会变得更容易?
换句话说,相比之下,设计一个虚拟化框架的难度有多大?这个框架不附带任何从头重写的库,而是期望在从“真实”macOS 安装中复制过来的完整 rootfs 上下文中执行目标二进制文件?