O projeto Kerla está desenvolvendo um núcleo compatível com Linux na linguagem Rust

No âmbito do projeto Kerla, está sendo desenvolvido o núcleo de um sistema operacional escrito na linguagem Rust. O novo núcleo é inicialmente voltado para garantir compatibilidade com o núcleo do Linux em nível ABI, o que permitirá executar arquivos executáveis não modificados, compilados para Linux, em um ambiente baseado no Kerla. O código é distribuído sob as licenças Apache 2.0 e MIT. O projeto é desenvolvido pelo programador japonês Seiya Nuta, conhecido pela criação do sistema operacional de micro núcleos Resea, escrito na linguagem C.

Na fase atual de desenvolvimento, o Kerla pode operar apenas em sistemas com arquitetura x86_64 e implementa chamadas de sistema básicas, como write, stat, mmap, pipe e poll, suportando sinais, canais nomeados e trocas de contexto. Para gerenciamento de processos, são fornecidas chamadas como fork, wait4 e execve. Há suporte para tty e pseudoterminais (pty). Até o momento, os sistemas de arquivos suportados incluem initramfs (utilizado para montar o sistema de arquivos raiz), tmpfs e devfs. Um stack de rede com suporte a sockets TCP e UDP foi implementado com a biblioteca smoltcp.

O desenvolvedor preparou um ambiente de inicialização que pode ser executado no QEMU ou no máquina virtual Firecracker com o driver virtio-net, ao qual já é possível se conectar via SSH. A biblioteca do sistema utilizada é a musl, e para utilitários de usuário, utiliza-se o BusyBox.

O projeto Kerla está desenvolvendo um núcleo compatível com Linux na linguagem Rust

Com base no Docker, foi desenvolvida uma sistema de construção que permite criar suas próprias imagens de inicialização initramfs com o núcleo do Kerla. Separadamente, está sendo desenvolvida uma shell semelhante ao fish, chamada nsh, e um stack GUI chamado Kazari, baseado no protocolo Wayland.

O projeto Kerla está desenvolvendo um núcleo compatível com Linux na linguagem Rust

O uso da linguagem Rust em um projeto permite reduzir o número de erros no código graças à aplicação de técnicas de programação segura e ao aumento da eficiência na identificação de problemas relacionados à memória. A operação segura com a memória em Rust é garantida durante a compilação por meio da verificação de referências, rastreamento da posse de objetos e consideração do tempo de vida dos objetos (escopo), além da avaliação da correção no acesso à memória durante a execução do código. Além disso, Rust oferece ferramentas para proteção contra estouros inteiros, exige a inicialização obrigatória dos valores das variáveis antes do uso, aplica o conceito de referências e variáveis imutáveis (immutable) por padrão, e oferece forte tipagem estática para minimizar erros lógicos, facilitando o tratamento de valores de entrada por meio de técnicas de correspondência de padrões.

Para o desenvolvimento de componentes de baixo nível, como o núcleo do sistema operacional, Rust oferece suporte a ponteiros brutos, empacotamento de estruturas, inserções inline de assembleia e a inclusão de arquivos em assembleia. Para operações que não dependem da biblioteca padrão, existem pacotes de crate independentes para realizar operações com strings, vetores e flags de bits. Dentre os benefícios, destacam-se as ferramentas integradas para avaliação da qualidade do código (linter, rust-analyzer) e a criação de testes unitários, que podem ser executados não apenas em hardware real, mas também no QEMU.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster