Proposition d'extension du support de Nix/Nixpkgs vers d’autres écosystèmes

À l’attention de l’équipe de développement Nix,

Je vous contacte pour recommander l’exploration et le renforcement du support de Nix pour les systèmes d’exploitation basés sur des micro-noyaux open-sources (tels que seL4, Genode ou Nova).

En tant qu’utilisateur de Nix, je suis convaincu que la gestion de paquets purement fonctionnelle et l’architecture micro-noyau représente une avancée majeure pour les systèmes sécurisés et reproductibles (particulièrement Genode).

Pourquoi Genode ?

Genode et certains de ses dérivées sont des frameworks d’OS “clean-slate” qui repose sur un principe de privilège minimal, où chaque composant fonctionne dans un bac à sable (sandbox) strict. Le flux d’intégration actuel de Genode partage déjà de nombreux concepts avec Nix, notamment via ses outils d’automatisation et de configuration.

Axes de développement suggérés :

Adaptation de nix-daemon pour fonctionner dans des environnements sans POSIX complet.

Optimisation de la gestion des dépendances pour les systèmes de virtualisation légère.

Exploration de l’utilisation de Nix pour la composition de systèmes “Component-based” (type Genode).

Je suis convaincu que cette orientation renforcerait la position de Nix en tant qu’outil pionnier pour l’ingénierie système de haute sécurité. Je serais ravi de discuter avec vous des défis techniques initiaux et des moyens de soutenir une telle initiative.

1 Like

NB : je ne suis pas du tout un expert dans ce domaine et n’ai pas de droit majeur sur Nix.

C’est certainement une très bonne idée, mais je pense qu’il vaudrait mieux, en tout cas dans un premier temps, commencer par le développer dans un projet communautaire à part car ça semble demander beaucoup de travail et des connaissances particulières. Par exemple, même le support pour la raspberry pi 5 nécessitant un noyaux non mainlaine a été déplacé hors nixpkgs. Tu peux peut-être t’inspirer de Mobile NixOS — Mobile NixOS qui gère également des noyaux particuliers (téléphones) dans un projet hors nixpkgs.

Après, si tu veux plus de retours, il faudra certainement aller voir du côté de la communauté anglophone, surtout si ton but est de créer une communauté, et peut-être sur le canal de discussion matrix (il y a un canal pour ARM de mémoire avec des discussions sur mobile nixos, peut-être que tu peux avoir des conseils).

D’ailleurs, désolé de mon ignorance, mais je n’ai jamais tout à fait compris l’idée des micro-kernels : est-ce que l’idée c’est de remplacer le kernel sur un vrai ordinateur (auquel cas ça pose pas des questions de compatibilité hardware importantes ?) ou est-ce que l’idée c’est plus de virtualiser le micro-kernel par dessus un kernel traditionnel dans une VM ou autre ? (quid de l’efficacité ?)