Demone (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
m Bot: http → https
 
(27 versioni intermedie di 20 utenti non mostrate)
Riga 1:
{{NN|informatica|agosto 2015|Una nota è davvero poco}}
In [[informatica]], nei sistemi [[Unix]], e più in generale nei [[Sistema operativo|sistemi operativi]] [[multitasking]], un '''demone''' (''daemon'' in inglese) è un [[Programma (informatica)|programma]] [[Esecuzione in background|eseguito in background]], cioè senza che sia sotto il [[Interattività|controllo diretto dell'utente]], tipicamente fornendo un servizio all'utente. Di solito i demoni hanno nomi che finiscono per "d": per esempio, <tt>syslogd</tt> è il demone che gestisce i [[log]] di sistema, <tt>dhcpd</tt> è il demone che assegna l'[[indirizzo IP]] in maniera dinamica tramite [[DHCP]], <tt>httpd</tt> è il demone che fa girare il servizio [[Hypertext Transfer Protocol|HTTP]] ecc...
Un '''demone''' (in [[lingua inglese]] ''daemon''), in [[informatica]] e più in generale nei [[Sistema operativo|sistemi operativi]] [[multitasking]], è un [[Programma (informatica)|programma]] [[Esecuzione in background|eseguito in background]], cioè senza che sia sotto il [[Interattività|controllo diretto dell'utente]], tipicamente fornendo un servizio all'utente. Principalmente viene utilizzato sui server ma anche su normali PC.
 
Spesso i demoni vengono avviati al [[boot]] del sistema: in generale hanno la funzione di rispondere a determinate richieste, che siano di [[Rete informatica|rete]], [[hardware]], etc. Ad esempio, alcuni usi dei demoni possono essere la configurazione delle [[Periferica|periferiche]], (come [[DEVFS]] nei sistemi [[Linux]]), eseguire dei compiti impostati a determinati intervalli (come [[cron]]), gestire il suono (come [[aRts]] e [[Enlightened Sound Daemon|esd]]), gestione del [[controllo versione]] (come [[Concurrent Versions System|CVS]] o [[subversion]]) e una vasta varietà di altri compiti. In generale dunque essi offrono all'utente e all'[[sistemista|amministratore]] determinati servizi.
 
==Etimologia==
I 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 [[Demone (entità)|demoni]] sono personaggi della [[mitologia greca]], alcuni dei quali eseguivano compiti di cui gli dei[[Divinità|dèi]] non potevano occuparsi, esattamente come i demoni eseguono compiti in background di cui l'utente non vuole o non può occuparsi. [[Berkeley Software Distribution|BSD]] e alcuni dei suoi derivati hanno adottato un demone come [[Demone BSD|mascotte]], anche se disegnato come stereotipo del [[Satana|diavolo]] del [[Cristianesimo]].
 
Un'altra possibile etimologia del termine è nell'acronimo "'''d'''isk '''a'''nd '''e'''xecution '''mon'''itor" (monitor dei dischi e dell'esecuzione), ma è più che altro una supposizione.
 
== Descrizione e funzionamento ==
In [[informatica]], nei sistemi [[Unix]], e più in generale nei [[Sistema operativo|sistemi operativi]] [[multitasking]], un '''demone''' (''daemon'' in inglese) è un [[Programma (informatica)|programma]] [[Esecuzione in background|eseguito in background]], cioè senza che sia sotto il [[Interattività|controllo diretto dell'utente]], tipicamente fornendo un servizio all'utente. Di solito i demoni hanno nomi che finiscono per "d": per esempio, <ttcode>syslogd</ttcode> è il demone che gestisce i [[log]] di sistema, <ttcode>dhcpd</ttcode> è il demone che assegna l'[[indirizzo IP]] in maniera dinamica tramite [[DHCP]], <ttcode>httpd</ttcode> è il demone che fa girare il servizio [[Hypertext Transfer Protocol|HTTP]] ecc...
 
Spesso i demoni vengono avviati al [[boot]] del sistema: in generale hanno la funzione di rispondere a determinate richieste, che siano di [[Rete informatica|rete]], [[hardware]], etcecc. Ad esempio, alcuni usi dei demoni possono essere la configurazione delle [[Periferica|periferiche]], (come [[DEVFS]] nei sistemi [[Linux]]), eseguire dei compiti impostati a determinati intervalli (come [[cron]]), gestire il suono (come [[aRts]] e [[Enlightened Sound Daemon|esd]]), gestione del [[controllo versione]] (come [[Concurrent Versions System|CVS]] o [[subversion]]) e una vasta varietà di altri compiti. In generale dunque essi offrono all'utente e all'[[sistemista|amministratore]] determinati servizi.
 
==Aspetti tecnici==
In senso strettamente tecnico, i sistemi [[Unix]] considerano come demone qualsiasi [[Processo (informatica)|processo]] che abbia [[init]] come [[processo padre]] e che non abbia più alcun ''terminale controllante'' (cioè un [[Terminale (informatica)|terminale]] che gli possa inviare direttamente dei [[Segnale (informatica)|segnali]]). Poiché init adotta i [[processo orfano|processi orfani]], il metodo comunemente usato dai programmi per rendersi demoni è quello di invocare la [[chiamata di sistema]] [[fork (programmazione)|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 <ttcode>/</ttcode> in modo da non tenere inutilmente occupati dei ''[[file system]]'' (cosa che impedirebbe di [[umount|smontarli]]). QuestoSpesso [[idiomasi (programmazione)|idiomafa diriferimento programmazione]]a èquesto talvoltaparadigma descrittodefinendolo con l'espressione inglese «&nbsp;''fork off and die''&nbsp;».
 
Nei sistemi Unix è possibile rendere un qualsiasi [[programma non interattivo]] pressoché identico ad un demone [[Esecuzione in background|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 &lt;/dev/null &gt;/dev/null 2&gt;&amp;1 &amp;'''
Riga 18 ⟶ 22:
 
Dove:
* <ttcode>batchscript.sh</ttcode> è il programma da avviare;
* <ttcode>&lt;/dev/null</ttcode> indica di usare <ttcode>/dev/null</ttcode> come ''standard input'';
* <ttcode>&gt;/dev/null</ttcode> indica di indirizzare lo ''standard output'' a <ttcode>/dev/null</ttcode>;
* <ttcode>2&gt;&amp;1</ttcode> indica di indirizzare lo ''standard error'' alla stessa destinazione dello ''standard output'' (sempre <ttcode>/dev/null</ttcode>);
* lo <ttcode>&amp;</ttcode> finale indica di eseguire in background il tutto.
 
[[Mac OS XmacOS]], essendo un sistema [[Unix]]<ref>{{cita web
|url=httphttps://www.opengroup.org/openbrand/register/brand3555.htm
|titolo=The Open Brand - Register of Certified Products
|accesso=12 gennaio 2009
Riga 31 ⟶ 35:
}}</ref>, 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 (informatica)|TSR]] (''[[Terminate and Stay Resident'']], ovvero «&nbsp;termina e resta in memoria&nbsp;»).
 
In [[Microsoft Windows]], i programmi che svolgono le funzioni di demone sono i cosiddetti [[Servizio di Windows|servizi di Windows]].
 
== Curiosità ==
In realtà, la traduzione in italiano di Daemon come "demone" è errata. Infatti, demone in inglese si traduce "demon". Per daemon, nella mitologia, si intende invece un essere a metà tra l'umano e il divino.
 
== Note ==
Riga 43 ⟶ 44:
== Voci correlate ==
* [[Esecuzione in background]]
* [[ServizioEsecuzione di Windows(informatica)]]
 
==Collegamenti esterni==
* {{FOLDOC|daemon|daemon}}
* {{en}}cita [httpweb|https://www.takeourword.com/TOW146/page4.html |takeourword.com: Article on the origin of the term "daemon"]|lingua=en}}
*{{en}} [http://www.webreference.com/perl/tutorial/9/ Tutorial: Unix Daemons in PERL]
* {{cita web|1=http://www.webreference.com/perl/tutorial/9/|2=Tutorial: Unix Daemons in PERL|lingua=en|accesso=14 gennaio 2006|urlarchivio=https://web.archive.org/web/20051223140312/http://www.webreference.com/perl/tutorial/9/|dataarchivio=23 dicembre 2005|urlmorto=sì}}
*{{en}} [http://www.windowsitpro.com/Articles/Print.cfm?ArticleID=38404 Tutorial: NT Services in PERL]
* {{cita web|url=http://www.windowsitpro.com/Articles/Print.cfm?ArticleID=38404|titolo=Tutorial: NT Services in PERL|lingua=en|urlmorto=sì|urlarchivio=https://web.archive.org/web/20160304190358/http://windowsitpro.com/Articles/Print.cfm?ArticleID=38404|dataarchivio=4 marzo 2016}}
 
{{Portale|informatica}}