Проект ravynOS развивает редакцию FreeBSD, нацеленную на совместимость c macOS

После двух лет разработки опубликован выпуск проекта ravynOS 0.5, развивающего операционную систему на основе FreeBSD, нацеленную на достижение совместимости с приложениями для macOS и предоставление пользовательской оболочки в стиле macOS. Наработки проекта распространяются под лицензией BSD. Размер загрузочного iso-образа – 869 МБ (x86_64).

В качестве целей проекта заявлено достижение совместимости с приложениями macOS на уровне исходных текстов и исполняемых файлов. В первом случае подразумевается возможность перекомпиляции кода macOS-приложений для выполнения в ravynOS, в во втором – встраивание в ядро и инструментарий изменений для запуска исполняемых файлов Mach-O, собранных для архитектур x86-64 и arm64. Из файловых систем поддерживается ZFS и применяемые в macOS ФС HFS+ и APFS. Помимо свойственных для FreeBSD иерархий /usr и /usr/local создаются специфичные для macOS каталоги /Library, /System и /Volumes. Домашние каталоги пользователей размещаются в иерархии /Users. В каждом домашнем каталоге имеется подкаталог ~/Library для приложений, использующих программный интерфейс Apple Cocoa.

Для совместимости с macOS предоставляется частичная реализация программного интерфейса Cocoa и Objective-C runtime (размещаются в каталоге /System/Library/Frameworks), а также дополнительно модифицированные для их поддержки компиляторы и компоновщики. Помимо слоя для совместимости с macOS в ravynOS также доступна возможность запуска приложений для Linux, основанная на предлагаемой во FreeBSD инфраструктуре эмуляции окружения Linux (Linuxulator).

Приложения могут оформляться в виде самодостаточных app-пакетов (App Bundle) в формате AppImage, размещаемых в каталогах /Applications или ~/Applications. Программы не требуют установки и использования пакетного менеджера – достаточно перетащить мышью и запустить AppImage-файл. При этом сохранена поддержка и традиционных для FreeBSD пакетов.

Графическое окружение построено на базе собственного оконного сервера, использующего урезанный композитный сервер labwc (удалена поддержка декорирования окон на стороне сервера и тем оформления), wlroots и протокол Wayland. графических В приложениях могут применяться фреймворки Qt и Cocoa. В интерфейсе используются типовые для macOS концепции, такие как верхняя панель с глобальным меню, идентичная структура меню, клавиатурные комбинации, похожий по стилю файловый менеджер Filer и поддержка таких команд, как launchctl и open.


В новом выпуске:

  • Базовая система обновлена до ветки 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-приложениям переносить меню в глобальную панель.

Release. Ссылка here.