Présentation de Moxnox 1.0

Moxnox 1.0 est présenté comme un système d’exploitation expérimental dont le code source est hébergé sur GitHub. Le projet se décrit comme « NT‑like », c’est‑à‑dire inspiré de l’architecture du noyau Windows NT, tout en affichant une compatibilité POSIX. La particularité annoncée réside dans le fait que le système s’appuie directement sur le système de fichiers Btrfs, sans couche d’abstraction supplémentaire.

Architecture NT‑like et compatibilité POSIX

Le qualificatif NT‑like indique que le modèle de gestion des processus, des objets kernel et du planificateur suit les principes de Windows NT. Cette approche implique généralement l’utilisation d’objets de type « handle », d’un espace d’adressage séparé pour le noyau et les processus, ainsi que d’une API de type Zw* ou Nt*. En parallèle, la mention POSIX‑compatible signifie que le projet expose un ensemble d’appels système conformes aux standards Unix (open, read, fork, exec, etc.). La coexistence de ces deux paradigmes impose la mise en place d’une couche de traduction qui mappe les appels POSIX vers les primitives NT‑like, ou inversement. Cette couche représente un point d’interaction critique, car chaque appel doit préserver les invariants de sécurité et de gestion de la mémoire propres aux deux modèles.

Intégration avec Btrfs

Le choix de Btrfs comme système de fichiers sous‑jacent influence directement la conception du noyau. Btrfs offre des fonctionnalités de copie‑on‑write, de snapshots instantanés et de vérification d’intégrité via checksums. En exécutant l’OS directement « atop » Btrfs, Moxnox peut exploiter ces capacités pour la gestion des images système, la restauration d’états antérieurs et la détection de corruptions de données. Cependant, l’accès direct au code du pilote Btrfs nécessite que le noyau expose les interfaces de VFS (Virtual File System) attendues par les appels POSIX, tout en conservant les structures de gestion d’objets NT‑like. Cette double exigence crée une dépendance forte à la stabilité du sous‑système Btrfs et limite la portabilité du projet vers d’autres systèmes de fichiers.

Enjeux et limites

Le principal enjeu technique réside dans la synchronisation des modèles de sécurité. Les politiques d’accès de Windows NT reposent sur des descripteurs de sécurité (ACL) différents de celles de POSIX (mode bits). La traduction entre ces deux modèles doit garantir l’absence de privilèges excessifs, faute de quoi le système pourrait exposer des vecteurs d’escalade. De plus, la maturité de Btrfs reste un facteur de risque : bien que stable sur les distributions Linux récentes, le système de fichiers présente encore des cas de perte de données sous certaines charges d’E/S intensives. Enfin, l’absence de documentation détaillée dans le dépôt GitHub limite la capacité des contributeurs à évaluer la robustesse du code, ce qui freine l’adoption au‑delà d’un cercle de développeurs expérimentés.