FAQ
Cette page couvre les questions/réponses pour les nouveaux arrivants et les utilisateurs.
- Qu’est-ce que Redox?
- Que veut dire Redox?
- Quelles fonctionnalités a Redox?
- Quelle est l’utilité de Redox?
- Que peut-on faire avec Redox?
- Qu’est-ce qu’un système d’exploitation de type Unix?
- Comment Redox s’inspire d’autres systèmes d’exploitation?
- Qu’est-ce qu’un micro noyau?
- Quels programmes peuvent tourner sur Redox?
- Comment installer des programmes sur Redox?
- Quelles sont les variantes de Redox?
- Quels appareils sont supportés par Redox?
- J’ai un ordinateur bas de gamme, est-ce que Redox fonctionnerait dessus ?
- Avec quelles machines virtuelles Redox s’intègre-t-il?
- Comment compiler Redox?
- Comment lancer QEMU sans interface graphique?
- Comment dépanner un build en cas d’erreur?
- Comment rapporter des bugs de Redox?
- Comment contribuer à Redox?
- J’ai un problème ou des questions pour l’équipe de Redox
Qu’est-ce que Redox?
Redox est un système d’exploitation en micro noyau, il est complet, entièrement fonctionnel, a un usage général et est axé sur la sécurité, la liberté, la fiabilité, l’exactitude et le pragmatisme.
Dans la mesure du possible, les composants du système sont écrits en Rust et exécutés dans l’espace utilisateur.
Statut actuel
Redox est un logiciel de qualité alpha/bêta, car nous implémentons de nouvelles fonctionnalités tout en corrigeant les bugs.
Ainsi, il n’est pas encore prêt pour une utilisation quotidienne, n’hésitez pas à tester le système jusqu’à sa maturité et ne stockez pas vos données sensibles sans une sauvegarde appropriée.
La version 1.0 sera publiée une fois que toutes les API système seront considérées comme stables.
Que veut dire Redox?
Redox est la réaction chimique (réduction-oxydation) qui crée la rouille. Vu que Redox est un système d’exploitation écrit en Rust (rouille en Anglais), cela a du sens.
Cela sonne aussi comme Minix/Linux.
Quelles fonctionnalités a Redox?
Les avantages du micro noyau
Vraie modularité
Vous pouvez modifier/changer de nombreux composants du système sans redémarrage du système, similaire mais plus sûr que le patch en direct.
Isolation des bugs
La plupart des composants système s’exécutent dans l’espace utilisateur sur un système de micro-noyau, un bogue dans un composant non-noyau ne plantera pas le système/noyau.
Conception sans redémarrage
Un micro-noyau mature change très peu (sauf corrections de bugs), vous n’aurez donc pas besoin de redémarrer votre système très souvent pour mettre à jour le système.
Étant donné que la plupart des composants du système se trouvent dans l’espace utilisateur, ils peuvent être remplacés à la volée (ce qui réduit les temps d’arrêt pour les administrateurs de serveur).
Facile à développer et à déboguer
La plupart des composants du système s’exécutent dans l’espace utilisateur, ce qui simplifie les tests/débogages.
Les avantages de Rust
Moins susceptible d’avoir des bugs
La syntaxe restrictive et les suggestions du compilateur réduisent considérablement la probabilité de bugs.
Pas besoin de mesures d’atténuation des exploits de C/C++
La conception du micro-noyau écrite en Rust protège contre les défauts de mémoire que l’on peut croiser dans des programmes en C/C++.
En isolant les composants du système du noyau, la surface d’attaque est très limitée.
Sécurité et fiabilité améliorées sans impact significatif sur les performances
Comme le noyau est petit, il utilise moins de mémoire pour faire son travail et la quantité de code limité du noyau l’aide à rester proche de l’objectif (KISS sans bugs).
La conception de langage sûre et rapide de Rust, combinée à la petite taille du noyau, contribue à garantir un noyau fiable, performant et facile à entretenir.
Sécurité des threads
Le support de la sécurité des threads en C/C++ est assez fragile et il est très facile d’écrire un programme qui semble sûr à exécuter sur plusieurs threads, mais qui introduit des bugs subtils ou des failles de sécurité. Si un thread accède à un état en même temps qu’un autre thread le modifie, l’ensemble du programme peut présenter des bugs vraiment déroutants et bizarres.
Mais en Rust, ce type de bug est facile à éviter, le même système de type qui nous empêche d’écrire des problèmes de sécurité en mémoire nous empêche d’écrire des modèles d’accès simultanés dangereux.
Pilotes écrits en Rust
Les pilotes écrits en Rust sont susceptibles d’avoir moins de bogues et donc une meilleure sécurité.
Système de fichiers inspiré de ZFS
Redox utilise RedoxFS comme système de fichiers par défaut, il prend en charge des fonctionnalités similaires à ZFS avec une implémentation écrite en Rust.
Attendez-vous à des performances élevées et à la sécurité des données (copie sur écriture, intégrité des données, volumes, instantanés, protection contre la perte de données).
Comparaison avec d’autres systèmes d’exploitation
Vous pouvez voir comment Redox est comparé à Linux, FreeBSD et Plan 9 sur cette page.
Quelle est l’utilité de Redox?
L’objectif principal de Redox est d’être un système d’exploitation à usage général, tout en maintenant la sécurité, la fiabilité et l’exactitude.
Redox vise à être une alternative aux systèmes Unix existants (Linux/BSD), avec la possibilité d’exécuter la plupart des programmes Unix avec seulement une recompilation ou des modifications minimales.
Que peut-on faire avec Redox?
En tant que système d’exploitation à usage général, vous pourrez faire presque n’importe quoi sur la plupart des appareils avec des performances/sécurité élevées.
Redox est toujours en cours de développement, donc notre liste d’applications prises en charge est actuellement limitée, mais en croissance.
Qu’est-ce qu’un système d’exploitation de type Unix?
Tout système d’exploitation compatible avec la spécification unique Unix et POSIX, s’attend à un shell, le concept “tout est un fichier”, multitâche et multi-utilisateur.
Unix était un système multitâche très influent et a eu un impact sur les choix de conception de la plupart des systèmes modernes.
Comment Redox s’inspire d’autres systèmes d’exploitation?
Plan 9
Ce système d’exploitation Bell Labs amène le concept de “tout est un fichier” au plus haut niveau, en effectuant toutes les communications système à partir du système de fichiers.
Minix
Le système de type Unix le plus influent avec un micro-noyau, il possède des fonctionnalités avancées telles que la modularité du système, la résistance à la panique du noyau, réincarnation du pilote, protection contre les mauvais pilotes et interfaces sécurisées pour la communication des processus.
Redox est largement inspiré de Minix, il a une architecture et un ensemble de fonctionnalités similaires écrits en Rust.
seL4
Le micro-noyau le plus rapide et le plus simple au monde, il vise la performance et la simplicité.
Redox suit le même principe, en essayant de rendre l’espace noyau aussi petit que possible (déplacer les composants vers l’espace utilisateur et réduire le nombre d’appels système, transmettre la complexité à l’espace utilisateur) et maintenir les bonnes performances globales (réduire le coût du changement de contexte).
BSD
Cette famille Unix comprenait plusieurs améliorations sur les systèmes Unix, les variantes open-source de BSD ont ajouté de nombreuses améliorations au système d’origine (comme Linux).
FreeBSD est l’exemple le plus notable, Redox s’est inspiré de Capsicum (un système basé sur les capacités) et jails (une technologie sandbox) pour l’implémentation des namespaces.
Linux
Le noyau monolithique le plus avancé au monde et le plus grand projet open-source au monde, il apporte plusieurs améliorations/optimisations aux systèmes de type Unix.
Redox essaie d’implémenter les améliorations de performances Linux dans une conception de micro-noyau.
Qu’est-ce qu’un micro noyau?
Un micro-noyau est la quantité quasi minimale de logiciels pouvant fournir les mécanismes nécessaires à la mise en œuvre d’un système d’exploitation, qui s’exécute sur le privilège le plus élevé du processeur.
Cette approche de la conception du système d’exploitation apporte plus de stabilité et de sécurité, avec un faible coût sur les performances.
Quels programmes peuvent tourner sur Redox?
Redox est conçu pour être compatible avec la plupart des applications compatibles Unix, Linux et POSIX, ne nécessitant qu’une compilation.
Actuellement, la plupart des applications GUI nécessitent un portage, car nous ne prenons pas encore en charge X11 ou Wayland.
Certains logiciels importants pris en charge par Redox :
Vous pouvez voir tous les composants/programmes portés sur Redox ici.
Comment installer des programmes sur Redox?
Redox a un gestionnaire de paquets similaire à apt
(Debian) et pkg
(FreeBSD), vous pouvez voir comment l’utiliser sur cette page :
Quelles sont les variantes de Redox?
Redox a quelques variantes pour chaque tâche, jetez-y un œil ci-dessous :
-
server-minimal
- La variante la plus minimale avec un système de base, destinée aux appareils embarqués, aux ordinateurs très anciens et aux développeurs. -
desktop-minimal
- La variante la plus minimale avec l’environnement de bureau Orbital inclus, destinée aux appareils embarqués, aux ordinateurs très anciens et aux développeurs. -
server
- La variante de serveur avec un système complet et des outils réseau, destinée aux administrateurs de serveur, aux appareils embarqués, aux ordinateurs bas de gamme et aux développeurs. -
desktop
- La variante standard avec un système complet, un environnement de bureau Orbital et des outils utiles, destinés à une utilisation quotidienne, aux producteurs, aux développeurs et aux joueurs. -
dev
- La variante de développement avec un système complet et des outils de développement, destinée aux développeurs. -
demo
- La variante de démonstration avec un système complet, des outils, des joueurs et des jeux, destinée aux testeurs, joueurs et développeurs.
Quels appareils sont supportés par Redox?
Il existe des milliards d’appareils avec des centaines de modèles/architectures dans le monde, nous essayons d’écrire des pilotes pour les appareils les plus utilisés afin de prendre en charge plus de personnes, certains pilotes sont spécifiques à l’appareil et d’autres sont spécifiques à l’architecture.
Jettes un coup d’oeil à HARDWARE.md pour voir tous les ordinateurs testés.
CPU
- Intel - 64-bit (x86_64) et 32-bit (i686) à partir de Pentium II et versions ultérieures avec des limitations.
- AMD - 64-bit (AMD64) et 32-bit.
- ARM - 64-bit (Aarch64) avec des limitations.
Les interfaces matérielles
(bientôt l’USB)
Vidéo
(Intel/AMD et autres à l’avenir)
Son
(Sound Blaster soon)
Stockage
(bientôt l’USB)
Entrées
(bientôt l’USB)
Internet
(Wi-Fi/Atheros ethernet bientôt)
J’ai un ordinateur bas de gamme, est-ce que Redox fonctionnerait dessus ?
Un processeur d’ordinateur est la machine la plus complexe du monde, même les processeurs les plus anciens sont puissants pour certaines tâches, cela dépend de la tâche.
Le principal problème avec les anciens ordinateurs est la quantité de RAM disponible (ils étaient vendus à une époque où les puces RAM étaient chères) et le manque d’extensions SSE/AVX (les programmes les utilisent pour accélérer les algorithmes), ainsi certains programmes peuvent ne pas fonctionner ou nécissitent beaucoup de RAM pour effectuer des tâches complexes.
Redox fonctionnera normalement (si l’architecture du processeur est prise en charge par le système) mais vous devrez tester chaque programme.
Avec quelles machines virtuelles Redox s’intègre-t-il?
À l’avenir, le micro-noyau pourrait agir comme un hyperviseur, similaire à Xen.
Un hyperviseur est un programme permettant d’exécuter simultanément plusieurs instances de système d’exploitation isolées.
Comment compiler Redox?
Actuellement, Redox a un script d’amorçage pour Pop OS!, Ubuntu, Debian, Fedora, Arch Linux, openSUSE et FreeBSD avec un support non maintenu pour d’autres distributions.
Nous proposons également Podman comme méthode de compilation universelle. C’est le processus de construction recommandé pour les systèmes non-Debian car il évite les problèmes d’environnement sur le processus de construction.
- Guide de compilation du livre Redox - (Pop OS!, Ubuntu, Debian, Fedora, Arch Linux, openSUSE et FreeBSD)
- Guide Podman du livre Redox
Comment lancer QEMU sans interface graphique?
Exécutez:
make qemu vga=no
Comment dépanner un build en cas d’erreur?
Lisez cette page ou rejoignez-nous sur Redox Chat.
Comment rapporter des bugs de Redox?
Vérifiez d’abord les problèmes de GitLab pour voir si votre problème est déjà connu.
Comment contribuer à Redox?
Vous pouvez contribuer à Redox de plusieurs façons, vous pouvez les voir sur CONTRIBUER.
J’ai un problème ou des questions pour l’équipe de Redox
- Jetez un oeil à la page de Documentation pour plus de détails internes de Redox.
- Jetez un oeil au livre Redox pour voir s’il répond à vos questions/résout votre problème.
- Si le livre ne répond pas à votre question, posez votre question/dites votre problème dans le Chat.