In informatica, cos’è un “demone”?

"Daemon" in greco significa "aiutante". In Unix, un demone è un programma di sistema, staccato da qualsiasi terminale, che controlla una risorsa di sistema e fornisce l'accesso ad essa attraverso protocolli di intercomunicazione tra processi. I demoni spesso usano file di configurazione per controllare le loro azioni. Un esempio è la funzione cron, che permette agli utenti di pianificare programmi da eseguire periodicamente. Il programma crond si avvia all'avvio e legge i file nella directory /var/spool/cron/crontabs. Gli utenti interagiscono con cron modificando il loro file crontab con l'utilità crontab, che invia un segnale a crond per rileggere il file quando viene salvato. I sistemi moderni usano un demone chiamato systemd che gestisce tutti i servizi di sistema. Il demone "named" è un'interfaccia al DNS (servizio dei nomi di dominio) per risolvere i nomi di dominio Internet in indirizzi IP. Il demone https su un server ascolta sulla porta 80 (e/o altre come specificato nei file di configurazione) e serve le pagine web. Cupsd ascolta le richieste di stampa e gestisce la stampa. Ntpd interroga i time server per mantenere accurata l'ora del sistema. Sshd ascolta sulla porta 22 di default le richieste di login, applicando le regole nel file /etc/ssh/sshd_config per permettere o negare i tentativi di login, che vengono poi passati al demone di login se soddisfano i criteri di protocollo, host remoto, elenco utenti, metodo di crittografia e chiavi di crittografia corrette. Altri demoni gestiscono la registrazione degli eventi di sistema e ogni demone invia messaggi di log al demone di registrazione del sistema.