3 puntos por GN⁺ 2024-01-04 | 1 comentarios | Compartir por WhatsApp
  • Maestro es un kernel y sistema operativo similar a Unix escrito desde cero en el lenguaje Rust.
  • Al principio fue implementado en C, pero como se volvió difícil mantener limpia la base de código, se migró a Rust.
  • Rust permitió reiniciar el proyecto desde cero de una forma más innovadora que escribir en C un kernel similar a Linux, y ayuda a reducir las dificultades de la programación de kernels al aprovechar la seguridad de Rust.

Estado actual del proyecto

  • Actualmente, Maestro es un kernel monolítico que solo soporta la arquitectura x86 (32 bits).
  • Al momento de escribir esto, se han implementado de forma aproximada 135 llamadas al sistema de Linux, equivalentes a cerca del 31% del total.
  • Además del kernel, el SO incluye componentes como el sistema de arranque y administrador de demonios Solfège, las utilidades del sistema maestro-utils y el gestor de paquetes blimp.
  • Se ha probado que software de terceros como musl (biblioteca estándar de C), bash, algunos comandos de GNU coreutils y neofetch (versión parchada) funciona en el SO.

¡Pruébalo tú mismo!

  • El SO todavía está en una etapa temprana de desarrollo y es muy inestable, por lo que no se recomienda instalarlo en una máquina con datos importantes.
  • Se ha probado principalmente en QEMU, VMWare y VirtualBox.
  • Hay dos formas de instalar el SO: descargar un archivo .iso precompilado o compilar el ISO directamente.
  • Los paquetes instalados se almacenan en RAM (initramsfs) en lugar de en disco, por lo que se necesita suficiente memoria RAM (1 GB o más).

Acerca de este blog

  • El propósito de este blog no es escribir un tutorial sobre cómo crear un SO, sino explorar temas más avanzados, compartir cómo resolver problemas y descubrir cómo funcionan las computadoras, los sistemas operativos e internet.
  • Se recomiendan especialmente osdev.org y el blog de Philipp Oppermann.

Lo que viene después

  • Hace falta ordenar la base de código y optimizar el rendimiento.
  • Corregir fugas de memoria y optimizar el rendimiento podrían ser temas para artículos del blog.
  • El siguiente objetivo es lograr que el gestor de paquetes funcione completamente en el SO.
  • Se necesita soporte de red y soporte para bibliotecas compartidas.

Cómo ayudar

  • Puedes mantenerte al tanto dejando una estrella en el repositorio de GitHub, suscribiéndote al boletín, siguiendo el feed RSS y uniéndote a Discord.

Opinión de GN⁺

  • El proyecto Maestro es un sistema operativo similar a Unix escrito en Rust, y es importante por su búsqueda de seguridad e innovación en el desarrollo de kernels.
  • Este proyecto ofrece una oportunidad interesante para desarrolladores que quieran contribuir a la comunidad de código abierto, y puede ayudar a entender la interacción entre hardware y software reales.
  • Puede ser un material de aprendizaje útil para ingenieros de software principiantes que quieran experimentar en la práctica las ventajas y limitaciones de la programación de sistemas con Rust.

1 comentarios

 
GN⁺ 2024-01-04
Comentarios en Hacker News
  • Agradece el apoyo al proyecto

    • Este proyecto ha requerido mucho esfuerzo y significa mucho para el desarrollador.
    • Actualmente el sitio web está muy lento o caído. Hay mucho tráfico inesperado y se sospecha de un ataque DoS.
    • Cuando llegue a casa intentará mejorar el sitio. Por ahora no puede prestarle mucha atención debido al trabajo.
    • Se disculpa por los inconvenientes, pero está contento de que hayan evaluado el proyecto.
  • Comentario sobre un gran proyecto pequeño

    • Sorprende hasta dónde se puede llegar en el arranque sin implementar ni un tercio de las llamadas al sistema de Linux.
    • Se supone que las llamadas al sistema que aún no están implementadas serán más complejas.
    • Por ejemplo, la capa TTY por ahora se ve básica. Implementarla correctamente será mucho trabajo.
    • Por lo tanto, no esperen que Maestro ejecute aplicaciones de Linux dentro de los próximos 3 años.
  • Comentario sobre seguridad/pruebas de penetración

    • Como el proyecto fue desarrollado en Rust, le gustaría ver pruebas de seguridad para saber si un hacker puede encontrar vulnerabilidades.
  • Mención del proyecto Kerla

    • También estaba Kerla (un kernel monolítico escrito en Rust que apunta a compatibilidad con la ABI de Linux), pero no ha habido actividad en varios años.
  • Comentario sobre las desventajas de usar C y la dificultad del desarrollo de SO

    • La mayoría de las desventajas y dificultades están en la depuración.
    • Al cambiar a Rust se eliminó cierta clase de errores de memoria, pero se pregunta si depurar sigue siendo difícil, o si tras el cambio hace falta depurar menos y por eso se vuelve más fácil.
  • Mención de la interrupción del proyecto Kerla

    • Señala que Kerla, un proyecto que ya se había intentado, fue interrumpido.
  • Comentario sobre la complejidad de las computadoras

    • Las computadoras son una de las herramientas más complejas creadas por la humanidad.
  • Consejo sobre pagar la deuda técnica

    • Cuando empezó como proyecto escolar, a veces tomó atajos por limitaciones de tiempo, pero ahora reconoce que es momento de pagar la deuda técnica y recomienda mantener esa mentalidad.
  • Interés en Gource

    • Le parece muy interesante una herramienta llamada Gource, que el autor usó para hacer un video de contribuciones. Ya había pensado antes en una idea similar, pero al parecer no existen ideas completamente originales.
  • Interés en construir un kernel

    • Le encanta la idea de construir un kernel con fines de aprendizaje. Tiene curiosidad por los materiales que se usaron para entender el kernel/SO en general.