MotorOS: um sistema operacional Rust-first para VMs x64

Um novo SO microkernel Rust-first para máquinas virtuais x64, o MotorOS, busca remover a complexidade do Linux em implantações de nuvem e em estilo contêiner, fazendo com que tanto o kernel quanto todos os programas de userspace sejam apenas em Rust. Comentadores contrastam isso com uma longa história de SOs hobby e alternativos que nunca alcançaram adoção ampla, levantando preocupações sobre manutenção de longo prazo, a estabilidade da ABI do Rust e a falta de compatibilidade com Linux/C. O autor do projeto argumenta que o Linux é inadequado para VMs mínimas, apesar de sua dominância, e posiciona o MotorOS como uma plataforma estreitamente focada, de inicialização rápida, que poderia eventualmente evoluir para uma alternativa viável se ganhar uma comunidade.

Design Rust-first e ABI

  • Kernel, drivers e userspace são todos em Rust; programas Rust padrão deveriam compilar e executar sem FFI.
  • A ABI do userspace é atualmente específica de Rust; em princípio, outras linguagens poderiam alvoá-la por engenharia reversa.
  • Alguns se preocupam com a falta de uma ABI Rust estável e fazem comparações com a longa dependência do Haiku do GCC 2.95.
  • Outros argumentam que ABIs estáveis no estilo C (repr(C)), como no Linux, tornam a escolha do compilador menos problemática; o autor do projeto questiona por que a instabilidade do compilador é vista como um problema.

Modelo async e concorrência

  • Vários comentaristas esperavam um kernel async-first; eles observam experimentos anteriores com SOs em Rust que mostraram que isso é viável.
  • Surgem preocupações de que o Rust async ainda está incompleto (async traits, interfaces de streaming), e que async no nível do kernel adiciona complexidade.
  • O autor observa que tentou usar async no kernel, mas achou que o “cruft” necessário era alto demais na época; a rede já é async-first, e a E/S de arquivos pode seguir esse caminho.

Escopo, nicho e comparação com Linux

  • Muitos veem isso como um SO hobby interessante, mas duvidam que possa substituir o Linux, especialmente em contextos de nuvem/servidor.
  • Um SO apenas para VM e apenas em Rust é visto como potencialmente útil para microsserviços, mas alguns questionam se ele acrescenta muito além de contêineres “FROM scratch”.
  • São feitas comparações com Docker, NixOS e “serverless” como respostas à complexidade do Linux; alguns argumentam que essas ferramentas dizem respeito, na verdade, a gerenciamento de pacotes ou modelos de cobrança, e não à complexidade do kernel.

Microkernels, desempenho e tempo de boot

  • O design de microkernel é apresentado como uma alternativa mais principiada aos contêineres para fatias granulares de recursos.
  • O escalonador é um round-robin SMP simples; políticas mais sofisticadas devem viver no userspace ou em VMs separadas.
  • O projeto afirma tempos de boot muito rápidos (~200 ms); outros observam que a inicialização de hardware e a calibração de timers podem dominar o tempo de boot, especialmente em VMs.
  • Alguns pedem mais dados de desempenho, mas o README já admite que a rede e a E/S de arquivos são atualmente lentas.

Viabilidade, ecossistema e drivers

  • A manutenção de longo prazo é destacada como a parte mais difícil; a maioria desses projetos acaba em um “cemitério”.
  • Drivers e suporte a hardware são reconhecidos como uma barreira importante, embora menos em contextos focados em VM.
  • Há interesse em integrar um runtime WASM para contornar problemas de ABI e permitir composição mais segura, mas isso é especulativo.