Introdução ao Motūrus OS
- O projeto Motūrus desenvolve o MotūrusOS, um sistema operacional simples, rápido e seguro para a nuvem.
- O Motūrus OS é um novo sistema operacional voltado para workloads baseadas em máquinas virtuais, usado em servidores web, serverless, cache de borda e mais.
Por que o Motūrus OS?
- Atualmente, a maioria das cargas de trabalho virtualizadas em produção roda em Linux.
- O Linux tem muitos recursos avançados, mas também traz algumas complexidades que o tornam menos ideal para workloads virtualizadas:
- O Linux é otimizado para bare metal, o que o torna ineficiente quando usado dentro de VMs.
- O Linux é difícil de usar.
- Historicamente, o Linux não tem sido muito seguro.
- Um novo sistema operacional focado em workloads virtualizadas pode ser muito mais simples e seguro que o Linux, além de igualar ou superar o Linux em desempenho e eficiência.
O que é o Motūrus OS?
- O Motūrus OS é um sistema operacional baseado em microkernel, construído em Rust e voltado exclusivamente para workloads virtualizadas.
- Atualmente, ele oferece suporte a máquinas virtuais x64 baseadas em KVM e pode rodar no Qemu ou no Cloud Hypervisor.
- Rust é a linguagem central do Motūrus OS: não apenas a implementação, mas também a ABI é fornecida em Rust.
O que já funciona
- No momento, a maioria dos subsistemas opera em modo POC/MVP, mas já é possível executar tarefas como um servidor web.
- Especificamente, os seguintes recursos funcionam:
- Boot em cerca de 200 ms via MBR (Qemu) ou PVH (Cloud Hypervisor).
- Microkernel himem.
- Escalonamento: round-robin multiprocessador simples (SMP); o escalonamento do kernel é cooperativo.
- Gerenciamento de memória: atualmente só há suporte a páginas de 4K; a stack é protegida; page faults no espaço do usuário são tratados corretamente.
- Subsistema de I/O (em espaço do usuário): drivers VirtIO-BLK e VirtIO-NET, dois sistemas de arquivos simples, rede baseada em smoltcp (apenas TCP suportado).
- Espaço do usuário: múltiplos processos, preempção, threads, TLS, e grande parte da biblioteca padrão do Rust foi portada.
- Um shell simples em estilo Unix é fornecido.
O que não funciona
- A maior parte ainda não está pronta para uso em produção.
- Nenhuma auditoria de segurança foi realizada.
- É fácil encontrar pânicos de "not implemented" no sys-io (subsistema de I/O em espaço do usuário).
- Especificamente, os seguintes recursos não funcionam:
- Sistema de arquivos: grande parte da API
std::fs do Rust foi implementada como POC, mas precisa ser reimplementada usando I/O assíncrono.
- Rede:
std::net::TcpStream está em grande parte implementado, mas outros protocolos ainda não foram implementados.
- Ecossistema além da biblioteca padrão do Rust: alguns crates podem ser compilados e usados com pequenos ajustes, mas crates que dependem de runtimes assíncronos como Tokio atualmente não compilam.
Como compilar/executar o Motūrus OS?
- Consulte o documento docs/build.md.
Agradecimentos
- Um grande agradecimento a Philipp Oppermann, que escreveu uma série de posts sobre como escrever um SO em Rust. Isso inspirou muitas pessoas a experimentar nessa área.
Opinião do GN⁺
- Abordagem inovadora: o Motūrus OS é um novo sistema operacional especializado em ambientes virtualizados, buscando resolver a complexidade e a ineficiência do Linux.
- Adoção de Rust: Rust é uma linguagem focada em segurança de memória e desempenho, o que deve contribuir para a segurança e a eficiência do Motūrus OS.
- Contribuição para a comunidade de desenvolvedores: este projeto pode ajudar desenvolvedores interessados em criação de sistemas operacionais a explorar novas possibilidades e ir além das limitações existentes.
3 comentários
Também estou acompanhando o blog writing an os in rust, mas já está surgindo movimento por causa dele!
Parece ser um ótimo texto.
Comentários no Hacker News
Opinião do desenvolvedor/autor do projeto:
Explicação sobre a abordagem "Rust-first":
Curiosidade sobre por que um kernel pequeno leva 200 ms em computadores modernos:
initetc., mas acha que tudo isso deveria acontecer em poucos microssegundos.Opinião de que gostaria de ver um kernel async-first escrito em Rust:
Opinião que relembra uma fala passada de Linus Torvalds sobre concorrência ao Linux:
Opinião demonstrando interesse em projetos como o Motor OS e desejando que o desenvolvimento continue:
Opinião de que Docker, Nix OS e "serverless" existem por causa da complexidade do Linux:
Opinião de que inicialmente teve uma atitude cética em relação à nova tecnologia, mas, pensando melhor, considera atraentes os ganhos de eficiência e segurança obtidos ao remover camadas desnecessárias:
Opinião de que o Motor OS parece competir com Docker e afins:
Opinião de que começar um novo sistema operacional não é difícil, mas dar suporte a ele pelos próximos 50 anos é muito difícil:
A seção "recursos que não funcionam" é realmente um espetáculo à parte. Projeto de brinquedo