Skip to content
Tech News
← Back to articles

Show HN: Kakehashi – Experimental userspace to run macOS binaries on Linux ARM

read original more articles
Why This Matters

Kakehashi introduces an innovative userspace layer that enables running macOS binaries on Linux ARM64 systems without JIT compilation. This development is significant for the tech industry as it enhances cross-platform compatibility and opens new possibilities for developers and users to run macOS applications on Linux hardware, especially ARM-based devices. It also demonstrates progress in emulation and translation layers, potentially reducing reliance on traditional virtualization methods.

Key Takeaways

Kakehashi

Userspace macOS ARM64 → Linux aarch64 translation layer (CLI-first, no JIT).

Load Darwin Mach-O on Linux aarch64, map a freestanding libSystem , translate BSD syscalls, and run real guests (clang probes, 7-Zip 7zz , curl, threads).

Live execution Linux aarch64 (bare metal, VM, Colima/Docker) Dry-load / inspect Any host (including macOS) Design reference docs/

What works

Verified on Docker/Colima and UTM (Linux aarch64). Install once:

cargo install kakehashi # or from a checkout: cargo install --path crates/kh-cli --force kh bottle ensure kh install 7zip # Darwin 7zz → guest /usr/local/bin/7zz kh install curl # Darwin curl → guest /usr/local/bin/curl

Relative -o / archive paths resolve against the host CWD of the kh process (create parent dirs yourself, or rely on auto-mkdir for O_CREAT ). Through the bottle, /Volumes/linux/… bridges to the host root ( / → host / ).

7-Zip ( 7zz )

# Version / help kh run 7zz -- kh run 7zz -- --help # Create archive (cwd-relative) kh run 7zz -- a demo.7z README.md kh run 7zz -- t demo.7z kh run 7zz -- l demo.7z kh run 7zz -- x -o./out demo.7z # Multi-thread compress (correctness gate) kh run 7zz -- a -t7z -m0=lzma2 -mx=5 -mmt=4 mt.7z README.md kh run 7zz -- t mt.7z # expect: Everything is Ok, exit 0

... continue reading