Distri - une distribution pour tester les technologies de gestion rapide des paquets

Michael Stapelberg, auteur du gestionnaire de fenêtres en mosaïque i3wm et ancien développeur Debian actif (maintenu environ 170 paquets), développe distribution expérimentale distribution et un gestionnaire de paquets du même nom. Le projet se positionne comme une exploration des moyens possibles d'augmenter les performances des systèmes de gestion de paquets et incarne de nouvelles idées pour créer des distributions. Le code du gestionnaire de packages est écrit en Go et distribué par sous licence BSD.

Une caractéristique clé du format de package de la distribution est que le package est livré sous la forme d'images SquashFS, au lieu d'archives tar compressées. L'utilisation de SquashFS, similaire aux formats AppImage et Snap, vous permet de « monter » un package sans avoir à le décompresser, ce qui économise de l'espace disque, permet des modifications atomiques et rend le contenu du package instantanément accessible. Dans le même temps, les packages de distribution, comme dans le format « deb » classique, ne contiennent que des composants individuels liés par des dépendances avec d'autres packages (les bibliothèques ne sont pas dupliquées dans les packages, mais sont installées en tant que dépendances). En d’autres termes, distri essaie de combiner la structure granulaire des paquets des distributions classiques telles que Debian avec les méthodes de livraison d’applications sous forme de conteneurs montés.

Chaque package de distri est monté dans son propre répertoire en mode lecture seule (par exemple, le package avec zsh est disponible sous le nom « /ro/zsh-amd64-5.6.2-3 »), ce qui a un effet positif sur la sécurité et protège contre les modifications accidentelles ou malveillantes. Pour former une hiérarchie de répertoires de services, tels que /usr/bin, /usr/share et /usr/lib, un module FUSE spécial est utilisé, qui combine le contenu de toutes les images SquashFS installées en un tout (par exemple, le / ro/share permet d'accéder aux sous-répertoires de partage de tous les packages).

Forfaits in distri fondamentalement livré à partir de gestionnaires appelés lors de l'installation (pas de hooks ni de déclencheurs), et différentes versions d'un package peuvent coexister les unes avec les autres, ce qui rend possible l'installation parallèle de packages. La structure proposée limite les performances du gestionnaire de packages uniquement au débit du réseau via lequel les packages sont téléchargés. L'installation ou la mise à jour réelle du package est effectuée de manière atomique et ne nécessite pas de duplication de contenu.

Les conflits lors de l'installation des packages sont éliminés puisque chaque package est associé à son propre répertoire et le système permet la présence de différentes versions d'un package (le contenu du répertoire avec une révision plus récente du package est inclus dans les répertoires syndicaux). La construction de packages est également très rapide et ne nécessite pas l'installation de packages dans un environnement de construction séparé (les représentations des dépendances nécessaires à partir du répertoire /ro sont créées dans l'environnement de construction).

Prise en charge commandes typiques de gestion de packages, telles que « distri install » et « distri update », et au lieu des commandes d'information, vous pouvez utiliser l'utilitaire standard « ls » (par exemple, pour afficher les packages installés, affichez simplement une liste de répertoires dans le « /ro", et afin de savoir dans quel package le fichier est inclus, voyez où mène le lien de ce fichier).

Le kit de distribution prototype proposé à l'expérimentation comprend environ 1700 colis et prêt images d'installation avec un programme d'installation, adapté à la fois à l'installation en tant que système d'exploitation principal et à l'exécution dans QEMU, Docker, Google Cloud et VirtualBox. Il prend en charge le démarrage à partir d'une partition de disque cryptée et un ensemble d'applications standards pour créer un bureau basé sur le gestionnaire de fenêtres i3 (Google Chrome est proposé comme navigateur). Fourni une boîte à outils complète pour assembler une distribution, préparer et générer des packages, distribuer des packages via des miroirs, etc.

Source: opennet.ru

Ajouter un commentaire