Foi lançada a versão 0.8 do sistema operacional Redox, desenvolvido utilizando a linguagem Rust e o conceito de microkernel. As inovações do projeto são distribuídas sob a licença MIT. Para testar o Redox OS, estão disponíveis versões demonstrativas de 768 MB, bem como imagens com um ambiente gráfico básico (256 MB) e um conjunto de ferramentas de console para sistemas de servidor (256 MB). As compilações são feitas para a arquitetura x86_64 e estão disponíveis para sistemas com UEFI e BIOS. A imagem demonstrativa, além do ambiente gráfico Orbital, inclui o emulador DOSBox, uma seleção de jogos (DOOM, Neverball, Neverputt, sopwith, syobonaction), programas educativos, o reprodutor de música rodioplay e o editor de texto Sodium.
O sistema operacional evolui de acordo com a filosofia Unix e incorpora algumas ideias do SeL4, Minix e Plan 9. O Redox utiliza o conceito de microkernel, onde no nível do kernel é garantido apenas a interação entre processos e o gerenciamento de recursos, enquanto toda a outra funcionalidade é transferida para bibliotecas que podem ser usadas tanto pelo kernel quanto por aplicativos do usuário. Todos os drivers são executados no espaço do usuário em ambientes isolados de sandbox. Para compatibilidade com aplicativos existentes, é fornecida uma camada POSIX especial, permitindo a execução de muitos programas sem a necessidade de portabilidade.
No sistema, aplica-se o princípio "tudo é URL". Por exemplo, para registro de log pode ser usado o URL "log://", para interação entre processos "bus://", para interação de rede "tcp://" e assim por diante. Módulos que podem ser implementados na forma de drivers, extensões de kernel e aplicativos do usuário podem registrar seus manipuladores de URL; por exemplo, é possível escrever um módulo de acesso a portas de entrada/saída e vinculá-lo ao URL "port_io://", após o que é possível acessá-lo para obter informações da porta 60 abrindo o URL "port_io://60".
O ambiente de usuário no Redox é baseado em sua própria interface gráfica Orbital (não confundir com outra interface Orbital, que utiliza Qt e Wayland) e no toolkit OrbTk, que oferece uma API semelhante ao Flutter, React e Redux. O navegador web utilizado é o Netsurf. O projeto também está desenvolvendo seu próprio gerenciador de pacotes, um conjunto de utilitários padrão (binutils, coreutils, netutils, extrautils), o shell de comando ion, a biblioteca padrão C relibc, um editor de texto semelhante ao vim chamado sodium, a pilha de rede e o sistema de arquivos. A configuração é feita com a linguagem Toml.
Na nova versão, a continuidade do trabalho para operação em hardware real foi mantida. Além da arquitetura x86_64, foi adicionada a capacidade de operar em sistemas de 32 bits x86 (i686, Pentium II e mais recente). Está em andamento o port para CPU ARM64 (aarch64). A operação em hardware ARM real ainda não é suportada, mas é possível inicializar em emulação ARM64 no QEMU. Por padrão, o subsistema de som está ativado e o suporte inicial para configurações de múltiplos monitores foi garantido (em sistemas com framebuffer UEFI). Entre os equipamentos suportados no Redox OS, estão os 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 para Wi-Fi e USB ainda não está finalizado (USB funciona apenas no QEMU).
Outras novidades:
- As imagens de inicialização para sistemas com BIOS e EFI foram unificadas.
- A implementação das chamadas de sistema clone e exec foi transferida para o espaço do usuário.
- O processo de inicialização foi simplificado. Foi implementado um programa bootstrap, executado pelo núcleo e que garante a inicialização posterior de arquivos ELF, como o processo init.
- Foi adicionado o programa escalated para oferecer suporte a programas setuid, como sudo.
- Para simplificar a criação e instalação de processos em segundo plano, foi proposto o pacote crate redox-daemon.
- O sistema de construção foi reestruturado, permitindo a construção para diferentes arquiteturas em uma única árvore de códigos-fonte. Para facilitar a construção de diferentes configurações, foi proposto um script build.sh. Foi adicionada a capacidade de compilar usando a ferramenta podman. A compilação do núcleo, do carregador e do initfs foi unificada com outros pacotes.
- Foi adicionada uma configuração de demonstração para compilar exemplos de programas que não estão incluídos na imagem básica de inicialização com interface gráfica.
- O subsistema de áudio audiod agora suporta controle de volume por software.
- Foi adicionado um driver para chips de áudio baseados em AC’97. O driver para chips Intel HD Audio foi aprimorado.
- Foi adicionado um driver para controladores IDE.
- O suporte para unidades NVMe foi aprimorado.
- Os drivers PCI, PS/2, RTL8168, USB HID, VESA foram aprimorados.
- A organização do processo de instalação foi reformulada: o carregador de inicialização, bootstrap, núcleo e initfs agora são colocados no diretório /boot.
- No núcleo, a manipulação da memória foi simplificada, e agora é possível manipular espaços de endereço a partir do nível do usuário.
- A interface gráfica Orbital agora suporta sistemas de múltiplos monitores, melhorou o processamento do cursor do mouse e adicionou um indicador para controle de volume. No menu, foi implementada a possibilidade de categorizar aplicativos.
Fonte: opennet.ru
