Após um ano e meio de desenvolvimento, foi lançada a versão 0.7 do sistema operacional Redox, desenvolvido com a linguagem Rust e o conceito de microkernel. As realizações do projeto são distribuídas sob a licença MIT. Para testar o Redox OS, estão disponíveis imagens de instalação e Live, com tamanho de 75 MB. As compilações são formadas para a arquitetura x86_64 e estão disponíveis para sistemas com UEFI e BIOS.
Na preparação da nova versão, o foco principal foi garantir a operação em hardware real. As principais inovações:
- O carregador foi completamente reescrito, unificando e predominantemente escrito em Rust o código para carregamento em sistemas com BIOS e UEFI. A alteração do carregador permitiu expandir significativamente o espectro de hardware suportado.
- No núcleo, além da correção de erros, foram realizadas melhorias de desempenho e expansão do suporte a hardware. Variáveis específicas para CPU foram convertidas para o uso do registrador GS. Foi garantido o mapeamento de toda a memória física, interrompendo o uso de páginas de memória recursivas. O código assembler em inserções inline foi reescrito para melhorar a compatibilidade com futuras versões do compilador.
- Adicionado suporte inicial para a arquitetura AArch64.
- Realizada a transição para o processamento de todos os caminhos de arquivos na codificação UTF-8.
- O código para trabalhar com ACPI AML (ACPI Machine Language) Specification — uefi.org foi transferido do núcleo para o processo em segundo plano acpid, executado no espaço do usuário.
- O conteúdo do Initfs foi transferido para um novo arquivo, o que simplificou a formação de pacotes.
- O sistema de arquivos RedoxFS foi reescrito e convertido para usar o mecanismo CoW (Copy-on-Write), onde as alterações não sobreescrevem informações, mas são salvas em um novo local, proporcionando um aumento significativo na confiabilidade. Entre os novos recursos, destaca-se o suporte a atualizações transacionais, criptografia de dados usando o algoritmo AES, bem como a verificação de dados e metadados com assinaturas digitais. Foi assegurado o compartilhamento do código do sistema de arquivos no sistema e no carregador.
- Continua o aprimoramento da biblioteca padrão C Relibc desenvolvida pelo projeto, capaz de funcionar não apenas no Redox, mas também em distribuições baseadas no kernel Linux. As mudanças realizadas simplificaram a migração de diversos programas para o Redox e resolveram problemas com muitos programas e bibliotecas escritas em C.
- Uma versão do compilador rustc foi preparada, capaz de ser executada no Redox. Entre as tarefas restantes, destaca-se a otimização de desempenho e a adaptação do gerenciador de pacotes cargo para funcionar no ambiente Redox.

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.
Fonte: opennet.ru
