• Home
  • News
  • Blog
  • Releases
  • LLM history
  • Compare LLMs
  • Library
  • About
⌘K
Sign in

A blog and notes on development. The easiest way to reach me is via the social links below.

Contacts
talalaev.misha@gmail.com
Documents
Personal data processing policyPersonal data processing consent
Photo: Chris Ried / Unsplash

macOS Binaries on Linux ARM64 Without Emulation: The Kakehashi Project

Sh0ny
Sh0ny
3 августа 2026
  1. Home
  2. Blog
  3. macOS Binaries on Linux ARM64 Without Emulation: The Kakehashi Project
2 min read

In short

Kakehashi runs macOS Mach-O executables natively on Linux ARM64—without JIT or processor emulation, using only system call replacement. This approach works for command-line utilities, and the engineering principle behind it is more interesting than the result itself.

The Kakehashi project does something that, at first glance, sounds like emulation, but in fact is not. It runs macOS executables in the Mach-O format, compiled for ARM64, on Linux systems with the same processor architecture. No JIT compilation, no instruction emulation—the code runs natively. The entire process boils down to overriding system calls for libSystem and handling exceptions.

This is possible precisely because Apple Silicon and a typical Linux ARM64 system share the same ISA. The processor understands the same instructions; the difference between macOS and Linux for a user-space binary lies not in the CPU, but in the kernel interface. Kakehashi does not translate machine code—it translates the context of calls, replacing the macOS system layer with Linux equivalents.

In this sense, the project is closer to Wine than to QEMU, but even simpler: Wine often runs on a foreign architecture and is forced to translate instructions. Here, that layer is completely absent. The only overhead is for handling syscalls and exceptions, which means command-line utilities run at nearly native speed.

The limitations are also clear from the description. The project’s goal is to run CLI utilities built for macOS, not GUI applications. For graphical software, it would be necessary to emulate or port AppKit, CoreGraphics, and the entire framework stack—that’s a completely different scale of work. The current approach works precisely because CLI utilities require only a minimal set of system calls.

The implementation in Rust under the Apache 2.0 license is a choice that makes the project easy to integrate into other tools and distributions. If you have a pipeline where some of your scripts are built on macOS ARM64, but your infrastructure runs on Linux ARM64, Kakehashi is a good candidate for removing one layer of workarounds.

The main question isn’t whether it will work with your specific utility, but how quickly the community will add the missing syscall handlers. The project is young, and syscall coverage is a natural bottleneck for any ABI translator.

Source: OpenNews.opennet.ru: General News Feed

новостиразработкатехнологии
More AI-tool write-ups on the Telegram channel — short and to the point
Subscribe on Telegram

Comments

(0)
​