Distri — dystrybucja do testowania technologii szybkiego zarządzania pakietami

Michael Stapelberg, autor menedżera okien i3wm i były aktywny deweloper Debiana (odpowiedzialny za około 170 pakietów), rozwija eksperymentalna dystrybucja distri i nazwany na cześć menedżera pakietów. Projekt jest przedstawiany jako badanie możliwych sposobów zwiększenia wydajności systemów zarządzania pakietami i wciela w życie kilka nowych pomysłów dotyczących budowy dystrybucji. Kod menedżera pakietów napisany jest w języku Go i rozpowszechniany na licencji BSD.

Kluczową cechą zaproponowanego w dystrybucji formatu pakietów jest dostarczanie pakietu w postaci obrazów SquashFS, zamiast skompresowanych archiwów tar. Zastosowanie SquashFS, podobnie jak w formatach AppImage i Snap, pozwala na "zamontowanie" pakietu bez potrzeby jego rozpakowywania, co oszczędza miejsce na dysku, umożliwia atomowe zmiany i sprawia, że zawartość pakietu jest natychmiast dostępna. Pakiety distri, podobnie jak w klasycznym formacie "deb", zawierają tylko pojedyncze komponenty powiązane zależnościami z innymi pakietami (biblioteki nie są duplikowane w pakietach, a instalowane jako zależności). Innymi słowy, distri stara się połączyć granulatową strukturę pakietów klasycznych dystrybucji, takich jak Debian, z metodami dostarczania aplikacji w postaci montowanych kontenerów.

Każdy pakiet w distri montowany jest w swoim katalogu w trybie tylko do odczytu (na przykład pakiet z zsh dostępny jest jako "/ro/zsh-amd64-5.6.2-3"), co pozytywnie wpływa na bezpieczeństwo i chroni przed przypadkowymi lub złośliwymi zmianami. Do tworzenia hierarchii katalogów systemowych, takich jak /usr/bin, /usr/share i /usr/lib, zastosowano specjalny moduł FUSE, łączący zawartość wszystkich zainstalowanych obrazów SquashFS w jedną całość (na przykład katalog /ro/share zapewnia dostęp do podkatalogów share ze wszystkich pakietów).

Pakiety w distri zasadniczo pozbawione wywoływanych w trakcie instalacji obsługiwaczy (brak haków i wyzwalaczy), a różne wersje pakietu mogą współistnieć ze sobą, co umożliwia równoległe instalowanie pakietów. Proponowana struktura ogranicza wydajność menedżera pakietów jedynie do przepustowości sieci, przez którą pobierane są pakiety. Bezpośrednia instalacja lub aktualizacja pakietu odbywa się atomowo i nie wymaga duplikowania zawartości.

Konflikty podczas instalacji pakietów są wykluczone, ponieważ każdy pakiet jest powiązany ze swoim katalogiem, a w systemie mogą występować różne wersje tego samego pakietu (do katalogów zbiorczych dołączana jest zawartość katalogu z nowszą wersją pakietu). Pakiety są także budowane bardzo szybko i nie wymagają instalacji w oddzielnym środowisku budowy (w środowisku budowy tworzone są widoki wymaganych zależności z katalogu /ro).

Obsługiwane są Standardowe polecenia zarządzania pakietami, takie jak „distri install” i „distri update”, a zamiast poleceń informacyjnych można używać standardowego narzędzia „ls” (na przykład, aby zobaczyć zainstalowane pakiety, wystarczy wyświetlić listę katalogów w hierarchii „/ro”, a żeby dowiedzieć się, do którego pakietu należy plik, sprawdzić, dokąd prowadzi link z tego pliku).

Prototyp dystrybucji zaproponowany do eksperymentów obejmuje około 1700 pakietów i gotowe obrazy instalacyjne z instalatorem, nadające się zarówno do instalacji jako główny system operacyjny, jak i do uruchamiania w QEMU, Dockerze, Google Cloud i VirtualBoxie. Oferowane jest uruchamianie z zaszyfrowanej partycji dyskowej i zestaw standardowych aplikacji do stworzenia pulpitu na podstawie menedżera okien i3 (jako przeglądarkę proponuje się Google Chrome). Zapewniane są kompletne narzędzia do budowy dystrybucji, przygotowania i tworzenia pakietów, dystrybucji pakietów przez lustra itp.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster