Banan OS : un système d'exploitation de type Unix entièrement fonctionnel construit à partir de zéro en C++
Un étudiant a construit un système d'exploitation entier à partir de zéro en C++. Oui, vous avez bien lu ! Découvrez Banan OS, un système d'exploitation pour passionnés pour les architectures x86_64 et i686, entièrement écrit en C++ par un étudiant universitaire Oskari Alaranta. Le projet est totalement indépendant, avec tout le code écrit exclusivement par Alaranta, à l'exception de tout logiciel porté.
Dans cet article de blog, nous examinerons les détails techniques de Banan OS. Nous discuterons également de ce qui a motivé son créateur à construire un système d'exploitation complet à partir de zéro. Enfin, nous parlerons des défis auxquels il a été confronté au cours du processus.
Qu'est-ce que Banan OS ?
Banan OS est un système d'exploitation de type Unix conçu pour les architectures x86 et x86_64. Croyez-le ou non, Oskari Alaranta, un programmeur autodidacte et étudiant, a développé l'ensemble de Banan OS à partir de zéro en C++. C'est un travail vraiment impressionnant !
Banan OS dispose d'un noyau monolithique et de plusieurs composants essentiels, y compris un chargeur d'amorçage, le noyau et des bibliothèques pour l'espace utilisateur. Ce qui distingue Banan OS est son utilisation d'une bibliothèque standard C++ personnalisée, partiellement inspirée par stdc++, et son support robuste pour les besoins modernes en matériel et en logiciel.
Le système fournit déjà un environnement TTY et GUI fonctionnel, ainsi que des utilitaires UNIX clés comme cp, ls et stat. Il prend en charge les périphériques USB, les disques NVMe et AHCI, et inclut même une pile réseau personnalisée avec des capacités TCP et UDP.
Avec un système de fichiers de type UNIX comprenant /dev, /tmp, et /proc, Banan OS est plus qu'un projet d'apprentissage — c'est un pas vers un système d'exploitation complet et autonome.
Alaranta a noté qu'il teste régulièrement Banan OS à la fois dans des machines virtuelles et sur du matériel réel.
Motivation
Oskari Alaranta a consacré plus de deux ans au développement de Banan OS. Sa motivation principale semble être un fort intérêt pour la programmation bas niveau, en particulier le développement de systèmes d'exploitation.
Cette passion se reflète dans sa décision d'écrire tout le système d'exploitation à partir de zéro en C++, à l'exclusion des logiciels portés.
Défis
Alaranta note que les défis les plus importants auxquels il a été confronté lors du développement de Banan OS ont impliqué la compréhension de spécifications techniques étendues, quelque chose qu'il n'avait pas expérimenté auparavant.
Cependant, le projet a également été ponctué de moments gratifiants de type « c'est vivant ». Alaranta trouve particulièrement satisfaisant de voir de nouvelles fonctionnalités fonctionner parfaitement sur du matériel réel, citant des étapes telles que :
- Réussir la saisie au clavier
- Implémentation de l'entrée de souris USB
- Exécuter DOOM avec succès
- Lecture des données depuis les disques
- Établir la connectivité réseau
- Faire fonctionner un compilateur
Il considère que le projet est devenu véritablement agréable après avoir établi les composants fondamentaux, ce qui lui a permis une plus grande liberté pour explorer au-delà du code OS conventionnel et poursuivre des fonctionnalités d'intérêt personnel. Il estime que cette étape a été atteinte après environ deux mois de développement.
Oskari Alaranta : Le développeur derrière Banan OS
Au moment où ceci est écrit, Oskari Alaranta est un programmeur autodidacte de 22 ans et étudiant basé à Tampere, en Finlande. Il s'intéresse à la programmation bas niveau, en particulier au développement de systèmes d'exploitation.
La passion d'Alaranta pour le développement de systèmes d'exploitation l'a conduit à créer Banan OS, un projet qui s'étend sur plus de deux ans. Il a exprimé le souhait de poursuivre une carrière dans l'industrie, en utilisant potentiellement son expérience avec Banan OS comme élément de portfolio.
Contribuer à Banan OS
Banan OS est un projet très récent, et Oskari Alaranta accueille les contributions pour l'aider à s'améliorer.
Comme Banan OS est un projet d'apprentissage pour Alaranta, il demande que les contributeurs le contactent à l'avance (par e-mail, Discord, ou en créant un problème) avant de commencer à travailler sur de nouvelles fonctionnalités. Les corrections de bogues sont toujours les bienvenues.
Banan OS est principalement hébergé sur le serveur personnel d'Alaranta. Bien que contribuer ne soit pas aussi simple que sur des plateformes comme GitHub, vous pouvez soumettre des pull requests via le miroir GitHub, et Alaranta les appliquera manuellement.
Si vous souhaitez un compte direct sur le serveur d'Alaranta, vous pouvez le contacter par e-mail ou via Discord.
Conclusion
Banan OS est la preuve qu'avec de la détermination, même un seul étudiant peut créer quelque chose de remarquable. Oskari Alaranta a investi beaucoup de temps et d'efforts dans le développement de Banan OS.
Un aspect notable de Banan OS est qu'il est en grande partie construit à partir de zéro, Alaranta écrivant lui-même la plupart du code. Cette approche ambitieuse nécessite des connaissances techniques approfondies et un esprit de résolution de problèmes.
L'engagement d'Alaranta à construire à partir de zéro s'étend à des composants critiques comme l'interpréteur AML, qu'il a choisi de développer lui-même plutôt que d'utiliser des solutions existantes. Ce choix montre son dévouement à comprendre et à contrôler tous les aspects du système d'exploitation.
Banan OS est encore en développement. Consultez le dépôt GitHub du projet pour les dernières mises à jour et modifications.
Ressource:
- Dépot GitHub de Banan OS
