Поиск по сайту:

Как запустить оболочку Linux на iOS


iSH — активный проект по запуску оболочки Linux на iOS. Он предлагает среду Alpine Linux с менеджером пакетов apk. Приложение основано на эмуляции пользовательского режима x86.

Вы можете скачать iSH из App Store. Новые установки включают полностью функционирующий apk по умолчанию. Существующим пользователям приложения может потребоваться вручную установить apk, следуя инструкциям в документации.

Начиная

Начните с установки iSH из App Store. Запустите приложение, и вы попадете прямо в терминальную среду Alpine Linux.

Вы можете начать выполнять знакомые команды Linux! Вы можете использовать все утилиты Unix, предоставляемые BusyBox, включая cat, grep, ls, sed и wget.

iSH предоставляет собственную полосу значков клавиатуры, чтобы упростить использование терминала с сенсорным экраном. Четыре кнопки слева от полосы — это Tab, Control, Escape и клавиши со стрелками соответственно. Проведите кнопкой со стрелкой в том направлении, в котором вы хотите, чтобы курсор перемещался.

Три кнопки справа открывают интерфейс настроек, вставляют текст из буфера обмена iOS и скрывают клавиатуру. Нажмите в любом месте, чтобы вернуть клавиатуру после ее скрытия.

Настройки iSH

Меню «Настройки» позволяет настроить несколько параметров. Страница «Внешний вид» позволяет установить шрифт и переключаться между светлой и темной темами. На странице значка приложения вы можете выбрать один из нескольких значков приложений. Этот выбор позволяет вам сопоставить iSH с визуальным стилем других приложений на рабочем столе iOS.

Внешняя клавиатура позволяет вам контролировать, как iSH должен работать с физической клавиатурой, подключенной через Bluetooth или USB-адаптер. В дополнение к встроенным параметрам переназначения iOS, вы можете переназначить параметры и клавиши обратной кавычки на мета-ключи iSH и клавиши escape. Вы можете скрыть полосу значков iSH при использовании внешней клавиатуры, включив параметр «Скрыть с внешней клавиатурой».

Файловые системы

iSH поддерживает использование нескольких файловых систем. Перейдите на страницу «Файловые системы» в меню настроек, чтобы управлять ими. Для начала вы увидите одну файловую систему «по умолчанию», содержащую встроенную установку Alpine.

Нажмите «Обзор файлов», чтобы открыть файловую систему в приложении «Файлы» iOS. Это поможет вам быстро копировать файлы из iSH в другие места на вашем устройстве iOS.

Вы можете экспортировать всю файловую систему с помощью опции «Экспорт». Файловые системы можно импортировать в iSH с помощью кнопки «Импорт» на главной странице «Файловые системы».

Практический вариант использования файловых систем позволяет вам запускать несколько автономных установок. В настоящее время будут работать только минимальные изображения Alpine, похожие на оригинал iSH.

Вы можете попробовать «Mini Root Filesystem» от Alpine — загрузите ее, импортируйте и нажмите «Boot From This Filesystem», чтобы перезапустить iSH с использованием файловой системы. Вернитесь к файловой системе по умолчанию, выбрав ее пункт меню и снова выбрав «Загрузить из этой файловой системы».

Добавление пакетов

Вы можете использовать обычные команды apk для управления пакетами в вашей среде iSH.

# Update the package lists
apk update

# Upgrade existing installed packages
apk upgrade

# Install SSH
apk add openssh

# Remove SSH
apk del openssh

Имейте в виду, что iSH по умолчанию использует собственные репозитории пакетов. Это позволяет приложению пройти проверку в App Store, гарантируя его полную автономность.

Вы можете переключиться на официальные репозитории Alpine Linux, если хотите. Это дает вам доступ к полному списку программного обеспечения Alpine. Многие пакеты будут иметь более новые версии в основных репозиториях Alpine, чем версии, предлагаемые в репозиториях iSH.

grep -v "file:///ish/apk/" /etc/apk/repositories | dd of=/etc/apk/repositories bs=4194304
echo https://dl-cdn.alpinelinux.org/alpine/v3.12/main >> /etc/apk/repositories
echo https://dl-cdn.alpinelinux.org/alpine/v3.12/community >> /etc/apk/repositories

Запустите приведенные выше команды, чтобы заменить содержимое псевдофайловой системы iSH /ish/apk репозиториями, предлагаемыми Alpine Linux. Затем вам нужно будет запустить apk update, чтобы получить новые списки пакетов.

Использование SSH

Вы можете установить OpenSSH с помощью apk add openssh.

Клиент сразу заработает — попробуйте ssh me@myserver.

Чтобы использовать ваше устройство iOS в качестве SSH-сервера, выполните следующие команды:

ssh-keygen -A
passwd
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
sshd

Это сгенерирует ключи хоста SSH и предложит вам установить пароль для пользователя root. Исполняемый файл sshd вызывается для запуска сервера SSH. Теперь вы сможете подключиться к своему устройству как пользователь root.

iSH по умолчанию не поддерживает автозапуск служб. Вы можете настроить это, изменив третью строку /etc/inittab на ::sysinit:/sbin/openrc. Затем запустите rc-update add sshd, чтобы сервер SSH запускался автоматически при запуске сеанса iSH.

Запуск веб-сервера

Как видно из примера SSH, iSH использует сетевой стек вашего устройства. Вы можете разместить веб-сервер, который вы сможете просматривать на других своих устройствах.

Запустите apk install apache2, чтобы добавить Apache. Используйте httpd для запуска процесса Apache. Затем посетите IP-адрес вашего устройства iOS в веб-браузере — вы должны увидеть Apache по умолчанию «Это работает!» текст.

iSH в настоящее время не поддерживает работу в фоновом режиме. Это означает, что вы не можете переключиться на Safari и просматривать веб-страницы, используя iPhone. На iPad можно открыть браузер в режиме разделенного просмотра — iSH остается активным на своей стороне экрана.

Apache можно настроить обычным способом. Вы найдете его файл конфигурации в /etc/apache2/httpd.conf. Корень документа по умолчанию, откуда обслуживаются веб-страницы, — это /var/www/localhost/htdocs.

Что теперь?

Теперь вы используете среду Alpine Linux на своем устройстве iOS. Добавьте пакеты, которые подходят для вашей работы. Растет список рабочего программного обеспечения, которое включает основные продукты Unix и полные языки программирования. Node.js, Python, PHP, Ruby и Git работают.

Однако не каждый пакет будет работать. Программное обеспечение, которое выполняет системные вызовы, которые не были переведены, аварийно завершает работу. Поскольку iSH является эмулятором, производительность иногда может быть ниже номинала.

Вы можете запустить сервер VNC, если хотите использовать графические приложения. Подробные шаги приведены в iSH wiki. Ограничения производительности станут очевидны при графической нагрузке, но технически это возможно. Этот процесс включает в себя установку xorg-server, настройку безголовой конфигурации, а затем добавление файла .xinitrc для определения используемого оконного менеджера. Вы получите наилучшие результаты с помощью облегченного оконного менеджера, такого как i3.

Заключение

Похоже, что iSH станет обязательным приложением iOS для разработчиков и системных администраторов. Уже есть качественные приложения, такие как a-Shell, которые предоставляют базовые инструменты Unix, а также клиенты SSH, такие как Termius, которые позволяют вам подключаться к удаленной машине Linux. Однако iSH является наиболее полным решением, предлагающим среду Linux, которая поддерживает растущий список популярного программного обеспечения.

С iSH на вашем iPhone или iPad вы можете использовать знакомое программное обеспечение x86 Linux, где бы вы ни находились. Соедините его с внешней клавиатурой, и вы получите портативное устройство для повышения производительности, которое действительно может заменить ваш ноутбук.