GNU Shepherd, ein von Guix entwickelter Dienstmanager

Zwei Jahre nach Erstellung der letzten Hauptversion wurde angekündigt, als er den Start von veröffentlichte die neue Version des Service Managers GNU Shepherd 0.9 (früher bekannt als dmd), das ist entwickelt von den Entwicklern der GNU-Distribution Guix als Alternative zur systemabhängigkeitsbewussten SysV-Init-Initialisierung.

Schäfer stellt User-Space-Funktionalität asynchron als Dienste bereit, die in Shepherd generische Funktionen und Objektdatentypen sind, die zur Verwendung durch Shepherd exportiert werden, um das Basisbetriebssystem auf bestimmte Weise zu erweitern. Im Gegensatz zu systemd wird ein Überwachungsprozess für den Benutzerbereich als dieser Benutzer ausgeführt.

Über Schäfer

Der Kern des Shepherd-Modells der Benutzerrauminitialisierung ist das Konzept der Erweiterung, eine Form der Zusammensetzbarkeit, bei der Dienste so konzipiert sind, dass sie andere Dienste überlagern und sie nach Bedarf mit ausgefeilterem oder spezialisierterem Verhalten erweitern. Dies drückt die auf Instanziierung basierenden Abhängigkeitsbeziehungen aus, die in vielen modernen Boot-Systemen zu finden sind macht das System modular, lässt aber auch Services variabel miteinander interagieren Dienste willkürlich.

Schäfer bietet auch sogenannte virtuelle Dienste an die eine dynamische Verteilung auf eine Klasse verwandter Dienstobjekte ermöglichen, wie z. B. diejenigen, die einen Mail Transfer Agent (MTA) für das System instanziieren.

Ein vom Shepherd-Daemon verwaltetes System kann seinen Benutzerraum als gerichteten azyklischen Graphen darstellen, wobei der "Systemdienst" (verantwortlich für die frühen Boot- und Startphasen) als Root und alle anschließend initialisierten Dienste als Erweiterungen der Funktionalität des Systemdienstes dienen , entweder direkt oder transitiv über andere Dienste.

In Guile Scheme geschrieben und konfiguriert, GNU Shepherd ist so konzipiert, dass es in hohem Maße programmierbar ist vom Systemadministrator, kann aber auch verwendet werden, um Benutzerprofile von nicht privilegierten Daemons und Diensten zu verwalten.

Ihre Dienste und Einstellungen werden einheitlich als Scheme-Code gespeichert objektorientiert, und obwohl ein Kernsatz von Diensten mit dem grundlegenden Guix-System bereitgestellt wird, können beliebige neue Dienste flexibel deklariert werden, und durch Guiles Objektsystem GOOPS können vorhandene Dienste nach Belieben des Benutzers neu definiert werden, indem Shepherd gebeten wird, Dienste dynamisch neu zu schreiben spezifische Möglichkeiten zur Instanziierung.

GNU Shepherd wurde ursprünglich entwickelt, um mit GNU Hurd zusammenzuarbeiten, und wurde später vom Guix-System übernommen.

Die wichtigsten neuen Funktionen von GNU Shepherd 0.9

In dieser neuen Version, die vorgestellt wird, wird dies hervorgehoben das Konzept der temporären Dienste wird umgesetzt (vorübergehend), die nach der Beendigung aufgrund einer Prozessbeendigung oder eines "stop"-Methodenaufrufs automatisch getrennt werden, was für synthetisierte Dienste erforderlich sein kann, die nach der Beendigung nicht neu gestartet werden können.

Eine weitere hervorstechende Änderung ist für Dienste ohne den Parameter ""#:log-file"., Ausgabe an Syslog ist vorgesehen und für Dienste mit dem Parameter „#:log-file“ wird das Protokoll in eine separate Datei geschrieben, die die Zeit der Protokolle im unprivilegierten Shepherd-Prozess angibt, die im Verzeichnis $XDG_DATA_DIR gespeichert ist.

Darüber hinaus ist bemerkenswert, dass die Prozedur „make-inetd-constructor“ hinzugefügt wurde, um ähnliche Dienste wie inetd zu erstellen, und dass die Prozedur „make-systemd-constructor“ hinzugefügt wurde, um Dienste zu erstellen, die bei Netzwerkaktivitäten aktiviert werden (Stil systemd socket Aktivierung).

Von den anderen Änderungen das hebt sich von dieser neuen Version ab:

  • Verfahren zum Starten des Hintergrunddienstes hinzugefügt:
  • Parameter „:supplementary-groups“, „#:create-session“ und „#:resource-limits“ zur „make-forkexec-constructor“-Prozedur hinzugefügt.
  • Garantierter lock-freier Betrieb beim Warten auf PID-Dateien.
  • Unterstützung für das Kompilieren mit Guile 2.0 entfernt. Probleme bei der Verwendung der Guile-Versionen 3.0.5-3.0.7 behoben.
  • Die Fibers-Bibliothek 1.1.0 oder höher ist jetzt erforderlich, um zu funktionieren.
  • Verbesserte Dokumentation und Beispiele
  • Shepherd kann nicht mehr mit Guile 2.0 gebaut werden
  • Fehler im Compiler von Guile 3.0 behoben.[5-7]
  • Aktualisierte Übersetzungen

Schließlich wenn Sie mehr darüber wissen möchten Wenn Sie diese neue Version erhalten möchten, können Sie die Details, die Dokumentation und den Download von einsehen den folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.