Vanilla OS : première version finale disponible, une immuabilité à la demande
Tu sais ce qu'elle te dit la vanille ?
Le 05 janvier 2023 à 07h00
10 min
Logiciel
Logiciel
Vanilla OS est une distribution Linux sortie il y a quelques jours en version finale. Elle se distingue par un concept « d’immuabilité à la demande » et par des choix technologiques qui la rendent singulière. Pourtant, elle se destinait à l’origine à une vision beaucoup plus simple.
Le projet Vanilla avait initialement une mission « simple » : fournir une distribution Linux basée sur Ubuntu et un environnement GNOME sans aucune modification, ce que l’on appellerait une version « stock ». Le nom reflétait le projet, « vanilla » étant un terme anglo-saxon utilisé pour désigner une version ou un produit d’origine. Les joueurs de World of Warcraft l’emploient par exemple pour désigner la mouture 1.0 du jeu, par opposition à l’état actuel, après neuf extensions.
L’équipe de développement a cependant introduit plusieurs idées dans le projet initial, lui faisant prendre une direction toute autre. Aujourd’hui, avec la première version finale, on est toujours sur une base Ubuntu (22.10) et un GNOME « stock », mais Vanilla OS présente surtout un système d’immuabilité à la demande, des mises à jour « atomiques », ainsi qu’un gestionnaire de paquets maison, nommé APX.
Immuabilité : qu’est-ce que c’est ?
Un système immuable n’a rien de nouveau. Le concept est connu : tout ou partie des fichiers système sont en lecture seule et sont donc protégés contre l’écriture. Un système immuable, par définition, ne peut pas changer, à moins d’en avoir expressément l’autorisation par l’utilisateur.
L’immuabilité représente un ajout important pour la sécurité générale du système, de nombreuses attaques s’appuyant sur la capacité à modifier un ou plusieurs fichiers importants. Le logiciel malveillant reste en mémoire, mais ne peut pas écrire sur le disque, l’empêchant de s’ancrer. Un redémarrage suffit alors à le faire disparaître.
Les systèmes immuables sont nombreux et existent depuis des années. Chacun a son approche et étend plus ou moins l’immuabilité. On peut citer Flatcar Linux, qui rend le dossier /usr en lecture seule, Bottlerocket d’AWS, qui ajoute /root et désactive SSH par défaut, ou encore Talos Linux. Ce dernier pousse loin le concept, puisque l’immuabilité est générale, SSH et l’accès console sont supprimés, et les modules du noyau ne peuvent être chargés que s’ils ont été signés avec la même clé (éphémère) que celle utilisée pour compiler le noyau. On peut également citer Fedora Silverblue, dont nous avions parlé en 2019.
L’immuabilité « à la demande »
Dans Vanilla, on retrouve notamment un système de double partition, nommées simplement A et B. Un mécanisme de mise à jour, appelé tout aussi simplement ABRoot, s’occupe des opérations. Lorsqu’un paquet doit être installé, il commence par vérifier quelle partition est utilisée comme root. Si A est à la manœuvre, ABRoot crée une surcouche dans laquelle il applique la modification. Si tout s’est bien passé, le résultat est fusionné avec B. Vanilla basculera alors sur cette dernière au prochain démarrage. Si une erreur survient, la surcouche est abandonnée, et avec elle toutes les modifications.
On peut savoir à tout moment quelle partition est active via la commande :
sudo abroot get present
On trouve ce type d’atomicité des mises à jour dans de nombreux systèmes immuables ou même mobiles. Au départ, les développeurs avaient créé l’outil almost pour une immuabilité à la demande, en se basant sur l’attribut immuable de chaque fichier. Une approche dont ils indiquent qu’elle fonctionne sur n’importe quel type de partition et de système de fichiers. ABRoot a pris la relève en étant plus complet. Ils indiquent cependant dans la FAQ qu’OSTree pourrait être envisagé à l’avenir.
Ce mécanisme est complété par un autre, appelé Vanilla System Operator, ou VSO. Il est chargé de surveiller le système pour appliquer les mises à jour au bon moment, selon trois critères : la charge processeur doit être minimale, la batterie pleine et la connexion stable.
APX, le gestionnaire de paquets maison
Dans Vanilla, durant l’installation, apx est au centre des opérations. Étant à la fois un gestionnaire de paquets et un sous-système, il crée pendant l’installation du système un conteneur pour l’ensemble des paquets importants du système et dont l’accès sera restreint. On ne peut donc pas toucher à la base technique du système, interdisant les fausses manipulations et une partie des scénarios d’attaque.
apx s’utilise dans les grandes lignes comme apt, que l’on ne peut pas utiliser de manière habituelle. Une mise à jour des dépôts se lancera ainsi par la commande « apx update », sans le sudo. Même chose pour l’installation d’une application, par exemple « apx install gimp ». La boutique Logiciels de GNOME est présente mais, comme toujours avec ce type d’interface, on s’en passe très bien.
Toute installation crée automatiquement un conteneur équivalent. Ces derniers apparaissent autant comme des applications dans la grille de GNOME que comme des sous-systèmes que l’on peut gérer depuis le Centre de contrôle de Vanilla OS.
L’un des gros avantages d’apx est qu’il est compatible avec les paquets d’autres distributions, toujours en se servant des conteneurs. Toujours depuis le Centre de contrôle, on peut ainsi activer les sous-systèmes d’Arch Linux, Fedora et Alpine, mais rien n’empêche d’en ajouter d’autres manuellement. Si apx gère donc son propre format dans les dépôts officiels de Vanilla, il est également compatible Flatpak et AppImage.
Ce fonctionnement entraine, comme on s’en doute, une consommation beaucoup plus rapide de l’espace disque. L’installation de la distribution réclame d’ailleurs un minimum de 50 Go sur une partition, là où les autres Linux en demandant souvent 20 ou 25. C’est le problème principal des conteneurs, comme nous l’avions souligné dans notre article dédié à AppImage, Snap et Flatpak.
Pour aller plus loin
De même, l’installation par conteneurs fait que toutes les applications ainsi ajoutées vont rejoindre la grille d’applications GNOME, même les utilitaires s’exécutant dans la console, comme htop. Pourquoi ? Parce qu’il s’agit justement d’un conteneur et qu’il n’est pas installé de manière habituelle.
Rien n’empêche de déclencher une installation classique en contournant apx, le système en donne la possibilité. La commande devient alors beaucoup plus verbeuse :
sudo abroot exec apt install htop
Cette fois, il faut sudo
pour donner les droits administrateurs à la commande, car abroot exec
fait entrer le shell dans un mode transactionnel. Autrement dit, on s’apprête à autoriser une transaction classique, interdite par défaut. C’est l’exemple donné par l’un des fondateurs de Vanilla OS, l’Italien Mirko Brombin.
Contrairement aux installations réalisées par apx, on reçoit cette fois un avertissement expliquant ce qui va se passer, et le danger inhérent à réaliser ce genre de transaction. Le message prévient également qu’il faudra redémarrer le système pour appliquer le changement et basculer entre les partitions, selon le principe expliqué précédemment dans l’article.
Pour rester dans le même exemple, on peut vérifier après le redémarrage avec la commande « sudo abroot get present
» que l’on a bien basculé sur la deuxième partition. Après quoi, on pourra effectivement lancer la commande « htop
» depuis la console, ce qui n’était pas possible avant.
Bon d’accord, et le reste ?
Pour le reste, on est sur une base Ubuntu 22.10 Kinetic Kudu, avec GNOME 43 et un noyau Linux 5.19 générique. À la différence toutefois du système de Canonical, il n’y a aucune modification introduite par cette dernière. Il n’y a donc pas de dock particulier, pas de thème Yaru, pas d’applications ou de réglages spécifiques. On gère les fichiers avec Nautilus, on navigue avec Web, etc. Il n’y a aucun autre navigateur présent et on ne trouve aucun client email.
Ce qui rend d’ailleurs l’image ISO assez légère, avec son petit 1,68 Go. L’installeur est maison et a été écrit en GTK4 avec libadwaita. Il remplace Calamares, même si l’équipe avait un temps envisagé de récupérer l’installeur de Clear Linux (jade) pour sa version finale. Cependant, cette image n’installe qu’un système basique, dans lequel il manque par exemple la quasi-totalité des applications GNOME.
Pas d’inquiétude, tout est prévu : au premier démarrage, un assistant de premier lancement vous aidera à choisir ce que vous souhaitez installer. On pourra donc rapatrier toute la suite GNOME, LibreOffice et d’autres éléments comme des codecs supplémentaires. Toutes ces installations se feront en ligne. Dans notre cas, malgré la présence d’une connexion fibre, l’étape a pris près de 15 min, ce qui nous a paru anormalement long, la faute sans doute à des dépôts un peu surchargés. S’il vous manque des applications, vous pouvez récupérer le reste dans Logiciels.
Pour être précis, il faudra chercher Softwares. La traduction française est assez aléatoire, avec un mélange anglais-français permanent. L’installation du système n’a par exemple pas détecté la langue. De même, après avoir sélectionné le français comme langue du clavier, il a fallu préciser à l’assistant que nous le voulions aussi pour l’interface.
Malgré ces quelques défauts de jeunesse, Vanilla OS pourrait bien se faire une place dans le cœur des personnes cherchant avant tout un système stable, sans fioritures et immuable. APX, ABRoot, les mises à jour atomiques ou encore l’assistant de configuration au premier lancement sont des arguments de poids, de quoi faire un premier essai, par exemple dans une machine virtuelle.
On reste néanmoins sur la première version officielle d’une distribution « inconnue », mais ayant bien sûr son dépôt sur GitHub. Même si les mécanismes présents doivent assurer en théorie une très bonne tenue dans le temps, il peut y avoir des bugs pouvant gâcher l’expérience ou des incompatibilités étranges avec le matériel, même si la base Ubuntu 22.10 limite les risques de ce côté. Précisons à ce propos que l’installation de Vanilla OS a très bien fonctionné dans VirtualBox 7, mais pas dans VMware Workstation 17, dans lequel les évènements souris étaient mal pris en compte.
Notez enfin que Vanilla OS possède un mécanisme intégré pour les mises à jour majeures du système. Quand la version 23.04 sortira – le système suivra les évolutions d’Ubuntu – un assistant graphique apparaîtra automatiquement à l’écran pour s’occuper de la transition.
Vanilla OS : première version finale disponible, une immuabilité à la demande
-
Immuabilité : qu’est-ce que c’est ?
-
L’immuabilité « à la demande »
-
APX, le gestionnaire de paquets maison
-
Pour aller plus loin
-
Bon d’accord, et le reste ?
Commentaires (14)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 05/01/2023 à 07h11
Apparemment c’est basé sur podman. Quand tu actives le support arch par ex, ca installe un système arch dans podman, d’où une tendance à l’obésité Même la Ubuntu de base est dans podman.
Podman peut aussi poser des soucis de fiabilité : s’il tombe ou est attaqué, tu perds tout. Le système est loin d’être résiliant.
Le dev n’en est pas à son premier coup d’essai avec podman, il avait déjà créé comme ça une plateforme de jeux vidéos. Ici il passe à l’échelle supérieure.
Un retour d’expérience plutôt négatif sur cette nouvelle distro, qui semble encore loin de meriter la distinction “stable”. https://linuxiac.com/vanilla-os-promising-idea-disappointing-implementation/
Le projet reste sympa dans ses principes, mais voilà, les bases font que ce n’est pas vraiment ce à quoi on s’attendait sous le capot.
Le 05/01/2023 à 07h55
en os immutable, il y a aussi Micro-OS chez opensuse
Le 05/01/2023 à 07h57
Je connaissais pas mais en lisant l’article j’ai l’impression qu’ils se sont un peu perdus en chemin non ? J’ai du mal à voir pourquoi je l’utiliserai. Si j’ai besoin d’une distrib « vanilla », franchement on peut pas dire que Fedora ou Debian soit « polluées ».
Si j’ai vraiment besoin (ou envie hein, chacun sa came) d’immuabilité, autant partir sur des choses plus matures comme NixOS ou même Guix.
Je comprend pas trop l’intérêt de l’entre deux. Ça fait un peu compromis mou. Mais je reste ouvert si quelqu’un veut me prouver l’inverse, si c’est moi qui mélange tout ou si cette distrib parvient à trouver son public. Pourquoi pas.
Merci pour la découverte en attendant.
Le 05/01/2023 à 10h51
Tiny core linux
Et Windows en activant le writefilter.
Le 05/01/2023 à 10h53
Quelque chose empêche d’exploiter une faille critique, passer root et juste véroler un système durablement en utilisant l’outil abroot de manière offensive ?
Pour cette distribution, j’ai l’impression que l’objectif est empêcher un débutant de casser son système plus qu’autre chose. Je ne comprends pas l’objectif final de leurs outil qui, selon leurs dépôt git, n’est pas prêt pour la production.
Le 05/01/2023 à 11h16
Habitué aux distrib’ linux, j’ai utilisé Silverblue pendant plus d’un an, mais j’ai dû mal avec le concept d’OSTree que je trouve être une surcouche lourde et inutile, là où OpenSuse MicroOS utilise les fonctionnalités natives de BtrFS. J’utilise MicroOS depuis 3 mois, j’en suis plutôt satisfait, et distrobox est intégré (son développeur semble d’ailleurs utiliser aussi MicroOS), permettant d’installer comme VanillaOS n’importe quelle distribution et ses packages GUI qui seront intégrés au Gnome Shell.
Le 05/01/2023 à 14h11
Pas compris l’intérêt des deux partitions. Si l’OS est capable de créer/fusionner/abandonner des surcouches, autant tout faire sur la partition active.
C’est parce qu’il ne sait pas résoudre les conflits entre la surcouche de travail et la surcouche d’update ?
Le 05/01/2023 à 17h31
Sous quel OS hôte ? VMware Workstation pour Windows est très très très différent de VMware Workstation pour Linux
Le 05/01/2023 à 18h48
Quel est le cas d’usage de ces distributions immuables ? Kiosque, client léger, poste de travail jetable ? Car pour du serveur au final on peut aussi torcher la VM (si on travaille encore en VM…) et la recréer automatiquement en cas de compromission.
Également, si les partitions comme /usr sont en RO, j’imagine que le /home l’est aussi ou bien est monté en noexec ?
Le 05/01/2023 à 20h39
C’est cool pour démarrer sur USB ou SDCard (comme sur une raspberry) pour ne pas user le support.
Le 05/01/2023 à 21h24
Un peu comme un live-USB en gros ?
Le 06/01/2023 à 17h11
En effet c’est étonnant, j’utilise quotidiennement un Linux dans VMware Workstation 15 puis 16 sous hôte Windows et je n’ai jamais eu de problème de souris (juste les boutons au-delà des 3 premiers qui ne fonctionnent pas mais je n’ai jamais cherché pourquoi), autant sous X qu’en console avec GPM.
Le 06/01/2023 à 18h03
Déjà que l’univers Linux est très (trop) riche de variantes. Ca me chagrine de voir une énième version/fork d’Ubuntu qui fait doublon avec ce que fait déjà le projet Fedora via les spins Fedora Silverblue pour Gnome et Fedora Kinoite pour KDE Plasma (OS read only + environnement de bureau stock).
Le 06/01/2023 à 23h20
Je vois l’intérêt du système : protéger le noyau et tout ce qui est essentiel si une mise à jour est foireuse ou compromise mais au final, qui est réellement concerné ? Normalement, les distributions sont testées en amont et les utilisateurs un peu avancés savent comment réparer leur distribution préférée.
Sinon, je rejoins @Goomba, le projet fait un peu doublon avec fedora silverblue et kinoite. Ce système de double partition peut montrer une approche différente mais qui risque de prendre du temps au démarrage de l’ordinateur si beaucoup d’éléments sont modifiés dans la partition “active”. Sans oublier la perte d’espace liée à ce système de double partitions.
Cependant, je pense que ces formes de protections des fichiers essentiels a de l’avenir, comment, je en sais pas, pour quel public, je ne sais pas non plus.
Depuis 2 ans, j’ai une machine virtuelle de fedora silverblue et je pense que les protections sont utiles, cependant, c’est compliqué d’installer un logiciel mais surtout de mettre à jour le logiciel s’il a été installé en dehors du centre de logiciels gnome. J’y ai installé dessus chrome et les dépôts tiers de rpm fusion mais à chaque montée en version (fedora 36 vers 37 par exemple) il faut désinstaller chrome et supprimer le dépôt rpm fusion pour les réinstaller après. Pas toujours pratique si la liste des logiciels incompatibles est importante.
Je connaissais opensuse microOS mais juste de nom, je ne l’ai pas testé et cela va être l’occasion de voir leur approche.