У деяких випадках я ділився тут, у блозі, новинами про інші операційні системи, окрім Linux, оскільки, хоча тема блогу зосереджена на обговоренні Linux та всього, що з ним пов'язане, я взяв на себе сміливість ділитися новинами поза ним, але намагаючись дотримуватися концепції "відкритого вихідного коду" та бути пов'язаним з ним.
Щодо новин такого типу, то найчисленнішими є ті, що стосуються FreeBSD , яка, як ви, можливо, знаєте, також є ОС з відкритим кодом, і цього разу ми поговоримо про проект ravynOS, операційну систему на базі FreeBSD, розроблену для досягнення сумісності з програмами macOS та пропонування користувацького середовища в стилі macOS.
Про ravynOS
Головною метою проєкту ravynOS є досягнення сумісності з програмами macOS як на рівні вихідного коду, так і на рівні виконуваних файлів. У першому випадку проєкт спрямований на забезпечення можливості перекомпіляції коду програми macOS для запуску на ravynOS. У другому випадку в ядро та утиліти вносяться зміни для запуску виконуваних файлів Mach-O, скомпільованих для архітектур x86-64 та arm64.
Для досягнення сумісності з macOS, ravynOS включає часткову реалізацію інтерфейсів програмування Cocoa та Objective-C , розташованих у /System/Library/Frameworks, разом із модифікованими компіляторами та лінкерами для їх підтримки. Окрім рівня сумісності з macOS, ravynOS пропонує можливість запуску Linux-додатків через інфраструктуру емуляції Linux від FreeBSD (Linuxulator).
Програми в RavynOS можуть бути розроблені як окремі пакети програм у форматі AppImage , які можна розмістити в каталогах /Applications або ~/Applications. Ці програми не потребують встановлення чи використання менеджера пакетів; ви просто перетягуєте та запускаєте файл AppImage. Водночас зберігається сумісність з традиційними пакетами FreeBSD.
У ravynO S підтримувані файлові системи включають ZFS та файлові системи HFS+ і APFS, що використовуються в macOS. Окрім ієрархій, специфічних для FreeBSD (/usr та /usr/local), було створено специфічні для macOS каталоги, такі як /Library, /System та /Volumes. Домашні каталоги користувачів розташовані в /Users, і кожен домашній каталог містить підкаталог ~/Library для програм, що використовують інтерфейс програмування Apple Cocoa.
Графічне середовище RavynOS базується на власному віконному сервері , який використовує спрощений композитний сервер labwc, wlroots та протокол Wayland. Це середовище було розроблено без підтримки декорування та тем вікон на стороні сервера. Графічні програми можуть використовувати фреймворки Qt та Cocoa для роботи в цьому середовищі.
Графічний інтерфейс ravynOS розроблено з використанням типових концепцій macOS , таких як верхня панель із глобальним меню, ідентична структура меню, схожі комбінації клавіш, файловий менеджер Filer у подібному стилі та підтримка таких команд, як launchctl та open. Ці елементи покликані забезпечити користувачам звичний та комфортний досвід, подібний до використання macOS.
Варто зазначити, що ravynOS тепер оновлено до версії 0.5, яка побудована на гілці FreeBSD 15-CURRENT, а використання портів FreeBSD припинено, а всі необхідні компоненти переміщено до системного репозиторію.
Крім того, було представлено початкову реалізацію графічної панелі Dock, що включає невеликий набір основних значків. Ця панель дозволяє користувачам запускати програми, розміщувати ярлики програм та налаштовувати шпалери робочого столу у стилі macOS. Поточна конфігурація панелі виконується шляхом редагування файлу plist, розташованого в ~/Library/Preferences.
Щодо інших змін:
- Основний пакет тепер включає турбо-текстовий редактор разом із такими інструментами, як cmake, gmake, nasm і GNU binutils.
- Файли складання у рамках для Cocoa та Objective-C дозволяють зв’язувати об’єкти в підкаталогах, спрощуючи передачу коду між різними підкаталогами до бібліотеки.
- Використання репозиторію пакунків припинено, але все ще можна інсталювати пакунки зі сховищ FreeBSD у каталог /usr/local за допомогою команди pkg.
- Додано нову утиліту збірки під назвою build.sh, яка спрощує процес збирання системи та створення власного образу ISO, який завантажується в режимі Live.
- Додано підтримку класу NSStatusItem, який дозволяє програмам Cocoa переміщувати меню на глобальну панель.
Зрештою, якщо ви зацікавлені дізнатися більше , вам слід знати, що розробки проекту розповсюджуються за ліцензією BSD, а завантажувальний ISO-образ має розмір 869 МБ (x86_64). Більше інформації про проект можна знайти за наступним посиланням.