O Redox OS 0.8, desenvolvido em Rust e com conceitos de microkernel, foi lançado. O projeto é distribuído sob a licença MIT. Estão disponíveis versões de demonstração de 768 MB para testes, além de imagens com um ambiente gráfico básico (256 MB) e ferramentas de console para sistemas de servidor (256 MB). Essas versões são projetadas para a arquitetura x86_64 e estão disponíveis para sistemas com UEFI e BIOS. Além do ambiente gráfico Orbital, a imagem de demonstração inclui o emulador DOSBox, uma seleção de jogos (DOOM, Neverball, Neverputt, Sopwith, Syobonaction), programas educacionais, o reprodutor de música Rodioplay e o editor de texto Sodium.
O sistema operacional se desenvolve de acordo com a filosofia Unix e empresta algumas ideias de SeL4, Minix e Plan 9. Redox usa o conceito de microkernel, no qual apenas a comunicação entre processos e gerenciamento de recursos é fornecida no nível do kernel, e todas as outras funcionalidades são colocadas em bibliotecas que podem ser usadas tanto no kernel quanto em aplicativos do usuário. Todos os drivers são executados no espaço do usuário em ambientes de sandbox isolados. Para compatibilidade com aplicativos existentes, é fornecida uma camada POSIX especial que permite que muitos programas sejam executados sem portabilidade.
O sistema aplica o princípio "tudo é uma URL". Por exemplo, o URL “log://” pode ser usado para registro, “bus://” para comunicação entre processos, “tcp://” para comunicação de rede e assim por diante. Os módulos, que podem ser implementados como drivers, extensões de kernel e aplicativos personalizados, podem registrar seus próprios manipuladores de URL, por exemplo, você pode escrever um módulo de acesso de E/S e vinculá-lo ao URL "port_io://", após o qual você pode usá-lo para acessar a porta 60 abrindo a URL "port_io://60".
O ambiente do usuário no Redox é construído em torno do próprio shell gráfico do Orbital (não confundir com o outro shell do Orbital que usa Qt e Wayland) e o kit de ferramentas OrbTk, que fornece uma API semelhante ao Flutter, React e Redux. Netsurf é usado como um navegador da web. O projeto também desenvolve seu próprio gerenciador de pacotes, um conjunto de utilitários padrão (binutils, coreutils, netutils, extrautils), o shell de comando ion, a biblioteca C padrão relibc, o editor de texto semelhante ao vim do sódio, a pilha de rede e o arquivo sistema. A configuração é definida na linguagem Toml.
A nova versão continua o trabalho de suporte a hardware real. Além da arquitetura x86_64, foi adicionado suporte para sistemas x86 de 32 bits (i686, Pentium II e mais recentes). A portabilidade para CPUs ARM64 (aarch64) está em andamento. O hardware ARM real ainda não é suportado, mas a inicialização é possível usando emulação ARM64 no QEMU. O subsistema de som está habilitado por padrão e o suporte inicial para configurações com múltiplos monitores é fornecido (em sistemas com framebuffer UEFI). O hardware suportado no Redox OS inclui chips de som AC'97 e Intel HD Audio, saída gráfica via API VESA BIOS ou UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), dispositivos de entrada (teclados, mouses, touchpads), SATA (AHCI, IDE) e NVMe. O suporte a Wi-Fi e USB ainda não está pronto (o USB funciona apenas no QEMU).
Outras inovações:
- As imagens de inicialização para sistemas BIOS e EFI foram unificadas.
- A implementação das chamadas de sistema clone e exec foi movida para o espaço do usuário.
- O processo de inicialização foi simplificado. Um programa de inicialização (bootstrap) foi implementado, executado pelo kernel e garantindo o carregamento subsequente de arquivos ELF, como o processo init.
- Adicionamos privilégios de administrador para permitir que programas setuid, como o sudo, funcionem.
- Para simplificar a criação e instalação de processos em segundo plano, propõe-se o pacote redox-daemon.
- O sistema de compilação foi redesenhado para suportar a compilação para diferentes arquiteturas a partir de uma única árvore de código-fonte. Para simplificar a compilação de diferentes configurações, foi introduzido um script build.sh. Foi adicionado suporte para compilação usando a cadeia de ferramentas Podman. A compilação do kernel, do bootloader e do initfs foi unificada com outros pacotes.
- Adicionada uma configuração de demonstração para compilar programas de exemplo que não estão incluídos na imagem de inicialização básica com um ambiente gráfico.
- O subsistema de áudio foi atualizado para suportar o controle de volume por software.
- Adicionado driver para chips de som baseados em AC'97. Driver aprimorado para chips de áudio Intel HD.
- Adicionado driver para controladores IDE.
- Suporte aprimorado para unidades NVMe.
- Drivers aprimorados para PCI, PS/2, RTL8168, USB HID e VESA.
- O processo de instalação foi reorganizado: o carregador de inicialização (bootloader), o bootstrap, o kernel e o initfs agora estão localizados no diretório /boot.
- O gerenciamento de memória do kernel foi simplificado e foi adicionada a capacidade de manipular espaços de endereçamento a partir do nível do usuário.
- A interface gráfica do Orbital agora suporta sistemas com múltiplos monitores, aprimora o manuseio do cursor do mouse e adiciona um indicador de volume. O menu agora permite categorizar aplicativos.
Fonte: opennet.ru
