L'un des plus grands défis de GrimOS a été de remplacer les "démons" Linux complexes (comme NetworkManager pour le réseau ou Udisks2 pour les clés USB) par du pur code Python, lisible et modifiable par l'utilisateur.
Un système d'exploitation moderne (Linux, Windows ou macOS) est peuplé de "démons" (Daemons en anglais, ou Services). Ce sont de petits programmes invisibles qui tournent en boucle en arrière-plan dès l'allumage de la machine pour gérer diverses tâches : détecter une clé USB, maintenir la connexion réseau, vérifier les mises à jour, etc.
Le problème ? L'accumulation de ces dizaines de démons consomme énormément de mémoire vive (RAM) et de temps de calcul, même lorsque vous ne faites rien.
Dans ce chapitre, nous allons voir comment GrimOS parvient à s'en passer totalement pour la gestion du Réseau (Wi-Fi) et des clés USB, en utilisant une approche "à la main", 100% Python.
Sur un Linux grand public (comme Ubuntu), le réseau est géré par NetworkManager, un très gros démon qui fournit une interface complexe.
GrimOS a supprimé NetworkManager. À la place, il utilise l'outil fondamental et historique de Linux : wpa_supplicant. C'est le programme le plus léger possible capable de parler aux antennes Wi-Fi.
Le fichier core/wifi.py joue le rôle de traducteur entre l'interface de GrimOS et cet outil.
Quand vous cliquez sur l'icône Wi-Fi dans la barre des tâches :
sudo wpa_cli scanLe gain : Aucun processus lourd ne surveille le réseau en permanence. Le scan n'a lieu que lorsque l'utilisateur le demande explicitement.
Insérer une clé USB sur un ordinateur moderne provoque une série d'actions complexes gérées par des démons comme Udisks2 ou gvfs, qui montent la clé, envoient des notifications au bureau, indexent les fichiers pour la recherche, etc.
Dans GrimOS, la philosophie est brutale mais d'une efficacité redoutable. Le bureau (core/desktop.py) possède une petite boucle très légère qui s'exécute silencieusement toutes les quelques secondes pour vérifier l'état de la batterie et... les disques durs.
lsblk -J (List Block Devices).RM (Removable / Amovible) qui n'a pas de mountpoint (point de montage), cela signifie qu'une clé vient d'être insérée !sudo mount /dev/sdX /media/usb... pour monter la clé de manière transparente.Lorsque l'utilisateur a terminé, il clique sur cette icône. Python exécute simplement sudo umount et la clé peut être retirée en toute sécurité.
En déléguant ces opérations critiques non pas à d'énormes services en arrière-plan, mais à de minuscules commandes textuelles Unix (comme mount, lsblk, wpa_cli) orchestrées par quelques dizaines de lignes de code Python, GrimOS accomplit un miracle de légèreté.
C'est ainsi que la version finale de GrimOS, avec son interface graphique, son explorateur, sa détection USB et son réseau Wi-Fi actifs, réussit à consommer moins de 100 Mégaoctets de RAM au repos, là où d'autres systèmes saturent des ordinateurs équipés de 4 Gigaoctets.
GrimOS ne cache rien à son utilisateur : l'OS est un chef d'orchestre, et le terminal Unix est son instrument.