GNU Shepherd, un manager de servicii dezvoltat de Guix

După doi ani de la lansarea ultimei versiuni majore, lansarea noii versiuni a managerului de servicii GNU Shepherd 0.9 (cunoscut anterior ca dmd) a fost anunțată publicului . Aceasta este dezvoltată de dezvoltatorii distribuției GNU Guix ca o alternativă la inițializarea SysV-init, care ține cont de dependențele de sistem.

Shepherd oferă funcționalități în spațiul utilizatorului în mod asincron sub formă de servicii , care în Shepherd sunt funcții generice și tipuri de date obiect exportate pentru ca Shepherd să le utilizeze în extinderea sistemului de operare de bază într-un mod definit. Spre deosebire de systemd, un proces de monitorizare a spațiului utilizatorului rulează în numele utilizatorului respectiv.

Despre Shepherd

Nucleul modelului de inițializare a spațiului utilizator al lui Shepherd este conceptul de extensie, o formă de compozabilitate în care serviciile sunt proiectate să se suprapună cu alte servicii, completându-le cu comportamente mai elaborate sau specializate, după cum se dorește. Aceasta exprimă relațiile de dependență bazate pe instanțiere, întâlnite în multe sisteme init moderne, făcând sistemul modular, dar permițând și serviciilor să interacționeze variabil cu alte servicii în moduri arbitrare.

Shepherd oferă, de asemenea, așa-numitele servicii virtuale care permit livrarea dinamică printr-o clasă de obiecte de serviciu conexe, cum ar fi toate cele care creează instanțe ale unui agent de transfer de corespondență (MTA) pentru sistem.

Un sistem guvernat de demonul Shepherd își poate reprezenta spațiul utilizator ca un grafic aciclic direcționat, cu „serviciul de sistem” (responsabil pentru fazele timpurii de pornire și pornire) ca root și toate serviciile inițializate ulterioare ca extensii ale funcționalității serviciului de sistem. , fie direct, fie tranzitiv peste alte servicii.

Deoarece este scris și configurat în Guile Scheme, GNU Shepherd este conceput pentru a fi ușor programabil de către administratorul de sistem, dar poate fi folosit și pentru a gestiona profilurile per utilizator ale daemonilor și serviciilor neprivilegiate.

Serviciile și configurația sa sunt stocate uniform ca și cod Scheme orientat pe obiecte și, deși un set de servicii de bază este furnizat cu sistemul Guix de bază, servicii noi arbitrare pot fi declarate flexibil, iar prin intermediul sistemului de obiecte al lui Guile, GOOPS, serviciile existente pot fi redefinite la discreția utilizatorului, solicitând lui Shepherd să rescrie dinamic serviciile în moduri specifice la instanțiere.

GNU Shepherd a fost conceput inițial pentru a funcționa cu GNU Hurd și a fost ulterior adoptat de sistemul Guix.

Principalele caracteristici noi ale GNU Shepherd 0.9

Această nouă versiune evidențiază implementarea conceptului de servicii temporare (tranzitorii), care sunt deconectate automat după terminare din cauza terminării procesului sau a unui apel la metoda „stop”, care poate fi necesară pentru serviciile sintetizate care nu pot fi repornite după terminare.

O altă modificare notabilă este că, pentru serviciile fără parametrul „#:log-file” , ieșirea este furnizată către syslog , iar pentru serviciile cu parametrul „#:log-file”, jurnalul este scris într-un fișier separat care indică ora jurnalelor în procesul Shepherd neprivilegiat, care este stocat în directorul $XDG_DATA_DIR.

În plus, este de remarcat faptul că procedura „make-inetd-constructor” a fost adăugată pentru a crea servicii similare cu inetd și că procedura „make-systemd-constructor” a fost adăugată pentru a crea servicii care sunt activate în activitatea de rețea (stil systemd socket). activare).

Alte modificări notabile din această nouă versiune includ:

  • S-a adăugat o procedură pentru a porni serviciul de fundal:
  • S-au adăugat parametrii „:supplementary-groups”, „#:create-session” și „#:resource-limits” la procedura „make-forkexec-constructor”.
  • Funcționare fără blocare garantată în timp ce așteptați fișierele PID.
  • S-a eliminat suportul pentru compilare cu Guile 2.0. S-au rezolvat probleme la utilizarea versiunilor Guile 3.0.5-3.0.7.
  • Biblioteca Fibres 1.1.0 sau o versiune ulterioară este acum necesară pentru a funcționa.
  • Documentație îmbunătățită și exemple
  • Shepherd nu mai poate fi construit cu Guile 2.0
  • Remediați eroarea compilatorului Guile 3.0.[5-7]
  • Traduceri actualizate

În cele din urmă, dacă sunteți interesați să aflați mai multe sau doriți să obțineți această nouă versiune, puteți consulta detaliile, documentația și o puteți descărca de la următorul link.


Adăugați ca sursă preferată în Google