NixOS et le visage changeant des systèmes d’exploitation Linux

  • Français


  • Une analyse Une nouvelle version de la distribution Linux NixOS a été publiée, juste un jour après un article de blog controversé qui demandait “Nix dépassera-t-il Docker?”

    Pour les gens de DevOps, cela équivalait à un clickbait : Nix et Docker sont des outils différents pour différents travaux, et de toute façon, il est possible d’utiliser Nix pour créer des images Docker.

    La distribution, qui a atteint la version 21.11 le dernier jour de novembre, a été construite autour du gestionnaire de packages Nix purement fonctionnel.

    Nix est l’une des nombreuses réponses aux nombreuses complexités de l’emballage des logiciels Linux. Compte tenu des problèmes liés aux dépendances, aux mises à jour et aux nombreux problèmes qu’elles peuvent causer – ce qui dans certains contextes devient une blague – certains des développeurs Linux les plus alternatifs ont pensé que la meilleure façon de résoudre ce problème serait de repenser la façon dont les systèmes d’exploitation sont construits et installés.

    Il existe de nombreux efforts de ce type, et les gestionnaires de packages fonctionnels se situent à un extrême. Nix est l’outil le plus mature de ce type, datant de 2003 ; le GNU Guix conceptuellement similaire a dix ans de moins. Nix utilise son propre langage de définition, tandis que le projet GNU utilise le dialecte Guile de Scheme.

    Les deux modifient profondément la hiérarchie traditionnelle des répertoires Unix. Au lieu de cela, ils prennent une spécification formelle d’un état du système souhaité, écrit dans un langage déclaratif et fonctionnel, puis le résolvent automatiquement. L’approche présente un certain nombre d’avantages : des constructions de systèmes fiables et reproductibles ; cohérence garantie; mises à niveau atomiques avec restauration ; la possibilité d’avoir plusieurs versions des mêmes programmes installées simultanément sans conflit ; et plus.

    Mais l’effet secondaire de ceci est trop difficile à avaler pour certains techniciens : la disposition du système de fichiers qui en résulte n’est plus facilement lisible par l’homme. Les programmes vivent dans des dossiers dont les noms sont basés sur des hachages cryptographiques. Il existe également d’autres coûts, tels que des temps de construction lents, bien qu’il existe des outils de mise en cache binaire pour vous aider.

    Il n’est pas nécessaire d’utiliser l’une ou l’autre des distributions pour profiter des avantages du système d’emballage – les deux peuvent fonctionner sur d’autres distributions et même sur des systèmes d’exploitation, y compris macOS.

    L’autre extrême de cette échelle est GoboLinux. Du même âge que Nix, cette distribution expérimentale rejette également complètement la disposition traditionnelle du système de fichiers Unix, mais cette fois, elle est remplacée par un Suite arborescence de répertoires lisible par l’homme avec des noms en anglais simple.

    La disposition traditionnelle des répertoires Unix combine des fichiers non liés en fonction de leur type ou des rôles système pour lesquels ils sont requis, dans un fichier semi-standardisé. [PDF] arbre. Le résultat est grand, complexe et quelque peu cryptique – bien qu’il y ait des efforts pour le simplifier – mais des millions d’utilisateurs d’Unix le connaissent.

    Gobo renverse cette disposition. Chaque application, ainsi que tous ses composants et dépendances, sont conservés dans sa propre arborescence de répertoires. Étant donné que les noms de répertoire sont versionnés, différentes versions de la même application peuvent coexister. L’installation est aussi simple que la copie d’un répertoire, et la désinstallation signifie simplement en supprimer un. Cela ressemble à la façon de faire de macOS, mais c’est plus radical, restructurant l’ensemble du système d’exploitation bien en dessous du niveau de l’interface graphique.

    Malheureusement, GoboLinux n’a jamais vraiment fait son chemin, et les gestionnaires de paquets fonctionnels semblent être juste un peu trop radicaux pour la plupart des mainteneurs de distribution – tout comme les langages de programmation fonctionnels le sont pour de nombreux programmeurs. Bien que Nix ou Guix offrent définitivement des avantages, pour les utiliser, les administrateurs système surmenés doivent apprendre beaucoup de nouveaux outils et méthodes complexes. En revanche, des outils comme Docker sont relativement simples à comprendre et à utiliser.

    Ainsi, au lieu de réorganiser la façon dont les distributions sont construites, les fournisseurs réimplémentent des fonctionnalités similaires à l’aide d’outils plus simples hérités du monde des serveurs : conteneurs, systèmes de fichiers squashfs dans des fichiers uniques et, pour les distributions qui en disposent, fournir une fonctionnalité de restauration.

    Tous les fournisseurs de Linux d’entreprise y travaillent. L’objectif est de créer des systèmes d’exploitation aussi robustes que des systèmes d’exploitation mobiles : périodiquement, le fournisseur fournit une image entièrement testée et intégrée que les utilisateurs finaux ne peuvent pas modifier et n’ont pas besoin de modifier. En utilisation normale, le système de fichiers racine est monté en lecture seule et il n’y a pas de gestionnaire de paquets.

    Red Hat travaillait sur un système d’exploitation immuable avec des mises à jour transactionnelles sous la bannière de “Project Atomic”, mais a ensuite acquis CoreOS. Cela a entraîné un chevauchement considérable et l’édition Atomic Host de RHEL est désormais “sunset” sans remplacement clair. Dans l’intervalle, le projet Fedora propose CoreOS pour les serveurs hébergeant des conteneurs, une variante de l’Internet des objets et des éditions de bureau avec GNOME ou KDE.

    Étant donné que Red Hat n’utilise pas actuellement de système de fichiers avec des instantanés, il a dû inventer un système d’installation transactionnelle (pensez à « Git pour les binaires ») appelé OStree et le superposer à un système de fichiers conventionnel.

    Le projet openSUSE a MicroOS, et SUSE a récemment lancé son frère SLE Micro. Les deux se concentrent sur les serveurs exécutant des charges de travail de conteneur, mais vous pouvez installer un bureau sur MicroOS si vous le souhaitez.

    SUSE utilise Btrfs et s’appuie fortement sur ses fonctionnalités d’instantané et de copie sur écriture, ce qui signifie qu’il peut offrir des mises à jour et des restaurations transactionnelles, un système de fichiers racine qui, en fonctionnement normal, est monté en lecture seule, mais également l’installation et les mises à jour du package utilisateur final, sans besoin d’OStree ou de quelque chose comme ça.

    Depuis que Canonical a annulé son interface utilisateur tactile et son système d’exploitation pour téléphone/tablette, le seul système d’exploitation immuable de la société est Ubuntu Core, sa distribution IoT.

    Il n’y a pas beaucoup de diffusion, mais il existe déjà un Linux de bureau mature basé sur des images immuables, basé sur OStree et Flatpaks : EndlessOS. Comme il n’y a pas de gestionnaire de paquets, c’est un peu discutable, mais Endless est en fait basé sur un noyau Debian. Il possède un système de fichiers racine en lecture seule, une version de GNOME Shell légèrement personnalisée pour ressembler un peu plus à Windows, et toutes les applications sont gérées en tant que Flatpaks.

    La conception des distributions Linux est en train de changer, et comme pour les systèmes d’emballage, les approches efficaces et légères semblent sur le point de perdre par rapport à des conceptions plus simples mais plus pragmatiques… mais la pression évolutive des petits appareils intelligents avec un stockage et une bande passante très limités pourrait encore changer cela. ®

    L'équipe de Comparaland

    L'équipe rédactionnnelle du site

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *