Les systèmes d’exploitation du futur sont-ils immuables ?

Les développeurs parlent beaucoup de « l’immuabilité ». En dehors du monde technique, cela signifie généralement quelque chose de négatif : immobile, inflexible et retranché. Cependant, dans le domaine technique, ces caractéristiques deviennent un avantage et garantissent qu’un système est fiable et reproductible.
Comme de nombreux concepts et tendances dans technologiece n’est pas nouveau. NixOS (nous en reparlerons plus tard) existe depuis plus de vingt ans, et Chrome OS est probablement le système d’exploitation (OS) immuable le plus largement utilisé. Cependant, l’adoption généralisée de conteneurs avec Docker il y a un peu plus de 10 ans, le concept a fait l’objet d’une plus grande attention.
En règle générale, vous définissez un conteneur dans un fichier texte et un environnement d’exécution de conteneur transforme cette définition en services en cours d’exécution. Cela signifie qu’il est relativement facile d’arrêter, de recréer et de redémarrer le conteneur en fonction de cette définition. Peu importe le nombre de fois que vous le recréez et le redémarrez, vous pouvez être sûr qu’il sera le même : immuable.
Équipes de développement utilisent désormais largement les conteneurs, gérés et orchestrés par des outils tels que Kubernetes. Les conteneurs prennent en partie le concept d’immuabilité.
Il existe toujours un système d’exploitation et de nombreux autres niveaux de logiciels qui les entourent. Tout doit être immuable pour disposer d’un système d’exploitation totalement fiable, fiable et reproductible.
Cela semble peut-être extrême pour ceux d’entre nous qui utilisent régulièrement Windows, macOS ou la plupart des distributions Linux. Mais depuis les appareils et serveurs de pointe jusqu’aux ordinateurs de bureau que vous et moi utilisons quotidiennement, les systèmes d’exploitation immuables entrent désormais dans une réalité pratique.
Pourquoi cela se produit-il maintenant ? Comme me le dit Gabriel Aguiar Noury, chef de produit Ubuntu Core chez Canonical, c’est à cause de la croissance des réglementations en matière de cybersécurité de la part des gouvernements du monde entier. « Ces réglementations indiquent généralement aux fabricants d’appareils et aux développeurs que les choses vont changer. Nous devons être plus conformes », déclare Noury. « Nous devons nous assurer que chaque élément de nos produits dispose d’un plan de sécurité, qui inclut la maintenance de la sécurité. »
L’UE a introduit réglementation sur la cybersécurité en 2019, et Noury ajoute que le délai de mise en conformité de la loi suscite beaucoup d’intérêt. « La réglementation européenne sur la cybersécurité gagne du terrain et, en 2027, nous devrons nous y conformer. Nous sommes donc actuellement dans cette période où nous devons rendre les appareils que nous lançons conformes à cela. Et l’idée d’immuabilité entre en ligne de compte.
Nix et NixOS
Nix est le plus ancien système d’exploitation immuable encore actif. Les gens utilisent souvent « Nix » et « NixOS » de manière interchangeable, mais ils sont différents. Nix est un gestionnaire de packages utilisé pour créer et installer de petites dépendances, telles que OpenSSL, sur des dépendances plus grandes, telles que Firefox ou une chaîne d’outils de langage de programmation.
Comme le dit Valentin Gagarin, membre de l’équipe des responsables de Nix : «Nix représente beaucoup de choses pour beaucoup de gens. Mais au fond, Nix est étonnamment simple.
Presque tous les packages que vous installez ne vivent pas de manière isolée et utilisent leur propre arborescence complexe de dépendances. Pour gérer cela et rester immuable, lorsque vous créez et installez un package avec Nix, il conserve un hachage cryptographique de tout ce qui est utilisé pour installer cette dépendance au moment de l’installation.
Si vous réinstallez la dépendance plus tard, Nix crée un nouveau hachage, ce qui signifie que vous pouvez revenir à la version fonctionnelle en cas de problèmes. « Nix connecte les relations entre les fichiers d’un système de fichiers qui font partie d’une application binaire et les enregistre de manière immuable », explique Gagarine. « Chaque fois que vous souhaitez transférer ces fichiers ailleurs, tirer sur une extrémité vous permet d’obtenir le tout plutôt que de s’effondrer. »
NixOS va plus loin. Vous pouvez définir l’intégralité du système d’exploitation à partir des packages dans le gestionnaire de packages Nix et la configuration de ces packages. La configuration dépend des packages que vous installez, mais peut inclure des périphériques de démarrage, des messages de connexion, des comptes d’utilisateurs, etc. De plus, Nix exécute chaque processus qui crée ces fichiers dans un bac à sable isolé, renforçant ainsi la sécurité.
Pour tous ceux qui ont déjà utilisé la gestion des appareils mobiles (MDM) ou quelque chose de similaire pour déployer des images système cohérentes sur un parc de machines, cela peut ne pas sembler si révolutionnaire, mais NixOS ne nécessite pas l’envoi de fichiers image volumineux de plusieurs gigaoctets sur les réseaux. c’est juste un fichier texte créé lors du déploiement.
Encore une fois, comme le gestionnaire de packages, vous pouvez revenir en arrière en cas de problème. NixOS vous permet de basculer entre différentes configurations de système d’exploitation dans le seul temps nécessaire à la création de ce système. Il en va de même si un processus d’installation est interrompu. Au redémarrage, il restaure le système au dernier bon état et vous pouvez réessayer.
Nix a développé ces idées depuis longtemps malgré leur application qui semble moderne. Il existe depuis plus de 20 ans et est plus ancien que Docker et Git.
Comme l’ajoute Gagarine, ce n’était même pas le premier. « Nix n’était pas non plus la première tentative de modification du packaging Linux. Nix avait des précurseurs qui faisaient essentiellement la même chose mais étaient plus compliqués et moins accessibles au grand public Linux. Et je pense que ce qui rend Nix différent, c’est sa simplicité conceptuelle. Et il existe toujours, contrairement à beaucoup d’autres.
Communauté et entreprise
La communauté Nix est open source et financée par des dons, avec environ 800 contributeurs mensuels actifs. Mais la tendance moderne à l’immuabilité et la manière dont Nix s’y intègre n’ont pas échappé aux entreprises, même si Gagarine admet qu’il n’est pas tout à fait sûr des origines de cette montée d’intérêt.
Trois des produits commerciaux les plus intéressants basés sur NixOS sont Systèmes déterminés, Floxet DevBox. Tous en sont aux premiers stades, mais eux et des outils comme eux reconnaissent que peut-être le monde « plus simple » du développement utilisant des environnements d’exécution de conteneurs tels que Docker n’était peut-être pas aussi simple que promis et offrent une alternative.
Noyau Ubuntu
Quand beaucoup pensent à Linux, ils pensent à Ubuntu depuis Canonique. Il est difficile d’obtenir des chiffres réalistes, car la plupart des sources font état de l’utilisation des ordinateurs de bureau, alors qu’en réalité, Linux règne en maître dans ses centres de données et ses serveurs.
L’offre immuable de Canonical, Noyau Ubuntune s’adresse pas aux utilisateurs d’ordinateurs de bureau mais aux appareils de périphérie. Ce sont les petits appareils informatiques que l’on trouve désormais partout, des voitures aux robots en passant par les villes intelligentes et l’industrie. N’exécutant souvent qu’une poignée de services sur de petites cartes embarquées, les appareils de périphérie sont généralement gérés à distance, à grande échelle, et exécutent des fonctions cruciales où la sécurité et la fiabilité sont primordiales. Un cas d’utilisation parfait pour un système d’exploitation immuable.
Noury explique les cas d’usage. « Pensez au système d’exploitation principal et aux éléments essentiels de votre appareil. Ils ne devraient pas changer au cours des opérations normales et vous ne devriez pas avoir besoin de les entretenir.
Au lieu de cela, Ubuntu Core vous permet de vous concentrer sur les composants fonctionnels uniques de votre cas d’utilisation et d’être sûr qu’ils ne changeront pas sans votre contribution. « Lorsque vous déployez un kiosque numérique, un appareil domestique intelligent ou un robot fonctionnant dans une chaîne de fabrication, vous souhaitez vous concentrer sur la résolution de vos problèmes et être sûr que les composants sur lesquels vous comptez ne changeront pas tant que vous ne les aurez pas modifiés », ajoute Noury. .
Canoniques Format Snap et Snap Store sont similaires au gestionnaire de packages Nix. L’installation d’une dépendance à partir du Snap Store contient toutes les dépendances au moment de l’installation, avec des protections supplémentaires qui protègent le système d’exploitation hôte de l’application « cassée ».
Pour tout utilisateur de macOS, cela peut ressembler beaucoup à une installation depuis l’App Store, mais comme les utilisateurs de Linux sont plus habitués à créer logiciel au fur et à mesure de leur installation, il s’agit d’une approche plus nouvelle et qui divise la communauté Linux.
Ubuntu Core fonctionne différemment de NixOS. Au lieu de configurer avec un fichier texte, vous utilisez une série de modèles pour définir les composants centraux d’un système d’exploitation, tels que l’architecture, la base du système d’exploitation, les snaps et les versions de snap à installer et les niveaux de sécurité à installer. utiliser.
Cela fait, vous pouvez déployer, créer et installer une image sur toutes les machines. Si vous utilisez Canonical Multipasse outil, vous pouvez également créer, tester et créer des images localement dans une machine virtuelle avant de les déployer et parcourir des images prédéfinies sur lesquelles baser la vôtre.
Bien qu’Ubuntu Desktop reste non immuable, il dispose également du magasin Snap pour un certain degré d’immuabilité, et ce message d’un ingénieur canonique détaille comment pourrait travail.
Fedora Silverblue et Vanilla OS
De l’un des autres grands noms des distributions Linux, Feutrel’offrande immuable, Bleu argentécombine des éléments de NixOS et Ubuntu Core. Pour les applications graphiques plus volumineuses, Silverblue utilise Flatpackqui fonctionne de manière similaire au Snap Store (et à l’App Store), distribuant les applications sous la forme d’un ensemble autonome.
Utilisation des outils de développement Boîte à outilsqui à son tour utilise des conteneurs pour permettre aux développeurs de disposer d’une série de dépendances fonctionnelles par projet sans effet sur le système d’exploitation de base. Cependant, il n’existe pas de fichier de configuration reliant le tout comme avec NixOS et Ubuntu Core.
Système d’exploitation vanille est similaire. Le système d’exploitation dans son ensemble n’est pas immuable, mais ses éléments clés le sont. Il a sa propre approche d’un gestionnaire de paquets sous la forme de Apexqui installe les packages dans un conteneur, isolant tout du système d’exploitation hôte et, encore une fois, facilitant le basculement entre les versions.
En plus des installations individuelles, vous pouvez également définir des environnements de développement basés sur d’autres distributions Linux avec Apx, ce qui positionne Vanilla OS comme une sorte de hub Linux. Il gère également les mises à jour du système différemment, en créant des partitions temporaires (encore une fois, basées sur des images de conteneurs) pour la mise à jour vers lesquelles il ne bascule qu’après un redémarrage réussi (les versions récentes de macOS font quelque chose de similaire).
Enfin, si vous souhaitez être très prudent et immuable, vous pouvez rendre l’intégralité du système de fichiers en lecture seule, ce qui signifie que tout doit s’exécuter dans des conteneurs.
Fedora Silverblue et Vanilla OS ne vont pas aux extrêmes immuables que fait NixOS, mais ils rendent immuables les parties les plus importantes et les plus vulnérables.
À qui faire confiance
La confiance est un aspect central tout au long de cette discussion. L’argument de vente des systèmes d’exploitation immuables est qu’ils sont fiables et sécurisés. Mais pourquoi devriez-vous leur faire confiance ?
Comme le dit Noury, « immuabilité ne signifie pas nécessairement sécurité ». À la base, les mesures préventives sont qu’elles vous permettent de tester et de restaurer s’il y a des problèmes, et que généralement, les services s’exécutent dans des bacs à sable isolés (que ce soit des conteneurs ou autre chose), ce qui signifie que tout service malveillant peut avoir un impact minimal sur quoi que ce soit d’autre. .
Pour les offres commerciales telles qu’Ubuntu Core ou NixOS commercialement pris en charge, les responsables surveillent généralement les bases de données Common Vulnerabilities and Exposures (CVE) pour s’assurer que les versions sont exemptes de vulnérabilité. Néanmoins, ces sources sont loin d’être parfaites et ne mettent pas en évidence les bogues, les développeurs doivent donc toujours effectuer leurs propres tests – ce que, heureusement, les systèmes d’exploitation immuables facilitent.
Un avenir immuable
Comme je l’ai expliqué tout au long de cet article, même si vous ne voulez pas tout mettre en œuvre avec un système d’exploitation totalement immuable comme NixOS et toutes les mises en garde qui l’accompagnent, le besoin accru de sécurité dans les appareils grand public modernes signifie que de nombreux De toute façon, les systèmes d’exploitation que vous utilisez sont déjà partiellement immuables, notamment lorsqu’il s’agit d’installer des mises à jour.
Un de mes articles récents traitait de Homebrewle gestionnaire de packages pour macOS (et aussi maintenant Linux), et cela ajoute un degré d’immuabilité à l’installation d’applications, en fonction de la façon dont vous l’utilisez.
Même si les communautés autour des systèmes d’exploitation immuables mentionnées dans cet article ont travaillé dur pour construire des systèmes aussi accessibles et utilisables que possible, un système d’exploitation totalement immuable reste encore plus complexe qu’un système « conventionnel ». Vous devez comprendre qu’une application n’équivaut pas nécessairement à une installation et savoir comment basculer entre elles. En raison des installations multiples, ils peuvent également occuper plus d’espace disque, ce qui est facile à oublier.
Je ne suis pas encore sûr que les systèmes d’exploitation totalement immuables soient l’avenir des systèmes d’exploitation, mais certains de leurs concepts et principes le sont certainement. Ils constituent un exemple classique de la façon dont il faut parfois 20 ans, voire plus, pour qu’un concept technique trouve son temps.
Source link