3 points par GN⁺ 2024-01-04 | 1 commentaires | Partager sur WhatsApp
  • Maestro est un noyau et un système d’exploitation de type Unix, entièrement écrits en Rust dès le départ.
  • Au départ, il avait été implémenté en C, mais le projet a basculé vers Rust lorsqu’il est devenu difficile de garder une base de code propre.
  • Rust a permis de repartir de zéro sur le projet de manière plus innovante que d’écrire en C un noyau similaire à Linux, tout en tirant parti de sa sûreté pour réduire la difficulté de la programmation kernel.

État actuel du projet

  • Maestro est actuellement un noyau monolithique qui ne prend en charge que l’architecture x86 (32 bits).
  • Au moment de la rédaction, environ 135 appels système Linux sont implémentés, soit environ 31 % du total.
  • En plus du noyau, l’OS comprend des composants comme le système de démarrage et gestionnaire de démons Solfège, les utilitaires système maestro-utils et le gestionnaire de paquets blimp.
  • Des logiciels tiers comme musl (bibliothèque standard C), bash, certaines commandes GNU coreutils et neofetch (version patchée) ont été testés avec succès sur l’OS.

Essayez-le vous-même !

  • L’OS en est encore à un stade très précoce de développement et reste très instable ; il n’est donc pas recommandé de l’installer sur une machine contenant des données importantes.
  • Il a été principalement testé sur QEMU, VMWare et VirtualBox.
  • Deux méthodes permettent d’installer l’OS : télécharger un fichier .iso précompilé ou construire l’ISO soi-même.
  • Les paquets installés sont stockés en RAM (initramsfs) plutôt que sur disque, ce qui nécessite suffisamment de mémoire (au moins 1 Go).

À propos de ce blog

  • L’objectif de ce blog n’est pas de proposer un tutoriel sur la création d’un OS, mais d’explorer des sujets plus avancés, de partager des méthodes de résolution de problèmes et de découvrir comment fonctionnent les ordinateurs, les systèmes d’exploitation, Internet, etc.
  • osdev.org et le blog de Philipp Oppermann sont particulièrement recommandés.

Ce qui arrive ensuite

  • La base de code a besoin d’être nettoyée et optimisée en termes de performances.
  • La correction des fuites mémoire et l’optimisation des performances pourraient faire l’objet de futurs articles de blog.
  • Le prochain objectif est de rendre le gestionnaire de paquets entièrement opérationnel sur l’OS.
  • Une prise en charge du réseau et des bibliothèques partagées est nécessaire.

Comment aider

  • Vous pouvez rester en contact en laissant une étoile sur le dépôt GitHub, en vous abonnant à la newsletter, en suivant le flux RSS et en rejoignant le Discord.

L’avis de GN⁺

  • Le projet Maestro est un système d’exploitation de type Unix écrit en Rust, dont l’intérêt réside dans sa recherche de sûreté et d’innovation pour le développement kernel.
  • Ce projet offre une opportunité intéressante aux développeurs souhaitant contribuer à la communauté open source, et peut aider à mieux comprendre l’interaction entre matériel et logiciel.
  • Il peut constituer une ressource d’apprentissage utile pour les ingénieurs logiciels débutants qui veulent expérimenter concrètement les avantages et les limites de la programmation système en Rust.

1 commentaires

 
GN⁺ 2024-01-04
Commentaires Hacker News
  • Remerciements pour le soutien apporté au projet

    • Ce projet a demandé beaucoup d’efforts et il a une grande importance pour le développeur.
    • Le site web est actuellement très lent ou indisponible. Il reçoit un volume de trafic inattendu, et une attaque DoS est soupçonnée.
    • Une tentative d’amélioration du site est prévue au retour à la maison. Pour le moment, le travail ne permet pas d’y accorder beaucoup d’attention.
    • Désolé pour la gêne occasionnée, mais heureux que le projet ait été apprécié.
  • Avis sur un beau petit projet

    • Il est surprenant de voir jusqu’où le système peut démarrer sans implémenter même un tiers des appels système de Linux.
    • Les appels système qui ne sont pas encore implémentés sont probablement plus complexes.
    • Par exemple, la couche TTY semble encore très basique à l’heure actuelle. L’implémenter correctement représentera beaucoup de travail.
    • Il ne faut donc pas s’attendre à ce que Maestro exécute des applications Linux dans les trois prochaines années.
  • Avis sur la sécurité / les tests d’intrusion

    • Puisque le projet est développé en Rust, il serait intéressant de voir des tests de sécurité pour savoir si des hackers peuvent y trouver des vulnérabilités.
  • Mention du projet Kerla

    • Il y avait aussi Kerla, un unikernel écrit en Rust visant la compatibilité avec l’ABI Linux, mais il n’y a plus eu d’activité depuis plusieurs années.
  • Avis sur les inconvénients du langage C et la difficulté du développement d’OS

    • La plupart des inconvénients et des difficultés se situent dans le débogage.
    • Le passage à Rust a éliminé certaines classes d’erreurs mémoire, mais on se demande si le débogage reste difficile, ou s’il est devenu plus simple parce qu’il est moins souvent nécessaire après cette transition.
  • Mention de l’arrêt du projet Kerla

    • Il est rappelé que Kerla, un projet déjà tenté auparavant, a été abandonné.
  • Avis sur la complexité des ordinateurs

    • Les ordinateurs font partie des outils les plus complexes jamais créés par l’humanité.
  • Conseil sur le remboursement de la dette technique

    • Au début, en tant que projet scolaire, certains raccourcis ont pu être pris à cause des contraintes de temps, mais il est désormais temps de rembourser la dette technique, et il est conseillé de conserver cet état d’esprit.
  • Intérêt pour Gource

    • Il y a un grand intérêt pour l’outil nommé Gource, utilisé par l’auteur pour créer une vidéo des contributions. Une idée similaire avait déjà été envisagée auparavant, même s’il semble qu’elle ne soit pas originale.
  • Intérêt pour la construction d’un kernel

    • L’idée de construire un kernel à des fins d’apprentissage est très appréciée. Il y a de la curiosité quant aux ressources utilisées pour comprendre le fonctionnement des kernels et des OS de manière générale.