Introducción a Motūrus OS
- El proyecto Motūrus desarrolla MotūrusOS, un sistema operativo simple, rápido y seguro para la nube.
- Motūrus OS es un nuevo sistema operativo orientado a cargas de trabajo basadas en máquinas virtuales, y se usa para servidores web, serverless, edge caching y más.
¿Por qué Motūrus OS?
- Actualmente, la mayoría de las cargas de trabajo virtualizadas en producción se ejecutan en Linux.
- Linux tiene muchas funciones avanzadas, pero también presenta algunas complejidades que no lo hacen ideal para cargas de trabajo virtualizadas:
- Linux está optimizado para bare metal, por lo que resulta ineficiente cuando se usa dentro de una VM.
- Linux es difícil de usar.
- Históricamente, Linux no ha sido muy seguro.
- Un nuevo sistema operativo enfocado en cargas de trabajo virtualizadas puede ser mucho más simple y seguro que Linux, y puede igualar o superar a Linux en rendimiento y eficiencia.
¿Qué es Motūrus OS?
- Motūrus OS es un sistema operativo basado en microkernel, construido en Rust y dirigido exclusivamente a cargas de trabajo virtualizadas.
- Actualmente soporta máquinas virtuales x64 basadas en KVM, y puede ejecutarse en Qemu o Cloud Hypervisor.
- Rust es el lenguaje central de Motūrus OS: no solo se usa para la implementación, sino que también el ABI se ofrece en Rust.
Funciones que sí funcionan
- En este momento, la mayoría de los subsistemas operan en modo POC/MVP, pero ya pueden ejecutar tareas como un servidor web.
- En concreto, funcionan las siguientes capacidades:
- Arranca en alrededor de 200 ms mediante MBR(Qemu) o PVH(Cloud Hypervisor).
- Microkernel himem.
- Planificación: round robin multiprocesador simple (SMP); la planificación del kernel es cooperativa.
- Gestión de memoria: por ahora solo soporta páginas de 4K, la pila está protegida y los page faults en espacio de usuario se manejan correctamente.
- Subsistema de I/O (en espacio de usuario): drivers VirtIO-BLK y VirtIO-NET, dos sistemas de archivos simples y red basada en smoltcp (solo soporta TCP).
- Espacio de usuario: multiproceso, desalojo, hilos, TLS y gran parte de la biblioteca estándar de Rust porteada.
- Incluye un shell simple estilo Unix.
Funciones que no funcionan
- La mayor parte del sistema todavía no está lista para uso en producción.
- No se ha realizado una auditoría de seguridad.
- Es fácil encontrarse con un pánico de "not implemented" en sys-io (subsistema de I/O en espacio de usuario).
- En concreto, las siguientes capacidades no funcionan:
- Sistema de archivos: gran parte de la API
std::fs de Rust está implementada como POC, pero necesita reimplementarse usando I/O asíncrona.
- Redes:
std::net::TcpStream está mayormente implementado, pero otros protocolos todavía no.
- Ecosistema fuera del estándar de Rust: algunos crates pueden compilar y usarse con ajustes menores, pero los crates que dependen de runtimes asíncronos como Tokio actualmente no compilan.
¿Cómo se puede compilar/ejecutar Motūrus OS?
- Consultar el documento
docs/build.md.
Agradecimientos
- Un gran agradecimiento a Philipp Oppermann, autor de la serie de blogs sobre escribir un OS en Rust. Inspiró a muchas personas a experimentar en este campo.
Opinión de GN⁺
- Enfoque innovador: Motūrus OS es un nuevo sistema operativo especializado en entornos virtualizados, que busca resolver la complejidad y la ineficiencia de Linux.
- Adopción de Rust: Rust es un lenguaje enfocado en la seguridad de memoria y el rendimiento, y contribuirá a la seguridad y eficiencia de Motūrus OS.
- Aporte a la comunidad de desarrolladores: Este proyecto ayudará a los desarrolladores interesados en la creación de sistemas operativos a explorar nuevas posibilidades y superar limitaciones existentes.
3 comentarios
Yo también estoy siguiendo el blog writing an os in rust, pero ya se están viendo movimientos desde ahora.
Parece un muy buen artículo.
Comentarios en Hacker News
Opinión del desarrollador/autor del proyecto:
Explicación del enfoque "Rust-first":
Curiosidad sobre por qué un kernel pequeño tarda 200 ms en computadoras modernas:
Opinión de alguien que quiere ver un kernel "async-first" escrito en Rust:
Opinión que recuerda comentarios pasados de Linus Torvalds sobre la competencia con Linux:
Opinión que expresa interés en proyectos como Motor OS y espera que continúe su desarrollo:
Opinión de que Docker, Nix OS y lo "serverless" existen debido a la complejidad de Linux:
Opinión que inicialmente tuvo una postura escéptica ante la nueva tecnología, pero al pensarlo de nuevo considera atractivas las mejoras de eficiencia y seguridad que pueden obtenerse al eliminar capas innecesarias:
Opinión de que Motor OS parece competir con Docker y otras tecnologías similares:
Opinión de que empezar un nuevo sistema operativo no es difícil, pero darle soporte durante los próximos 50 años sí lo es:
La sección de "funciones que no funcionan" es todo un espectáculo. Un proyecto de juguete.