WikiDer > Dämon (Unix)

Daemon (Unix)

Dämon ist der Begriff innerhalb Unix und Unix-ähnlich Betriebssysteme (wie Linux und FreeBSD) wird verwendet, um a . zu erstellen Prozess um anzuzeigen, dass es im Hintergrund aktiv ist, um bestimmte (Wartungs-)Aufgaben durchzuführen oder um Dienste für andere Computerprogramme bereitzustellen. Im Fenster solche Hintergrundprogramme werden normalerweise Dienstleistungen erwähnt.

Der Daemon-Prozess

Es ist für viele Standardaufgaben von a Computer ist es selbstverständlich geworden, diese Aufgaben in einem Kundenserver die Architektur. Dazu gehört das Drucken über a Drucker oder Lesen von Dateien von a Festplatte.

Der Vorteil der Aufteilung einer solchen Aufgabe in einen Client-Teil (der Teil, der die Aufgabe ausführen möchte) und einen Server-Teil (der die Aufgabe ausführt) besteht darin, dass die Identität des Clients für den Server vollständig transparent wird - für den Server ist es egal wer die Aufgabe erledigt haben möchte. Dies macht es sehr einfach, bestimmte Funktionen eines Computers mit anderen Computern zu teilen (ein Netzwerkdrucker anstelle eines separaten Druckers für jeden Computer, Dateien auf einer Festplatte mit anderen Benutzern teilen, anstatt zwischen Computern über einen separaten Drucker zu übertragen). . Es vereinfacht auch das Design der Software für eine solche Aufgabe und kann sogar die Interoperabilität zwischen Systemen fördern (jeder Client, der den Server adressieren kann, kann dies tun - kein Streit mehr darüber, welcher). Dateiformate für die Festplatte welche Betriebssysteme unterstützt werden).

Für eine solche Aufgabe muss ein Server zwei Dinge tun können: Anforderungen zur Ausführung der Aufgabe annehmen und die Aufgabe selbst ausführen. Es ist gängige Praxis (wenn es bereits mehrere gibt) Prozesse beteiligt sind), um diese beiden Teilaufgaben aufzuteilen: jede Teilaufgabe ihren eigenen Prozess. Ein Prozess erledigt die eigentliche Aufgabe, ein anderer nimmt die Anfrage entgegen und startet die Ausführung. Der letztere Prozess ist Unix-Kreise wird als Daemon-Prozess bezeichnet.

Es gibt zwei Arten von Servern oder Daemonprozessen: gleichzeitige und iterative Daemons.

Betrieb eines Konkurrenz-Daemons

Normalerweise arbeitet ein Daemon so, dass der Prozess die meiste Zeit angehalten wird. Nur wenn eine Anfrage für einen Dienst eingeht, hat der Daemon etwas zu tun. Und was der Daemon normalerweise tut, ist einen separaten Prozess zu starten, der die eigentliche Aufgabe erledigt (also gibt es einen ausführenden Prozess pro Anforderung) und sicherzustellen, dass ein separater Prozess mit dem Client kommunizieren kann, der die Anforderung gestellt hat. Dann lässt der Daemon den separaten Prozess seinen Lauf und geht zurück in den "Schlaf" und wartet auf die nächste Anfrage.

Der Grund für dieses Setup ist folgender: Um mit einem Server über das Netzwerk zu kommunizieren, muss ein Client die Adresse des Servers kennen: den Computer, auf dem der Server läuft und den genauen Standort, von dem aus auf den Server zugegriffen werden kann Computer (dies wird das Tor genannt). Die Kombination aus IP-Adresse und Port wird als Socket bezeichnet. Über einen Socket kann jedoch immer nur eine Verbindung geöffnet werden. Wenn also der Listener eines Servers über diesen einen Socket mit einem Client beschäftigt ist, kann Unix trotzdem Multitasking sind, muss ein nachfolgender Client warten, bis der Listener mit dem vorhergehenden Client fertig ist. Durch die Aufteilung des Servers in mehrere Prozesse (auf Englisch heißt das Gabelung) kann Folgendes passieren: Der Daemon nimmt die Anfrage des Clients auf dem Standardport entgegen (den alle Clients für diesen Server kennen). Dann startet der Daemon einen ausführenden Prozess. Der Server kann den Client nun während des Ausführungsprozesses unterstützen. Der ausführende Prozess und der Client kommunizieren weiterhin über einen anderen, nicht standardmäßigen Port. Dadurch kann der Daemon wieder auf dem Standardport lauschen, bis die nächste Verbindung eintrifft. Dadurch kann der Server mehrere Clients gleichzeitig bedienen.

Anstelle eines Prozesses kann hier auch eine Task oder ein Thread gestartet werden, je nach den vom Betriebssystem unterstützten Modellen.

Betrieb eines iterativen Daemons

Der Betrieb eines iterativen Daemons ist noch einfacher als der eines gleichzeitigen Daemons. Iterative Daemons binden ebenfalls einen Socket und lauschen an einem Port, wie gleichzeitige Daemons, verarbeiten jedoch jeweils nur eine Anfrage. Wenn ein Client bedient wird, können keine anderen Clients den Socket öffnen. In vielen Fällen reicht dieses einfachere Modell nicht aus, sodass ein gleichzeitiger Daemon verwendet wird.

localhost

Jetzt bleibt nur noch die Frage: Was passiert, wenn ein Kunde einen Service nutzen möchte, der von zur Verfügung gestellt wird? das gleiche Computer wie der, auf dem der Client läuft? Denn das ist keine Verbindung mehr über das Netzwerk. Sollten Client und Server für diesen speziellen Fall etwas ganz Besonderes tun? Glücklicherweise ist die Antwort auf diese Frage "Nein" (sonst wäre es sehr schwierig, einen anständigen Server zu schreiben). Unix-Umgebungen bieten alle möglichen Möglichkeiten für Prozesse, um die Netzwerkkommunikation zu simulieren, sodass ein Computer mit sich selbst sprechen kann und trotzdem "nur" eine Netzwerkverbindung zu sein scheint. Eine solche Verbindung läuft in der Regel über eine virtuelle "Netzwerkkarte" im Computer, ein sogenanntes "Loopback-Gerät". Dies wird normalerweise als localhost bezeichnet.

Herkunft des Namens Dämon

Der Name Daemon wurde von den Programmierern des Project MAC of . geprägt MIT. Es ist ein Hinweis auf Maxwells Dämon, ein berühmter Gedankenexperiment ab 1867, aus dem schottischPhysikerJames Clerk Maxwell. Dieser Dämon arbeitet ständig im Hintergrund und sortiert Moleküle. Diese Interpretation steht im Einklang mit der griechischen Vorstellung von Dämonen als Fabelwesen, die ständig im Hintergrund arbeiten, ohne Vorliebe für Gut oder Böse.

Laut einigen steht DAEMON für "Disk And Execution MOnitor", dies ist jedoch nicht die ursprüngliche Bedeutung, sondern eher ein backronym.

Ähnliche Programme in anderen Betriebssystemen

In dem DOSUmgebung wurden äquivalente Programme geschrieben als Kündigen und ansässig bleibenSoftware (TSR). unten Microsoft Windows Dämonen werden Dienstleistungen erwähnt.[1] Auf dem Original Mac OS sie nennen solche Programme Erweiterungen. Mac OS X, das von Unix stammt, hat Daemons.

Siehe auch

  • systemd, ein Boot-Daemon für Linux

Externer Link