Na twee jaar ontwikkeling is de release van het ravynOS 0.5-project gepubliceerd, dat een besturingssysteem op basis van FreeBSD ontwikkelt, gericht op het bereiken van compatibiliteit met macOS-applicaties en het aanbieden van een gebruikersinterface in de stijl van macOS. De ontwikkelingsresultaten van het project worden verspreid onder de BSD-licentie. De grootte van het opstartbare iso-image is 869 MB (x86_64).
De doelstellingen van het project zijn het bereiken van compatibiliteit met macOS-applicaties op het niveau van de broncode en uitvoerbare bestanden. In het eerste geval wordt bedoeld dat de mogelijkheid bestaat om de code van macOS-applicaties te hercompileren voor uitvoering in ravynOS, en in het tweede geval wordt er een integratie in de kernel en tools opgezet voor de uitvoering van Mach-O uitvoerbare bestanden, verzameld voor de architecturen x86-64 en arm64. Het ondersteunt ZFS en de in macOS gebruikte bestandssystemen HFS+ en APFS. Naast de typische FreeBSD hiƫrarchieƫn \/usr en \/usr\/local worden macOS-specifieke mappen gecreƫerd, waaronder \/Library, \/System en \/Volumes. Huismappen van gebruikers worden geplaatst in de hiƫrarchie \/Users. In elke huismap is er een submap ~\/Library voor applicaties die de Apple Cocoa API gebruiken.
Voor compatibiliteit met macOS wordt een gedeeltelijke implementatie van de Cocoa API en Objective-C runtime aangeboden (geplaatst in de map \/System\/Library\/Frameworks), evenals extra aangepaste compilers en linkers ter ondersteuning hiervan. Naast de laag voor compatibiliteit met macOS is het ook mogelijk om Linux-applicaties uit te voeren in ravynOS, gebaseerd op de door FreeBSD aangeboden infrastructuur voor Linux-omgevingsemulatie (Linuxulator).
Applicaties kunnen worden gepresenteerd als zelfstandige app-pakketten (App Bundle) in het AppImage-formaat, geplaatst in de mappen \/Applications of ~\/Applications. Programma's vereisen geen installatie en het gebruik van een pakketbeheerder ā het is voldoende om het AppImage-bestand te slepen en te starten. Daarnaast blijft de ondersteuning voor traditionele FreeBSD-pakketten behouden.
De grafische omgeving is opgebouwd op basis van een eigen venstermanagementsysteem de server, gebruikmakend van de verkorte composietserver labwc (ondersteuning voor decoratie van vensters aan de serverzijde en thema's is verwijderd), wlroots en het Wayland-protocol. In grafische toepassingen kunnen frameworks zoals Qt en Cocoa worden gebruikt. De interface maakt gebruik van typische macOS-concepten, zoals de bovenste balk met het globale menu, een identieke menu-structuur, sneltoetsen, een bestandbeheerder genaamd Filer die qua stijl vergelijkbaar is, en ondersteuning voor commando's zoals launchctl en open.

In de nieuwe release:
- Het basissysteem is geüpdatet naar de FreeBSD 15-CURRENT tak. Het gebruik van FreeBSD-poorten is gestopt ā alle noodzakelijke componenten zijn overgebracht naar de systeemrepository.
- Een teksteditor genaamd turbo is toegevoegd aan de hoofdcomponenten. Ook zijn cmake, gmake, nasm en GNU binutils toegevoegd.
- In de bouwbestanden voor Cocoa- en Objective-C-frameworks is de mogelijkheid toegevoegd om objecten in submappen te linken, wat het verplaatsen van code uit verschillende submappen naar ƩƩn bibliotheek vereenvoudigt.
- Het gebruik van de pakketrepository is gestopt, maar de mogelijkheid om pakketten uit FreeBSD-repositories in de map /usr/local te installeren met het commando pkg is behouden.
- Er is een nieuwe bouwtool build.sh toegevoegd die het gehele proces van systeembouw en het creƫren van een configureerbare ISO-afbeelding die in Live-modus kan worden geladen, vereenvoudigt.
- Een initiƫle implementatie van een grafische dock-balk is toegevoegd met een kleine set basispictogrammen. Er is de mogelijkheid om de lancering van programma's aan te geven, snelkoppelingen voor applicaties te plaatsen en de achtergrond van het bureaublad in macOS-stijl in te stellen. De inhoud van de balk kan momenteel alleen worden aangepast door het plist-bestand in ~/Library/Preferences te bewerken.
- Ondersteuning voor de NSStatusItem-klasse is toegevoegd, waarmee Cocoa-toepassingen menu's naar de globale balk kunnen verplaatsen.
Bron: opennet.ru
