IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Rust Discussion :

Pr�sentation de Maestro : un noyau et un syst�me d'exploitation en Rust compatible avec Linux


Sujet :

Rust

  1. #1
    Communiqu�s de presse

    Femme Profil pro
    Traductrice Technique
    Inscrit en
    Juin 2023
    Messages
    2 511
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activit� : Traductrice Technique

    Informations forums :
    Inscription : Juin 2023
    Messages : 2 511
    Par d�faut Pr�sentation de Maestro : un noyau et un syst�me d'exploitation en Rust compatible avec Linux
    Pr�sentation de Maestro : un noyau et un syst�me d'exploitation en Rust compatible avec Linux, Maestro se veut l�ger pour �tre utilisable dans la vie de tous les jours

    Maestro, un noyau et un syst�me d'exploitation de type Unix �crit � partir de z�ro en Rust. Son objectif est que Maestro soit "l�ger et suffisamment compatible avec Linux pour �tre utilisable dans la vie de tous les jours."

    Introduction
    Gr�ce � l'internet, je peux apprendre comment fonctionnent la plupart des choses qui m'int�ressent. Cependant, une chose est rest�e longtemps un myst�re pour moi : les ordinateurs.

    Les ordinateurs sont parmi les outils les plus complexes que l'humanit� ait jamais construits. Ce sont des merveilles d'ing�nierie que nous tenons pour acquises parce que nous les utilisons dans notre vie quotidienne.

    J'aime me plonger dans la complexit� et j'aime apprendre par la pratique. De plus, je passe beaucoup de temps sur l'ordinateur. Ne serait-ce pas g�nial d'avoir un syst�me que je conna�trais de A � Z et que je pourrais personnaliser autant que je le souhaite pour qu'il corresponde � mes attentes ?

    C'est pourquoi j'ai d�cid� de cr�er Maestro. Un syst�me d'exploitation de type Unix qui se veut l�ger et suffisamment compatible avec Linux pour �tre utilisable dans la vie de tous les jours.
    Un peu d'histoire

    Le premier commit du noyau date du 22 d�cembre 2018, � 3:18 du matin (le meilleur moment pour �crire du code, bien s�r). Il s'agissait � l'origine d'un projet scolaire.

    Il a d'abord �t� impl�ment� en utilisant le langage C et a continu� � l'�tre pendant environ un an et demi, jusqu'� ce que la base de code devienne trop difficile � garder propre.

    � ce moment-l�, il a d�cid� de passer � Rust (son premier projet dans ce langage), qui pr�sentait plusieurs avantages :

    • Reprendre le projet depuis le d�but, en utilisant les le�ons tir�es des erreurs pr�c�dentes
    • �tre un peu plus innovant que d'�crire un noyau Linux en C. Apr�s tout, il suffit d'utiliser Linux � ce moment-l�.
    • Utiliser la s�curit� du langage Rust pour surmonter certaines difficult�s de la programmation du noyau. L'utilisation du syst�me de typage de Rust permet de transf�rer une partie de la responsabilit� de la s�curit� de la m�moire du programmeur au compilateur.

    Dans le d�veloppement du noyau, le d�bogage est tr�s difficile pour plusieurs raisons :

    • La documentation est souvent difficile � trouver, et les impl�mentations BIOS peuvent �tre d�fectueuses (plus souvent qu'on ne le pense).
    • Au d�marrage, le noyau a un acc�s total � la m�moire et est autoris� � �crire l� o� il ne devrait pas (son propre code, par exemple).
    • Le d�pannage des fuites de m�moire n'est pas facile. Des outils tels que valgrind ne peuvent pas �tre utilis�s
    • gdb peut �tre utilis� avec QEMU et VMWare, mais le noyau peut avoir un comportement diff�rent lorsqu'il est ex�cut� sur un �mulateur ou une machine virtuelle diff�rents. En outre, ces �mulateurs peuvent ne pas prendre en charge gdb (par exemple VirtualBox).
    • Certaines fonctionnalit�s du support de gdb dans QEMU ou VMWare sont manquantes (comme Record and Replay) et gdb peut m�me parfois se planter.

    Tous ces probl�mes sont autant de raisons d'utiliser un langage � m�moire s�re, afin de les �viter autant que possible.

    Globalement, l'utilisation de Rust dans le noyau a permis la mise en place de nombreuses protections. Et c'est peut-�tre, la meilleure d�cision prise pour ce projet.

    Nom : 1.png
Affichages : 211634
Taille : 18,2 Ko

    L'�tat actuel du projet

    Maestro est un noyau monolithique, ne supportant pour l'instant que l'architecture x86 (en 32 bits).

    � l'heure o� ces lignes sont �crites, 135 des 437 appels syst�me de Linux (environ 31 %) sont plus ou moins impl�ment�s. Le projet compte 48 800 lignes de code r�parties dans 615 fichiers (tous d�p�ts confondus, compt�s � l'aide de la commande cloc).

    Le syst�me d'exploitation comporte actuellement les composants suivants, outre le noyau :

    • Solf�ge : un syst�me de d�marrage et un gestionnaire de d�mons (similaire � systemd, mais plus l�ger)
    • maestro-utils : commandes utilitaires du syst�me
    • blimp : un gestionnaire de paquets
    • Et d'autres composants disponibles sur github

    Jusqu'� pr�sent, les logiciels tiers suivants ont �t� test�s et fonctionnent sur le syst�me d'exploitation :

    • musl (biblioth�que standard C)
    • bash
    • Quelques commandes GNU coreutils telles que ls, cat, mkdir, rm, rmdir, uname, whoami, etc...
    • neofetch (une version patch�e, puisque le neofetch original ne conna�t pas ce syst�me d'exploitation)


    Quelles sont les prochaines �tapes ?

    Le nettoyage de la base de code et l'optimisation des performances sont en cours. Comme le syst�me d'exploitation a commenc� comme un projet d'�cole, son d�veloppeur a d� prendre des raccourcis pour le terminer � temps. Mais il est maintenant temps de rembourser la dette technique accumul�e.

    Quelques fuites de m�moire tra�nent �galement et doivent �tre corrig�es. L'optimisation des performances fera probablement l'objet d'articles de blog.

    Le prochain pas en avant sera de faire fonctionner pleinement le gestionnaire de paquets sur le syst�me d'exploitation. Pour ce faire, certaines fonctionnalit�s sont n�cessaires :

    • La prise en charge des r�seaux, qui est actuellement en cours de d�veloppement. Elle fera probablement l'objet de nombreux articles
    • Le support des biblioth�ques partag�es. Cela ne fonctionne pas actuellement car cela n�cessite de mapper des fichiers directement en m�moire, ce qui n'est pas actuellement support� par l'impl�mentation de l'appel syst�me mmap sur le kernel.

    Apr�s cela, on pourrait installer (sans douleur) et tester des programmes tels que les compilateurs (gcc/g++, clang, rustc), make, Git, Vim, etc... Et ensuite d�velopper le noyau tout en l'utilisant !

    Le d�veloppement du noyau suit en grande partie une proc�dure simple :

    • 1 : Ex�cuter un programme sur le noyau et voir s'il fonctionne correctement
    • 2 : S'il ne fonctionne pas, alors :
      • 3 : Ex�cuter le programme en imprimant les appels syst�me et rechercher le premier appel syst�me qui pose probl�me (non impl�ment� ou bogu�).
      • 4 : Impl�mentez ou corrigez l'appel syst�me en question.
      • 5 : Passez � l'�tape 1
    • 6 : Sinon : Bravo !

    Plus il y a de programmes fonctionnant correctement sur le noyau, plus celui-ci devient stable et complet !

    Testez-le vous-m�me !

    Avertissement : Il est important de noter que le syst�me d'exploitation est encore � un stade de d�veloppement tr�s pr�coce et qu'il est tr�s instable. Je d�conseille d'essayer de l'installer sur une machine contenant des donn�es importantes.

    Jusqu'� pr�sent, il a �t� test� principalement sur QEMU, VMWare et VirtualBox.
    Il y a deux fa�ons d'installer le syst�me d'exploitation :


    L'ISO fournit un programme d'installation pour le syst�me d'exploitation. On peut l'utiliser sur QEMU, VMWare ou VirtualBox par exemple.

    Vous devez ex�cuter l'ISO avec suffisamment de m�moire vive (1 Go devrait �tre plus que suffisant).

    Une telle quantit� de m�moire est n�cessaire parce que les paquets � installer sont stock�s dans la RAM (sur l'initramsfs) au lieu du disque. C'est actuellement la meilleure m�thode, car le syst�me d'exploitation n'est pas encore capable de lire lui-m�me sur une cl� USB ou un CD-ROM ; il s'appuie donc sur le chargeur de d�marrage pour ce faire.
    Source : Maestro - Introduction

    Et vous ?

    Quel est votre avis sur le sujet ?

    Voir aussi :

    Rust dans le noyau Linux: un projet prometteur, mais pas sans complications. La communaut� dresse un bilan lors de l'�dition 2023 du Kernel Maintainers Summit

    Microsoft travaille � r��crire le code du kernel de Windows responsable de la gestion des fen�tres en langage Rust, consid�r� comme candidat id�al � l'abandon des langages C et C++

    Rust peut faciliter l'arriv�e de nouveaux contributeurs dans les projets open source tout en r�duisant les vuln�rabilit�s. Sans eux, le projet finira par devenir inactif, d'apr�s un sujet de recherche

  2. #2
    Membre actif
    Homme Profil pro
    D�veloppeur en syst�mes embarqu�s
    Inscrit en
    Juillet 2012
    Messages
    25
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur en syst�mes embarqu�s
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Juillet 2012
    Messages : 25
    Par d�faut
    J'ai vu cette actualit� dans le Week in Rust de cette semaine https://this-week-in-rust.org/blog/2...k-in-rust-529/, mais comme le d�veloppeur le dit lui m�me, ce n'est pas encore fini, et que comme c'�tait un projet scolaire, il a du prendre quelques raccourcis pour finir � temps et pr�senter son travail.

    En tout cas, on ne peut que constater que le Rust permet une gestion plus facile sur les gros projets (refactoring moins compliqu� et plus s�curis�).

Discussions similaires

  1. R�ponses: 0
    Dernier message: 28/10/2021, 09h10
  2. R�ponses: 3
    Dernier message: 05/12/2008, 07h45
  3. Noyau
    Par wincroc dans le forum Administration syst�me
    R�ponses: 2
    Dernier message: 03/07/2003, 08h33
  4. Recompilation du noyau
    Par keikoz dans le forum Administration syst�me
    R�ponses: 7
    Dernier message: 17/02/2003, 23h54
  5. Primitive du noyau
    Par freud dans le forum Programmation d'OS
    R�ponses: 5
    Dernier message: 25/11/2002, 03h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo