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

La version du système d'exploitation Redox 0.8, développée à 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, des assemblages de démonstration d'une taille de 768 Mo sont proposés, ainsi que des images avec un environnement graphique de base (256 Mo) et des outils de console pour les systèmes serveur (256 Mo). Les assemblys sont générés pour l'architecture x86_64 et sont disponibles pour les systèmes avec UEFI et BIOS. En plus de l'environnement graphique Orbital, l'image de démonstration comprend l'émulateur DOSBox, une sélection de jeux (DOOM, Neverball, Neverputt, sopwith, syobonaction), des tutoriels, le lecteur de musique rodioplay et l'éditeur de texte Sodium.

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.

La nouvelle version continue de travailler pour garantir qu'elle fonctionne sur du matériel réel. En plus de l'architecture x86_64, la possibilité de travailler sur des systèmes x32 86 bits (i686, Pentium II et plus récents) a été ajoutée. Le portage vers le processeur ARM64 (aarch64) est en cours. L'exécution sur du matériel ARM réel n'est pas encore prise en charge, mais le chargement avec l'émulation ARM64 dans QEMU est possible. Par défaut, le sous-système audio est activé et la prise en charge initiale des configurations multi-moniteurs est fournie (sur les systèmes dotés d'un framebuffer UEFI). L'équipement pris en charge dans Redox OS comprend des puces audio AC'97 et Intel HD Audio, une sortie graphique via le BIOS VESA ou l'API UEFI GOP, Ethernet (Intel 1/10 Gigabit Ethernet, Realtek RTL8168), des périphériques d'entrée (claviers, souris, pavés tactiles) , SATA (AHCI, IDE) et NVMe. La prise en charge du Wi-Fi et de l'USB n'est pas encore prête (l'USB ne fonctionne que dans QEMU).

Autres nouveautés :

  • Les images de démarrage pour les systèmes avec BIOS et EFI ont été fusionnées.
  • L'implémentation des appels système clone et exec a été déplacée vers l'espace utilisateur.
  • Le processus de chargement a été simplifié. Un programme d'amorçage a été implémenté, qui est lancé par le noyau et permet un chargement ultérieur des fichiers ELF, tels que le processus init.
  • Ajout d'un programme intensifié pour prendre en charge les programmes setuid tels que sudo.
  • Pour simplifier la création et l'installation de processus en arrière-plan, le package crate redox-daemon a été proposé.
  • Le système d'assemblage a été repensé, permettant de créer différentes architectures dans une seule arborescence source. Pour simplifier l'assemblage des différentes configurations, le script build.sh est proposé. Ajout de la prise en charge de la construction à l'aide de la boîte à outils podman. L'assemblage du noyau, du chargeur de démarrage et des initfs est unifié avec les autres packages.
  • Ajout d'une configuration de démonstration pour créer des exemples de programmes qui ne sont pas inclus dans l'image de démarrage de base avec un environnement graphique.
  • La prise en charge du contrôle logiciel du volume a été ajoutée au sous-système audio audio.
  • Ajout d'un pilote pour les puces sonores basées sur AC'97. Pilote amélioré pour les puces Intel HD Audio.
  • Ajout d'un pilote pour les contrôleurs IDE.
  • Prise en charge améliorée des disques NVMe.
  • Pilotes PCI, PS/2, RTL8168, USB HID, VESA améliorés.
  • Le processus d'installation a été repensé : le bootloader, le bootstrap, le noyau et les initfs se trouvent désormais dans le répertoire /boot.
  • Le noyau a simplifié la gestion de la mémoire et ajouté la possibilité de manipuler les espaces d'adressage au niveau de l'utilisateur.
  • Dans le shell graphique Orbital, la prise en charge des systèmes multi-moniteurs a été ajoutée, le traitement du curseur de la souris a été amélioré et un indicateur a été ajouté pour modifier le volume. Le menu a la capacité de diviser les applications en catégories.

Source: opennet.ru

Ajouter un commentaire