Système d'exploitation Redox 0.6 écrit en Rust: Quoi de neuf dans la version?



Après un an et demi de développement, les auteurs du système d'exploitation Redox 0.6, écrit en langage Rust, ont publié une nouvelle version. La nouveauté peut être testée - pour cela, des images de démarrage ont été publiées sur le réseau. Leur volume est de 61 Mo. La nouvelle version peut être testée sur du matériel standard, pas dans QEMU et VirtualBox.



Le système d'exploitation est distribué sous la licence gratuite MIT. Quoi de neuf dans la version 0.6?



  • Le système de gestion de la mémoire du noyau a été réécrit à partir de zéro . Nous parlons de rmm, gestionnaire de mémoire du noyau. Les développeurs ont réussi à se débarrasser des fuites de mémoire qui causaient des problèmes lors de l'utilisation de l'ancien gestionnaire de mémoire. La stabilité de la prise en charge des systèmes multicœurs a également été améliorée.
  • , RSoC (Redox OS Summer of Code), , io_uring, ptrace, strace, gdb, .
  • - Relibc, Redox, Linux.
  • pkgar . . , , , . , pkgar , .
  • cookbook , Rust. Shell- Tomt.
  • , Asm.


Quant aux fonctionnalités de ce système d'exploitation, il se développe totalement selon la philosophie Unix. Les auteurs ont emprunté un certain nombre d'idées à SeL4, Minix et Plan 9. L'une des principales "astuces" est l'utilisation du concept de micro-noyau, dans lequel seule l'interaction entre les processus et la gestion des ressources est fournie. Le reste des fonctionnalités a été déplacé vers des bibliothèques, qui peuvent être utilisées à la fois par le noyau et les applications personnalisées. Tous les pilotes s'exécutent dans l'espace utilisateur dans des environnements sandbox isolés. Pour la compatibilité avec les applications existantes, une couche POSIX est fournie, ce qui permet d'exécuter de nombreux programmes sans portage.



De plus, les développeurs ont utilisé le principe «tout est une URL» pour leur système d'exploitation. Ainsi, pour la journalisation, l'URL «log: //» peut être utilisée, pour l'interaction entre les processus «bus: //», pour la communication réseau «tcp: //», etc. Pour les modules qui peuvent être implémentés sous la forme de pilotes, les extensions de noyau et les applications personnalisées peuvent enregistrer leurs gestionnaires d'URL. Exemple - écrire un module pour accéder aux ports d'E / S et le lier à l'URL "port_io: //", après quoi vous pouvez l'utiliser pour accéder au port 60 en ouvrant l'URL "port_io: // 60".



L'environnement personnalisé est basé sur le propre shell graphique d'OrbTk, qui fournit des API similaires à Flutter, React et Redux. Navigateur - Netsurf. Au cours du développement du projet, les développeurs ont fourni leur propre gestionnaire de paquets, un ensemble d'utilitaires standard (binutils, coreutils, netutils, extrautils), le shell de commande ion, la bibliothèque C standard relibc, un éditeur de texte sodium de type vim, une pile réseau et un système de fichiers TFS développé sur la base de idées pour ZFS (version modulaire de ZFS dans Rust). La configuration est définie dans la langue Toml.






All Articles