Разработчик представил открытую Linux‑среду для iPad с поддержкой десктопных приложений

Разработчик Вали Нягу (Vali Neagu) представил LinPad — открытую Linux‑среду для iPad с поддержкой настольных приложений. Она работает локально внутри iPadOS и не требует джейлбрейка или запуска на удалённой машине.

В LinPad пользователям доступен рабочий стол с окнами и несколькими рабочими пространствами. Переключаться между ними можно с помощью клавиатуры, мыши или сенсорного экрана. Для запуска доступно около 800 приложений, включая браузер Firefox, редактор кода VS Code, файловый менеджер Thunar, медиаплеер VLC, офисный пакет LibreOffice, графический редактор GIMP, а также Git, Python и Node.js. 

В основе проекта лежит Alpine Linux 3.21 с модифицированным эмулятором iSH‑ARM64. Среда исполняет Linux‑программы для ARM64 и переводит их системные вызовы в вызовы iPadOS. Отдельное ядро Linux и гипервизор не запускаются. Благодаря такой архитектуре у iPad есть доступ к пакетам Alpine, но доступны не все возможности Linux. Например, Docker не работает из‑за отсутствия namespaces, cgroups и других механизмов ядра.

Встроенная оболочка DesktopKit написана на SwiftUI. С Linux‑приложениями она связана с помощью Wayland‑композитора ishwl. Изображение каждого окна передаётся через файлы в памяти, а события ввода возвращаются через именованные каналы.

Для ускорения предусмотрен JIT‑компилятор, который во время работы генерирует машинный код ARM64. Активация происходит через режим разработчика. Без JIT LinPad использует более медленный интерпретатор. Графическое ускорение построено на базе Mesa Venus/Zink, virglrenderer и MoltenVK. Всё при этом выводится через Apple Metal.

В системе остаются ограничения самой iPadOS. Например, ОС приостанавливает приложения в фоне, а при нехватке памяти просто закрывает программы. Большие проекты в VS Code упираются в лимит даже на iPad с 8 ГБ ОЗУ. Авторы проекта пока решают эту проблему с помощью функции восстановления сессий и несохранённого текста в редакторах, а также механизма, который автоматически завершает некоторые процессы Linux до того, как iPadOS выгрузит приложение.

Код LinPad открыт и опубликован по лицензии GPLv3. Проект работает с iPad на чипах M‑серии, а для запуска нужна iPadOS 17 или новее. Установка осуществляется через сторонние магазины приложений. Для первоначальной настройки нужен компьютер. Распакованная Linux‑система занимает около 2,3 ГБ.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев