
오픈소스 프로젝트 Kakehashi가 macOS용 ARM64 명령줄 바이너리를 Linux ARM64 환경에서 실행하는 사용자 공간 번역 계층을 공개했다. 프로젝트 공식 GitHub 저장소에 따르면 Kakehashi는 Darwin의 Mach-O 실행 파일을 불러오고 독립형 libSystem을 연결한 뒤, BSD 시스템 호출을 Linux 쪽으로 번역한다.
Kakehashi는 CPU 명령을 에뮬레이션하거나 JIT 컴파일하는 방식이 아니다. 같은 ARM64 계열인 macOS 게스트 코드와 Linux 호스트 코드를 프로세서에서 직접 실행하고, 운영체제 경계를 넘는 시스템 호출을 런타임에서 처리한다. 프로젝트는 7-Zip 명령줄 도구와 curl, 스레드 및 clang 기반 테스트 프로그램을 실제 게스트로 실행했다고 설명했다.
현재 실시간 실행은 Linux aarch64 환경에서만 지원한다. Docker와 Colima, UTM 기반 Linux 환경에서 동작을 검증했으며, Rust 1.88 이상이 필요하다. 설치 뒤 전용 병 환경을 구성하고 macOS용 명령줄 프로그램을 불러오는 구조다. 소스 코드는 Apache License 2.0으로 공개됐다.
성능에는 아직 뚜렷한 제약이 있다. 프로젝트가 약 8천 개 파일, 240MiB 규모 트리를 7-Zip으로 압축한 자체 측정에서는 Linux 네이티브 실행이 약 22.5초, Kakehashi를 통한 macOS 바이너리 실행이 약 118초 걸렸다. 파일 수가 적고 압축 연산 비중이 큰 작업에서는 격차가 약 1.1배에서 1.2배로 줄었다고 저장소는 밝혔다. 개발진은 차이가 CPU 명령 번역보다 파일 탐색과 시스템 호출 경계 비용에서 주로 발생한다고 분석했다.
목표는 macOS 전체를 Linux에서 재현하는 데 있지 않다. macOS 전용 명령줄 도구가 필요한 지속적 통합 작업을 상대적으로 저렴하고 구하기 쉬운 Linux ARM64 실행 환경으로 옮기는 것이 프로젝트가 제시한 활용 방향이다. 다만 GUI 애플리케이션과 Apple Security.framework, 코드서명과 공증, Xcode UI 테스트는 지원하지 않는다. git과 전체 curl 기능도 아직 완성 단계가 아니다.
저장소에는 별도 정식 릴리스가 등록되지 않았고 프로젝트도 현재 상태를 제품 수준의 호환성 주장으로 보지 않는다고 명시했다. 실제 CI에 적용하려면 필요한 macOS 바이너리의 동작 여부뿐 아니라 해당 소프트웨어의 사용 조건도 함께 검토해야 한다.
출처: Kakehashi 공식 GitHub 저장소 https://github.com/wie-project/kakehashi
출처: Kakehashi 공식 라이선스 https://raw.githubusercontent.com/wie-project/kakehashi/main/LICENSE.txt