Два года ждали: новый релиз «FreeBSD для Mac» — операционной системы ravynOS
Кто-то слышал об этом проекте, кто-то нет, но это весьма интересная разработка. Команда ravynOS создаёт операционную систему на базе FreeBSD, стараясь обеспечить совместимость проекта с приложениями для macOS. Оболочка при этом также имеет очень сильную схожесть с интерфейсом macOS. Наработки проекта распространяются под лицензией BSD. Оценить ОС можно, установив загрузочный образ ravynOS 0.5 — он доступен здесь.
Что это за проект?
Кратко его описание указано в анонсе. Если подробнее, то работу над ним начали с целью создания открытой операционной системы, которая, как и указывалось, совместима с приложениями для macOS. Поддержка обеспечивается сначала на уровне исходного кода, а затем уже на бинарном.
Разработчики стараются добавлять фирменные отличия операционной системы для Mac. Например, это верхняя панель с глобальным меню, привычные для пользователей macOS сочетания клавиш, удобная структура системы организации файлов, а также не менее комфортная установка приложений из app-пакетов.
Проект не коммерческий, его ведут потихоньку энтузиасты — примерно с 2022 года. Как можно понять, они являются приверженцами macOS, но им не нравится закрытость операционной системы и ограниченная поддержка оборудования.
Что интересно, изначально команда собиралась создавать графический интерфейс ОС на базе компонентов окружения X11/KDE, но потом решили начать с нуля. Так, они разработали совершенно новый оконный сервер, в основе которого — часть композитного labwc, библиотеки wlroots. Что касается пользовательского интерфейса приложений, то его основа — кроссплатформенный фреймворк Qt или нативный для macOS Cocoa, так что можно выбрать первый или второй вариант.
Почему именно FreeBSD?
По словам авторов проекта, причин несколько. Дело в том, что эта ОС хорошо адаптирована под системы на платформе x86_64. Также под неё есть вполне стабильные и производительные драйверы устройств.
На начальном этапе команда рассматривала возможность использования Darwin и дистрибутивов Linux в качестве основы для своей mac-совместимой операционной системы. Кроме того, FreeBSD и macOS можно назвать родственниками, поскольку в ядре macOS немало наработок из FreeBSD.
В дальнейшем планируется, что в определённый момент ОС получит частичную совместимость с софтом под Linux. Речь в первую очередь о приложениях, которые поддерживают протокол Wayland. И конечно, не будет потеряна и поддержка нативных FreeBSD-приложений.
На данный момент вклад в работу над проектом внесли 533 разработчика. Средства команда пытается собирать при помощи Patreon, но там всего пять платных подписчиков. Возможно, в ближайшем будущем их количество увеличится, поскольку сейчас авторы проекта работают над ravynOS в свободное от основных обязанностей время.
Больше технических подробностей
Выше упоминалось, что совместимость планируется на уровне исходников и исполняемых файлов. В первом случае речь идёт о перекомпиляции кода macOS-приложений для выполнения в ravynOS, во втором — о встраивании в ядро и инструментарий изменений для запуска исполняемых файлов Mach-O, собранных под архитектуры x86–64 и arm64. ОС поддерживает ZFS и применяемые в macOS ФС HFS+ и APFS.
Что касается файловой структуры, то кроме иерархий /usr и /usr/local создаются специфичные для macOS каталоги /Library, /System и /Volumes. Домашние каталоги пользователей размещаются в иерархии /Users. В каждом из них имеется подкаталог ~/Library для приложений, использующих программный интерфейс Apple Cocoa.
Приложения могут быть в виде самодостаточных app-пакетов (App Bundle) в формате AppImage, размещаемых в каталогах /Applications или ~/Applications. Установка не требуется — нужно лишь перетащить мышью и запустить AppImage-файл. При этом сохранена поддержка и традиционных для FreeBSD пакетов.
Что появилось в новом выпуске?
В целом, не так много всего. Например, базовая система сейчас обновилась до ветки FreeBSD 15-CURRENT. Прекращено использование портов FreeBSD — все необходимые компоненты перенесены в системный репозиторий.
В основной состав добавили текстовый редактор turbo. Также появились cmake, gmake, nasm и GNU binutils.
В сборочных файлах фреймворков для Cocoa и Objective-C предоставлена возможность связывания объектов в подкаталогах для упрощения переноса кода из разных подкаталогов в одну библиотеку.
Прекращено использование репозитория пакетов, но оставлена возможность установки пакетов из репозиториев FreeBSD в каталог /usr/local при помощи команды pkg.
Добавлена новая сборочная утилита build.sh, упрощающая весь процесс сборки системы и создания настраиваемого ISO-образа, загружаемого в Live-режиме.
Добавлена начальная реализация графической Dock-панели с небольшим набором базовых пиктограмм. Имеется возможность индикации запуска программ, размещения ярлыков приложений и настройки обоев рабочего стола в стиле macOS. Содержимое панели пока настраивается только через редактирование plist-файла в ~/Library/Preferences.
Добавлена поддержка класса NSStatusItem, позволяющего Cocoa-приложениям переносить меню в глобальную панель.
Если вы уже успели опробовать эту систему, то расскажите, как вам она? Стоит напомнить, что загрузить образ можно по этой ссылке, его объём — 869 Мб (x86_64).