I nostri computer pullulano di demoni. Ben inteso, gli esseri terribili che animano le leggende di mezzo mondo c'entrano ben poco. In ambito informatico, quando si parla di daemon (demone, quando lo si va a tradurre in italiano) si intende un programma o un processo di background di lunga durata che fornisce risposte a richieste di servizi.
Cosa sono i daemon
In termini più semplici i daemon sono dei programmi che, in sistemi operativi multi-tasking derivanti da Unix, funzionano indipendentemente dalla volontà dell'utente che amministra il sistema. I demoni sono solitamente inizializzati all'avvio del computer e restano in funzione sino allo spegnimento del computer. Questo, però, non vuol dire che sono sempre attivi: i daemon restano come in “ascolto silenzioso” e solamente quando arriva una richiesta di loro competenza si attivano ed entrano in funzione.
A cosa servono i daemon
Tutti i sistemi operativi Unix-like (Linux, Windows, OSX, ecc.) basano il loro funzionamento su un gran numero di demoni. Questi servono ad espletare alcune delle funzioni più basilari dei sistemi informatici, rispondendo a richieste di servizi in arrivo da alcuni componenti hardware o software o, nel caso di computer in rete, da altri nodi.
Un daemon, ad esempio, può entrare in funzione ogniqualvolta l'orologio del sistema segna una determinata ora, se un file viene salvato all'interno di una determinata cartella, se si riceve un messaggio di posta elettronica o se si riceve una richiesta attraverso il web.
Come funzionano i daemon
In un sistema operativo derivato da Unix, un processo si può definire daemon quando ha il processo init come processo padre e non ha altro terminale che gli possa inviare altri comandi. Ciò vuol dire che si tratta di un processo sostanzialmente autonomo dal funzionamento del computer, ma non per questo incapace di interagire con il sistema stesso.
Un processo può seguire varie strade per rendersi autonomo ed entrare così a far parte della schiera dei demoni. La più seguita, però, prevede che il programma o il processo stesso invochi la chiamata di sistema fork, così da creare un processo figlio identico a se stesso. A questo punto il processo padre termina, trasformando il processo figlio in un processo orfano presto adottato dal processo init. Il processo orfano resta comunque attivo, chiudendo i canali standard e disconnettendosi da ogni altro terminale: da questo momento in avanti sarà in funzione in background e si riattiverà solo dopo una chiamata specifica.
L'origine del nome
La mitologia greca ha avuto una grandissima influenza nel determinare il nome di questi processi. I demoni, infatti, erano esseri soprannaturali a metà strada tra gli dei e gli umani. Dotati di poteri speciali, erano soliti agire nell'oscurità (in the background in inglese) senza particolari pregiudizi nei confronti del bene e del male. In ambito informatico, la parola daemon venne utilizzata per la prima volta dal team di ricerca del Progetto MAC del Massachusetts Institute of Technology. Ad ispirarli il celebre Diavoletto di Maxwell, protagonista di un famoso esperimento mentale del celebre matematico e fisico scozzese.
Una spiegazione alternativa vorrebbe la parola daemon come acronimo di Disk And Execution MONitor (monitor dei dischi e dell'esecuzione), anche se non è supportata da riscontri effettivi. È in questo senso, però, che la parola viene utilizzata all'interno di DAEMON tools, celebre programma di virtualizzazione di dischi.
9 dicembre 2013