System Requirements
For iOS Development
- macOS (required for Xcode)
- Xcode (latest version recommended)
- Apple Developer Account (for device deployment)
For CLI Tool Development
- Linux or macOS
- For ptraceomatic debugging tool: 64-bit Linux 4.11 or later
Core Dependencies
Required for All Builds
Clang and LLD
C compiler and linker required for building iSH.macOS:Linux (Debian/Ubuntu):Linux (Arch):
sqlite3
Required for the fake filesystem database.macOS: Already installed by defaultLinux (Debian/Ubuntu):Linux (Arch):
Git Submodules
iSH uses git submodules for dependencies. When cloning the repository, you must initialize submodules:deps/ directory contains:
- zydis: x86_64 instruction decoder (for 64-bit guest architecture)
- libarchive: Archive extraction library
- linux: Linux kernel sources (for Linux kernel mode)
Build Options
iSH supports several build-time configuration options via Meson:Engine Selection
Guest Architecture
Kernel Mode
Logging Channels
Enable logging channels for debugging:- strace: Logs system call parameters and return values
- instr: Logs every instruction (significantly impacts performance)
- verbose: General debug logs
Log Handler
Optional Dependencies
For Debugging Tools (Linux only)
- ptraceomatic: Requires 64-bit Linux 4.11 or later
- Built automatically on compatible systems
For Unicorn Engine (Optional)
If using the Unicorn engine:Verifying Your Environment
Before building, verify all dependencies are installed:Next Steps
Once you have all dependencies installed:- Build for iOS - Build the iOS app
- Build CLI Tool - Build the command-line testing tool