Nach zwei Jahren Entwicklung wurde die Version 0.5 des Projekts ravynOS veröffentlicht, das ein Betriebssystem auf Basis von FreeBSD entwickelt, das darauf abzielt, KompatibilitĂ€t mit Anwendungen fĂŒr macOS zu erreichen und ein Benutzerinterface im Stil von macOS bereitzustellen. Die Entwicklungen des Projekts werden unter der BSD-Lizenz verbreitet. Die GröĂe des bootfĂ€higen ISO-Abbilds betrĂ€gt 869 MB (x86_64).
Zu den Zielen des Projekts gehört die Erreichung der KompatibilitĂ€t mit macOS-Anwendungen auf der Ebene des Quellcodes und der ausfĂŒhrbaren Dateien. Im ersten Fall wird die Möglichkeit der Neukompilierung des Codes von macOS-Anwendungen fĂŒr die AusfĂŒhrung in ravynOS angedeutet, im zweiten Fall die Integration von Ănderungen in den Kernel und die Werkzeuge zur AusfĂŒhrung von Mach-O-Dateien, die fĂŒr die Architekturen x86-64 und arm64 kompiliert wurden. UnterstĂŒtzt werden die Dateisysteme ZFS sowie die in macOS verwendeten Dateisysteme HFS+ und APFS. Neben den fĂŒr FreeBSD typischen Hierarchien /usr und /usr/local werden macOS-spezifische Verzeichnisse wie /Library, /System und /Volumes erstellt. Die persönlichen Verzeichnisse der Benutzer befinden sich in der Hierarchie /Users. In jedem persönlichen Verzeichnis gibt es ein Unterverzeichnis ~/Library fĂŒr Anwendungen, die die Apple Cocoa-Schnittstelle verwenden.
FĂŒr die KompatibilitĂ€t mit macOS wird eine partielle Implementierung der Cocoa-Schnittstelle und des Objective-C-Runtime bereitgestellt (untergebracht im Verzeichnis /System/Library/Frameworks), sowie zusĂ€tzlich fĂŒr deren UnterstĂŒtzung modifizierte Compiler und Linker. Neben der Schicht fĂŒr die KompatibilitĂ€t mit macOS gibt es in ravynOS auch die Möglichkeit, Linux-Anwendungen auszufĂŒhren, die auf der in FreeBSD verfĂŒgbaren Infrastruktur zur Emulation von Linux-Umgebungen (Linuxulator) basiert.
Anwendungen können als eigenstĂ€ndige App-Pakete (App Bundle) im AppImage-Format bereitgestellt werden, die in den Verzeichnissen /Applications oder ~/Applications abgelegt werden. Programme benötigen keine Installation und keinen Paketmanager â es genĂŒgt, die AppImage-Datei per Drag & Drop zu verschieben und auszufĂŒhren. Dabei bleibt die UnterstĂŒtzung fĂŒr traditionelle FreeBSD-Pakete erhalten.
Die grafische Umgebung basiert auf einem eigenen Fenstermanager. Server, verwendet einen reduzierte Composite-Server labwc (UnterstĂŒtzung fĂŒr Fensterdekoration auf Serverseite und Themen entfernt), wlroots und das Wayland-Protokoll. In grafischen Anwendungen können Frameworks wie Qt und Cocoa verwendet werden. Im Interface werden typische fĂŒr macOS Konzepte verwendet, wie eine obere Leiste mit globalem MenĂŒ, identische MenĂŒstruktur, Tastenkombinationen, ein stilistisch Ă€hnlicher Dateimanager Filer und UnterstĂŒtzung fĂŒr solche Befehle wie launchctl und open.

In der neuen Version:
- Das Basissystem wurde auf die Version FreeBSD 15-CURRENT aktualisiert. Die Verwendung von FreeBSD Ports wurde eingestellt - alle erforderlichen Komponenten wurden in das System-Repository ĂŒbertragen.
- Der Texteditor turbo wurde in die Hauptzusammensetzung aufgenommen. AuĂerdem wurden cmake, gmake, nasm und GNU binutils hinzugefĂŒgt.
- In den Build-Dateien der Frameworks fĂŒr Cocoa und Objective-C wurde die Möglichkeit geschaffen, Objekte in Unterverzeichnissen zu verknĂŒpfen, um den Transfer von Code aus verschiedenen Unterverzeichnissen in eine Bibliothek zu erleichtern.
- Die Verwendung des Paket-Repositories wurde eingestellt, jedoch bleibt die Möglichkeit, Pakete aus FreeBSD-Repositories im Verzeichnis /usr/local mit dem Befehl pkg zu installieren.
- Ein neues Build-Tool build.sh wurde hinzugefĂŒgt, das den gesamten Prozess des Systembaus und der Erstellung eines anpassbaren ISO-Images, das im Live-Modus geladen wird, vereinfacht.
- Eine erste Implementierung einer grafischen Dock-Leiste mit einer kleinen Sammlung von Basis-Ikonen wurde hinzugefĂŒgt. Es gibt die Möglichkeit, die AusfĂŒhrung von Programmen anzuzeigen, Anwendungs-Links zu platzieren und den Desktop-Hintergrund im macOS-Stil anzupassen. Der Inhalt der Leiste kann derzeit nur durch Bearbeiten der plist-Datei in ~/Library/Preferences angepasst werden.
- Die UnterstĂŒtzung fĂŒr die Klasse NSStatusItem wurde hinzugefĂŒgt, die es Cocoa-Anwendungen ermöglicht, MenĂŒs in die globale Leiste zu transferieren.
Quelle: opennet.ru
