1 puntos por GN⁺ 2024-07-15 | 1 comentarios | Compartir por WhatsApp

Fusion OS

Fusion es un sistema operativo hobby para x86-64 implementado en Nim. Su proceso de desarrollo está documentado en https://0xc0ffee.netlify.app.

Capturas de pantalla

  • Bootloader UEFI
  • GUI ( Nota: esta captura de pantalla fue tomada de la rama graphics, que todavía está en desarrollo.)
  • Arranque del kernel de Fusion

Funciones

Funciones implementadas actualmente:

  • Bootloader UEFI
  • Administrador de memoria física
  • Administrador de memoria virtual
  • Espacio de direcciones único
  • Modo usuario
  • Multitarea con desalojo
  • Llamadas al sistema
  • Cargador ELF
  • Interrupciones de temporizador

Funciones planificadas:

  • Paginación por demanda
  • Comunicación entre procesos
  • E/S de disco
  • Sistema de archivos
  • Entrada de teclado/mouse
  • Shell
  • GUI
  • Redes

Compilación

Para compilar Fusion, debes instalar las siguientes dependencias:

  • Nim
  • LLVM (clang y lld)
  • Just

Compila Fusion con el siguiente comando:

just build

Ejecución

Actualmente, Fusion se ejecuta en QEMU, así que primero debes instalar QEMU. Ejecuta Fusion con el siguiente comando:

just run

Licencia

MIT

Resumen de GN⁺

Fusion OS es un sistema operativo hobby para x86-64 implementado en Nim, útil para quienes quieran aprender sobre desarrollo de sistemas operativos. Actualmente ya incluye funciones básicas como bootloader UEFI, administradores de memoria física y virtual, y modo usuario. En el futuro se planea añadir varias funciones como paginación por demanda, comunicación entre procesos y sistema de archivos. Puede probarse fácilmente con QEMU, por lo que es adecuado para desarrollo y aprendizaje. Proyectos similares incluyen xv6 y OSDev.

1 comentarios

 
GN⁺ 2024-07-15
Comentarios en Hacker News
  • Author here. Estoy aquí para responder preguntas.
  • Your blog/docs are excellent. El blog y la documentación son excelentes. El equilibrio entre mostrar y explicar es perfecto.
  • Nice, I love to see stuff like this. Me encanta ver proyectos así. He participado de forma intermitente en el ecosistema de Nim durante varios años. Me alegra ver que este pequeño proyecto sigue avanzando.
  • Nifty! Es divertido lo fácil que es leer módulos ELF. Algún día me gustaría escribir un RTOS en Nim. Disfruto programando sistemas embebidos con Nim, y crear un RTOS también suena divertido.
  • What is Nim, and what is the overarching design goal for Fusion? Tengo curiosidad por saber qué es Nim y cuál es el objetivo general de diseño de Fusion. Espero que no sea una pregunta demasiado básica; no tengo ningún conocimiento previo sobre este tema y agradecería que alguien lo explicara.
  • Development journal of Fusion’s author: Comparten el enlace al diario de desarrollo del autor de Fusion.
  • How does this compare with TempleOS? Tengo curiosidad por saber en qué se diferencia de TempleOS. Suena similar en el sentido de que usa un espacio de direcciones único.
  • The problem that Nim have and many afraid to go Nim is case and style insensitivity. El problema que tiene Nim, y por el que muchos dudan en adoptarlo, es que no distingue entre mayúsculas/minúsculas ni entre estilos.
    • Ejemplo: Is_land == island == IsLaND == is-land
    • Esto causa problemas en entornos de equipo o en proyectos reales.
    • Tengo curiosidad por saber cómo ha evolucionado la situación. La última vez que revisé, el desarrollador principal había decidido no tomar medidas en contra de la votación popular en GitHub.
    • Fuera de eso, el proyecto Fusion OS y su documentación son excelentes.