Foi apresentado um projeto para o desenvolvimento, na linguagem Rust, de um núcleo Unix-like leve, implementando um subconjunto de chamadas de sistema do núcleo Linux, suficiente para criar ambientes de trabalho típicos. O projeto foi criado em 2018 e inicialmente utilizava a linguagem C, mas em 2020 foi completamente reiniciado do zero, levando em conta a experiência acumulada e migrou para Rust para reduzir a probabilidade de erros relacionados à manipulação de memória. O código do núcleo é distribuído sob a licença MIT. Além do núcleo, o projeto em Rust também está desenvolvendo X11,servidor, um gerenciador de pacotes, carregador, instalador, conjuntos de utilitários e outros componentes necessários para a construção de um sistema operacional.
O núcleo tem uma arquitetura monolítica e atualmente suporta apenas sistemas x86 em modo de 32 bits. A base de código do núcleo conta com 48.8 mil linhas de código (para comparação, o núcleo Linux possui 33 milhões de linhas de código). É possível rodar em QEMU, VirtualBox ou em hardware físico. No estágio atual de desenvolvimento, o Maestro implementou 31% (135 de 437) das chamadas de sistema do Linux, o que é suficiente para carregar um ambiente de console baseado em bash e na biblioteca C padrão Musl. No ambiente baseado no Maestro, também podem ser executados alguns utilitários do conjunto GNU coreutils, como ls, cat, mkdir, rm, rmdir, uname e whoami.

Entre as funcionalidades disponíveis do Maestro:
- Drivers para teclado PS/2 e terminal em modo texto com suporte parcial a sequências ANSI.
- Um sistema de gerenciamento de memória que suporta memória virtual.
- Um escalonador de tarefas baseado no algoritmo round-robin com suporte a sinais POSIX.
- Detecção de dispositivos PCI.
- Driver IDE/PATA.
- Sistema de arquivos Ext2.
- Suporte a sistemas de arquivos virtuais /tmp e /proc.
- Suporte para montagem de sistemas de arquivos e partições de disco MBR e GPT.
- Suporte a initramfs.
- Driver RTC para temporizador e hora precisa.
- Suporte para carregar módulos do núcleo.
- Capacidade de executar arquivos executáveis no formato ELF.
Atualmente, está em desenvolvimento um stack de rede, após o qual está previsto implementar o suporte a mapeamento direto de arquivos na memória e bibliotecas compartilhadas.
Fonte: opennet.ru
