GNU Shepherd, teenusehaldur, mille on välja töötanud Guix

Kaks aastat pärast viimase suurema versiooni ilmumist teatati avalikkusele GNU Shepherd teenusehalduri 0.9 (varem tuntud kui dmd) uue versiooni ilmumisest . Seda arendavad GNU Guixi distributsiooni arendajad alternatiivina süsteemi sõltuvustepõhisele SysV-init initsialiseerimisele.

Shepherd pakub kasutajaruumi funktsionaalsust asünkroonselt teenustena , mis Shepherdis on üldised funktsioonid ja objektiandmetüübid, mida eksporditakse Shepherdi jaoks baasoperatsioonisüsteemi määratletud viisil laiendamiseks. Erinevalt systemd-st töötab kasutajaruumi jälgimisprotsess selle kasutajana.

Shepherdi kohta

Shepherdi kasutajaruumi initsialiseerimismudeli tuumaks on laiendamise kontseptsioon – koostatavuse vorm, mille puhul teenused on loodud kattuma teiste teenustega, täiendades neid vastavalt soovile keerukamate või spetsialiseeritumate käitumisviisidega. See väljendab paljudes tänapäevastes initsialiseerimissüsteemides leiduvaid eksemplaridepõhiseid sõltuvussuhteid, muutes süsteemi modulaarseks, kuid võimaldades ka teenustel teiste teenustega suvalistel viisidel suhelda .

Shepherd pakub ka niinimetatud virtuaalteenuseid , mis võimaldavad dünaamilist edastamist seotud teenuseobjektide klassi kaudu, näiteks kõiki neid, mis loovad süsteemi jaoks meiliedastusagendi (MTA) eksemplare.

Shepherdi deemoni juhitav süsteem võib kujutada oma kasutajaruumi suunatud atsüklilise graafikuna, kus "süsteemiteenus" (vastutab varase alglaadimise ja käivitusfaasi eest) on juurfunktsioon ja kõik järgnevad lähtestatud teenused on süsteemiteenuse funktsionaalsuse laiendused. , kas otse või transitiivselt muude teenuste kaudu.

Kuna GNU Shepherd on kirjutatud ja konfigureeritud Guile Scheme'is, on see süsteemiadministraatori poolt hõlpsasti programmeeritav , kuid seda saab kasutada ka privilegeerimata deemonite ja teenuste kasutajaprofiilide haldamiseks.

Selle teenused ja konfiguratsioon salvestatakse ühtlaselt objektorienteeritud Scheme'i koodina ning kuigi põhiteenuste komplekt on kaasas Guix-süsteemiga, saab paindlikult deklareerida suvalisi uusi teenuseid ning Guile'i objektisüsteemi GOOPS kaudu saab olemasolevaid teenuseid kasutaja äranägemisel ümber defineerida, paludes Shepherdil teenuseid dünaamiliselt ümber kirjutada konkreetsetel viisidel instantsi loomisel.

GNU Shepherd oli algselt loodud töötama koos GNU Hurdiga ja hiljem võttis selle kasutusele Guix System.

GNU Shepherd 0.9 peamised uued funktsioonid

See uus versioon toob esile ajutiste (mööduvate) teenuste kontseptsiooni rakendamise , mis katkestatakse automaatselt pärast protsessi lõpetamist või "stop" meetodi kutsumist, mis võib olla vajalik sünteesitud teenuste jaoks, mida ei saa pärast lõpetamist taaskäivitada.

Teine märkimisväärne muudatus on see, et teenuste puhul, millel pole parameetrit "#:log-file" , antakse väljund syslogile ja teenuste puhul, millel on parameeter "#:log-file", kirjutatakse logi eraldi faili, mis näitab logide aega privilegeerimata Shepherd protsessis, mis salvestatakse kataloogi $XDG_DATA_DIR.

Lisaks on tähelepanuväärne, et inetd-ga sarnaste teenuste loomiseks lisati protseduur "make-inetd-constructor" ja protseduur "make-systemd-constructor" võrgutegevuses aktiveeritavate teenuste loomiseks (stiilis systemd socket aktiveerimine).

Muud märkimisväärsed muudatused selles uues versioonis on järgmised:

  • Taustteenuse käivitamiseks on lisatud protseduur:
  • Protseduurile "make-forkexec-constructor" on lisatud parameetrid ":supplementary-groups", "#:create-session" ja "#:resource-limits".
  • Garanteeritud lukuvaba töö PID-failide ootamise ajal.
  • Eemaldatud Guile 2.0-ga kompileerimise tugi. Parandatud probleemid Guile'i versioonide 3.0.5–3.0.7 kasutamisel.
  • Nüüd on töötamiseks vajalik Fibersi teek 1.1.0 või uuem.
  • Täiustatud dokumentatsioon ja näited
  • Shepherdit ei saa enam Guile 2.0-ga ehitada
  • Parandage Guile 3.0 kompilaatori viga.[5-7]
  • Uuendatud tõlked

Lõpuks, kui olete huvitatud lisateabest või soovite seda uut versiooni hankida, saate tutvuda üksikasjade, dokumentatsiooni ja alla laadida järgmiselt lingilt.


Lisa eelistatud allikana Google'is