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
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.
Commentaires sur Hacker News
Avis du développeur/auteur du projet :
Explication de l’approche « Rust-first » :
Interrogation sur la raison pour laquelle un petit noyau prend 200 ms sur un ordinateur moderne :
Avis souhaitant voir un noyau async-first écrit en Rust :
Avis rappelant une ancienne déclaration de Linus Torvalds sur la concurrence avec Linux :
Avis exprimant de l’intérêt pour des projets comme Motor OS et l’espoir qu’ils continuent à être développés :
Avis selon lequel Docker, Nix OS et le « serverless » existent à cause de la complexité de Linux :
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 :
Avis selon lequel Motor OS semble concurrencer Docker et d’autres technologies de ce type :
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 :
La section « fonctionnalités qui ne marchent pas » est vraiment quelque chose. Un projet jouet