Kerla: um novo kernel escrito em Rust e compatível com o Linux ABI

Informações sobre o projeto Kerla foram lançadas recentemente, que está sendo desenvolvido como um kernel de sistema operacional escrito na linguagem Rust. O código é distribuído sob as licenças Apache 2.0 e MIT. O projeto está sendo desenvolvido pelo desenvolvedor japonês Seiya Nuta, conhecido por criar o sistema operacional de microkernel Resea, escrito em linguagem C.

O novo kernel visa inicialmente garantir a compatibilidade com o kernel Linux no nível ABI, que permitirá que binários não modificados construídos para Linux sejam executados em um ambiente baseado em Kerla.

Sobre Kerala

Kerla é um kernel de sistema operacional monolítico criado do zero em Rust. No estágio atual de desenvolvimento, Kerla só pode ser executado em sistemas com arquitetura x86_64 e implementa chamadas de sistema básicas como write, stat, mmap, pipe e poll, suporta sinais, pipes não nomeados e mudanças de contexto. Chamadas como fork, wait4 e execve fornecem para controlar os processos. Há suporte para tty e pseudo-terminais (pty). Entre os sistemas de arquivos initramfs (usados ​​para montar o FS root), tmpfs e devfs ainda são suportados.

Uma pilha de rede com suporte para soquetes TCP e UDP também é fornecida, com base na biblioteca smoltcp. O desenvolvedor preparou um ambiente de boot que funciona em QEMU ou Firecracker VM com o controlador virtio-net, ao qual você já pode se conectar via SSH. Musl é usado como uma biblioteca do sistema e BusyBox é usado como um utilitário do usuário. Com base no Docker, foi preparado um sistema de construção que permite criar sua própria inicialização initramfs com o kernel Kerla.

Até agora, poucos detalhes foram fornecidos sobre seu novo kernel, mas o que mais chama a atenção para os recursos do Kerla é o fato de ele ser escrito em Rust. Então, escrevê-lo em Rust tem alguma vantagem sobre outras linguagens ou sobre o código existente? Muitos responderam sim a esta pergunta, enfatizando os benefícios de segurança de memória que a linguagem oferece.

Também é fornecido ao avaliar a precisão dos acessos à memória em tempo de execução. O que mais, A Mozilla acredita que o Rust oferece proteção contra estouros de inteiros, requer inicialização obrigatória de valores de variáveis ​​antes do uso, adota o conceito de referências e variáveis ​​imutáveis ​​por padrão, oferece tipagem estática forte para minimizar erros lógicos e simplifica o processamento de entrada por meio de correspondência de padrões.

Entre as vantagens, destacamos as ferramentas integradas para avaliar a qualidade do código e a criação de testes de unidade que podem ser executados não apenas em hardware real, mas também em QEMU. Basicamente, o Mozilla acha o Rust mais fácil de depurar, já que o compilador rejeitará os erros. No entanto, as enseadas apontaram para algumas desvantagens com a ferrugem.

“Assim como no C ++, é quase impossível escrever Rust idiomático sem usar modelos, então ele tem binários inchados e tempos de compilação lentos. Todas essas verificações de tempo de compilação também têm um custo. Além disso, se você reescrever algo, perde a base de código antiga e madura e não há como produzir uma base de código de qualidade semelhante em um período de tempo razoável; é muito melhor estender, em vez de reescrever, o programa em Rust. É melhor estender o programa em vez de reescrevê-lo em Rust ”, diz um engenheiro de software.

Segundo seu criador, é por essa razão que os desenvolvedores Linux, em particular o próprio Linus Torvalds, eles rejeitaram a ideia de reescrever todo o kernel em Rust.

“Faça algum trabalho para criar links seguros e, em seguida, escreva o código adicional em Rust e você ainda poderá desfrutar desse código maduro. (Isso é o que o Linux faz, há esforços para adicionar a capacidade de escrever um módulo do kernel no Rust) ”, acrescentou. Os desenvolvedores Linux têm explorado as possibilidades de escrever certos novos módulos do kernel usando a linguagem Rust por cerca de três anos. Isso deu origem ao projeto »Rust for Linux«.

Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.