実機のOSを起動できる、実行時にマシンコードをWebAssemblyへ変換してブラウザー上で動作するx86 PCエミュレーター。
ish-app/ish
脱獄不要で、ユーザーモードエミュレーションとシステムコール変換によりiOS上でx86 Linuxユーザーランドを動かすシェル。
- スター
- 20,677
- フォーク
- 1,600
- 未解決の Issue
- 647
- 最終コミット
- 15 日前
これは何?
iSHは、iOSにLinuxシェルをもたらすプロジェクトです。ユーザーモードでx86命令をエミュレートし、LinuxのシステムコールをiOS相当のものに変換することで、通常のiOSアプリ内でx86 Linuxユーザーランドのプログラムを実行します。
このプロジェクトには、マシンコードを生成する代わりに、連結した関数ポインター(「gadgets」)を通じてエミュレートした命令を振り分ける独自のインタープリターが含まれています。作者によると、単純なswitchベースのディスパッチと比べて約3〜5倍高速で、gadgetsの大半はアセンブリで書かれています。
iOSアプリに加えて、リポジトリには他のプラットフォームでのテストに使えるコマンドライン版のビルドも用意されています。単体で完結したAlpine Linuxのルートファイルシステムを利用でき、strace風のシステムコールログや命令単位のトレースなど、ログ出力先を設定できます。
主な機能
- 01ユーザーモードエミュレーションにより、iOS上でx86 Linuxユーザーランドのプログラムを実行します。
- 02LinuxのシステムコールをiOS相当のものに変換します。
- 03スレッドコード方式のインタープリターで、命令のディスパッチを高速化します。
- 04単体で完結したAlpine Linuxのファイルシステムを実行できます。
- 05システムコールのトレースなど、ビルド時に設定できるログ出力先を備えています。
ユースケース
- iPhoneやiPadでLinuxのコマンドラインツールを実行する。
- x86エミュレーションやシステムコール変換の仕組みを学ぶ。
- iOS上でポータブルなAlpine Linux環境を試す。
クイックスタート
- 1
git submoduleも含めてリポジトリをcloneします
git submodule update --init - 2
ビルドツールのMesonをインストールします
pip3 install meson - 3
Mesonでビルドディレクトリを作成します
meson build - 4
ビルドディレクトリでNinjaを使ってコマンドラインツールをビルドします
ninja
使う前に知っておきたいこと
- メインアプリの対象はiOSです。デバイス向けにビルドするには、XcodeとAppleの開発環境が必要です。
- メタデータには明確なライセンスが記載されておらず(NOASSERTION)、再利用の条件が不明です。
トピック
よくある質問
- ish とは?
- 脱獄不要で、ユーザーモードエミュレーションとシステムコール変換によりiOS上でx86 Linuxユーザーランドを動かすシェル。 iSHは、iOSにLinuxシェルをもたらすプロジェクトです。ユーザーモードでx86命令をエミュレートし、LinuxのシステムコールをiOS相当のものに変換することで、通常のiOSアプリ内でx86 Linuxユーザーランドのプログラムを実行します。
- ish は無料で使えますか?ライセンスは?
- ish は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- ish は今もメンテナンスされていますか?
- 活発にメンテナンス中。ish の最終コミットは 2026年10月24日 です。
- ish は何に使えますか?
- iPhoneやiPadでLinuxのコマンドラインツールを実行する。 x86エミュレーションやシステムコール変換の仕組みを学ぶ。 iOS上でポータブルなAlpine Linux環境を試す。
- ish のインストール方法は?
- git submoduleも含めてリポジトリをcloneします: git submodule update --init ビルドツールのMesonをインストールします: pip3 install meson Mesonでビルドディレクトリを作成します: meson build ビルドディレクトリでNinjaを使ってコマンドラインツールをビルドします: ninja
- ish はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/ish-app/ish
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
QEMUをベースにした軽量なCPUエミュレータフレームワーク。アーキテクチャに依存しないAPIで、複数のアーキテクチャのマシンコードを実行できます。
1981年以降のIBM PC互換機向けのビンテージOSやソフトウェアを動かせる、低レベルなx86エミュレーター。
スマートフォン、タブレット、2in1/PCでAlpineのシェルを使える、完全なarm64 Linux環境を実行するHarmonyOSアプリ。
AndroidエミュレーターやAndroidスマートフォン、iOSシミュレーター、iPhoneを並べてミラーリング・操作・設定変更できる、無料のオープンソースmacOSアプリ。
AIエージェントやLLMでiOS・Androidアプリを自動操作できるMCPサーバー