5月16日、taoofmacの著者が「Announcing ios-linuxkit: Linux on iPad, the Hard Way」と題した記事を公開した。AppleのiOSでLinuxランタイムを動作させる技術的プロジェクト「ios-linuxkit」について詳しく紹介している。
高性能なiPadで本格的な開発環境を構築したい開発者にとって、Appleの制限は長年の課題だった。JIT(Just-In-Time)コンパイル禁止、RWXメモリアクセス制限により、Docker、VM、多くの開発ツールがiOS上で動作しない。既存のiSHはx86エミュレーションでLinux環境を提供するが、AArch64ネイティブ環境は提供できていなかった。
Appleの制限を技術的に回避する「ios-linuxkit」
著者は1400ユーロのM4チップ搭載iPad Proが、50ユーロのARMボードで動作するツールを実行できない現状に業を煮やし、ios-linuxkitを開発した。Appleが禁止するJIT、RWXメモリ、MAP_JITを一切使わずに、iPhone・iPad上でAArch64ユーザーランド環境を実現している。

技術的基盤はiSHのish-arm64ブランチで、「Asbestos」と呼ばれるスレッドコードインタープリターを実装している。事前コンパイル済みガジェットディスパッチを通じてARM64 Linux命令を変換し、ランタイムコード生成を回避してApp Storeポリシーに適合させている。
実用的な開発環境として機能
現在のバリデーションではAlpine ARM64上で82のコアテストが通過し、従来のiSHでは動作しなかった言語・ランタイムをサポートしている:
- Go(元のiSHでは動作不可だった)
- Rust
- Bun、Node.js
- Python
- Java
- Zig
興味深いことに、AI コーディングエージェントのテストも実施されており、多くのツールが動作を確認できたという。性能面ではインタープリター方式のため制約があるものの、「シェルとコンパイラーにとって十分な速度」を実現している。
AI支援による効率的な開発プロセス
著者は独自開発のAIツールpiclawを活用し、カスタムgdbスキルでテストの失敗検出・修正・再実行ループを自動化している。戦略決定は人間が行い、機械的な作業をAIに委譲することで、手作業では数ヶ月かかる作業を大幅に効率化している。
ローカル開発環境への強いこだわり
著者の目標は明確だ。サーバーからプロキシされたUIではなく、デバイス上でローカルに、ターミナルで、ワークスペースを使って開発すること。Alpineのapkパッケージマネージャーにより、従来のa-Shellの制約なしに必要なCLIツールを容易に導入できる。
ターミナル環境も改善され、独自のGhosttyフレーバーであるrcarmo/ghostty-webで古いiSHターミナルを置き換えている。
オープンソースとしての理念
著者はApp Storeでの配布を意図せず、「週次でiPadをラップトップに接続せずに済むよう、Appleに99ドル支払うつもりもない」と明言している。プロジェクトはオープンソースとして公開され、他の開発者がより良いツールを構築できる基盤を提供している。
この取り組みは、Appleのハードウェア制限に対する純粋に技術的なアプローチであり、iOS上でのネイティブLinux開発環境という長年の課題に対する実用的な解決策を示している。モバイルデバイスでの本格的な開発環境を求める開発者にとって、重要な一歩となりそうだ。
詳細はAnnouncing ios-linuxkit: Linux on iPad, the Hard Wayを参照していただきたい。