Ein Daemon ist ein Computer Programm das im Hintergrund läuft, anstatt unter der direkten Kontrolle des Benutzers zu stehen. Es führt Aufgaben ab dem Moment aus Betriebssystem bootet, bis der Computer ausgeschaltet wird. Zu diesen Aufgaben gehören die Bearbeitung von Netzwerkanfragen, die Verwaltung von Hardwaregeräten, Arbeit planenund Bereitstellung von Diensten wie Web-Serving, E-Mail-Zustellung usw Datenbankmanagement.
Dämonen werden häufig verwendet UNIX und UNIX-ähnliche Systeme, bei denen sie eine wesentliche Rolle bei der Aufrechterhaltung der Funktionalität, der Verwaltung von Ressourcen, der Ausführung von Aufgaben und der Bereitstellung einer Vielzahl systemkritischer Dienste spielen. Betriebssysteme, die den Begriff Daemon nicht verwenden, implementieren jedoch Dienste und Prozesse, die ähnliche Funktionen ausführen.
Geschichte und Entwicklung des Dämons
Das Konzept des Daemons stammt aus den frühen Tagen der Betriebssysteme, insbesondere UNIX, in den späten 1960er und frühen 1970er Jahren. Der Begriff hat seine Wurzeln in der griechischen Mythologie, wo Dämonen als gütige Naturgeister galten. Daher wurde der Begriff in der Informatik übernommen, um Hintergrundprozesse zu beschreiben, die stillschweigend Aufgaben ausführen, ohne mit Benutzern zu interagieren.
Mit der Weiterentwicklung der Online-Dienste sind Daemons für die Verwaltung von Webdiensten und E-Mails unverzichtbar geworden servers und Datenbank Systeme. Sie sind auch für die Systemsicherheit von entscheidender Bedeutung, da sie die Systemaktivitäten überwachen, um sich vor Malware und unbefugtem Zugriff zu schützen.
Heutzutage hat sich das Konzept der Daemons über UNIX hinaus ausgeweitet und wirkt sich auf die Gestaltung von Diensten und Prozessen in anderen Betriebssystemen wie Windows aus (das den Begriff „Dienste“ anstelle von Daemons verwendet). Darüber hinaus sind Dämonen ein grundlegendes Element der Architektur verteilter Systeme. cloud Computing und Microservices.
Daemon vs. Prozess
A Prozessdefinierung ist ein allgemeiner Begriff, der jede Instanz der Ausführung eines Programms beschreibt. Als grundlegende Ausführungseinheit in einem Betriebssystem umfasst es den Programmcode („die ausführbare Datei“), seine aktuelle Aktivität (dargestellt durch den Programmzähler) und die vom Betriebssystem zugewiesenen Ressourcen. Interaktive Prozesse führen Benutzerbefehle aus, während nicht interaktive Prozesse Aufgaben im Hintergrund ausführen.
A Daemon ist eine spezielle Art von Hintergrundprozess, der unabhängig von Benutzersitzungen ausgeführt wird und normalerweise beim Booten des Computers gestartet wird. Daemons haben kein steuerndes Terminal. Stattdessen arbeiten sie im Hintergrund und führen Aufgaben wie die Verwaltung von Netzwerkverbindungen, die Überwachung von Systemen usw. aus. Daemons laufen, bis das System heruntergefahren wird, und erfordern keinen direkten Benutzereingriff.
Wie funktioniert ein Daemon?
Ein Daemon führt Aufgaben autonom und kontinuierlich ohne Interaktion von Benutzern wie folgt aus:
- Initialisierung. Ein Daemon wird normalerweise beim Systemstart gestartet. Während des Initialisierungsprozesses werden die Betriebsparameter, Berechtigungen und Ressourcen eingerichtet, die für den Betrieb des Daemons erforderlich sind.
- Trennung vom steuernden Terminal. Um einen kontinuierlichen Betrieb im Hintergrund sicherzustellen, trennt sich der Daemon vom steuernden Terminal, indem er einen untergeordneten Prozess forkt und den übergeordneten Prozess beendet. Der Kindprozess wird dann vom Init-Prozess übernommen (PID 1) oder ein Äquivalent, um sicherzustellen, dass der Daemon unabhängig läuft.
- Läuft im Hintergrund. Nach dem Trennen läuft der Daemon im Hintergrund, um eine Vielzahl von Aufgaben auszuführen, z. B. das Abhören eingehender Netzwerkverbindungen, die Verwaltung von Ressourcen und die Ausführung geplanter Aufgaben. Wenn Dämonen keine Aufgaben ausführen, wechseln sie in den Ruhezustand, um den Ressourcenverbrauch zu minimieren.
- Protokollierung und Überwachung. Daemons protokollieren ihre Aktivitäten in Systemprotokolldateien, was für die Durchführung von Diagnosen, Audits, die Überwachung des Systemzustands und die Gewährleistung der Einhaltung von Sicherheitsvorschriften wichtig ist.
- Reagieren auf Anfragen und Ereignisse. Daemons können so eingerichtet werden, dass sie auf bestimmte Ereignisse und Anforderungen reagieren, beispielsweise auf Änderungen des Dateisystems oder Anpassungen der Systemlast. Diese Aktivitäten können das Starten oder Stoppen von Aufgaben, das Anpassen der Ressourcenzuteilung oder das Ausführen bestimmter Vorgänge als Reaktion auf vordefinierte Regeln oder Auslöser umfassen.
- Ressourcenmanagement und Bereinigung. Daemons verwalten ihre Ressourcen wie Speicher, Netzwerkverbindungen usw., um Lecks zu verhindern und die Systemstabilität sicherzustellen. Sie bereinigen auch Ressourcen, wenn das System heruntergefahren wird, um zu verhindern, dass unerwünschte Prozesse oder Daten zurückbleiben.
Daemon-Typen
Abhängig von ihrer Funktionalität und den von ihnen bereitgestellten Diensten gibt es verschiedene Arten von Daemons.
Web Server Daemons
Web server Daemons, in der Regel Webbrowser, sind darauf ausgelegt, Anfragen von Clients nach Webinhalten zu verarbeiten und die angeforderten Internetseiten und Ressourcen bereitzustellen. Sie überwachen bestimmte Netzwerkports (z. B. Port 80). HTTP oder Port 443 für HTTPS) und warten Sie auf Verbindungen. Nach Erhalt der Anfrage wird das Web server interpretiert es und greift auf die angeforderte Quelle zu, um die Datei abzurufen und an den Client zurückzusenden.
Abgesehen von der Bereitstellung von Webseiten, Web server Dämonen verwalten auch Verschlüsselung, Benutzer Beglaubigung, Verkehrsumleitung, Datenkomprimierung usw. Häufige Beispiele für das Web server Dämonen sind:
- Apache HTTP Server. Unterstützt eine Reihe von Funktionen.
- nginx. Bietet erweiterte Effizienz und Leistung.
Hinweis: Für einen ausführlichen Vergleich dieser beiden Web servers, lesen Sie unseren Knowledge Base-Artikel Apache vs. Ngnix: Ein detaillierter Vergleich.
Datenbank-Daemons
Datenbank-Daemons sind von entscheidender Bedeutung für Verwaltung der Datenbank Operationen, inkl Datenspeichervorrichtung, Abrufen, Aktualisieren und Bearbeiten. Diese Dienste laufen kontinuierlich weiter servers während auf Datenbankabfragen gewartet wird. Sie sorgen dafür, Datenintegrität, reibungslose Leistung und Sicherheit durch Transaktionsverarbeitung, Zugriffskontrolle und Datensynchronisierung. Datenbank-Daemons verarbeiten große Datenmengen und komplexe Abfragen und ermöglichen einen schnellen und sicheren Zugriff auf Informationen.
Beispiele für Datenbank-Daemons sind:
- mysqld für MySQL. Aufgrund seiner Zuverlässigkeit und Benutzerfreundlichkeit wird es häufig in Webanwendungen verwendet.
- mongod für MongoDB. Wird für Anwendungen verwendet, die eine skalierbare, dokumentenorientierte Speicherung erfordern.
- Postgres für PostgreSQL. Geeignet für die Bearbeitung komplexer Abfragen in relationalen Datenbankumgebungen.
Reichen Sie das Server Daemons
Reichen Sie das server Daemons verwalten die Speicherung, den Abruf und die gemeinsame Nutzung von Dateien zwischen Geräten in einem Netzwerk. Sie ermöglichen mehreren Benutzern und Computersystemen den Zugriff auf gemeinsam genutzte Dateien und Ressourcen, ohne dass physische Speicherübertragungen erforderlich sind. Diese Funktionalität ist für Organisationen, die eine zentrale Datenspeicherung nutzen, von entscheidender Bedeutung.
Die bekanntesten Beispiele für Dateien server Dämonen sind:
- NFS (Network File System). Ermöglicht Benutzern das Mounten entfernter Dateisysteme, als wären sie lokal.
- Samba-Daemon. Ermöglicht die gemeinsame Nutzung von Dateien und Druckern unter Windows. Linux, und macOS-Betriebssysteme.
Mail Server Daemons
Mail server Daemons kümmern sich um das Senden, Empfangen und Speichern von E-Mails über Netzwerke. Sie verarbeiten ein- und ausgehende Nachrichten und führen Spam-Filterung, Weiterleitung und Zustellung durch. Post server Daemons interagieren sowohl mit Clientanwendungen als auch mit E-Mails servers um den reibungslosen Nachrichtentransport zu gewährleisten. Dies geschieht durch Protokolle wie SMTP (Simple Mail Transfer Protocol), POP3 (Post Office Protocol Version 3) und IMAP (Internet Message Access Protocol).
Beispiele für Post server Zu den Dämonen gehören:
- Postfix. Bekannt für seine Effizienz, einfache Konfiguration und robuste Sicherheit.
- Sendmail. Eine der ältesten Postsendungen server Daemons, komplex zu konfigurieren, aber flexibel und kraftvoll.
- Exim. Hochgradig anpassbar und ermöglicht die Erstellung von Skripten für bestimmte E-Mail-Verarbeitungsregeln.
Print Server Daemons
Print server Daemons sind für die Verwaltung der Verteilung und Warteschlange von Druckaufträgen zwischen Druckern und Benutzern unerlässlich. Sie nehmen Druckanfragen entgegen, verarbeiten sie und stellen deren Ausführung auf der entsprechenden Druckerhardware sicher. Drucken server Daemons ermöglichen außerdem eine effiziente Ressourcenfreigabe durch Priorisierung basierend auf Richtlinien oder Benutzeranforderungen.
Eines der häufigsten Beispiele für Druck server Daemons ist CUPS (Common Unix Printing System). Es wird häufig in UNIX-ähnlichen Betriebssystemen verwendet und bietet Funktionen wie Druckerfreigabe, Unterstützung für Seitenbeschreibungssprachen (PDLs) und Treiberverwaltung. CUPS lässt sich problemlos in Netzwerkinfrastrukturen integrieren, um die Verwaltung von Druckdiensten über Hardware- und Betriebssystemumgebungen hinweg zu vereinfachen.
SSH-Daemons
SSH-Daemons sind für die Sicherung der Netzwerkkommunikation von entscheidender Bedeutung. Sie warten auf eingehende Verbindungen, um eine sichere Methode zum Ausführen von Befehlen und zum Übertragen von Dateien über potenziell ungesicherte Netzwerke bereitzustellen. Der SSH Das Protokoll verschlüsselt die Verbindung zwischen dem Client und server um es vor Abhören, Abfangen und Missbrauch zu schützen.
SSH-Daemons werden häufig in Unix-, Linux- und Windows-Betriebssystemen verwendet. SSH unterstützt viele Authentifizierungsmethoden, wie z. B. die passwortbasierte Authentifizierung, die Authentifizierung mit öffentlichen Schlüsseln usw Zwei-Faktor-Authentifizierung, um die Sicherheit im gesamten Netzwerk zu erhöhen. Aufgrund seiner Zuverlässigkeit und Wirksamkeit bei der Sicherung der Fernkommunikation ist es in kommerziellen und Open-Source-Umgebungen weit verbreitet.
FTP-Daemons
fTP Daemons sind von entscheidender Bedeutung für die Erleichterung der Übertragung von Dateien zwischen Systemen über ein TCP/IP-Netzwerk. Sie verwalten die Benutzerauthentifizierung und den Prozess des Auflistens, Übertragens und Bearbeitens von Dateien entsprechend den Berechtigungen. Sie unterstützen verschiedene Verifizierungsmodi, darunter anonymes FTP (File Transfer Protocol), mit dem Benutzer Dateien ohne Benutzerkonto und authentifizierten Zugriff herunterladen können.
Prominente Beispiele für FTP-Daemons sind:
- vsftpd (Very Secure FTP Daemon). Konzentriert sich auf Sicherheit und Geschwindigkeit und wird häufig verwendet in Linux-Distributionen.
- ProFTPD. Hochgradig anpassbar, sodass Administratoren je nach Bedarf Funktionen hinzufügen oder entfernen können.
- Pure-FTPd. Bekannt für seinen unkomplizierten Einrichtungsprozess und das ausgewogene Verhältnis von Sicherheit und Leistung.
Systemüberwachungs-Daemons
Systemüberwachungs-Daemons sorgen für den Zustand und die Leistung von Computersystemen und Netzwerken. Sie laufen kontinuierlich und sammeln Daten zu verschiedenen Systemmetriken, wie z CPU Nutzung, Speicherverbrauch, Festplattenaktivität und Netzwerkverkehr. Indem sie das System genau überwachen, helfen sie Administratoren, potenzielle Probleme zu erkennen, bevor sie eskalieren.
Zu den gängigen Beispielen für Systemüberwachungs-Daemons gehören:
- Nagios. Bekannt für umfangreiche Überwachungsfunktionen, Plugins und Skripte.
- Zabbix. Bietet Echtzeitüberwachung von servers, virtuelle Maschinen, und Netzwerkgeräte.
- Prometheus. Auf Dynamik ausgelegt cloud Umgebungen, die das Sammeln von Zeitreihendaten und die Unterstützung komplexer Alarme erfordern.
DNS-Daemons
Domain Name System (DNS) Daemons übersetzen benutzerfreundliche Domainnamen in IP-Adressen die Computer verwenden, um sich gegenseitig zu identifizieren. Sie laufen auf DNS servers und warten auf Client-Anfragen. Nachdem sie diese erhalten haben, durchsuchen sie die Datenbank, um den Domänennamen mit der entsprechenden IP-Adresse abzugleichen und eine Verbindung herzustellen.
Die häufigsten Beispiele für DNS-Daemons sind:
- BIND (Berkeley Internet Name Domain). Die am weitesten verbreitete DNS-Software unterstützt eine Vielzahl von DNS-Einträgen und -Konfigurationen.
- Ungebunden. Durch den Einsatz von DNSSEC (Domain Name Security Extensions) leichtgewichtig und sicher konzipiert.
Daemon-Beispiele
Die folgende Tabelle bietet einen Überblick über die oben genannten häufigsten Daemon-Beispiele, einschließlich ihrer Namen, ausführbaren Codes und primären Verwendungszwecke:
Daemon-Name | Ausführbarer Code | Hauptnutzen |
Apache HTTP Server | 'httpd' | Web server Daemon zum Bereitstellen von Webseiten. |
Nginx | 'nginx' | Hochleistungs-Web server und Reverse-Proxy. |
MySQL | 'mysqld' | Database server Daemon zur Verwaltung von SQL-Datenbanken. |
MongoDB | 'Mongod' | Dokumentenorientierte Datenbank server Daemon. |
NFS (Netzwerkdateisystem) | 'nfsd' | Reichen Sie das server Daemon zum Teilen von Dateien über ein Netzwerk. |
Samba | 'smbd' | Datei- und Druckdienste für SMB/CIFS-Clients. |
Postfix | 'Postfix' | Mail server Daemon zur Abwicklung der E-Mail-Zustellung. |
Sendmail | 'sendmail' | Mail-Transfer-Agent zum Senden und Empfangen von E-Mails. |
CUPS (Common UNIX Printing System) | 'cupsd' | Print server Daemon zur Verwaltung von Druckaufträgen und Warteschlangen. |
sshd (Secure Shell Daemon) | 'sshd' | Sichere Schale server zur verschlüsselten Fernverwaltung. |
vsftpd (Sehr sicherer FTP-Daemon) | 'vsftpd' | fTP server Daemon für sichere Dateiübertragungen. |
Nagios | 'Nagios' | Daemon zur System- und Netzwerküberwachung. |
BIND (Berkeley Internet Name Domain) | 'genannt' | DNS server Daemon zum Übersetzen von Domainnamen. |