Le système d'exploitation Redox de Rust pourrait montrer à Linux quelques nouvelles astuces

Le langage Rust de Mozilla a été conçu par ses concepteurs comme une option pour écrire de nombreux types de logiciels rapidement et en toute sécurité, y compris des systèmes d'exploitation complets.

Au cours des derniers mois, une équipe de développeurs a été occupée à faire exactement cela: utiliser Rust pour créer Redox, un système d'exploitation à part entière de type Unix conçu pour repenser radicalement l'approche Linux.

Table rase

Redox utilise Rust pour son code au niveau du noyau afin de fournir plus de considérations de sécurité de la mémoire que C ne le permet par défaut. Mais le projet ne réécrit pas simplement Linux dans une nouvelle langue. Redox se débarrasse autant de la version Linux de la tradition Unix qu'elle le conserve.

Comme expliqué dans le wiki et les documents de conception du projet, Redox utilise un ensemble minimal d'appels système - un sous-ensemble délibérément plus petit que ce que Linux prend en charge afin d'éviter les ballonnements hérités. Le système d'exploitation utilise également une conception de micro-noyau pour rester mince, contrairement au noyau monolithique de Linux.

De nombreux comportements internes du système d'exploitation ont également été repensés. Unix et Linux utilisent tous deux la notion de chaque élément sous forme de fichier. Redox va plus loin et traite tout comme une URL, il est donc simple d'enregistrer des gestionnaires d'événements, et il fournit une manière cohérente d'effectuer d'autres types d'abstractions.

//github.com/redox-os/redox

Le plan, cependant, n'est pas de remplacer Linux, mais de fournir une alternative utile qui peut à terme exécuter les logiciels Linux tels quels. Il y a déjà quelques astuces: de nombreuses commandes Unix (et donc Linux) courantes sont prises en charge, et il existe un port en cours de développement du système de fichiers ZFS.

Une autre rupture radicale avec Linux n'est pas dans le logiciel mais dans la licence: l'ensemble du projet est sous licence MIT et non GPL. Le raisonnement est que la licence MIT encourage l'adoption en aval beaucoup plus facilement que la GPL, "puisque l'aval est ce qui compte vraiment: la base d'utilisateurs, la communauté, la disponibilité."

Le long chemin à parcourir

Même si les ISO de Redox peuvent être téléchargés et démarrés, il est peu probable que vous abandonniez Linux pour Redox en production de si tôt.

D'une part, Redox n'est pas testé, avec de nombreuses fonctionnalités manquantes et un grand nombre incomplètes. Les développeurs de Redox admettent également qu'il ne sera pas possible d'établir une "compatibilité Posix 1: 1 complète" (car le système d'exploitation omet de nombreux appels système Unix), donc les logiciels Linux existants auront probablement besoin d'une couche de support sur Redox pour fonctionner - un barrage pour son adoption.

La base de code héritée de Linux ne sera pas non plus facilement ignorée. Des décennies de développement et des milliers d'années humaines de travail ont été investies dans l'environnement de développement du langage C. Le langage Rust, en revanche, existe depuis quelques années et n'a atteint que très récemment un état de stabilité suffisant pour que la plupart des gens puissent construire de grands projets ambitieux avec lui.

Pourtant, un projet comme Redox est précieux. Si Redox peut tenir sa promesse d'être plus sûr de par sa conception, de nombreux scénarios de périphériques embarqués actuellement ciblés par Linux pourraient être mieux servis par Redox. Mozilla a déjà parlé de Rust en tant que langage pour les appareils de l'Internet des objets, ce serait donc une extension naturelle.

Redox peut également servir d'exemple pour aborder différemment les problèmes du système d'exploitation, exerçant une pression évolutive à long terme sur Linux. Si Linux ne va nulle part - tous les signes montrent que ce n'est pas le cas - alors il est préférable de trouver des moyens de le forcer à s'améliorer.