Daemon (Computer)

Komponenten einiger Linux Desktop -Umgebungen das sind Daemons beinhalten D-Bus, Netzwerk Manager (hier genannt unetwork), Pulseaudio (Usound), und Avahi.

Im Multitasking Computer Betriebssysteme, a Dämon (/ˈdichmən/ oder /ˈdmən/)[1] ist ein Computer Programm das läuft als Hintergrundprozess, anstatt unter der direkten Kontrolle eines interaktiven Benutzers zu stehen. Traditionell enden die Prozessnamen eines Daemon mit dem Brief dzur Klärung, dass der Prozess tatsächlich ein Daemon ist, und zur Differenzierung zwischen einem Daemon und einem normalen Computerprogramm. Zum Beispiel, syslogd ist ein Daemon, der eine Systemprotokollierungseinrichtung implementiert und sshd ist ein Daemon, der eingehende dient Ssh Verbindungen.

In einem Unix Umgebung, die Elternprozess eines Daemons ist oft, aber nicht immer, das drin Prozess. Ein Daemon wird normalerweise entweder durch einen Prozess erstellt Gabel Ein untergeordneter Prozess und dann sofort, wodurch init den Kinderprozess oder durch den Init -Prozess, der den Dämon direkt auf den Markt bringt, übernimmt. Darüber hinaus muss ein Dämon, der durch Gabeln und Verlassen gestartet wird, typischerweise andere Vorgänge ausführen, z. Terminal (tty). Solche Verfahren werden häufig in verschiedenen Convenience -Routinen wie z. Daemon (3) in Unix.

Systeme beginnen oft Daemons bei Stiefel Zeit, die auf Netzwerkanfragen, Hardwareaktivitäten oder andere Programme reagiert, indem einige Aufgaben ausgeführt werden. Daemonen wie Cron kann auch definierte Aufgaben zu geplanten Zeiten ausführen.

Terminologie

Der Begriff wurde von den Programmierern bei geprägt Projekt MAC des MIT. Entsprechend Fernando J. Corbató, wer arbeitete daran Projekt MAC 1963 war sein Team das erste, das den Begriff Daemon verwendete, inspiriert von Maxwells Dämon, ein imaginärer Agent in Physik und Thermodynamik Das half bei der Sortierung von Molekülen und sagte: "Wir haben mit dem Wort Daemon fantasievoll anfingen, Hintergrundprozesse zu beschreiben, die unermüdlich zur Durchführung von Systemaufgaben funktionierten."[2] Unix Systeme erbte diese Terminologie. Maxwells Dämon steht im Einklang mit der Interpretation der griechischen Mythologie von a Dämon als übernatürliches Arbeiten im Hintergrund.

Im allgemeinen Sinne ist Dämon eine ältere Form des Wortes "Dämon" aus dem griechisch Δαίμων. In dem UNIX System Administration Handbuch Evi Nemeth stellt Folgendes über Daemons fest:[3]

Viele Menschen setzen das Wort "Daemon" mit dem Wort "Dämon" gleich, was eine Art von Art von impliziert satanisch Verbindung zwischen UNIX und der Unterwelt. Dies ist ein ungeheuerliches Missverständnis. "Daemon" ist eigentlich eine viel ältere Form von "Dämon"; Daemons haben keine besondere Voreingenommenheit in Richtung Gut oder Böse, sondern dienen dazu, den Charakter oder die Persönlichkeit einer Person zu definieren. Das Antike Griechen'Konzept eines "persönlichen Dämones" war dem modernen Konzept eines "Schutzengels" ähnlich -Eudaemonia ist der Zustand, der von einem freundlichen Geist geholfen oder geschützt wird. In der Regel scheinen UNIX -Systeme sowohl mit Daemons als auch Dämonen befallen zu sein.

Eine weitere Charakterisierung der mythologischen Symbolik ist, dass ein Daemon etwas ist, das noch nicht sichtbar ist und immer vorhanden ist und seinen Willen arbeitet. In dem Das Alter, zugeschrieben Plato, Sokrates beschreibt seinen eigenen persönlichen Daemon als so etwas wie das moderne Konzept eines moralischen Gewissens: "Die Gunst der Götter hat mir ein wunderbares Geschenk gegeben, das mich seit meiner Kindheit nie mehr verlassen hat. Es ist eine Stimme, die, wenn sie sich selbst gehört macht , abschreckt mich von dem ab, was ich gerade tun werde und drängt mich nie an ".

In der modernen Verwendung das Wort Dämon wird ausgesprochen /ˈdichmən/ Dee-mən. Im Kontext der Computersoftware die ursprüngliche Aussprache /ˈdichmən/ hat zu /ˈdmən/ TAG-mən Für einige Redner.[1]

Alternative Begriffe für Dämon sind Service (verwendet in Windows, von Windows NT - und später auch unter Linux), Startaufgabe (IBM Z/OS),[4] und Geisterjob (Xds UTS).

Nachdem der Begriff für den Computergebrauch übernommen wurde, wurde er als rationalisiert als BackRonym Für Festplatten- und Ausführungsmonitor.[5]

Daemons, die eine Verbindung zu einem Computernetzwerk herstellen Netzwerkdienste.

Implementierungen

Unix-ähnliche Systeme

In einem streng technischen Sinne ist ein Unix-ähnlicher Systemprozess ein Daemon, wenn sein übergeordneter Prozess endet und dem Daemon die zugewiesen wird drin Prozess (Prozessnummer 1) als übergeordneter Prozess und verfügt über keinen Steuerterminal. Allgemeiner kann ein Daemon ein Hintergrundprozess sein, unabhängig davon, ob ein Kind des Init -Prozesses oder nicht.

Bei einem Unix-ähnlichen System wird die gemeinsame Methode, in der ein Prozess zu einem Daemon wird, wenn der Prozess aus dem gestartet wird Befehlszeile oder von einem Startskript wie einem drin Skript oder a Systemstarter Skript beinhaltet:

  • Optional entfernen Sie unnötige Variablen aus der Umgebung.
  • Ausführung als a Hintergrundanwendung durch Gabel und ausgehen (in der Eltern "Hälfte" der Gabel). Auf diese Weise können Dämones übergeordnete (Shell- oder Startprozess) die Ausgangsbenachrichtigung empfangen und seine normale Ausführung fortsetzen.
  • Ablösung von der aufgerufenen Sitzung, die normalerweise durch eine einzelne Operation durchgeführt wird, setsid ():
    • Dissoziierung von der Kontrolle tty.
    • Erstellen einer neuen Sitzung und zum Sitzungsleiter dieser Sitzung.
    • Ein ... werden Prozessgruppe Führer.
  • Wenn der Daemon sicherstellen möchte, dass er auch zufällig einen neuen kontrollierenden TTY erfasst (was passiert, wenn ein Sitzungsleiter ohne kontrollierende TTY ein kostenloses TTY eröffnet), kann er erneut gabeln und verlassen. Dies bedeutet, dass es in der neuen Sitzung kein Sitzungsleiter mehr ist und keine kontrollierende TTY erwerben kann.
  • Einstellen des Wurzelverzeichnis ( /) als Strom Arbeitsverzeichnis Damit der Prozess kein Verzeichnis in Gebrauch hält, das auf a sein kann montiert Dateisystem (so dass es unmontiert werden kann).
  • Wechseln Ummask zu 0 zuzulassen offen(), creat ()und andere Betriebssystemaufrufe, um ihre eigenen Berechtigungsmasken bereitzustellen und sich nicht von der Ummask des Anrufers abhängig zu machen.
  • Umleitung Dateideskriptoren 0, 1 und 2 für die Standardströme (Stdin, Stdout und Stderr) zu /dev/null oder ein Logdateiund schließen alle anderen Dateideskriptoren, die aus dem übergeordneten Prozess geerbt wurden.

Wenn der Prozess von a gestartet wird Super-Server Daemon, wie z. inetd, starten, oder systemdDer Super-Server-Daemon wird diese Funktionen für den Prozess ausführen,[6][7][8] mit Ausnahme von Daemons im alten Stil, das nicht umgewandelt wurde, um darunter zu rennen systemd und angegeben als Typ = Gabing[8] und "multi-threadd" -Datagrammserver unter inetd.[6]

MS-DOS

In dem Microsoft DOS Umgebung, Daemon-ähnliche Programme wurden als implementiert als Beenden und ansässig bleiben (TSR) Software.

Windows NT

An Microsoft Windows NT Systeme, Programme genannt Windows Services Führen Sie die Funktionen von Daemons aus. Sie laufen als Prozesse aus, interagieren normalerweise nicht mit dem Monitor, der Tastatur und der Maus und können zum Startzeit vom Betriebssystem gestartet werden. Im Windows 2000 und spätere Versionen werden Windows -Dienste konfiguriert und manuell gestartet und mit dem mithilfe der manuell gestoppt Schalttafel, ein dediziertes Steuer-/Konfigurationsprogramm, die Service Controller -Komponente der Service Control Manager (sc Befehl), die Netzstart und Netzstopp Befehle oder die Power Shell Skriptsystem.

Jede Windows -Anwendung kann jedoch die Rolle eines Daemons, nicht nur eines Dienstes, ausführen, und einige Windows -Daemons haben die Möglichkeit, als normaler Prozess auszuführen.

Klassiker Mac OS und MacOS

Auf der Klassischer Mac OS, optionale Funktionen und Dienste wurden durch Dateien bereitgestellt, die zum Startzeit geladen wurden, in dem das Betriebssystem gepatcht wurde. Diese waren bekannt als als Systemerweiterungen und Kontrollplatten. Spätere Versionen von Classic MAC OS erweiterten diese mit vollwertig gesichtslose Hintergrundanwendungen: Regelmäßige Anwendungen, die im Hintergrund lagen. Für den Benutzer wurden diese weiterhin als reguläre Systemerweiterungen beschrieben.

Mac OS, die ein Unix System verwendet Daemons. Beachten Sie, dass MacOS den Begriff "Dienste" verwendet, um Software zu benennen, die Funktionen ausführt, die aus dem ausgewählt wurden Dienstleistungsmenü, anstatt diesen Begriff für Daemons wie Windows zu verwenden.

Siehe auch

Verweise

  1. ^ a b Eric S. Raymond. "Dämon". Die Jargon -Datei. Abgerufen 2008-10-22.
  2. ^ "Der Ursprung des Wortes Daemon".
  3. ^ "Der BSD -Daemon". FreeBSD.org. Abgerufen 2008-11-15.
  4. ^ "IBM Knowledge Center - Glossar von Z/OS -Begriffen und Abkürzungen". IBM.
  5. ^ "Dämondefinition". www.linfo.org.
  6. ^ a b inetd (8)- -Freebsd Systemmanager Handbuch
  7. ^ stirtd.plist (5)- -Darwin und Mac OS Dateiformate Handbuch
  8. ^ a b "systemd.service". freedesktop.org. Abgerufen 25. August, 2012.

Externe Links