12 points par GN⁺ 2024-01-09 | 3 commentaires | Partager sur WhatsApp

Présentation de Motūrus OS

  • Le projet Motūrus développe MotūrusOS, un système d’exploitation simple, rapide et sûr pour le cloud.
  • Motūrus OS est un nouveau système d’exploitation conçu pour les charges de travail basées sur des machines virtuelles, utilisé pour les serveurs web, le serverless, la mise en cache en périphérie, etc.

Pourquoi Motūrus OS ?

  • Aujourd’hui, la plupart des charges de production virtualisées s’exécutent sur Linux.
  • Linux dispose de nombreuses fonctionnalités avancées, mais présente aussi certaines complexités qui ne le rendent pas idéal pour les charges de travail virtualisées :
    • Linux est optimisé pour le bare metal, ce qui le rend inefficace lorsqu’il est utilisé à l’intérieur d’une VM.
    • Linux est difficile à utiliser.
    • Historiquement, Linux n’a pas été très sûr.
  • Un nouveau système d’exploitation centré sur les charges de travail virtualisées peut être conçu pour être bien plus simple et plus sûr que Linux, tout en égalant ou dépassant Linux en performances et en efficacité.

Qu’est-ce que Motūrus OS ?

  • Motūrus OS est un système d’exploitation à micro-noyau, construit en Rust, qui cible exclusivement les charges de travail virtualisées.
  • Il prend actuellement en charge les machines virtuelles x64 basées sur KVM et peut être exécuté sur Qemu ou Cloud Hypervisor.
  • Rust est le langage central de Motūrus OS : non seulement l’implémentation, mais aussi l’ABI, sont fournis en Rust.

Fonctionnalités opérationnelles

  • La plupart des sous-systèmes fonctionnent actuellement en mode POC/MVP, mais ils peuvent exécuter des tâches telles qu’un serveur web.
  • Plus précisément, les fonctionnalités suivantes sont opérationnelles :
    • Démarrage en environ 200 ms via MBR (Qemu) ou PVH (Cloud Hypervisor).
    • Micro-noyau himem.
    • Ordonnancement : simple round-robin multiprocesseur (SMP), l’ordonnancement du noyau est coopératif.
    • Gestion mémoire : seules les pages 4K sont prises en charge pour le moment, la pile est protégée et les défauts de page en espace utilisateur sont correctement gérés.
    • Sous-système d’E/S (en espace utilisateur) : pilotes VirtIO-BLK et VirtIO-NET, deux systèmes de fichiers simples, réseau basé sur smoltcp (TCP uniquement).
    • Espace utilisateur : multiprocessus, préemption, threads, TLS, et portage de la majeure partie de la bibliothèque standard Rust.
    • Fournit un shell simple de style Unix.

Fonctionnalités non opérationnelles

  • La plupart des composants ne sont pas encore prêts pour une utilisation en production.
  • Aucun audit de sécurité n’a été réalisé.
  • Il est facile de rencontrer une panique "not implemented" dans sys-io (le sous-système d’E/S en espace utilisateur).
  • Plus précisément, les fonctionnalités suivantes ne fonctionnent pas encore :
    • Système de fichiers : la majeure partie de l’API Rust std::fs a été implémentée en POC, mais doit être réécrite en utilisant des E/S asynchrones.
    • Réseau : std::net::TcpStream est en grande partie implémenté, mais les autres protocoles ne le sont pas encore.
    • Écosystème au-delà de la bibliothèque standard Rust : certains crates peuvent être compilés et utilisés avec de petits ajustements, mais les crates qui dépendent de runtimes asynchrones comme Tokio ne compilent pas actuellement.

Comment construire/exécuter Motūrus OS ?

  • Voir le document docs/build.md.

Remerciements

  • Un grand merci à Philipp Oppermann, auteur d’une série de billets de blog sur l’écriture d’un OS en Rust. Cela a inspiré de nombreuses personnes à expérimenter dans ce domaine.

L’avis de GN⁺

  • Approche innovante : Motūrus OS est un nouveau système d’exploitation spécialement conçu pour les environnements virtualisés, avec l’ambition de résoudre la complexité et les inefficacités de Linux.
  • Adoption de Rust : Rust est un langage qui met l’accent sur la sûreté mémoire et les performances, et devrait contribuer à la sûreté et à l’efficacité de Motūrus OS.
  • Contribution à la communauté des développeurs : ce projet peut aider les développeurs intéressés par la création de systèmes d’exploitation à explorer de nouvelles possibilités et à dépasser les limites existantes.

3 commentaires

 
ing03201 2024-01-09

Je lis aussi le blog writing an os in rust, mais il y a déjà du mouvement !
Je trouve que c’est un bon article.

 
GN⁺ 2024-01-09
Commentaires sur Hacker News
  • Avis du développeur/auteur du projet :

    • Merci pour l’intérêt porté au projet et pour les discussions.
    • Il existe des inquiétudes concernant la viabilité à long terme, le support, ainsi que la compatibilité des compilateurs et des binaires.
    • Sans communauté, le projet ne peut pas réussir, mais il pense que les avantages potentiels d’un projet comme Motor OS finiront par conduire à un nouveau système d’exploitation largement adopté.
    • Il souligne les problèmes de Linux à l’intérieur des machines virtuelles (et parfois à l’extérieur), ainsi que le fait que les développeurs Linux ne se concentrent pas assez sur leur résolution.
    • Il dit ne pas comprendre les inquiétudes sur l’instabilité des compilateurs et la compatibilité binaire, en mentionnant que les noyaux Linux récents peuvent être compilés avec divers toolchains GCC ou LLVM, et que d’anciens binaires s’exécutent aussi sans problème.
    • Il indique être prêt à répondre à d’autres questions.
  • Explication de l’approche « Rust-first » :

    • « Rust-first » signifie non seulement que le microkernel et les pilotes sont implémentés en Rust, mais aussi que les programmes en espace utilisateur ne peuvent, pour l’instant, être écrits qu’en Rust.
    • Techniquement, il serait possible de faire de la rétro-ingénierie de l’ABI basée sur Rust et du toolchain Rust fourni afin d’écrire des applications Motor OS dans d’autres langages comme le C, mais cela demande un certain travail.
    • Il explique que les programmes Rust standards peuvent utiliser la bibliothèque standard Rust et être compilés puis exécutés sans FFI.
  • Interrogation sur la raison pour laquelle un petit noyau prend 200 ms sur un ordinateur moderne :

    • Il faut initialiser les métadonnées des pages mémoire, monter le système de fichiers, démarrer le processus init, etc., mais il pense que tout cela devrait se faire en quelques microsecondes.
    • Il se demande si le temps provient du fait que l’hôte prépare les ressources, par exemple s’il existe un point lent dans QEMU et KVM.
  • Avis souhaitant voir un noyau async-first écrit en Rust :

    • Il s’interroge sur le fait de savoir si un noyau async-first est particulièrement difficile, n’apporte pas assez de valeur, ou simplement n’est pas tenté.
    • Il mentionne qu’en suivant la série sur les OS en Rust de Phil Oppermann, il sait que c’est possible, mais que les OS récents basés sur Rust semblent ne pas essayer cette approche.
  • Avis rappelant une ancienne déclaration de Linus Torvalds sur la concurrence avec Linux :

    • Il se souvient que, lorsqu’on lui avait demandé s’il craignait la concurrence, Torvalds avait répondu qu’il aimait écrire des pilotes de périphériques et qu’il ne craindrait pas la concurrence tant qu’un jeune passionné aimant faire cela n’apparaîtrait pas.
  • Avis exprimant de l’intérêt pour des projets comme Motor OS et l’espoir qu’ils continuent à être développés :

    • Il exprime le fait que tant de projets comme Motor OS ont échoué qu’il est devenu difficile de s’enthousiasmer encore.
    • Il mentionne qu’il est très difficile de remplacer Linux pour des usages spécifiques comme le cloud.
  • Avis selon lequel Docker, Nix OS et le « serverless » existent à cause de la complexité de Linux :

    • Il explique que Docker et NixOS existent à cause des problèmes de gestion des paquets en espace utilisateur, tandis que le serverless existe parce que les entreprises veulent payer la puissance de calcul à la demande.
  • Avis indiquant qu’il avait d’abord une attitude sceptique face à cette nouvelle technologie, mais qu’en y repensant, les gains d’efficacité et de sécurité obtenus en supprimant des couches inutiles sont attrayants :

    • Il adopte une approche saine face aux nouvelles technologies et reconnaît que les gains d’efficacité et de sécurité sont attrayants.
  • Avis selon lequel Motor OS semble concurrencer Docker et d’autres technologies de ce type :

    • Il souligne que Motor OS semble concurrencer plus directement des technologies comme Docker que Linux lui-même.
    • Il dit vouloir voir la section « Pourquoi ? » traiter la question de savoir pourquoi choisir Motor OS, c’est-à-dire pourquoi l’utiliser à la place de Docker, etc.
  • Avis selon lequel démarrer un nouveau système d’exploitation n’est pas difficile, mais que le supporter pendant les 50 années suivantes l’est énormément :

    • Il souligne qu’écrire un nouveau système d’exploitation n’est pas difficile, mais qu’en assurer le support sur le long terme est extrêmement difficile.
 
ahwjdekf 2024-01-10

La section « fonctionnalités qui ne marchent pas » est vraiment quelque chose. Un projet jouet