Repolode
ish-app

ish-app/ish

在 iOS 上运行 Linux Shell 的应用,通过用户态 x86 模拟和系统调用转换实现。

Star
20,677
Fork
1,600
未关闭 Issue
647
最近提交
15天前

这是什么?

iSH 是一个在 iOS 上运行 Linux Shell 的项目。它通过用户态 x86 指令模拟,并将 Linux 系统调用转换为 iOS 上的对应操作,使 x86 Linux 用户态程序能够在普通 iOS 应用内运行。

项目包含一个自研解释器,它不生成机器码,而是通过串联函数指针(称为 gadget)来分派模拟指令。作者称相比简单的 switch 分派方式,速度提升约 3 到 5 倍。其中大部分 gadget 使用汇编编写。

除 iOS 应用外,仓库还提供用于测试的命令行版本,可配合独立的 Alpine Linux 根文件系统使用,并支持多种可配置的日志通道,例如系统调用日志和逐条指令跟踪。

核心功能

  • 01通过用户态模拟在 iOS 上运行 x86 Linux 用户态程序。
  • 02将 Linux 系统调用转换为 iOS 上的对应操作。
  • 03使用线程化代码解释器加速指令分派。
  • 04支持运行独立的 Alpine Linux 文件系统。
  • 05提供编译时日志通道,包括系统调用跟踪。

适用场景

  • 在 iPhone 或 iPad 上运行 Linux 命令行工具。
  • 学习 x86 模拟和系统调用转换的实现原理。
  • 在 iOS 上体验便携的 Alpine Linux 环境。

快速上手

  1. 1

    克隆仓库并初始化子模块

    git submodule update --init
  2. 2

    安装 Meson 构建工具

    pip3 install meson
  3. 3

    用 Meson 创建构建目录

    meson build
  4. 4

    在构建目录中用 Ninja 编译命令行工具

    ninja

使用前须知

  • 主应用面向 iOS,要在设备上构建需要 Xcode 和 Apple 开发者配置。
  • 元数据未明确许可证(NOASSERTION),复用条款不清楚。

标签

常见问题

ish 是什么?
在 iOS 上运行 Linux Shell 的应用,通过用户态 x86 模拟和系统调用转换实现。 iSH 是一个在 iOS 上运行 Linux Shell 的项目。它通过用户态 x86 指令模拟,并将 Linux 系统调用转换为 iOS 上的对应操作,使 x86 Linux 用户态程序能够在普通 iOS 应用内运行。
ish 可以免费使用吗?用的什么许可证?
ish 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
ish 还在维护吗?
活跃维护中。ish 最近一次提交是在 2026年10月24日。
ish 适合用来做什么?
在 iPhone 或 iPad 上运行 Linux 命令行工具。 学习 x86 模拟和系统调用转换的实现原理。 在 iOS 上体验便携的 Alpine Linux 环境。
ish 怎么安装和运行?
克隆仓库并初始化子模块: git submodule update --init 安装 Meson 构建工具: pip3 install meson 用 Meson 创建构建目录: meson build 在构建目录中用 Ninja 编译命令行工具: ninja
在哪里获取 ish?
源代码和安装说明在 GitHub 上:https://github.com/ish-app/ish

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目