macOSバイナリをLinux ARMで動かす実験的レイヤー「Kakehashi」
原題: Show HN: Kakehashi – Experimental userspace to run macOS binaries on Linux ARM
なぜ重要か
macOSバイナリをLinux ARM上で動かす技術は、クロスプラットフォーム開発やApple Siliconエコシステム資産の活用範囲を広げる可能性を持つ。
GitHubユーザーのwie-projectが、macOS向けARM64バイナリをLinux aarch64上で実行するユーザースペース変換レイヤー「Kakehashi」を公開した。JITなしのCLIファーストな設計で、Darwin Mach-Oの読み込み、BSDシステムコールの変換を行い、clang・7-Zip・curl・スレッドなどの実際のバイナリ動作を確認済みとしている。
「Kakehashi(かけはし)」は、macOS向けにビルドされたARM64バイナリをLinux aarch64環境上で動作させることを目的とした、実験的なユーザースペース変換レイヤーだ。GitHubのwie-projectが開発しており、現時点でスター数は157を記録している。
アーキテクチャ上の主な特徴として、JIT(Just-In-Time)コンパイルを使用しないCLIファーストの設計を採用している。Darwin形式のMach-Oバイナリをロードし、スタンドアロンのlibSystemをマッピング、BSDシステムコールをLinux向けに変換することで動作する。
実際の動作が確認されているバイナリとして、clangプローブ、7-Zip(7zz)、curl、およびスレッドを使用するプログラムが挙げられている。動作確認環境はDocker/ColimaおよびUTM(Linux aarch64)で、ベアメタル・VM・Colima・Dockerいずれの環境でもライブ実行が可能とされている。また、macOSを含む任意のホストでドライロード(実行せずにバイナリを検査する機能)も利用できる。
インストールはRustのパッケージマネージャCargoを通じて行い、「cargo install kakehashi」のコマンド一つで導入できる。ライセンスはApache-2.0で、リポジトリにはCONTRIBUTING.mdや設計ドキュメントも含まれている。プロジェクト名「Kakehashi」は日本語の「橋」に由来すると考えられ、異なるOS間のバイナリ互換性を橋渡しするという性質を反映している。