Wat is een daemon?

20 maart 2024

Een daemon is een computerprogramma dat op de achtergrond draait in plaats van onder directe controle van de gebruiker te staan. Het voert taken uit vanaf het moment dat de besturingssysteem start op totdat de computer wordt uitgeschakeld. Deze taken omvatten het afhandelen van netwerkverzoeken, het beheren van hardwareapparaten, taakplanning, en het leveren van diensten zoals webserving, e-mailbezorging of database management.

Daemons worden veel gebruikt in UNIX en UNIX-achtige systemen, waar ze een integrale rol spelen bij het behouden van functionaliteit, het beheren van bronnen, het uitvoeren van taken en het aanbieden van een verscheidenheid aan systeemkritische services. Besturingssystemen die de term daemon niet gebruiken, implementeren niettemin services en processen die vergelijkbare functies uitvoeren.

Daemongeschiedenis en ontwikkeling

Het concept van de daemon stamt uit de begindagen van besturingssystemen, vooral UNIX, eind jaren zestig en begin jaren zeventig. De term heeft zijn wortels in de Griekse mythologie, waar daemonen werden beschouwd als goedaardige natuurgeesten. Daarom werd de term in de computerwereld gebruikt om achtergrondprocessen te beschrijven die in stilte taken uitvoeren zonder interactie met gebruikers.

Met de vooruitgang op het gebied van online services zijn daemons essentieel geworden voor het beheer van webservices en e-mail servers en databank systemen. Ze zijn ook cruciaal voor de systeembeveiliging, omdat ze systeemactiviteiten monitoren om te beschermen tegen malware en ongeautoriseerde toegang.

Tegenwoordig heeft het concept van daemons zich verder uitgebreid dan UNIX en heeft het invloed gehad op het ontwerp van services en processen in andere besturingssystemen, zoals Windows (dat de term 'services' gebruikt in plaats van daemons). Bovendien zijn daemons een fundamenteel onderdeel van de architectuur van gedistribueerde systemen. cloud computergebruik en microservices.

Daemon versus proces

A is een algemene term die elk exemplaar van het uitvoeren van een programma beschrijft. Als de basisuitvoeringseenheid in een besturingssysteem omvat het de programmacode (“het uitvoerbare bestand”), de huidige activiteit ervan (weergegeven door de programmateller) en de bronnen die door het besturingssysteem zijn toegewezen. Interactieve processen voeren gebruikersopdrachten uit, terwijl niet-interactieve processen taken op de achtergrond uitvoeren.

A demon is een specifiek type achtergrondproces dat onafhankelijk van gebruikerssessies wordt uitgevoerd en meestal wordt gestart wanneer de computer opstart. Daemons hebben geen controlerende terminal. In plaats daarvan opereren ze op de achtergrond en voeren ze taken uit zoals het beheren van netwerkverbindingen, het monitoren van systemen, enz. Daemons draaien totdat het systeem wordt afgesloten en vereisen geen directe tussenkomst van de gebruiker.

Hoe werkt een daemon?

Een daemon voert als volgt taken autonoom en continu uit zonder interactie van gebruikers:

  1. Initialisatie. Een daemon start doorgaans wanneer het systeem opstart. Tijdens het initialisatieproces worden de operationele parameters, machtigingen en bronnen ingesteld die nodig zijn om de daemon te laten werken.
  2. Onthechting van de controlerende terminal. Om een ​​continue werking op de achtergrond te garanderen, maakt de daemon zich los van de controlerende terminal door een onderliggend proces te forken en het bovenliggende proces te beëindigen. Het onderliggende proces wordt vervolgens overgenomen door het init-proces (PID 1) of het equivalent daarvan om ervoor te zorgen dat de daemon onafhankelijk werkt.
  3. Draait op de achtergrond. Na het loskoppelen draait de daemon op de achtergrond om een ​​breed scala aan taken uit te voeren, zoals het luisteren naar inkomende netwerkverbindingen, het beheren van bronnen en het uitvoeren van geplande taken. Wanneer ze geen taken uitvoeren, gaan daemons in een slaapstand om het verbruik van hulpbronnen te minimaliseren.
  4. Loggen en monitoren. Daemons registreren hun activiteiten in systeemlogbestanden, wat belangrijk is voor het uitvoeren van diagnostiek, audits, het monitoren van de systeemgezondheid en het garanderen van naleving van de beveiligingsregels.
  5. Reageren op verzoeken en evenementen. Daemons kunnen worden ingesteld om te reageren op bepaalde gebeurtenissen en verzoeken, zoals wijzigingen in het bestandssysteem of aanpassingen aan de systeembelasting. Deze activiteiten kunnen het starten of stoppen van taken omvatten, het aanpassen van de toewijzing van middelen of het uitvoeren van specifieke bewerkingen als reactie op vooraf gedefinieerde regels of triggers.
  6. Beheer en opruimen van hulpbronnen. Daemons beheren hun bronnen, zoals geheugen, netwerkverbindingen, enz., om lekken te voorkomen en de systeemstabiliteit te garanderen. Ze ruimen ook bronnen op wanneer het systeem wordt afgesloten om te voorkomen dat ongewenste processen of gegevens achterblijven.

Daemon-typen

Er zijn verschillende soorten daemons, afhankelijk van hun functionaliteit en de diensten die ze leveren.

Web Server daemons

Web server daemons, meestal webbrowsers, zijn ontworpen om verzoeken om webinhoud van clients af te handelen en de gevraagde internetpagina's en bronnen te bedienen. Ze luisteren op specifieke netwerkpoorten (bijvoorbeeld poort 80 voor HTTP of poort 443 voor HTTPS) en wacht op verbindingen. Na ontvangst van het verzoek wordt de web server interpreteert het en benadert de gevraagde bron om het bestand op te halen en terug te sturen naar de client.

Naast het aanbieden van webpagina's, biedt web server daemons beheren het ook encryptie, gebruiker authenticatie, verkeersomleiding, datacompressie, enz. Veelvoorkomende voorbeelden van internet server daemonen zijn:

  • Apache HTTP Server. Ondersteunt een reeks functionaliteiten.
  • nginx. Biedt geavanceerde efficiëntie en prestaties.

Opmerking: Voor een diepgaande vergelijking van deze twee web servers, raadpleeg ons kennisbankartikel Apache versus Ngnix: een gedetailleerde vergelijking.

Database-daemonen

Database-daemons zijn van cruciaal belang voor het beheren van de database operaties, incl gegevensopslag, ophalen, bijwerken en manipulatie. Deze diensten draaien continu door servers in afwachting van databasequery's. Zij zorgen ervoor data-integriteit, soepele prestaties en beveiliging door transactieverwerking, toegangscontrole en gegevenssynchronisatie. Database-daemons verwerken grote hoeveelheden gegevens en complexe zoekopdrachten en bieden snelle en veilige toegang tot informatie.

Voorbeelden van database-daemons zijn:

  • mysqld voor MySQL. Wordt veel gebruikt in webapplicaties vanwege de betrouwbaarheid en het gebruiksgemak.
  • mongod voor MongoDB. Gebruikt voor toepassingen die schaalbare, documentgeoriënteerde opslag vereisen.
  • postgres voor PostgreSQL. Geschikt voor het afhandelen van complexe queries in relationele databaseomgevingen.

Dien in Server daemons

Dien in server daemons beheren de opslag, het ophalen en het delen van bestanden tussen apparaten in een netwerk. Ze bieden meerdere gebruikers en computersystemen toegang tot gedeelde bestanden en bronnen zonder dat fysieke opslagoverdracht nodig is. Deze functionaliteit is essentieel voor organisaties die gebruik maken van gecentraliseerde dataopslag.

De bekendste voorbeelden van file server daemonen zijn:

  • NFS (netwerkbestandssysteem). Hiermee kunnen gebruikers externe bestandssystemen koppelen alsof ze lokaal zijn.
  • Samba-daemon. Maakt het delen van bestanden en printers in Windows mogelijk, Linuxen macOS-besturingssystemen.

E-mailadres Server daemons

E-mailadres server daemons zorgen voor het verzenden, ontvangen en opslaan van e-mail via netwerken. Ze verwerken inkomende en uitgaande berichten, voeren spamfilters uit, routeren en bezorgen. Mail server daemons communiceren met zowel clienttoepassingen als e-mail servers om een ​​vlotte doorvoer van berichten te garanderen. Ze doen dit via protocollen zoals SMTP (Eenvoudig e-mailoverdrachtprotocol), POP3 (Postkantoorprotocol versie 3), en IMAP (Internetberichttoegangsprotocol).

Voorbeelden van post server daemonen zijn onder meer:

  • Postfix. Bekend om zijn efficiëntie, configuratiegemak en robuuste beveiliging.
  • Verzend mail. Een van de oudste post server daemons, complex om te configureren, maar flexbaar en krachtig.
  • Exim. Zeer aanpasbaar, waardoor scripting voor specifieke regels voor e-mailverwerking mogelijk is.

Print Server daemons

Print server daemons zijn essentieel voor het beheren van de distributie en wachtrijen van afdruktaken tussen printers en gebruikers. Ze accepteren en verwerken printverzoeken en zorgen ervoor dat ze worden uitgevoerd op de juiste printerhardware. Afdrukken server daemons maken ook het efficiënt delen van bronnen mogelijk door prioritering op basis van beleid of gebruikersvereisten.

Een van de meest voorkomende voorbeelden van afdrukken server daemons is CUPS (Common Unix Printing System). Het wordt veel gebruikt in UNIX-achtige besturingssystemen en biedt functies zoals het delen van printers, ondersteuning voor paginabeschrijvingstalen (PDL's) en stuurprogrammabeheer. CUPS kan eenvoudig worden geïntegreerd in netwerkinfrastructuren om het beheer van printservices in hardware- en besturingssysteemomgevingen te vereenvoudigen.

SSH-daemons

SSH-daemons zijn van cruciaal belang voor het beveiligen van netwerkcommunicatie. Ze luisteren naar inkomende verbindingen en bieden zo een veilige methode voor het uitvoeren van opdrachten en het overbrengen van bestanden via mogelijk onbeveiligde netwerken. De SSH protocol codeert de verbinding tussen de client en server om het te beschermen tegen afluisteren, onderschepping en misbruik.

SSH-daemons worden veel gebruikt in Unix-, Linux- en Windows-besturingssystemen. SSH ondersteunt vele authenticatiemethoden, zoals op wachtwoord gebaseerde authenticatie, authenticatie met openbare sleutels en two-factor authenticatie, om de beveiliging in het hele netwerk te verbeteren. Het is breed toepasbaar in commerciële en open-sourceomgevingen vanwege de betrouwbaarheid en effectiviteit bij het beveiligen van communicatie op afstand.

FTP-daemons

FTP daemons zijn cruciaal voor het vergemakkelijken van de overdracht van bestanden tussen systemen via een TCP/IP-netwerk. Ze beheren de gebruikersauthenticatie en het proces van het weergeven, overdragen en manipuleren van bestanden op basis van machtigingen. Ze ondersteunen verschillende verificatiemethoden, waaronder anonieme FTP (File Transfer Protocol), waarmee gebruikers bestanden kunnen downloaden zonder een gebruikersaccount en geverifieerde toegang.

Prominente voorbeelden van FTP-daemons zijn onder meer:

  • vsftpd (zeer veilige FTP-daemon). Richt zich op veiligheid en snelheid en wordt veel gebruikt in Linux-distributies.
  • ProFTPD. Zeer aanpasbaar, waardoor beheerders indien nodig functies kunnen toevoegen of verwijderen.
  • Puur FTPd. Bekend om zijn eenvoudige installatieproces en de balans tussen beveiliging en prestaties.

Systeembewakingsdaemons

Systeemmonitoringdaemons zorgen voor de gezondheid en prestaties van computersystemen en netwerken. Ze zijn continu actief en verzamelen gegevens over verschillende systeemstatistieken, zoals CPU gebruik, geheugengebruik, schijfactiviteit en netwerkverkeer. Door het systeem nauwlettend in de gaten te houden, helpen ze beheerders potentiële problemen op te sporen voordat deze escaleren.

Veel voorkomende voorbeelden van daemons voor systeemmonitoring zijn:

  • nagios. Bekend om uitgebreide monitoringfuncties, plug-ins en scripts.
  • Zabbix. Biedt realtime monitoring van servers, virtuele machinesen netwerkapparaten.
  • Prometheus. Ontworpen voor dynamisch cloud omgevingen die het verzamelen van tijdreeksgegevens en complexe waarschuwingsondersteuning vereisen.

DNS-daemons

DNS (Domeinnaam Systeem) daemons vertalen mensvriendelijke domeinnamen naar IP adressen waarmee computers elkaar identificeren. Ze draaien op DNS servers en luister naar verzoeken van klanten. Nadat ze deze hebben ontvangen, doorzoeken ze de database om de domeinnaam te matchen met het bijbehorende IP-adres om een ​​verbinding tot stand te brengen.

De meest voorkomende voorbeelden van DNS-daemons zijn:

  • BIND (Berkeley internetnaamdomein). De meest gebruikte DNS-software ondersteunt een breed scala aan DNS-records en -configuraties.
  • Ongebonden. Ontworpen om lichtgewicht en veilig te zijn door het gebruik van DNSSEC (Domain Name Security Extensions).

Daemon-voorbeelden

De onderstaande tabel geeft een overzicht van de meest voorkomende daemonvoorbeelden die hierboven zijn genoemd, inclusief hun namen, uitvoerbare code en primaire toepassingen:

Daemon-naamUitvoerbare codePrimair gebruik
Apache HTTP Server'httpd'Web server daemon voor het weergeven van webpagina's.
Nginx'nginx'Hoogwaardig web server en omgekeerde proxy.
MySQL'mysqld'Database server daemon voor het beheren van SQL-databases.
MongoDB'mongod'Documentgerichte database server demon.
NFS (netwerkbestandssysteem)'nfsd'Dien in server daemon voor het delen van bestanden via een netwerk.
Samba'smbd'Bestands- en printservices voor SMB/CIFS-clients.
postfix'postfix'E-mailadres server daemon voor het afhandelen van e-mailbezorging.
Sendmail'Verzend mail'Mailtransferagent voor het verzenden en ontvangen van e-mail.
CUPS (gemeenschappelijk UNIX-afdruksysteem)'cupsd'Print server daemon voor het beheren van afdruktaken en wachtrijen.
sshd (veilige shell-daemon)'sshd'Veilige schaal server voor gecodeerd beheer op afstand.
vsftpd (zeer veilige FTP-daemon)'vsftpd'FTP server daemon voor veilige bestandsoverdracht.
Nagios'nagio's'Systeem- en netwerkbewakingsdaemon.
BIND (Berkeley internetnaamdomein)'genaamd'DNS server daemon voor het vertalen van domeinnamen.

Anastasia
Spasojević
Anastazija is een ervaren contentschrijver met kennis en passie voor cloud computergebruik, informatietechnologie en onlinebeveiliging. Bij phoenixNAP, richt ze zich op het beantwoorden van brandende vragen over het waarborgen van de robuustheid en veiligheid van gegevens voor alle deelnemers aan het digitale landschap.