Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Операционная система Vinix: запуск Docker, QEMU и игр на Apple Silicon

Операционная система Vinix: запуск Docker, QEMU и игр на Apple Silicon

Современные операционные системы часто критикуют за излишнюю громоздкость, поэтому разработчики продолжают предлагать альтернативные решения. Независимая операционная система Vinix создана специально для компьютеров Mac и позиционируется как быстрая и минималистичная среда на базе собственного ядра.

Интерес вызывает то, как проект справляется с запуском стороннего софта без использования привычного ядра Linux. За счет собственной реализации пространств имен (namespaces), контрольных групп (cgroups), а также механизмов overlayfs и seccomp разработчикам удалось запустить стандартный движок Docker для Alpine Linux на архитектуре ARM64. Кроме того, система поддерживает эмулятор QEMU 9.1.2, способный запускать вторую копию Vinix внутри окна, а также такие игры и приложения, как DOOM, демоверсию DOOM 3, Minecraft Java Edition и порт Gothic II через OpenGothic.

Правда, на данном этапе возможности ограничены: Docker пока обходится без мостовой сетевой маршрутизации и правил iptables, QEMU функционирует в режиме программной эмуляции, а Minecraft работает в интерпретируемом режиме на одном процессорном ядре.

Реклама

Особенности проекта и архитектура

Проект нацелен на предоставление владельцам компьютеров Mac на процессорах Apple Silicon быстрой и открытой системы, избавленной от нарастающей со временем блочности коммерческих ОС. На текущий момент официально поддерживается только чип M1, хотя в перспективе разработчики планируют охчить всю линейку процессоров серии M.

Запуск приложений в операционной системе Vinix
Примеры запущенных программ в среде Vinix

Авторы стремятся обойтись без использования systemd, создав ядро, объем которого позволяет одному человеку изучить его код целиком. В фоновом режиме ничего не запускается само по себе, а система использует фиксированный набор компонентов: одну систему инициализации, графическую оболочку, пакетный менеджер и формат бинарных файлов. Управление памятью в ядре реализовано вручную, без применения сборщика мусора, что исключает неожиданные паузы во время выполнения системных вызовов или работы композитора.

В качестве основы выбран язык программирования V, привлекший авторов высокой скоростью компиляции и лаконичным читаемым синтаксисом. Модель безопасности вдохновлена решениями OpenBSD с поддержкой функций pledge и unveil, хотя приложения должны задействовать их самостоятельно, а память пользователя по умолчанию защищена от одновременной записи и выполнения.

Запуск приложений Linux

Ядро Vinix является монолитным и загружается через Limine, а драйверы встроены непосредственно в образ. Большая часть кода написана на V с добавлением компонентов на C и ассемблере. Графический интерфейс представлен нативной оболочкой на V UI2 через фреймворк вывода, а для ARM64 доступны сеансы X.org и Hyprland.

После загрузки система занимает около 50 МБ оперативной памяти, а для установки требуется примерно 1 ГБ на диске. Поскольку в основе совместимости лежат пакеты Alpine Linux (известной своей легковесностью, использованием musl и BusyBox), Vinix умеет выполнять родные бинарные файлы Linux. Системные вызовы, формат ELF и поведение библиотеки musl поддерживаются напрямую, без виртуальных машин и эмуляторов.

Для установки нового ПО применяется утилита командной строки pkg, загружающая компоненты из репозиториев Alpine для архитектуры aarch64. Работоспособность уже подтверждена для таких программ, как Chromium, GIMP, Sublime Text, Gnumeric и слоя совместимости Wine.

История разработки и доступность

Первые коммиты в репозитории GitHub датируются мартом 2021 года, а первоначальное ядро было разработано создателем загрузчика Limine под ником Mintsuki. После двухлетнего перерыва обязанности мейнтейнера взял на себя автор языка V Александр Медведников.

Официальный сайт предлагает для загрузки файл установщика .dmg владельцам Mac с процессором M1, а в репозитории проекта можно найти ISO-образы для ARM64 (для использования в QEMU и VirtualBox на компьютерах Apple) и для x86_64 (поддерживается на системах Intel и AMD). Для тестирования на виртуальной машине потребуется от 4 ГБ оперативной памяти и столько же дискового пространства.

Оконный менеджер Hyprland в Vinix
Демонстрация сеанса Hyprland для Vinix на ARM64
01.