LinPad запускает Linux-среду с десктопными приложениями на iPad

Разработчик Вали Нягу представил LinPad — открытую Linux-среду для планшетов Apple. Проект работает локально внутри iPadOS, не требует джейлбрейка и не отправляет вычисления на удалённый сервер.
LinPad предлагает привычный графический интерфейс с окнами и несколькими рабочими пространствами. Управлять системой можно с помощью сенсорного экрана, клавиатуры и мыши. Пользователям доступно около 800 приложений, среди которых Firefox, VS Code, файловый менеджер Thunar, VLC, LibreOffice и GIMP. Также можно использовать Git, Python и Node.js.
Как устроена Linux-среда
В основе LinPad лежит Alpine Linux 3.21 и модифицированный эмулятор iSH-ARM64. Среда запускает программы для архитектуры ARM64, преобразуя их системные вызовы в вызовы iPadOS. При этом отдельное ядро Linux и гипервизор не используются.
Такой подход даёт доступ к пакетам Alpine, но не обеспечивает полной совместимости с возможностями настоящого Linux-ядра. Например, в LinPad не работает Docker: для него необходимы namespaces, cgroups и другие механизмы, которых нет в используемой архитектуре.
Графическая оболочка DesktopKit написана на SwiftUI. Связь с Linux-приложениями обеспечивает Wayland-композитор ishwl: содержимое окон передаётся через файлы в памяти, а события ввода возвращаются с помощью именованных каналов.
Производительность и ограничения iPadOS
Для ускорения работы LinPad использует JIT-компилятор, который во время выполнения создаёт машинный код ARM64. Его активация возможна в режиме разработчика. Без JIT среда работает через более медленный интерпретатор. Графическое ускорение построено на Mesa Venus/Zink, virglrenderer и MoltenVK, а вывод изображения выполняется через Apple Metal.
Главным ограничением остаётся сама iPadOS. Система может приостанавливать приложения в фоне, а при нехватке памяти — принудительно закрывать их. Даже на моделях с 8 ГБ оперативной памяти крупные проекты в VS Code могут упираться в доступный лимит. Авторы LinPad используют восстановление сессий и несохранённого текста, а также автоматически завершают отдельные Linux-процессы до того, как это сделает iPadOS.
Исходный код проекта опубликован под лицензией GPLv3. LinPad совместим с iPad на чипах серии M и требует iPadOS 17 или более новой версии. Установка выполняется через сторонние магазины приложений, а для первоначальной настройки понадобится компьютер. Распакованная Linux-система занимает около 2,3 ГБ.


