Se ha presentado un proyecto para desarrollar un núcleo ligero similar a Unix en el lenguaje Rust, que implementa un subconjunto de llamadas al sistema del núcleo de Linux, suficiente para crear entornos de trabajo típicos. El proyecto fue creado en 2018 y al principio utilizaba el lenguaje C, pero en 2020 se reinició completamente desde cero teniendo en cuenta la experiencia acumulada y se trasladó a Rust para reducir la probabilidad de cometer errores relacionados con la memoria. El código del núcleo se distribuye bajo la licencia MIT. Además del núcleo, el proyecto en Rust también desarrolla X11-servidor, un gestor de paquetes, un cargador de arranque, un instalador, un conjunto de utilidades y otros componentes necesarios para construir un sistema operativo.
El núcleo tiene una arquitectura monolítica y actualmente solo soporta sistemas x86 en modo de 32 bits. La base de código del núcleo cuenta con 48.8 mil líneas de código (para comparación, el núcleo de Linux tiene 33 millones de líneas de código). Se puede ejecutar en QEMU, VirtualBox o nativo en hardware. En la etapa actual de desarrollo de Maestro, se han implementado el 31% (135 de 437) de las llamadas al sistema de Linux, lo que es suficiente para cargar un entorno de consola basado en bash y la biblioteca estándar de C Musl. En el entorno basado en Maestro también se pueden ejecutar algunas utilidades del conjunto GNU coreutils, como ls, cat, mkdir, rm, rmdir, uname y whoami.

Entre las capacidades disponibles de Maestro:
- Controladores para teclados PS/2 y terminales con modo de texto y soporte parcial para secuencias ANSI.
- Un sistema de distribución de memoria que soporta memoria virtual.
- Un planificador de tareas basado en el algoritmo de round-robin con soporte para señales POSIX.
- Detección de dispositivos PCI.
- Controlador IDE/PATA.
- Sistema de archivos Ext2.
- Soporte para sistemas de archivos virtuales /tmp y /proc.
- Soporte para montaje de sistemas de archivos y particiones de disco MBR y GPT.
- Soporte para initramfs.
- Controlador RTC para temporizador y hora exacta.
- Soporte para la carga de módulos del núcleo.
- Capacidad para ejecutar archivos ejecutables en formato ELF.
Actualmente se está trabajando en la creación de una pila de red, y una vez esté lista, se planea implementar soporte para mapeo directo de archivos en memoria y bibliotecas compartidas.
Fuente: opennet.ru
