Бесплатная программа Lima получила первую публичную версию 0.1.0. При разработке проекта авторы вдохновлялись аналогичной технологией от Microsoft, которая позволяет запускать приложения Linux в Windows 10.
Новый эмулятор
Разработчики Lima (Linux-on-Mac) позиционируют свой продукт как «реализацию неофициальной подсистемы macOS для Linux». Эмулятор обеспечивает запуск приложений, собранных под архитектуры x86_64 (процессоры Intel, AMD) и ARM (aarch64). Кроме того, авторы проекта заявили о возможности исполнения ARM-сборок программ в x86-окружении и в любых других комбинациях. Но при этом программисты предупреждают – работоспособность вариантов «ARM на ARM» и «x86 на ARM» еще не протестирована и потому не гарантируется.
Lima использует открытый исходный код, который распространяется по условиям свободной лицензии Apache 2.0. Ознакомиться с исходниками проекта можно в репозитории на GitHub. Его владельцем указан японский программист под ником AkihiroSudo. Разработан эмулятор на языке Go. Размер архива с приложением под платформы x86_64 и ARM не превышает 8 МБ.
Технические подробности
Linux-прослойка проекта функционирует благодаря запуску виртуальных машин, которые содержат инструментарий containerd, предназначенный для управления готовыми образами, совместимыми с Docker-контейнерами. Для эмуляции аппаратной среды используется свободное решение Qemu с ускорителем HVF – для работы Lima этот пакет придется установить и настроить самостоятельно.
В Linux-on-Mac поддерживается совместный доступ к файлам и перенаправление портов в Linux-окружении благодаря применению утилит sshocker и reverse ssh. Авторы проекта гарантируют работоспособность популярных дистрибутивов Ubuntu и Fedora.
Для того, чтобы управлять Lima, необходимо использовать командную строку. В грядущих обновлениях разработчики обещают реализовать поддержку графического интерфейса на базе фреймворков Qt или Electron.
Аналогичные проекты
Lima – не единственное решение для запуска Linux-приложений на компьютерах Apple. Существует инструмент Noah, который не эмулирует вычислительное устройство, а использует принцип Wine (Wine is not emulator). Программа способна «на лету» транслировать системные вызовы ядра Linux в вызовы ядра macOS. Также в проект включен интерпретатор для стандартных исполняемых файлов Linux в формате ELF. Однако последнее обновление Noah вышло примерно год назад, и авторы называют свою разработку экспериментом – она поддерживает запуск далеко не всех приложений.