GNU Shepherd, pakalpojumu vadītājs, ko izstrādājis Guix

Divus gadus pēc pēdējās lielākās versijas izveides tika publiski paziņots par jaunās GNU Shepherd pakalpojumu pārvaldnieka 0.9 (agrāk pazīstamas kā dmd) versijas izlaišanu . To izstrādā GNU Guix izplatīšanas izstrādātāji kā alternatīvu sistēmas atkarību apzinošajai SysV-init inicializācijai.

Shepherd nodrošina lietotāja telpas funkcionalitāti asinhroni kā pakalpojumus , kas Shepherd valodā ir vispārīgas funkcijas un objektu datu tipi, kas eksportēti, lai Shepherd izmantotu bāzes operētājsistēmas paplašināšanai noteiktā veidā. Atšķirībā no systemd, lietotāja telpas uzraudzības process darbojas kā šis lietotājs.

Par Ganu

Šeperda lietotāja telpas inicializācijas modeļa pamatā ir paplašināšanas koncepcija — saliktspējas veids, kurā pakalpojumi ir izstrādāti tā, lai tie pārklātos ar citiem pakalpojumiem, papildinot tos ar vēlamāku sarežģītāku vai specializētāku uzvedību. Tas izsaka uz instancēm balstītas atkarības attiecības, kas atrodamas daudzās mūsdienu init sistēmās, padarot sistēmu modulāru, bet arī ļaujot pakalpojumiem mainīgi mijiedarboties ar citiem pakalpojumiem patvaļīgos veidos.

Shepherd nodrošina arī tā sauktos virtuālos pakalpojumus , kas nodrošina dinamisku piegādi, izmantojot saistītu pakalpojumu objektu klasi, piemēram, visus tos, kas sistēmai izveido pasta pārsūtīšanas aģenta (MTA) instances.

Sistēma, ko pārvalda Shepherd dēmons, var attēlot savu lietotāja telpu kā virzītu aciklisku grafiku ar "sistēmas pakalpojumu" (atbildīgs par agrīnās sāknēšanas un palaišanas fāzēm) kā root un visus turpmākos inicializētos pakalpojumus kā sistēmas pakalpojuma funkcionalitātes paplašinājumus. , tieši vai pārejoši, izmantojot citus pakalpojumus.

Tā kā GNU Shepherd ir rakstīts un konfigurēts Guile Scheme valodā, tas ir izstrādāts tā, lai sistēmas administrators to varētu viegli programmēt , taču to var izmantot arī, lai pārvaldītu neprivileģētu dēmonu un pakalpojumu lietotāja profilus.

Tās pakalpojumi un konfigurācija tiek vienmērīgi glabāti kā objektorientēts Scheme kods, un, lai gan pamata Guix sistēmā tiek nodrošināts pamatpakalpojumu komplekts, var elastīgi deklarēt patvaļīgus jaunus pakalpojumus, un, izmantojot Guile objektu sistēmu GOOPS, esošos pakalpojumus var pārdefinēt pēc lietotāja ieskatiem, lūdzot Shepherd dinamiski pārrakstīt pakalpojumus konkrētos veidos, kad tie tiek izveidoti.

GNU Shepherd sākotnēji tika izstrādāts darbam ar GNU Hurd, un vēlāk to pārņēma Guix sistēma.

Galvenās GNU Shepherd 0.9 jaunās iespējas

Šajā jaunajā versijā ir uzsvērta pagaidu (pārejošu) pakalpojumu koncepcijas ieviešana , kas tiek automātiski atvienoti pēc pārtraukšanas procesa pārtraukšanas vai "stop" metodes izsaukuma dēļ, kas var būt nepieciešams sintezētiem pakalpojumiem, kurus nevar restartēt pēc pārtraukšanas.

Vēl viena ievērojama izmaiņa ir tā, ka pakalpojumiem bez parametra "#:log-file" izvade tiek nodrošināta syslog , un pakalpojumiem ar parametru "#:log-file" žurnāls tiek ierakstīts atsevišķā failā, kas norāda žurnālu laiku neprivileģētajā Shepherd procesā, kas tiek glabāts direktorijā $XDG_DATA_DIR.

Turklāt ir vērts atzīmēt, ka procedūra "make-inetd-constructor" tika pievienota, lai izveidotu pakalpojumus, kas ir līdzīgi inetd, un ka procedūra "make-systemd-constructor" tika pievienota, lai izveidotu pakalpojumus, kas tiek aktivizēti tīkla darbībā (stils systemd socket aktivizēšana).

Citas ievērojamas izmaiņas šajā jaunajā versijā ietver:

  • Pievienota procedūra fona pakalpojuma palaišanai:
  • Procedūrai “make-forkexec-constructor” ir pievienoti parametri “:supplementary-groups”, “#:create-session” un “#:resource-limits”.
  • Garantēta darbība bez bloķēšanas, gaidot PID failus.
  • Noņemts atbalsts kompilēšanai ar Guile 2.0. Novērstas problēmas, lietojot Guile versijas 3.0.5–3.0.7.
  • Lai darbotos, tagad ir nepieciešama Fibres bibliotēka 1.1.0 vai jaunāka versija.
  • Uzlabota dokumentācija un piemēri
  • Shepherd vairs nevar uzbūvēt ar Guile 2.0
  • Izlabojiet Guile 3.0 kompilatora kļūdu.[5-7]
  • Atjaunināti tulkojumi

Visbeidzot, ja vēlaties uzzināt vairāk vai vēlaties iegūt šo jauno versiju, varat iepazīties ar sīkāku informāciju, dokumentāciju un lejupielādēt to no šīs saites.


Pievienot kā vēlamo avotu pakalpojumā Google