GNU Shepherd, een servicemanager ontwikkeld door Guix

Na twee jaar van de vorming van de laatste grote versie, werd aangekondigd toen hij de lancering van de nieuwe versie van de servicemanager GNU Herder 0.9 (voorheen bekend als dmd), dat wordt ontwikkeld door de ontwikkelaars van de GNU Guix-distributie als alternatief voor systeemafhankelijkheidsbewuste SysV-init-initialisatie.

Herder biedt gebruikersruimtefunctionaliteit asynchroon als services, die in Shepherd generieke functies en objectgegevenstypen zijn die worden geëxporteerd voor gebruik door Shepherd om het basisbesturingssysteem op een bepaalde manier uit te breiden. In tegenstelling tot systemd wordt een gebruikersruimtebewakingsproces uitgevoerd als die gebruiker.

Over Herder

De kern van het Shepherd-model van initialisatie van gebruikersruimte is het concept van extensie, een vorm van composeerbaarheid waarbij services zijn ontworpen om andere services te overlappen en ze naar wens uit te breiden met uitgebreider of gespecialiseerd gedrag. Dit drukt de op instantiatie gebaseerde afhankelijkheidsrelaties uit die in veel moderne opstartsystemen worden aangetroffen, die: maakt het systeem modulair, maar zorgt er ook voor dat services variabel met elkaar kunnen interageren diensten willekeurig.

Herder biedt ook zogenaamde virtuele diensten die dynamische verzending mogelijk maken op een klasse van gerelateerde service-objecten, zoals objecten die een mail transfer agent (MTA) voor het systeem instantiëren.

Een systeem dat wordt bestuurd door de Shepherd-daemon kan zijn gebruikersruimte weergeven als een gerichte acyclische grafiek, met de "systeemservice" (verantwoordelijk voor de vroege opstart- en opstartfasen) als root en alle daaropvolgende geïnitialiseerde services als uitbreidingen van de functionaliteit van de systeemservice , hetzij direct, hetzij transitief over andere diensten.

Wordt geschreven en geconfigureerd in Guile Scheme, GNU Shepherd is ontworpen om zeer programmeerbaar te zijn door de systeembeheerder, maar kan ook worden gebruikt om gebruikersprofielen van niet-bevoorrechte daemons en services te beheren.

Uw services en instellingen worden uniform opgeslagen als Schemacode objectgeoriënteerd en hoewel een kernset van services wordt geleverd met het basis-Guix-systeem, kunnen willekeurige nieuwe services flexibel worden gedeclareerd en via Guile's objectsysteem, GOOPS, kunnen bestaande services naar goeddunken van de gebruiker worden geherdefinieerd door Shepherd te vragen die services dynamisch herschrijft in specifieke manieren op instantiatie.

GNU Shepherd was oorspronkelijk ontworpen om met GNU Hurd te werken en werd later overgenomen door het Guix-systeem.

Belangrijkste nieuwe functies van GNU Shepherd 0.9

In deze nieuwe versie die wordt gepresenteerd, wordt benadrukt dat: het concept van tijdelijke diensten is geïmplementeerd (van voorbijgaande aard), die automatisch worden verbroken na beëindiging vanwege procesbeëindiging of "stop"-methodeaanroep, die nodig kan zijn voor gesynthetiseerde services die niet opnieuw kunnen worden gestart na beëindiging.

Een andere van de veranderingen die opvalt, is: voor services zonder de parameter ""#:log-file", uitvoer naar syslog is voorzien en voor services met de parameter "#:log-file" wordt het logboek naar een apart bestand geschreven dat de tijd aangeeft van de logboeken in het niet-geprivilegieerde Shepherd-proces dat is opgeslagen in de $XDG_DATA_DIR-directory.

Daarnaast is het opmerkelijk dat de "make-inetd-constructor"-procedure is toegevoegd om services te creëren die vergelijkbaar zijn met inetd en dat de "make-systemd-constructor"-procedure is toegevoegd om services te creëren die worden geactiveerd in netwerkactiviteit (stijl systemd socket activering).

Van de andere veranderingen die zich onderscheiden van deze nieuwe versie:

  • Een procedure toegevoegd om de achtergrondservice te starten:
  • ":supplementary-groups", "#:create-session" en "#:resource-limits" parameters toegevoegd aan de "make-forkexec-constructor" procedure.
  • Gegarandeerd lock-free werking tijdens het wachten op PID-bestanden.
  • Ondersteuning verwijderd voor compileren met Guile 2.0. Problemen opgelost bij het gebruik van Guile-versies 3.0.5-3.0.7.
  • Fibers-bibliotheek 1.1.0 of hoger is nu vereist om te werken.
  • Verbeterde documentatie en voorbeelden
  • Shepherd kan niet meer worden gebouwd met Guile 2.0
  • Fix in Guile 3.0 compiler bug.[5-7]
  • Bijgewerkte vertalingen

Eindelijk als u er meer over wilt weten of u wilt deze nieuwe versie verkrijgen, u kunt de details, documentatie raadplegen en downloaden van de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.