리눅스(Linux) ARM64 환경에서 애플(Apple)의 macOS ARM64용 커맨드라인 인터페이스(CLI) 바이너리를 직접 실행할 수 있는 실험적인 사용자 공간 변환 계층 '카케하시(Kakehashi)' 프로젝트가 공개되어 주목받고 있습니다. 이 프로젝트는 기존의 복잡한 가상화나 명령어 에뮬레이션(emulation) 방식과 달리, JIT(Just-In-Time) 컴파일 없이 macOS 바이너리를 리눅스 환경에서 거의 네이티브(native)에 가깝게 실행하는 것을 목표로 합니다.
카케하시는 macOS의 실행 파일 형식인 다윈(Darwin) Mach-O를 파싱하고 매핑하여 실행하며, 독립형 'libSystem.B.dylib'을 제공하고 다윈 BSD 시스템 호출(system call)을 리눅스 환경에 맞게 변환합니다. 현재 7-Zip(7zz)과 curl 같은 CLI 도구의 실행이 검증되었으며, 특히 7-Zip의 경우 대규모 파일 압축 시 리눅스 네이티브 대비 약 5.2배 느리지만, 파일 수가 적은 압축 작업에서는 1.1~1.2배 수준으로 성능 격차가 줄어듭니다. 이는 주로 시스템 호출 경계에서 발생하는 오버헤드 때문이며, 향후 최적화를 통해 개선될 여지가 있습니다. 카케하시는 베어메탈, 가상 머신(VM), 도커(Docker) 등 다양한 리눅스 ARM64 환경에서 구동 가능합니다.
이 프로젝트의 핵심 목표는 저렴한 리눅스 ARM 기반 CI(Continuous Integration) 환경에서 다윈 CLI 도구를 실행하는 것입니다. 현재 깃허브 액션(GitHub Actions)의 macOS 러너는 리눅스 ARM64 러너보다 분당 약 10~12배 비싸기 때문에, 카케하시를 활용하면 macOS 전용 CLI 도구를 사용하는 CI/CD 파이프라인의 비용을 크게 절감할 수 있습니다. 예를 들어, 작업이 카케하시에서 5배 느려지더라도 전체 비용은 리눅스 쪽이 더 저렴할 수 있습니다. 이는 개발자들이 macOS에 특화된 빌드나 테스트 작업을 더 효율적으로 수행할 수 있게 하여, 개발 생산성 향상에 기여할 것으로 기대됩니다. 다만, GUI, 코드 서명, 공증, Xcode UI 테스트 등 애플 프레임워크에 의존하는 복잡한 작업은 현재 지원 범위가 아닙니다.