1 points par GN⁺ 2024-07-15 | 1 commentaires | Partager sur WhatsApp

Fusion OS

Fusion est un système d’exploitation amateur pour x86-64 implémenté en Nim. Son processus de développement est documenté sur https://0xc0ffee.netlify.app.

Captures d’écran

  • Chargeur d’amorçage UEFI
  • GUI ( Remarque : cette capture d’écran provient de la branche graphics, encore en cours de développement.)
  • Démarrage du noyau Fusion

Fonctionnalités

Fonctionnalités actuellement implémentées :

  • Chargeur d’amorçage UEFI
  • Gestionnaire de mémoire physique
  • Gestionnaire de mémoire virtuelle
  • Espace d’adressage unique
  • Mode utilisateur
  • Multitâche préemptif
  • Appels système
  • Chargeur ELF
  • Interruptions de timer

Fonctionnalités prévues :

  • Pagination à la demande
  • Communication inter-processus
  • E/S disque
  • Système de fichiers
  • Entrée clavier/souris
  • Shell
  • GUI
  • Réseau

Build

Pour compiler Fusion, vous devez installer les dépendances suivantes :

  • Nim
  • LLVM (clang et lld)
  • Just

Compilez Fusion avec la commande suivante :

just build

Exécution

Fusion s’exécute actuellement sur QEMU, vous devez donc d’abord installer QEMU. Lancez Fusion avec la commande suivante :

just run

Licence

MIT

Résumé de GN⁺

Fusion OS est un système d’exploitation amateur pour x86-64 implémenté en Nim, utile pour celles et ceux qui souhaitent apprendre le processus de développement d’un OS. Il intègre déjà des fonctions de base comme un chargeur d’amorçage UEFI, des gestionnaires de mémoire physique et virtuelle, ainsi que le mode utilisateur. À l’avenir, diverses fonctionnalités comme la pagination à la demande, la communication inter-processus et le système de fichiers doivent être ajoutées. Il peut être testé facilement via QEMU, ce qui le rend adapté au développement et à l’apprentissage. Parmi les projets similaires, on peut citer xv6 et OSDev.

1 commentaires

 
GN⁺ 2024-07-15
Avis Hacker News
  • L’auteur ici. Prêt à répondre aux questions
  • Votre blog/vos docs sont excellents. Le blog et la documentation sont superbes. L’équilibre entre démonstration et explication est parfait
  • Sympa, j’adore voir ce genre de choses. Je participe de temps en temps à l’écosystème Nim depuis quelques années. Ça fait plaisir de voir ce petit projet continuer à avancer
  • Astucieux ! C’est amusant de pouvoir lire facilement les modules ELF. J’aimerais écrire un RTOS en Nim un jour. J’aime développer des programmes embarqués en Nim, et créer un RTOS aurait l’air amusant aussi
  • Qu’est-ce que Nim, et quel est l’objectif de conception global de Fusion ? J’espère que ce n’est pas une question trop basique, mais je n’ai absolument aucune connaissance de fond sur le sujet, donc j’aimerais que quelqu’un m’explique
  • Journal de développement de l’auteur de Fusion : partage d’un lien vers le journal de développement de l’auteur de Fusion
  • Comment cela se compare-t-il à TempleOS ? Je me demande en quoi c’est différent de TempleOS. Cela semble similaire sur le point de l’espace d’adressage unique
  • Le problème de Nim, et la raison pour laquelle beaucoup hésitent à adopter Nim, c’est son insensibilité à la casse et au style.
    • Exemple : Is_land == island == IsLaND == is-land
    • Cela pose problème dans un environnement d’équipe ou sur de vrais projets
    • Je me demande comment la situation évolue actuellement. La dernière fois que j’ai vérifié, les principaux développeurs avaient décidé de ne pas agir contre le vote de popularité sur GitHub
    • À part ça, le projet Fusion OS et sa documentation sont excellents