El núcleo de Maestro, escrito en Rust y parcialmente compatible con Linux

Se presenta 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. Linux, suficiente para crear entornos de trabajo típicos. El proyecto se creó en 2018 e inicialmente utilizó el lenguaje C, pero en 2020 se reconstruyó completamente desde cero, teniendo en cuenta la experiencia acumulada y cambiando a Rust para reducir la probabilidad de que surjan errores al trabajar con la memoria. El código del kernel se distribuye bajo la licencia MIT. Además del núcleo, el proyecto Rust también desarrolla X11-servidor, un gestor de paquetes, un cargador de arranque, un instalador, conjuntos de utilidades y otros componentes necesarios para construir un sistema operativo.

El kernel tiene una arquitectura monolítica y actualmente solo admite sistemas x86 en modo de 32 bits. El código fuente del kernel comprende 48.8 líneas de código (en comparación, el kernel Linux — 33 millones de líneas de código). Puede ejecutarse en QEMU, VirtualBox o en local. En la etapa actual de desarrollo, el 31 % (135 de 437) de las llamadas al sistema de Maestro están implementadas. Linux, lo cual es suficiente para arrancar un entorno de consola basado en bash y la biblioteca estándar de C, Musl. El entorno basado en Maestro también puede ejecutar algunas utilidades del conjunto de utilidades básicas de GNU, como ls, cat, mkdir, rm, rmdir, uname y whoami.

 El núcleo de Maestro, escrito en Rust y parcialmente compatible con Linux

Entre las funciones disponibles de Maestro:

  • Drivers para teclado y terminal PS/2 con modo texto y soporte parcial para secuencias ANSI.
  • Un sistema de asignación de memoria que admite memoria virtual.
  • Programador de tareas basado en el algoritmo round-robin con soporte para señales POSIX.
  • Definición de dispositivos PCI.
  • Controlador IDE/PATA.
  • Sistema de archivos ext2.
  • Soporte para sistemas de archivos virtuales /tmp y /proc.
  • Soporte para montar particiones de disco FS, MBR y GPT.
  • soporte de initramfs.
  • Controlador RTC para temporizador y hora precisa.
  • Soporte para cargar módulos del kernel.
  • Capacidad para ejecutar archivos ejecutables en formato ELF.

Actualmente, se está trabajando para crear una pila de red, después de lo cual se planea implementar soporte para el mapeo directo de archivos en memoria y bibliotecas compartidas.

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster