Les systèmes d’exploitation ont longtemps été pensés comme des environnements malléables, modifiables en permanence, patch après patch. Cette souplesse est aujourd’hui devenue l’une de leurs principales faiblesses. À mesure que les attaques se sophistiquent et que les infrastructures gagnent en complexité, maintenir un système stable, prévisible et sécurisé devient un défi permanent. C’est dans ce contexte qu’émerge le système immuable, une caractéristique qui empêche toute dérive dès l’origine.
Qu’est-ce qu’un système d’exploitation immuable ?
- Qu’est-ce qu’un système immuable ?
- Les différents niveaux d’immutabilité partiel et total
- Comment fonctionne un système d’exploitation immuable ?
- Les système d’exploitation immuable en lecture seule
Qu’est-ce qu’un système immuable ?
Un système immuable est un système d’exploitation conçu pour rester identique dans le temps une fois déployé. Le terme immuable signifie que le cœur du système ne peut pas être modifié de manière persistante pendant son fonctionnement normal. Le système de base est monté en lecture seule et toute tentative de modification directe des fichiers critiques est bloquée. Contrairement à un simple durcissement qui limite certains accès tout en laissant l’OS modifiable, l’immutabilité est plus strict. Le système n’est pas corrigé, ni ajusté en production. Il est remplacé dans son ensemble par une nouvelle version lorsqu’une évolution est nécessaire.

Pour l’utilisateur ou l’administrateur, cela implique un changement profond de logique. Il n’est plus possible d’installer des paquets à chaud, ni de modifier directement la configuration système. Les évolutions passent par la construction et le déploiement d’une nouvelle version complète du système suivis d’un redémarrage. Un système immuable n’est ni figé, ni limité. Il continue de recevoir des mises à jour, exécute des applications et s’adapte à différents usages. La différence tient au fait que les applications sont isolées du système de base et que la stabilité est garantie par conception, là où un système verrouillé reste modifiable et donc exposé à la dérive et aux altérations.
Les différents niveaux d’immutabilité partiel et total
Dans une première approche, l’immutabilité concerne principalement les fichiers critiques. Le noyau, les binaires système et les composants essentiels sont protégés en lecture seule, tandis que certaines parties restent modifiables pour permettre l’adaptation de la configuration ou l’ajout de services. Ce modèle limite les altérations profondes du système et empêche de nombreuses compromissions persistantes, tout en conservant une certaine souplesse d’exploitation.
┌───────────────────────────────┐
│ SYSTÈME CLASSIQUE │
└───────────────────────────────┘
/usr ─────────────── lecture / écriture
/etc ─────────────── lecture / écriture
/var ─────────────── lecture / écriture
L’immutabilité complète dans une approche sans modification possible
À l’autre extrémité du spectre se trouve l’immutabilité totale. Le système d’exploitation est alors conçu pour ne jamais être modifié en production, ni dans ses fichiers, ni dans sa configuration globale. Chaque changement implique la création et le déploiement d’une nouvelle version complète du système. Cette approche supprime presque entièrement la dérive et garantit un niveau de sécurité très élevé. Elle impose en contrepartie une discipline plus stricte et une automatisation plus poussée, elle est principalement adoptée dans le cloud, les infrastructures critiques et les environnements industrialisés ou militaire.
┌───────────────────────────────┐
│ SYSTÈME SEMI-IMMUABLE │
└───────────────────────────────┘
/usr ─────────────── lecture seule
/etc ─────────────── lecture / écriture
/var ─────────────── lecture / écriture
Comment fonctionne un système d’exploitation immuable ?
Dans un système immuable, les composants essentiels du système sont montés en lecture seule afin d’empêcher toute modification persitante, volontaire ou accidentelle. Certaines zones peuvent rester accessibles en écriture comme les données utilisateur, les journaux et la configuration propre aux applications.
Le socle immuable est construit en amont sous forme d’image comme un instantané du système d’exploitation. Cette image peut être destinée à une machine virtuelle, à un serveur bare metal ou à un environnement embarqué, mais elle répond toujours à la même logique de sécuriser le système et de le rendre prévisible. Elle est versionnée, contrôlée et validée avant d’être déployée. Ce choix technique permet de garantir que le système exécuté en production correspond à ce qui a été testé.
┌───────────────────────────────┐
│ SYSTÈME TOTALEMENT FIGÉ │
│ (militaire / spatial) │
└───────────────────────────────┘
/usr ─────────────── lecture seule
/etc ─────────────── lecture seule
/var ─────────────── absent ou temporaire
Les mises à jour ne viennent pas modifier ce système en place mais le remplacer. Lorsqu’une évolution est nécessaire, une nouvelle image complète est déployée à côté de l’ancienne, téléchargée, puis activée lors d’un redémarrage. Ce mécanisme élimine les états transitoires et rend le retour en arrière possible. En cas de problème, il suffit de redémarrer sur la version précédente. Cette capacité de rollback est un élément central du modèle immuable qui explique en grande partie son adoption dans les environnements où la stabilité et la disponibilité sont non négociables.
Les système d’exploitation immuable en lecture seule
Les systèmes d’exploitation immuables en lecture seule sont aujourd’hui largement utilisés dans l’industrie. On les retrouve dans le cloud, les infrastructures critiques, l’embarqué industriel, les télécommunications et les environnements où la continuité de service ne tolère ni dérive, ni improvisation. Dans ces contextes, la possibilité de modifier un système en production est moins un avantage qu’un risque, tant en matière de sécurité que de fiabilité.
ChromeOS, un système grand public en lecture seule
ChromeOS est le système d’exploitation développé par Google destiné aux ordinateurs portables grand public et professionnels avec un fort accent sur la simplicité, la sécurité et la maintenance automatisée.
C’est est l’un des exemples les plus aboutis. Le système repose sur deux partitions racine alternées, toutes deux montées en lecture seule pendant l’exécution. Aucune modification persistante du système n’est possible. Les mises à jour remplacent entièrement la partition inactive qui devient active après redémarrage. L’intégrité est vérifiée à chaque boot. C’est un modèle d’immutabilité stricte appliqué à grande échelle sur des millions de machines.
Fedora CoreOS, un serveur immuable orienté conteneurs
Fedora CoreOS est un système Linux minimal développé par le projet Fedora et pensé comme un socle pour l’exécution de conteneurs et les infrastructures modernes automatisées.
Fedora CoreOS utilise rpm ostree avec un root filesystem monté en lecture seule. Les binaires et bibliothèques système ne peuvent pas être modifiés en production. Toute modification passe par un nouveau déploiement du système. Il n’existe pas de gestionnaire de paquets classique utilisable sur l’OS en cours d’exécution. Les conteneurs et données vivent en dehors du socle.
Fedora Atomic Desktops, des postes de travail Linux en lecture seule
Fedora Atomic Desktops regroupe plusieurs éditions de Fedora destinées au poste de travail qui appliquent les principes d’immutabilité à un usage quotidien sur ordinateur personnel.
Silverblue, Kinoite et les autres variantes Atomic reposent sur le même principe. Le root filesystem est monté en lecture seule et versionné. Il est possible d’ajouter des couches via rpm ostree, mais celles ci ne modifient jamais le système actif. Elles produisent une nouvelle image qui sera utilisée après redémarrage. En fonctionnement, le socle reste intouchable.
Bottlerocket, un système cloud pour empêcher toute modification persistante
Bottlerocket est un système Linux développé par Amazon et conçu spécifiquement pour exécuter des conteneurs dans des environnements cloud et orchestrés.
Il est conçu avec une racine strictement en lecture seule, protégée par dm verity. Il n’existe pas d’accès shell classique pour modifier le système. Les mises à jour remplacent l’image complète. Toute tentative de modification persistante du système est bloquée par conception. C’est l’un des modèles les plus radicaux côté cloud.
Talos Linux, un système Kubernetes figé et administré par API
Talos Linux est une distribution minimaliste conçue exclusivement pour les clusters Kubernetes avec une approche radicale de la sécurité et de la gestion système.
Il pousse encore plus loin le principe. Le système est non seulement en lecture seule, mais aussi sans shell interactif. L’administration passe exclusivement par une API. Le root filesystem est figé, aucune modification n’est possible en production. On est ici très proche d’une immutabilité totale appliquée à des serveurs Kubernetes.
Flatcar Container Linux, un conteneur en lecture seule à mises à jour atomiques
Flatcar Container Linux est un système orienté serveurs et conteneurs (héritier des principes de CoreOS) et conçu pour les infrastructures distribuées.
Il monte le système de base en lecture seule. Les mises à jour sont atomiques et remplacent entièrement l’OS. L’utilisateur ne peut pas modifier les composants système de manière persistante. Toute personnalisation durable passe par la configuration externe ou le reprovisionnement d’une nouvelle image.
Ubuntu Core, un système embarqué en lecture seule basé sur des composants signés
Ubuntu Core est une déclinaison d’Ubuntu pensée pour les objets connectés, l’embarqué et les environnements industriels nécessitant une forte robustesse.
Il repose sur un socle entièrement en lecture seule, composé de snaps système signés. Le système ne peut pas être modifié directement. Les mises à jour remplacent les composants par version. C’est un modèle d’immutabilité stricte orienté IoT et systèmes embarqués.

