En algunas ocasiones he compartido aquà en el blog noticias sobre otros sistemas operativos que no son Linux, ya que a pesar de que la temÔtica del blog se enfoca en hablar de Linux y todo a su alrededor, me he tomado el atrevimiento de compartir noticias fuera de, pero tratando de que continúen sobre la linea del «open source» y relacionado con él.
Sobre ese tipo de noticias, las que mÔs se puede en numerar son las relacionadas con FreeBSD, el cual como sabrÔn también es un OS de código abierto y que en esta ocasión hablaremos sobre el proyecto ravynOS, el cual es un sistema operativo basado en FreeBSD diseñado para lograr compatibilidad con aplicaciones macOS y ofrecer un entorno de usuario estilo macOS.
Sobre ravynOS
El proyecto ravynOS tiene como objetivo principal lograr compatibilidad con aplicaciones macOS tanto a nivel de código fuente como de archivos ejecutables y en el primer caso, se busca permitir la recompilación del código de las aplicaciones macOS para que se ejecuten en ravynOS. En el segundo caso, se estÔn realizando modificaciones en el kernel y las utilidades para ejecutar los archivos ejecutables Mach-O compilados para arquitecturas x86-64 y arm64.
Para lograr la compatibilidad con macOS, ravynOS incluye una implementación parcial de la interfaz de programación en tiempo de ejecución Cocoa y Objective-C, ubicada en /System/Library/Frameworks, ademÔs de compiladores y enlazadores modificados para soportarlos. AdemÔs de la capa de compatibilidad con macOS, ravynOS ofrece la capacidad de ejecutar aplicaciones Linux a través de la infraestructura de emulación de Linux de FreeBSD (Linuxulator).
Las aplicaciones en ravynOS pueden ser diseñadas como paquetes de aplicaciones independientes en formato AppImage, que se pueden ubicar en los directorios /Applications o ~/Applications. Estos programas no requieren instalación ni el uso de un administrador de paquetes; simplemente se arrastran, sueltan e inician el archivo AppImage. Al mismo tiempo, se mantiene la compatibilidad con los paquetes tradicionales de FreeBSD.
En ravynOS los sistemas de archivos soportados incluyen ZFS y los sistemas de archivos HFS+ y APFS utilizados en macOS, ademĆ”s de las jerarquĆas especĆficas de FreeBSD (/usr y /usr/local), se han creado directorios especĆficos de macOS como /Library, /System y /Volumes. Los directorios de inicio de los usuarios estĆ”n ubicados en /Users, y cada directorio de inicio contiene un subdirectorio ~/Library para aplicaciones que usan la interfaz de programación Cocoa de Apple.
El entorno grÔfico de ravynOS se basa en su propio servidor de ventanas, que utiliza un servidor labwc compuesto simplificado, wlroots y el protocolo Wayland. Este entorno ha sido diseñado eliminando la compatibilidad con la decoración y temas de ventanas del lado del servidor. Las aplicaciones grÔficas pueden utilizar los marcos Qt y Cocoa para su funcionamiento en este entorno.
La interfaz grĆ”fica de ravynOS estĆ” diseƱada con conceptos tĆpicos de macOS, como una barra superior con un menĆŗ global, una estructura de menĆŗ idĆ©ntica, atajos de teclado similares, un administrador de archivos Filer con estilo similar y soporte para comandos como launchctl y open. Estos elementos estĆ”n pensados para proporcionar a los usuarios una experiencia familiar y cómoda, similar a la de usar macOS.
Cabe mencionar que actualmente ravynOS se ha actualizado a su versión 0.5 la cual llega construido sobre la base de la rama FreeBSD 15-CURRENT y se suspendió el uso de ports de FreeBSD, trasladando todos los componentes necesarios al repositorio del sistema.
AdemĆ”s de ello, se destaca que se ha introducido una implementación inicial de un panel Dock grĆ”fico que incluye un pequeƱo conjunto de Ćconos bĆ”sicos. Este panel permite iniciar programas, colocar accesos directos a aplicaciones y configurar el fondo de pantalla del escritorio al estilo macOS. La configuración actual del panel se realiza editando el archivo plist en ~/Library/Preferences.
De los demƔs cambios:
- El paquete principal ahora incluye el editor de texto turbo, junto con herramientas como cmake, gmake, nasm y GNU binutils.
- Los archivos ensambladores de los marcos para Cocoa y Objective-C permiten vincular objetos en subdirectorios, simplificando la transferencia de código entre diferentes subdirectorios a una biblioteca.
- Se ha descontinuado el uso del repositorio de paquetes, pero aĆŗn es posible instalar paquetes desde los repositorios de FreeBSD en el directorio /usr/local mediante el comando pkg.
- Se ha añadido una nueva utilidad de compilación llamada build.sh, que simplifica el proceso de compilación del sistema y la creación de una imagen ISO personalizada que arranca en modo Live.
- Se ha añadido soporte para la clase NSStatusItem, que permite a las aplicaciones Cocoa mover menús al panel global.
Finalmente si estƔs interesado en poder conocer mƔs al respecto, debes saber que los desarrollos del proyecto se distribuyen bajo licencia BSD, y la imagen ISO de arranque tiene un tamaƱo de 869 MB (x86_64). Puedes consultar mƔs al respecto del proyecto en el siguiente enlace.