Demone (informatica)Un demone (in lingua inglese daemon), in informatica e più in generale nei sistemi operativi multitasking, è un programma eseguito in background, cioè senza che sia sotto il controllo diretto dell'utente, tipicamente fornendo un servizio all'utente. Principalmente viene utilizzato sui server ma anche su normali PC. EtimologiaI programmatori di CTSS coniarono il termine demone in analogia con il diavoletto di Maxwell e tutti i sistemi discendenti da esso, incluso Unix, hanno ereditato la terminologia. I demoni sono personaggi della mitologia greca, alcuni dei quali eseguivano compiti di cui gli dèi non potevano occuparsi, esattamente come i demoni eseguono compiti in background di cui l'utente non vuole o non può occuparsi. BSD e alcuni dei suoi derivati hanno adottato un demone come mascotte, anche se disegnato come stereotipo del diavolo del Cristianesimo. Un'altra possibile etimologia del termine è nell'acronimo "disk and execution monitor" (monitor dei dischi e dell'esecuzione), ma è più che altro una supposizione. Descrizione e funzionamentoDi solito i demoni hanno nomi che finiscono per "d": per esempio, Spesso i demoni vengono avviati al boot del sistema: in generale hanno la funzione di rispondere a determinate richieste, che siano di rete, hardware, ecc. Ad esempio, alcuni usi dei demoni possono essere la configurazione delle periferiche, (come DEVFS nei sistemi Linux), eseguire dei compiti impostati a determinati intervalli (come cron), gestire il suono (come aRts e esd), gestione del controllo versione (come CVS o subversion) e una vasta varietà di altri compiti. In generale dunque essi offrono all'utente e all'amministratore determinati servizi. Aspetti tecniciIn senso strettamente tecnico, i sistemi Unix considerano come demone qualsiasi processo che abbia init come processo padre e che non abbia più alcun terminale controllante (cioè un terminale che gli possa inviare direttamente dei segnali). Poiché init adotta i processi orfani, il metodo comunemente usato dai programmi per rendersi demoni è quello di invocare la chiamata di sistema fork per creare un processo figlio che sia un loro duplicato e poi terminare, mentre il figlio, rimasto orfano (e quindi adottato da init), continua normalmente l'esecuzione chiudendo i canali standard, invocando la chiamata di sistema setsid per disconnettersi da ogni terminale controllante e cambiando la directory corrente a Nei sistemi Unix è possibile rendere un qualsiasi programma non interattivo pressoché identico ad un demone eseguendolo in background tramite il comando nohup ed effettuando la redirezione dello standard input, standard output e standard error a /dev/null). Ad esempio: user@host:/path $ nohup batchscript.sh </dev/null >/dev/null 2>&1 & [1] 29788 user@host:/path $ Dove:
macOS, essendo un sistema Unix[1], ha anch'esso «demoni». In Mac OS X esistono anche i «servizi», ma sono concettualmente differenti. Nei sistemi MS-DOS e affini, l'analogo dei demoni sono i programmi TSR (Terminate and Stay Resident, ovvero «termina e resta in memoria»). In Microsoft Windows, i programmi che svolgono le funzioni di demone sono i cosiddetti servizi di Windows. Note
Voci correlateCollegamenti esterni
|