MotorOS: un sistema operativo Rust-first para VM x64

Un nuevo sistema operativo microkernel Rust-first para VM x64, MotorOS, busca eliminar la complejidad de Linux en despliegues de nube y estilo contenedor haciendo que tanto el kernel como todos los programas del espacio de usuario sean solo Rust. Los comentaristas contrastan esto con una larga historia de sistemas operativos hobby y alternativos que nunca lograron una adopción amplia, planteando preocupaciones sobre el mantenimiento a largo plazo, la estabilidad de la ABI de Rust y la falta de compatibilidad con Linux/C. El autor del proyecto sostiene que Linux no es adecuado para VMs mínimas pese a su dominio, y presenta MotorOS como una plataforma de alcance limitado y arranque rápido que podría evolucionar hacia una alternativa viable si consigue una comunidad.

Diseño y ABI Rust-first

  • El kernel, los controladores y el espacio de usuario están todos en Rust; los programas estándar de Rust deberían compilar y ejecutarse sin FFI.
  • La ABI del espacio de usuario es actualmente específica de Rust; en principio, otros lenguajes podrían apuntarla mediante ingeniería inversa.
  • Algunos se preocupan por la falta de una ABI estable de Rust y hacen comparaciones con la larga dependencia de Haiku de GCC 2.95.
  • Otros argumentan que las ABI estables de estilo C (repr(C)), como en Linux, hacen que la elección del compilador sea menos problemática; el autor del proyecto cuestiona por qué la inestabilidad del compilador se ve como un problema.

Modelo asíncrono y concurrencia

  • Varios comentaristas esperaban un kernel orientado primero a async; señalan experimentos previos de sistemas operativos en Rust que mostraban que era viable.
  • Se plantean preocupaciones de que Rust async sigue incompleto (traits async, interfaces de streaming), y que el async a nivel de kernel añade complejidad.
  • El autor señala que probaron async en el kernel pero encontraron que el “cruft” necesario era demasiado alto en ese momento; la red ya es async-first, y la E/S de archivos podría seguirle.

Alcance, nicho y comparación con Linux

  • Muchos lo ven como un sistema operativo hobby interesante, pero dudan de que pueda desplazar a Linux, especialmente en contextos de nube/servidor.
  • Un sistema operativo solo para VM y solo para Rust se considera potencialmente útil para microservicios, pero algunos cuestionan si añade mucho frente a contenedores “FROM scratch”.
  • Se hacen comparaciones con Docker, NixOS y “serverless” como respuestas a la complejidad de Linux; algunos sostienen que esas herramientas en realidad tratan sobre gestión de paquetes o modelos de facturación, no sobre la complejidad del kernel.

Microkernels, rendimiento y tiempo de arranque

  • El diseño de microkernel se presenta como una alternativa más principista a los contenedores para el recorte granular de recursos.
  • El planificador es un simple round-robin SMP; se espera que políticas más sofisticadas vivan en el espacio de usuario o en VMs separadas.
  • El proyecto afirma tiempos de arranque muy rápidos (~200 ms); otros señalan que la inicialización del hardware y la calibración del temporizador pueden dominar el tiempo de arranque, especialmente en VMs.
  • Algunos piden más datos de rendimiento, pero el README ya admite que la red y la E/S de archivos actualmente son lentas.

Viabilidad, ecosistema y controladores

  • El mantenimiento a largo plazo se destaca como la parte más difícil; la mayoría de estos proyectos terminan en un “cementerio”.
  • Se reconoce que los controladores y el soporte de hardware son una barrera clave, aunque menos en contextos centrados en VM.
  • Hay interés en integrar un runtime de WASM para evitar problemas de ABI y habilitar una composición más segura, pero esto es especulativo.