Lançamento do sistema operacional Redox OS 0.7 escrito em Rust

Após um ano e meio de desenvolvimento, foi publicado o lançamento do sistema operacional Redox 0.7, desenvolvido na linguagem Rust e no conceito de microkernel. Os desenvolvimentos do projeto são distribuídos sob licença gratuita do MIT. Para testar o Redox OS, são oferecidas instalações e imagens Live de 75 MB. Os assemblies são gerados para a arquitetura x86_64 e estão disponíveis para sistemas com UEFI e BIOS.

Ao preparar o novo lançamento, o foco principal foi garantir que funcionasse em hardware real. Principais inovações:

  • O bootloader foi totalmente reescrito, no qual o código para inicialização em sistemas com BIOS e UEFI é unificado e escrito principalmente em Rust. A alteração do bootloader expandiu significativamente a gama de hardware suportado.
  • Além de correções de bugs, trabalhos foram feitos no kernel para melhorar o desempenho e expandir o suporte de hardware. Variáveis ​​específicas da CPU foram convertidas para usar o registro GS. A reflexão (mapeamento) de toda a memória física é fornecida, o uso de páginas de memória recursiva é interrompido. O código assembly em inserções in-line foi reescrito para melhorar a compatibilidade com versões futuras do compilador.
  • Adicionado suporte inicial para arquitetura AArch64.
  • Foi feita uma transição para processar todos os caminhos de arquivo na codificação UTF-8.
  • O código para trabalhar com a especificação ACPI AML (ACPI Machine Language) - uefi.org foi movido do kernel para o processo em segundo plano acpid em execução no espaço do usuário.
  • O conteúdo do Initfs foi movido para um novo arquivo, facilitando a geração de pacotes.
  • O sistema de arquivos RedoxFS foi reescrito e passou a usar o mecanismo CoW (Copy-on-Write), no qual as alterações não substituem as informações, mas são salvas em um novo local, o que melhorou significativamente a confiabilidade. Os novos recursos do RedoxFS incluem suporte para atualizações transacionais, criptografia de dados usando o algoritmo AES, bem como autenticação de dados e metadados com assinaturas digitais. O compartilhamento do código FS no sistema e no bootloader é garantido.
  • O aprimoramento da biblioteca C padrão Relibc desenvolvida pelo projeto, capaz de funcionar não só em Redox, mas também em distribuições baseadas no kernel Linux, continuou. As mudanças facilitaram a portabilidade de vários programas para Redox e resolveram problemas com muitos programas e bibliotecas escritos em C.
  • Foi preparada uma versão do compilador Rustc que pode rodar em Redox. As tarefas restantes incluem a otimização do desempenho e a adaptação do gerenciador de pacotes de carga para funcionar no ambiente Redox.

Lançamento do sistema operacional Redox OS 0.7 escrito em Rust

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.

Fonte: opennet.ru

Adicionar um comentário