ravynOS, un FreeBSD amb gust de MacOS 

screenshot de ravynOS

En algunes ocasions he compartit aquí al bloc notícies sobre altres sistemas operatius que no són Linux, ja que tot i que la temàtica del bloc s'enfoca a parlar de Linux i tot al seu voltant, m'he pres l'atreviment de compartir notícies fora de, però tractant que continuïn sobre la línia del « open source» i relacionat amb ell.

Sobre aquest tipus de notícies, les que més es poden numerar són les relacionades amb FreeBSD, el qual com sabran també és un OS de codi obert i que en aquesta ocasió parlarem sobre el projecte ravynOS, és un sistema operatiu basat en FreeBSD dissenyat per aconseguir compatibilitat amb aplicacions macOS i oferir un entorn d'usuari estil macOS.

Sobre ravynOS

El projecte ravynOS té com a objectiu principal aconseguir compatibilitat amb aplicacions macOS tant a nivell de codi font com de fitxers executables i en el primer cas, es busca permetre la recompilació del codi de les aplicacions macOS perquè s'executin en ravynOS. En el segon cas, s'estan fent modificacions al nucli i les utilitats per executar els fitxers executables Mach-O compilats per a arquitectures x86-64 i arm64.

Per aconseguir la compatibilitat amb macOS, ravynOS inclou una implementació parcial de la interfície de programació en temps dexecució Cocoa i Objective-C, ubicada a /System/Library/Frameworks, a més de compiladors i enllaçadors modificats per suportar-los. A més de la capa de compatibilitat amb macOS, ravynOS ofereix la capacitat dexecutar aplicacions Linux a través de la infraestructura demulació de Linux de FreeBSD (Linuxulator).

Les aplicacions en ravynOS poden ser dissenyades com a paquets d'aplicacions independents en format AppImage, que es poden ubicar als directoris /Applications o ~/Applications. Aquests programes no requereixen instal·lació ni ús d'un administrador de paquets; simplement s'arrosseguen, deixen anar i inicien el fitxer AppImage. Alhora, es manté la compatibilitat amb els paquets tradicionals de FreeBSD.

A ravynOSi els sistemes de fitxers suportats inclouen ZFS i els sistemes de fitxers HFS+ i APFS utilitzats a macOS, a més de les jerarquies específiques de FreeBSD (/usr i /usr/local), s'han creat directoris específics de macOS com /Library, /System i /Volumes. Els directoris d'inici dels usuaris estan ubicats a /Users, i cada directori d'inici conté un subdirectori ~/Library per a aplicacions que usen la interfície de programació Cocoa d'Apple.

L'entorn gràfic de ravynOS es basa en el vostre propi servidor de finestres, que utilitza un servidor labwc compost simplificat, wlroots i el protocol Wayland. Aquest entorn ha estat dissenyat eliminant la compatibilitat amb la decoració i temes de finestres del costat del servidor. Les aplicacions gràfiques poden utilitzar els marcs Qt i Cocoa per funcionar en aquest entorn.

La interfície gràfica de ravynOS està dissenyada amb conceptes típics de macOS, com una barra superior amb un menú global, una estructura de menú idèntica, dreceres de teclat similars, un administrador de fitxers Filer amb estil similar i suport per a ordres com launchctl i open. Aquests elements estan pensats per proporcionar als usuaris una experiència familiar i còmoda, similar a la de fer servir macOS.

cal esmentar qui actualment ravynOS s'ha actualitzat a la versió 0.5 la qual arriba construït sobre la base de la branca FreeBSD 15-CURRENT i es va suspendre l'ús de ports de FreeBSD, traslladant tots els components necessaris al repositori del sistema.

A més d'això, es destaca que s'ha introduït una implementació inicial d'un panell Dock gràfic que inclou un petit conjunt d'icones bàsiques. Aquest panell permet iniciar programes, col·locar dreceres a aplicacions i configurar el fons de pantalla de l'escriptori a l'estil macOS. La configuració actual del panell es realitza editant el fitxer plist a ~/Library/Preferences.

Dels altres canvis:

  • El paquet principal inclou ara l'editor de text turbo, juntament amb eines com cmake, gmake, nasm i GNU binutils.
  • Els fitxers assembladors dels marcs per a Cocoa i Objective-C permeten vincular objectes en subdirectoris, simplificant la transferència de codi entre diferents subdirectoris a una biblioteca.
  • S'ha descontinuat l'ús del repositori de paquets, però encara és possible instal·lar paquets des dels repositoris de FreeBSD al directori /usr/local mitjançant l'ordre pkg.
  • S'ha afegit una utilitat de compilació nova anomenada build.sh, que simplifica el procés de compilació del sistema i la creació d'una imatge ISO personalitzada que arrenca en mode Live.
  • S'ha afegit suport per a la classe NSStatusItem, que permet a les aplicacions Cocoa moure menús al panell global.

Finalment si estàs interessat a poder conèixer més sobre això, has de saber que els desenvolupaments del projecte es distribueixen sota llicència BSD, i la imatge ISO d'arrencada té un mida de 869 MB (x86_64). Pots consultar més sobre el projecte en el següent enllaç.