Sortie du système d'exploitation Redox OS 0.7 écrit en Rust

Après un an et demi de développement, la sortie du système d'exploitation Redox 0.7, développé à l'aide du langage Rust et du concept de micro-noyau, a été publiée. Les développements du projet sont distribués sous licence gratuite MIT. Pour tester Redox OS, une installation et des images Live d'une taille de 75 Mo sont proposées. Les assemblys sont générés pour l'architecture x86_64 et sont disponibles pour les systèmes avec UEFI et BIOS.

Lors de la préparation de la nouvelle version, l’objectif principal était de s’assurer qu’elle fonctionne sur du matériel réel. Principales innovations :

  • Le chargeur de démarrage a été entièrement réécrit, dans lequel le code de démarrage sur les systèmes avec BIOS et UEFI est unifié et principalement écrit en Rust. La modification du chargeur de démarrage a considérablement élargi la gamme de matériel pris en charge.
  • En plus des corrections de bogues, des travaux ont été effectués sur le noyau pour améliorer les performances et étendre la prise en charge matérielle. Les variables spécifiques au processeur ont été converties pour utiliser le registre GS. La réflexion (cartographie) de toute la mémoire physique est fournie, l'utilisation des pages de mémoire récursive est arrêtée. Le code assembleur dans les insertions en ligne a été réécrit pour améliorer la compatibilité avec les futures versions du compilateur.
  • Ajout de la prise en charge initiale de l'architecture AArch64.
  • Une transition a été effectuée vers le traitement de tous les chemins de fichiers en codage UTF-8.
  • Le code permettant de travailler avec la spécification ACPI AML (ACPI Machine Language) - uefi.org a été déplacé du noyau vers le processus d'arrière-plan acpid exécuté dans l'espace utilisateur.
  • Le contenu d'Initfs a été déplacé vers un nouveau fichier, ce qui facilite la génération de packages.
  • Le système de fichiers RedoxFS a été réécrit et basculé vers l'aide du mécanisme CoW (Copy-on-Write), dans lequel les modifications n'écrasent pas les informations, mais sont enregistrées dans un nouvel emplacement, ce qui a considérablement amélioré la fiabilité. Les nouvelles fonctionnalités de RedoxFS incluent la prise en charge des mises à jour transactionnelles, le cryptage des données à l'aide de l'algorithme AES, ainsi que l'authentification des données et des métadonnées avec des signatures numériques. Le partage du code FS dans le système et le chargeur de démarrage est assuré.
  • L'amélioration de la bibliothèque C standard Relibc développée par le projet, capable de fonctionner non seulement dans Redox, mais aussi dans les distributions basées sur le noyau Linux, s'est poursuivie. Les modifications ont facilité le portage de divers programmes sur Redox et résolu des problèmes avec de nombreux programmes et bibliothèques écrits en C.
  • Une version du compilateur rustc a été préparée et peut fonctionner dans Redox. Les tâches restantes incluent l'optimisation des performances et l'adaptation du gestionnaire de colis de fret pour fonctionner dans l'environnement Redox.

Sortie du système d'exploitation Redox OS 0.7 écrit en Rust

Le système d'exploitation est développé conformément à la philosophie Unix et emprunte quelques idées à SeL4, Minix et Plan 9. Redox utilise le concept de micro-noyau, dans lequel seule l'interaction entre les processus et la gestion des ressources est assurée au niveau du noyau, et toutes les autres la fonctionnalité est placée dans des bibliothèques qui peuvent être utilisées à la fois par le noyau et par les applications utilisateur. 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 spéciale est fournie, qui vous permet d'exécuter de nombreux programmes sans portage.

Le système utilise le principe « tout est une URL ». Par exemple, l'URL « log:// » peut être utilisée pour la journalisation, « bus:// » pour l'interaction entre les processus, « tcp:// » pour l'interaction réseau, etc. Les modules, qui peuvent être implémentés sous la forme de pilotes, d'extensions de noyau et d'applications utilisateur, peuvent enregistrer leurs propres gestionnaires d'URL. Par exemple, vous pouvez écrire un module d'accès au port 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 utilisateur de Redox est construit sur la base du propre shell graphique d'Orbital (à ne pas confondre avec un autre shell Orbital qui utilise Qt et Wayland) et de la boîte à outils OrbTk, qui fournit une API similaire à Flutter, React et Redux. Netsurf est utilisé comme navigateur Web. Le projet développe également son propre gestionnaire de paquets, un ensemble d'utilitaires standards (binutils, coreutils, netutils, extrautils), le shell de commande ion, la bibliothèque C standard relibc, l'éditeur de texte de type vim sodium, une pile réseau et un gestionnaire de fichiers. système. La configuration est définie dans le langage Toml.

Source: opennet.ru

Ajouter un commentaire