Dämon (Computer) - Daemon (computing)

Zu den Komponenten einiger Linux- Desktop-Umgebungen , die Daemons sind, 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 Daemons mit dem Buchstaben d , um klarzustellen, dass der Prozess tatsächlich ein Daemon ist und um zwischen einem Daemon und einem normalen Computerprogramm zu unterscheiden. Zum Beispiel syslogd ist ein Dämon, implementiert Systemprotokollierung Möglichkeiten und sshd ist ein Daemon, die eingehenden dient SSH - Verbindungen.

In einer Unix- Umgebung ist der Elternprozess eines Daemons oft, aber nicht immer, der Init- Prozess. Ein Dämon ist in der Regel entweder durch einen Prozess Forking einen Kindprozeß und dann sofort austritt, wodurch init den Kindprozess oder durch den Init - Prozeß direkt startet den Daemon zu übernehmen. Darüber hinaus muss ein Daemon, der durch Forking und Beenden gestartet wird, normalerweise andere Operationen ausführen, wie z. B. das Trennen des Prozesses von einem steuernden Terminal (tty). Solche Prozeduren werden oft in verschiedenen Komfortroutinen wie etwa daemon(3) in Unix implementiert .

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

Terminologie

Der Begriff wurde von den Programmierern des MIT-Projekts MAC geprägt . Laut Fernando J. Corbató , der 1963 an Project MAC arbeitete , war sein Team das erste, das den Begriff Daemon verwendet hat, inspiriert von Maxwells Dämon , einem imaginären Agenten in Physik und Thermodynamik , der beim Sortieren von Molekülen half, und sagte: "Wir begannen fantasievoll". das Wort Daemon zu verwenden, um Hintergrundprozesse zu beschreiben, die unermüdlich daran arbeiteten, Systemaufgaben auszuführen". Unix- Systeme haben diese Terminologie geerbt. Maxwells Dämon steht im Einklang mit der Interpretation eines Dämons in der griechischen Mythologie als übernatürliches Wesen, das im Hintergrund arbeitet. Allerdings BSD und einige seiner Derivate haben angenommen Christian Dämon als ihr Maskottchen eher als ein griechischer Dämon .

Im allgemeinen Sinne ist Dämon eine ältere Form des Wortes "Dämon" aus dem Griechischen δαίμων. Im Unix System Administration Handbook sagt Evi Nemeth folgendes über Daemons:

Viele Leute setzen das Wort "Daemon" mit dem Wort "Dämon" gleich, was eine Art satanische Verbindung zwischen UNIX und der Unterwelt impliziert . Das ist ein ungeheures Missverständnis. "Daemon" ist eigentlich eine viel ältere Form von "Dämon"; Dämonen haben keine besondere Neigung zu Gut oder Böse, sondern dienen eher dazu, den Charakter oder die Persönlichkeit einer Person zu definieren. Das Konzept der alten Griechen eines "persönlichen Dämons" war dem modernen Konzept eines "Schutzengels" ähnlich - Eudämonie ist der Zustand, in dem von einem gütigen Geist geholfen oder beschützt wird. In der Regel scheinen UNIX-Systeme sowohl von Dämonen als auch von Dämonen verseucht zu sein.

Eine weitere Charakterisierung der mythologischen Symbolik ist, dass ein Dämon etwas ist, das nicht sichtbar ist, aber immer präsent ist und seinen Willen arbeitet. 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 vorhabe, und mich nie weiter drängt".

Im modernen Sprachgebrauch wird das Wort Dämon ist ausgeprägt / d i 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 (verwendet in Windows, ab Windows NT – und später auch in Linux), Started Task (IBM z/OS ) und Ghost-Job (XDS UTS ).

Nachdem der Begriff für den Computergebrauch übernommen wurde, wurde er als Backronym für Disk And Execution MOnitor rationalisiert.

Daemons, die sich mit einem Computernetzwerk verbinden, sind Beispiele für Netzwerkdienste .

Implementierungen

Unix-ähnliche Systeme

Rein technisch gesehen ist ein Unix-ähnlicher Systemprozess ein Daemon, wenn sein Elternprozess beendet wird und dem Daemon der init- Prozess (Prozessnummer 1) als Elternprozess zugewiesen wird und er kein kontrollierendes Terminal hat. Allgemeiner kann ein Daemon jedoch ein beliebiger Hintergrundprozess sein, unabhängig davon, ob er ein Kind des Init-Prozesses ist oder nicht.

Auf einem Unix-ähnlichen System umfasst die übliche Methode für einen Prozess, ein Daemon zu werden, wenn der Prozess von der Befehlszeile oder von einem Startskript wie einem Init- Skript oder einem SystemStarter- Skript gestartet wird , Folgendes :

  • Entfernen Sie optional unnötige Variablen aus der Umgebung.
  • Ausführung als Hintergrundaufgabe durch Forken und Beenden (in der übergeordneten "Hälfte" des Forks). Dies ermöglicht es dem übergeordneten Daemon (Shell oder Startprozess), eine Exit-Benachrichtigung zu erhalten und seine normale Ausführung fortzusetzen.
  • Trennen von der aufrufenden Sitzung, normalerweise durch einen einzigen Vorgang, setsid():
    • Trennung vom kontrollierenden tty .
    • Erstellen Sie eine neue Sitzung und werden Sie zum Sitzungsleiter dieser Sitzung.
    • Wird ein Prozessgruppe Führer.
  • Wenn der Daemon sicherstellen möchte, dass er nicht einmal aus Versehen ein neues kontrollierendes tty erhält (was passiert, wenn ein Sitzungsleiter ohne kontrollierenden tty ein freies tty öffnet), kann er wieder abzweigen und beenden. Dies bedeutet, dass er in der neuen Sitzung nicht mehr Sitzungsleiter ist und kein kontrollierendes tty erwerben kann.
  • Festlegen des Stammverzeichnisses ( / ) als aktuelles Arbeitsverzeichnis, damit der Prozess kein Verzeichnis in Gebrauch behält, das sich möglicherweise auf einem gemounteten Dateisystem befindet (und es ermöglicht, es auszuhängen).
  • Ändern Sie die umask auf 0, um zuzulassen open(), dass , creat(), und andere Betriebssystemaufrufe ihre eigenen Berechtigungsmasken bereitstellen und nicht von der umask des Aufrufers abhängig sind.
  • Umleiten der Dateideskriptoren 0, 1 und 2 für die Standardstreams ( stdin , stdout und stderr ) an /dev/null oder eine Logdatei und Schließen aller anderen Dateideskriptoren, die vom Elternprozess geerbt wurden.

Wenn der Prozess von einem Superserver- Daemon wie inetd , launchd oder systemd gestartet wird , führt der Superserver-Daemon diese Funktionen für den Prozess aus, mit Ausnahme von Daemons alten Stils, die nicht für die Ausführung unter systemd konvertiert und als Typ angegeben wurden =forking und "multi-threaded" Datagrammserver unter inetd .

MS-DOS

In der Microsoft DOS- Umgebung wurden daemonähnliche Programme als terminierte und residente (TSR) Software implementiert .

Windows NT

Auf Microsoft Windows NT- Systemen führen Programme, die als Windows-Dienste bezeichnet werden , die Funktionen von Daemons aus. Sie werden als Prozesse ausgeführt, interagieren normalerweise nicht mit Monitor, Tastatur und Maus und können beim Booten vom Betriebssystem gestartet werden. In Windows 2000 und späteren Versionen werden Windows-Dienste über die Systemsteuerung , ein dediziertes Steuer-/Konfigurationsprogramm, die Service Controller-Komponente des Service Control Managers ( Befehl sc ), die Befehle net start und net stop konfiguriert und manuell gestartet und gestoppt das PowerShell- Skriptsystem.

Jede Windows-Anwendung kann jedoch die Rolle eines Daemons übernehmen, nicht nur ein Dienst, und einige Windows-Daemons können als normaler Prozess ausgeführt werden.

Klassisches Mac OS und macOS

Auf dem klassischen Mac OS wurden optionale Funktionen und Dienste durch Dateien bereitgestellt, die beim Start geladen wurden und das Betriebssystem gepatcht wurden; diese wurden als Systemerweiterungen und Control Panels bezeichnet . Spätere Versionen des klassischen Mac OS ergänzten diese mit vollwertigen gesichtslosen Hintergrundanwendungen : reguläre Anwendungen, die im Hintergrund liefen. Diese wurden vom Anwender noch als reguläre Systemerweiterungen bezeichnet.

macOS , ein Unix- System, verwendet Daemons. Beachten Sie, dass macOS den Begriff "Dienste" verwendet, um Software zu bezeichnen, die im Menü Dienste ausgewählte Funktionen ausführt , anstatt diesen Begriff für Daemons zu verwenden, wie es Windows tut.

Siehe auch

Verweise

Externe Links