Das Projekt ravynOS entwickelt eine FreeBSD-Edition, die auf Kompatibilität mit macOS abzielt

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, mit Anwendungen für macOS kompatibel zu sein und eine Benutzeroberfläche im Stil von macOS bereitzustellen. Die Entwicklungen des Projekts werden unter der BSD-Lizenz veröffentlicht. Die Größe des bootfähigen ISO-Images beträgt 869 MB (x86_64).

Das Projekt hat als Ziel die Erreichung von Kompatibilität mit macOS-Anwendungen auf der Ebene von Quelltexten und ausführbaren Dateien. Im ersten Fall wird die Möglichkeit angedeutet, den Code von macOS-Anwendungen für die Ausführung in ravynOS neu zu kompilieren, im zweiten Fall das Einbetten von Änderungen in den Kernel und die Werkzeuge, um ausführbare Mach-O-Dateien, die für die Architekturen x86-64 und arm64 erstellt wurden, auszuführen. Unterstützt werden die Dateisysteme ZFS sowie die in macOS verwendeten FS HFS+ und APFS. Neben den für FreeBSD typischen Hierarchien /usr und /usr/local werden spezifische macOS-Verzeichnisse wie /Library, /System und /Volumes erstellt. Die Heimverzeichnisse der Benutzer befinden sich in der Hierarchie /Users. In jedem Heimverzeichnis gibt es ein Unterverzeichnis ~/Library für Anwendungen, die die Apple Cocoa-Schnittstelle verwenden.

Für die Kompatibilität mit macOS wird eine Teilimplementierung der Cocoa-API und des Objective-C-Runtimes bereitgestellt (im Verzeichnis /System/Library/Frameworks), sowie zusätzlich modifizierte Compiler und Linker zur Unterstützung. Neben der Kompatibilitätsschicht für macOS bietet ravynOS auch die Möglichkeit, Linux-Anwendungen auszuführen, basierend auf der von FreeBSD bereitgestellten Infrastruktur zur Emulation der Linux-Umgebung (Linuxulator).

Anwendungen können als selbständige App-Pakete (App Bundle) im AppImage-Format erstellt werden, die in den Verzeichnissen /Applications oder ~/Applications abgelegt werden. Programme erfordern keine Installation oder Nutzung eines Paketmanagers – es genügt, die AppImage-Datei per Drag-and-Drop zu verschieben und auszuführen. Dabei bleibt die Unterstützung traditioneller Pakete von FreeBSD erhalten.

Die grafische Umgebung basiert auf einem eigenen Fenster сервера, das einen reduzierten kompositen Server labwc verwendet (Unterstützung für serverseitige Fensterdekorationen und Designs wurde entfernt), wlroots und das Wayland-Protokoll. In den Anwendungen können die Frameworks Qt und Cocoa verwendet werden. Die Benutzeroberfläche nutzt typische Konzepte für macOS, wie eine obere Leiste mit einem globalen Menü, eine identische Menüstruktur, Tastenkombinationen, einen im Stil ähnlichen Dateimanager Filer und Unterstützung für solche Befehle wie launchctl und open.

Das Projekt ravynOS entwickelt eine FreeBSD-Edition, die auf Kompatibilität mit macOS abzielt

In der neuen Version:

  • Das Basissystem wurde auf den Branch FreeBSD 15-CURRENT aktualisiert. Die Nutzung der FreeBSD-Ports wurde eingestellt - alle benötigten Komponenten wurden in das System-Repository übertragen.
  • In die Hauptkomponente wurde der Texteditor turbo 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 hinzugefügt, Objekte in Unterverzeichnissen zu verknüpfen, um den Transfer von Code aus verschiedenen Unterverzeichnissen in eine Bibliothek zu erleichtern.
  • Die Nutzung des Paket-Repositorys wurde eingestellt, es bleibt jedoch die Möglichkeit, Pakete aus FreeBSD-Repositories im Verzeichnis /usr/local mit dem Befehl pkg zu installieren.
  • Ein neues Build-Utility build.sh wurde hinzugefügt, das den gesamten Prozess des Systembaus und der Erstellung eines anpassbaren ISO-Images, das im Live-Modus geladen wird, erleichtert.
  • Eine erste Implementierung einer grafischen Dock-Leiste mit einer kleinen Sammlung grundlegender Icons wurde hinzugefügt. Es gibt Möglichkeiten zur Kennzeichnung von gestarteten Programmen, zur Platzierung von Anwendungs-Shortcuts und zur Anpassung des Desktop-Hintergrunds im macOS-Stil. Der Inhalt der Leiste kann momentan nur durch Bearbeiten der plist-Datei in ~/Library/Preferences konfiguriert werden.
  • Die Unterstützung der Klasse NSStatusItem wurde hinzugefügt, die es Cocoa-Anwendungen ermöglicht, Menüs in die globale Leiste zu verschieben.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster