Distri - in distribúsje foar testen fan snelle pakketbeheartechnologyen

Michael Stapelberg, skriuwer fan 'e i3wm betegele finsterbehearder en eardere aktive Debian-ûntwikkelder (ûnderhâlden sa'n 170 pakketten), ûntwikkelt eksperimintele ferdieling distri en in pakketbehearder mei deselde namme. It projekt is gepositioneerd as in ferkenning fan mooglike manieren om de prestaasjes fan pakketbehearsystemen te ferheegjen en ferbyldet wat nije ideeën foar it bouwen fan distribúsjes. De pakketbehearderkoade is skreaun yn Go en ferspraat troch ûnder de BSD-lisinsje.

In wichtich skaaimerk fan it pakketformaat fan 'e distribúsje is dat it pakket wurdt levere yn' e foarm fan SquashFS-ôfbyldings, ynstee fan komprimearre tar-argiven. It brûken fan SquashFS, fergelykber mei de AppImage- en Snap-formaten, kinne jo in pakket "mount" sûnder it út te pakken, wat skyfromte besparret, atoomwizigingen mooglik makket en de ynhâld fan it pakket direkt tagonklik makket. Tagelyk befetsje distri-pakketten, lykas yn it klassike "deb"-formaat, allinich yndividuele komponinten keppele troch ôfhinklikens mei oare pakketten (biblioteken wurde net duplikearre yn pakketten, mar wurde ynstalleare as ôfhinklikens). Mei oare wurden, distri besiket de korrelige pakketstruktuer fan klassike distribúsjes lykas Debian te kombinearjen mei de metoaden foar it leverjen fan applikaasjes yn 'e foarm fan monteare konteners.

Elk pakket yn distri is yn in eigen map monteare yn allinich-lêsmodus (bygelyks it pakket mei zsh is beskikber as "/ro/zsh-amd64-5.6.2-3"), wat in posityf effekt hat op feiligens en beskermet tsjin tafallige of kweade feroarings. Om in hiërargy fan tsjinstmappen te foarmjen, lykas /usr/bin, /usr/share en /usr/lib, wurdt in spesjale FUSE-module brûkt, dy't de ynhâld fan alle ynstallearre SquashFS-ôfbyldings kombinearret yn ien gehiel (bygelyks de / ro/share-map jout tagong ta diele submappen fan alle pakketten).

Pakketten yn distri fûneminteel levere út handlers neamd tidens ynstallaasje (gjin heakken of triggers), en ferskillende ferzjes fan in pakket kin bestean mei elkoar, sadat parallel ynstallaasje fan pakketten mooglik wurdt. De foarstelde struktuer beheint de prestaasjes fan 'e pakketbehearder allinich oan' e netwurktrochput wêrmei't de pakketten wurde ynladen. De eigentlike ynstallaasje of fernijing fan it pakket wurdt atomysk útfierd en fereasket gjin duplikaasje fan ynhâld.

Konflikten by it ynstallearjen fan pakketten wurde elimineare, om't elk pakket is assosjearre mei in eigen map en it systeem lit de oanwêzigens fan ferskate ferzjes fan ien pakket (de ynhâld fan 'e map mei in mear resinte ferzje fan it pakket binne opnommen yn' e fakbûnsmappen). It bouwen fan pakketten is ek heul fluch en fereasket gjin ynstallaasje fan pakketten yn in aparte bouwomjouwing (foarstellings fan 'e nedige ôfhinklikens fan' e /ro-map wurde makke yn 'e bouwomjouwing).

Stipe typyske kommando's foar pakketbehear, lykas "distri ynstallearje" en "distri-fernijing", en ynstee fan ynformaasjekommando's kinne jo it standert "ls"-hulpprogramma brûke (bygelyks om ynstalleare pakketten te besjen, gewoan in list mei mappen werjaan yn 'e " /ro” hiërargy, en om út te finen yn hokker pakket it bestân is opnaam, sjoch wêr't de keppeling fan dit bestân liedt).

De prototype distribúsje kit foarsteld foar eksperiminten omfiemet oer 1700 pakketten en klear ynstallaasje ôfbyldings mei in ynstallearder, geskikt sawol foar ynstallaasje as it haad OS en foar it útfieren yn QEMU, Docker, Google Cloud en VirtualBox. It stipet booten fan in fersifere skiifpartysje en in set standertapplikaasjes foar it meitsjen fan in buroblêd basearre op de i3-finsterbehearder (Google Chrome wurdt oanbean as browser). Foarsjoen in folsleine toolkit foar it gearstallen fan in distribúsje, it tarieden en generearjen fan pakketten, it fersprieden fan pakketten fia spegels, ensfh.

Boarne: opennet.ru

Add a comment