Daemon (Computing) - Daemon (computing)

Aus Wikipedia, der freien Enzyklopädie
Zu den Komponenten einiger Linux- Desktop-Umgebungen , bei denen es sich um Dämonen handelt, gehören D-Bus , NetworkManager (hier als Unetwork bezeichnet ), PulseAudio ( usound ) und Avahi .

In Multitasking - Computerbetriebssystemen , ein Daemon ( / d í m ən / oder / d m ən / ) ist ein Computerprogramm , das ausgeführt wird als ein Hintergrundprozess , anstatt unter der direkten Kontrolle eines interaktiven Benutzer zu sein. Traditionell enden die Prozessnamen eines Dämons mit dem Buchstaben d , um zu verdeutlichen, dass der Prozess tatsächlich ein Dämon ist, und um zwischen einem Dämon und einem normalen Computerprogramm zu unterscheiden. Beispielsweise ist syslogd ein Dämon, der die Systemprotokollierungsfunktion implementiert, und sshd ist ein Dämon, der eingehende SSH- Verbindungen bedient.

In einer Unix- Umgebung ist der übergeordnete Prozess eines Daemons häufig, aber nicht immer, der Init- Prozess. Ein Daemon wird normalerweise entweder durch einen Prozess erstellt, der einen untergeordneten Prozess verzweigt und dann sofort beendet, wodurch init den untergeordneten Prozess übernimmt, oder durch den init-Prozess, der den Daemon direkt startet. Darüber hinaus muss ein Daemon, der durch Forken und Beenden gestartet wird, normalerweise andere Vorgänge ausführen, z. B. das Trennen des Prozesses von einem steuernden Terminal (tty). Solche Prozeduren werden häufig in verschiedenen Komfortroutinen wie Daemon (3) in Unix implementiert .

Systeme starten häufig Dämonen beim Booten , die auf Netzwerkanforderungen, Hardwareaktivitäten oder andere Programme reagieren, indem sie eine Aufgabe ausführen. Daemons wie cron können zu festgelegten Zeiten auch definierte Aufgaben ausführen.

Terminologie

Der Begriff wurde von den Programmierern des MIT-Projekts MAC geprägt . Sie nahmen den Namen von Maxwells Dämon , einem imaginären Wesen aus einem Gedankenexperiment, das ständig im Hintergrund arbeitet und Moleküle sortiert. Unix- Systeme haben diese Terminologie geerbt. Maxwells Dämon steht im Einklang mit der Interpretation eines Dämons durch die griechische Mythologie als übernatürliches Wesen, das im Hintergrund arbeitet, ohne besondere Neigung zu Gut oder Böse. Allerdings BSD und einige seiner Derivate haben angenommen Christian Dämon als ihr Maskottchen eher als ein griechischer Dämon .

Das Wort - Dämon ist eine alternative Schreibweise Dämon, und ist ausgeprägt / d í m ən / DEE -mən . Im Zusammenhang mit der Computer - Software, die ursprüngliche Aussprache / d i m ən / gedriftet zu / d m ən / TAG -mən für einige Lautsprecher.

Alternative Begriffe für Daemon sind Service (unter Windows ab Windows NT - und später auch unter Linux), gestartete Task (IBM z / OS ) und Ghost Job (XDS UTS ).

Nachdem der Begriff für die Computernutzung übernommen wurde, wurde er als " Backronym " für Disk And Execution MONitor rationalisiert.

Daemons, die eine Verbindung zu einem Computernetzwerk herstellen, sind Beispiele für Netzwerkdienste .

Implementierungen

Unix-ähnliche Systeme

Aus rein technischer Sicht ist ein Unix-ähnlicher Systemprozess ein Dämon, wenn sein übergeordneter Prozess beendet wird und dem Dämon der Init- Prozess (Prozessnummer 1) als übergeordneter Prozess zugewiesen wird und er kein steuerndes Terminal hat. Im Allgemeinen kann ein Daemon jedoch ein beliebiger Hintergrundprozess sein, unabhängig davon, ob er dem Init-Prozess untergeordnet ist oder nicht.

Auf einem Unix-ähnlichen System umfasst die übliche Methode, mit der ein Prozess zu einem Daemon wird, wenn der Prozess über die Befehlszeile oder über ein Startskript wie ein Init- Skript oder ein SystemStarter- Skript gestartet wird:

  • Optional können unnötige Variablen aus der Umgebung entfernt werden.
  • Ausführen als Hintergrundaufgabe durch Verzweigen und Beenden (in der übergeordneten "Hälfte" der Gabelung). Auf diese Weise kann das übergeordnete Element des Daemons (Shell oder Startprozess) eine Exit-Benachrichtigung erhalten und die normale Ausführung fortsetzen.
  • Trennen von der aufrufenden Sitzung, die normalerweise durch eine einzelne Operation ausgeführt wird setsid() :
    • Dissoziieren von der kontrollierenden tty .
    • Erstellen einer neuen Sitzung und Werden des Sitzungsleiters dieser Sitzung.
    • Wird ein Prozessgruppe Führer.
  • Wenn der Dämon sicherstellen möchte, dass er auch aus Versehen keine neue Kontroll-Tty erhält (was passiert, wenn ein Sitzungsleiter ohne Kontroll-Tty eine freie Tty öffnet), kann er sich teilen und wieder beenden. Dies bedeutet, dass es in der neuen Sitzung kein Sitzungsleiter mehr ist und keine steuernde Tty erwerben kann.
  • Festlegen des Stammverzeichnisses ( / ) als aktuelles Arbeitsverzeichnis, damit der Prozess kein Verzeichnis verwendet, das sich möglicherweise in einem bereitgestellten Dateisystem befindet (wodurch die Bereitstellung aufgehoben werden kann).
  • Ändern Sie die Umask auf 0, um zuzulassen open() , creat() und andere Betriebssystemaufrufe, um ihre eigenen Berechtigungsmasken bereitzustellen und nicht von der Umask des Aufrufers abhängig zu sein.
  • Umleiten der Dateideskriptoren 0, 1 und 2 für die Standard-Streams ( stdin , stdout und stderr ) nach / dev / null oder in eine Protokolldatei und Schließen aller anderen vom übergeordneten Prozess geerbten Dateideskriptoren.

Wenn der Prozess von einem Super-Server- Daemon wie inetd , launchd oder systemd gestartet wird , führt der Super-Server-Daemon diese Funktionen für den Prozess aus, mit Ausnahme von Daemons alten Stils, die nicht konvertiert wurden, um unter systemd ausgeführt und als Typ angegeben zu werden = Forking- und "Multithreaded" -Datagrammserver unter inetd .

MS-DOS

In der Microsoft DOS- Umgebung wurden daemonähnliche Programme als TSR-Software ( Terminate and Stay Resident ) implementiert .

Windows NT

Auf Microsoft Windows NT- Systemen führen Programme, die als Windows-Dienste bezeichnet werden , die Funktionen von Dämonen aus. Sie werden als Prozesse ausgeführt, interagieren normalerweise nicht mit Monitor, Tastatur und Maus und können beim Start vom Betriebssystem gestartet werden. In Windows 2000 und späteren Versionen werden Windows-Dienste mithilfe der Systemsteuerung , eines dedizierten Steuerungs- / Konfigurationsprogramms, der Service Controller-Komponente des Service Control Managers ( Befehl sc ), der Befehle net start und net stop oder konfiguriert und manuell gestartet und gestoppt das PowerShell- Skriptsystem.

Jede Windows-Anwendung kann jedoch die Rolle eines Dämons übernehmen, nicht nur eines Dienstes, und einige Windows-Dämonen können optional als normaler Prozess ausgeführt werden.

Klassisches Mac OS und macOS

Unter dem klassischen Mac OS wurden optionale Funktionen und Dienste von Dateien bereitgestellt, die beim Start geladen wurden und das Betriebssystem gepatcht haben. Diese wurden als Systemerweiterungen und Bedienfelder bezeichnet . Spätere Versionen des klassischen Mac OS haben diese um vollwertige gesichtslose Hintergrundanwendungen erweitert : reguläre Anwendungen, die im Hintergrund ausgeführt wurden. Für den Benutzer wurden diese weiterhin als reguläre Systemerweiterungen beschrieben.

macOS , ein Unix- System, verwendet Daemons. Beachten Sie, dass macOS den Begriff "Dienste" verwendet, um Software zu kennzeichnen, die Funktionen ausführt, die im Menü "Dienste" ausgewählt wurden , anstatt diesen Begriff für Dämonen zu verwenden, wie dies bei Windows der Fall ist.

Etymologie

Laut Fernando J. Corbató , der 1963 am Projekt MAC arbeitete , war sein Team das erste, das den Begriff Dämon verwendete, inspiriert von Maxwells Dämon , einem imaginären Agenten in Physik und Thermodynamik , der beim Sortieren von Molekülen half und sagte: "Wir haben phantasievoll begonnen das Wort Daemon zu verwenden, um Hintergrundprozesse zu beschreiben, die unermüdlich zur Ausführung von Systemaufgaben arbeiteten ".

Im allgemeinen Sinne ist Daemon eine ältere Form des Wortes "Dämon" aus dem Griechischen δαίμων. Im Unix-Systemverwaltungshandbuch gibt Evi Nemeth Folgendes zu Dämonen an:

Viele Leute setzen das Wort "Dämon" mit dem Wort "Dämon" gleich, was eine Art satanische Verbindung zwischen UNIX und der Unterwelt impliziert . Dies ist ein ungeheures Missverständnis. "Daemon" ist eigentlich eine viel ältere Form von "Dämon"; Dämonen neigen nicht besonders zu Gut oder Böse, sondern dienen eher dazu, den Charakter oder die Persönlichkeit einer Person zu definieren. Das Konzept der alten Griechen von einem "persönlichen Dämon" ähnelte dem modernen Konzept eines "Schutzengels" - Eudaemonie ist der Zustand, in dem man von einem freundlichen Geist unterstützt oder beschützt wird. In der Regel scheinen UNIX-Systeme sowohl von Dämonen als auch von Dämonen befallen zu sein.

Eine weitere Charakterisierung der mythologischen Symbolik ist, dass ein Dämon etwas ist, das noch nicht sichtbar ist, immer präsent ist und seinen Willen wirkt. In dem Theages zugeschrieben Plato , Sokrates beschreibt seinen persönlichen Dämon so etwas wie das moderne Konzept eines moralischen Gewissen zu sein: „Die Gunst der Götter mir ein wunderbares Geschenk gegeben hat, die seit meiner Kindheit mich nie verlassen hat , ist es. eine Stimme, die mich, wenn sie sich Gehör verschafft, von dem abhält, was ich gerade tue, und mich niemals dazu drängt ".

Siehe auch

Verweise

Externe Links