Sistema operacional Redox 0.6 escrito em Rust: o que há de novo nesta versão?



Após um ano e meio de desenvolvimento, os autores do sistema operacional Redox 0.6, escrito usando a linguagem Rust, publicaram uma nova versão. A novidade pode ser testada - para isso, imagens de boot foram postadas na rede. Seu volume é de 61 MB. A versão mais recente pode ser testada em hardware normal, não em QEMU e VirtualBox.



O sistema operacional é distribuído sob a licença gratuita do MIT. O que há de novo na versão 0.6?



  • O sistema de gerenciamento de memória do kernel foi reescrito do zero . Estamos falando de rmm, gerenciador de memória do kernel. Os desenvolvedores conseguiram se livrar dos vazamentos de memória que causavam problemas ao usar o gerenciador de memória antigo. A estabilidade do suporte para sistemas multi-core também foi melhorada.
  • , RSoC (Redox OS Summer of Code), , io_uring, ptrace, strace, gdb, .
  • - Relibc, Redox, Linux.
  • pkgar . . , , , . , pkgar , .
  • cookbook , Rust. Shell- Tomt.
  • , Asm.


Quanto às funcionalidades deste sistema operacional, ele se desenvolve totalmente de acordo com a filosofia Unix. Os autores pegaram emprestadas algumas idéias de SeL4, Minix e Plan 9. Um dos principais "truques" é o uso do conceito de microkernel, no qual apenas a interação entre processos e gerenciamento de recursos é fornecida. O restante da funcionalidade foi movido para bibliotecas que podem ser usadas pelo kernel e aplicativos personalizados. Todos os drivers são executados no espaço do usuário em ambientes de sandbox isolados. Para compatibilidade com aplicativos existentes, uma camada POSIX é fornecida, o que torna possível executar muitos programas sem portar.



Além disso, os desenvolvedores usaram o princípio "tudo é um URL" em seus sistemas operacionais. Assim, para registrar a URL "log: //" pode ser usado, para interação entre processos "bus: //", para comunicação de rede "tcp: //", etc. Para módulos que podem ser implementados na forma de drivers, extensões de kernel e aplicativos personalizados podem registrar seus manipuladores de URL. Um exemplo é escrever um módulo para acessar portas de E / S e vinculá-lo ao URL “port_io: //”, após o qual você pode usá-lo para acessar a porta 60 abrindo o URL “port_io: // 60”.



O ambiente customizado é baseado no próprio shell gráfico do OrbTk, que fornece APIs semelhantes a Flutter, React e Redux. Navegador - Netsurf. Durante o desenvolvimento do projeto, os desenvolvedores forneceram 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, um editor de texto de sódio semelhante ao vim, uma pilha de rede e o sistema de arquivos TFS desenvolvido com base em ideias para ZFS (versão modular do ZFS em Rust). A configuração é definida no idioma Toml.






All Articles