Após dois anos de desenvolvimento, foi lançado o projeto ravynOS 0.5, que desenvolve um sistema operacional baseado no FreeBSD, visando atingir compatibilidade com aplicativos do macOS e fornecer uma interface de usuário no estilo do macOS. As inovações do projeto são distribuídas sob a licença BSD. O tamanho da imagem ISO de inicialização é de 869 MB (x86_64).
Os objetivos do projeto incluem a compatibilidade com aplicativos do macOS em nível de código-fonte e arquivos executáveis. No primeiro caso, refere-se à possibilidade de recompilar o código de aplicativos do macOS para execução no ravynOS, enquanto no segundo, envolve a incorporação de mudanças no núcleo e ferramentas para executar arquivos executáveis Mach-O, compilados para as arquiteturas x86-64 e arm64. Os sistemas de arquivos suportados incluem ZFS e os sistemas de arquivos HFS+ e APFS usados no macOS. Além das hierarquias típicas do FreeBSD / /usr e / /usr/local, são criados diretórios específicos do macOS: / /Library, / /System e / /Volumes. Os diretórios pessoais dos usuários são armazenados na hierarquia / /Users. Dentro de cada diretório pessoal, existe um subdiretório ~ /Library para aplicativos que utilizam a interface de programação Apple Cocoa.
Para compatibilidade com o macOS, é fornecida uma implementação parcial da interface de programação Cocoa e da execução de tempo de execução do Objective-C (localizadas no diretório / /System/Library/Frameworks), além de compiladores e linkers modificados para seu suporte. Além da camada de compatibilidade com o macOS, o ravynOS também oferece a capacidade de executar aplicativos para Linux, com base na infraestrutura de emulação do ambiente Linux (Linuxulator) fornecida pelo FreeBSD.
Os aplicativos podem ser formatados como pacotes autossuficientes (App Bundle) no formato AppImage, localizados nos diretórios / /Applications ou ~ /Applications. Os programas não requerem instalação e uso de gerenciadores de pacotes — basta arrastar e soltar o arquivo AppImage e executá-lo. Assim, o suporte a pacotes tradicionais do FreeBSD é mantido.
O ambiente gráfico é construído com base em sua própria infraestrutura de janelas servidor, usando um servidor composto reduzido labwc (sem suporte para decoração de janelas no lado do servidor e temas), wlroots e o protocolo Wayland. Nos aplicativos gráficos, podem ser utilizados frameworks Qt e Cocoa. A interface utiliza conceitos típicos do macOS, como uma barra superior com menu global, estrutura de menu idêntica, atalhos de teclado, um gerenciador de arquivos Filer semelhante em estilo e suporte a comandos como launchctl e open.

No novo lançamento:
- O sistema básico foi atualizado para a branch FreeBSD 15-CURRENT. O uso de ports do FreeBSD foi descontinuado — todos os componentes necessários foram transferidos para o repositório do sistema.
- O editor de texto turbo foi incluído na composição principal. Também foram adicionados cmake, gmake, nasm e GNU binutils.
- Nos arquivos de construção dos frameworks para Cocoa e Objective-C, foi disponibilizada a possibilidade de vinculação de objetos em subdiretórios para facilitar a transferência de código de diferentes subdiretórios para uma única biblioteca.
- O uso do repositório de pacotes foi interrompido, mas a instalação de pacotes a partir dos repositórios FreeBSD no diretório /usr/local ainda é possível usando o comando pkg.
- Adicionada uma nova ferramenta de construção build.sh, que simplifica todo o processo de construção do sistema e criação de uma imagem ISO personalizável, inicializável em modo Live.
- Implementada uma versão inicial de um painel Dock gráfico com um conjunto básico de ícones. Disponibiliza a indicação de programas em execução, colocação de atalhos de aplicativos e configuração de papéis de parede ao estilo do macOS. O conteúdo do painel ainda é configurável apenas através da edição do arquivo plist em ~/Library/Preferences.
- Adicionado suporte à classe NSStatusItem, permitindo que aplicativos Cocoa movam menus para a barra global.
Fonte: opennet.ru
