Daemon (informática) - Daemon (computing)

Los componentes de algunos entornos de escritorio Linux que son demonios incluyen D-Bus , NetworkManager (aquí llamado unetwork ), PulseAudio ( usound ) y Avahi .

En la multitarea ordenador sistemas operativos , un daemon ( / d i m ən / o / d m ən / ) es un programa de ordenador que se ejecuta como un proceso en segundo plano , en vez de estar bajo el control directo de un usuario interactivo. Tradicionalmente, los nombres de proceso de un demonio terminan con la letra d , para aclarar que el proceso es de hecho un demonio y para diferenciar entre un demonio y un programa informático normal. Por ejemplo, syslogd es un demonio que implementa la función de registro del sistema y sshd es un demonio que sirve conexiones SSH entrantes .

En un entorno Unix , el proceso padre de un demonio es a menudo, pero no siempre, el proceso de inicio . Un demonio generalmente se crea mediante un proceso que bifurca un proceso hijo y luego sale inmediatamente, lo que hace que init adopte el proceso hijo, o que el proceso init lanza directamente el demonio. Además, un demonio que se inicia mediante la bifurcación y la salida normalmente debe realizar otras operaciones, como disociar el proceso de cualquier terminal de control (tty). Estos procedimientos a menudo se implementan en varias rutinas de conveniencia, como daemon (3) en Unix.

Los sistemas a menudo inician demonios en el momento del arranque que responderán a las solicitudes de la red, la actividad del hardware u otros programas mediante la realización de alguna tarea. Los demonios como cron también pueden realizar tareas definidas en momentos programados.

Terminología

El término fue acuñado por los programadores del Proyecto MAC del MIT . Según Fernando J. Corbató , quien trabajó en el Proyecto MAC en 1963, su equipo fue el primero en usar el término demonio, inspirado en el demonio de Maxwell , un agente imaginario en física y termodinámica que ayudó a clasificar moléculas, afirmando: "Empezamos fantásticamente utilizar la palabra demonio para describir procesos en segundo plano que trabajaron incansablemente para realizar tareas del sistema ". Los sistemas Unix heredaron esta terminología. El demonio de Maxwell es consistente con la interpretación de la mitología griega de un demonio como un ser sobrenatural trabajando en segundo plano. Sin embargo, BSD y algunos de sus derivados han adoptado un demonio cristiano como mascota en lugar de un demonio griego .

En el sentido general, daemon es una forma más antigua de la palabra "demonio", del griego δαίμων. En el Manual de administración del sistema Unix, Evi Nemeth afirma lo siguiente sobre los demonios:

Mucha gente equipara la palabra "demonio" con la palabra "demonio", lo que implica algún tipo de conexión satánica entre UNIX y el inframundo . Este es un malentendido atroz. "Daemon" es en realidad una forma mucho más antigua de "demonio"; Los demonios no tienen un sesgo particular hacia el bien o el mal, sino que sirven para ayudar a definir el carácter o la personalidad de una persona. El concepto de los antiguos griegos de un "demonio personal" era similar al concepto moderno de un "ángel de la guarda": eudaemonia es el estado de ser ayudado o protegido por un espíritu bondadoso. Como regla general, los sistemas UNIX parecen estar infestados de demonios y demonios.

Otra caracterización del simbolismo mitológico es que un demonio es algo que no es visible pero que siempre está presente y haciendo su voluntad. En Theages , atribuido a Platón , Sócrates describe su propio demonio personal como algo así como el concepto moderno de una conciencia moral: "El favor de los dioses me ha dado un regalo maravilloso, que nunca me ha abandonado desde mi infancia. Es una voz que, cuando se hace oír, me disuade de lo que voy a hacer y nunca me urge ”.

En el uso moderno, la palabra demonio es pronunciada / d i m ən / DEE -mən . En el contexto de los programas informáticos, la pronunciación original / d i m ən / ha desviado a / d m ən / DIA -mən para algunos hablantes.

Los términos alternativos para daemon son servicio (utilizado en Windows, desde Windows NT en adelante, y más tarde también en Linux), tarea iniciada (IBM z / OS ) y trabajo fantasma (XDS UTS ).

Después de que se adoptó el término para uso informático, se racionalizó como un backronym para Disk And Execution MONitor.

Los demonios que se conectan a una red informática son ejemplos de servicios de red .

Implementaciones

Sistemas similares a Unix

En un sentido estrictamente técnico, un proceso de sistema similar a Unix es un demonio cuando su proceso padre termina y al demonio se le asigna el proceso init (proceso número 1) como su proceso padre y no tiene una terminal de control. Sin embargo, de manera más general, un demonio puede ser cualquier proceso en segundo plano, ya sea un hijo del proceso init o no.

En un sistema similar a Unix, el método común para que un proceso se convierta en un demonio, cuando el proceso se inicia desde la línea de comandos o desde un script de inicio, como un script de inicio o un script SystemStarter , implica:

  • Opcionalmente, eliminar variables innecesarias del entorno.
  • La ejecución de una tarea en segundo plano por el que se bifurcan y salir (en el "medio" padre del tenedor). Esto permite que el padre del demonio (shell o proceso de inicio) reciba una notificación de salida y continúe con su ejecución normal.
  • Separarse de la sesión de invocación, generalmente realizado mediante una sola operación setsid(),:
    • Disociando del tty controlador .
    • Crear una nueva sesión y convertirse en el líder de la sesión de esa sesión.
    • Convertirse en líder de un grupo de procesos .
  • Si el demonio quiere asegurarse de que no adquirirá un nuevo tty controlador incluso por accidente (lo que sucede cuando un líder de sesión sin un tty controlador abre un tty libre), puede bifurcar y salir nuevamente. Esto significa que ya no es un líder de sesión en la nueva sesión y no puede adquirir un tty controlador.
  • Establecer el directorio raíz ( / ) como el directorio de trabajo actual para que el proceso no mantenga ningún directorio en uso que pueda estar en un sistema de archivos montado (lo que permite que se desmonte).
  • Cambio de la máscara de usuario a 0 para permitir open(), creat()y otras llamadas del sistema operativo para proporcionar sus propias máscaras de permisos y no depender de la máscara de usuario de la persona que llama.
  • Redirigir los descriptores de archivo 0, 1 y 2 para los flujos estándar ( stdin , stdout y stderr ) a / dev / null o un archivo de registro , y cerrar todos los demás descriptores de archivo heredados del proceso principal.

Si el proceso es iniciado por un demonio de super-servidor , como inetd , launchd o systemd , el demonio de super-servidor realizará esas funciones para el proceso, excepto para los demonios de estilo antiguo que no se han convertido para ejecutarse bajo systemd y se han especificado como Tipo. = servidores de datagramas bifurcados y "multiproceso" en inetd .

MS-DOS

En el entorno de Microsoft DOS , los programas tipo demonio se implementaron como software de terminación y permanencia residente (TSR).

Windows NT

En los sistemas Microsoft Windows NT , los programas denominados servicios de Windows realizan las funciones de los demonios. Se ejecutan como procesos, por lo general no interactúan con el monitor, el teclado y el mouse, y pueden ser iniciados por el sistema operativo en el momento del arranque. En Windows 2000 y versiones posteriores, los servicios de Windows se configuran y se inician y detienen manualmente mediante el Panel de control , un programa de control / configuración dedicado, el componente Controlador de servicios del Administrador de control de servicios ( comando sc ), los comandos net start y net stop o el sistema de secuencias de comandos de PowerShell .

Sin embargo, cualquier aplicación de Windows puede realizar el papel de un demonio, no solo un servicio, y algunos demonios de Windows tienen la opción de ejecutarse como un proceso normal.

Mac OS clásico y macOS

En el Mac OS clásico , las funciones y los servicios opcionales se proporcionaban mediante archivos cargados en el momento del inicio que reparaban el sistema operativo; estos se conocían como extensiones del sistema y paneles de control . Las versiones posteriores del Mac OS clásico las aumentaron con aplicaciones de fondo sin rostro completamente desarrolladas : aplicaciones normales que se ejecutaban en segundo plano. Para el usuario, todavía se describían como extensiones normales del sistema.

macOS , que es un sistema Unix , usa demonios. Tenga en cuenta que macOS usa el término "servicios" para designar software que realiza funciones seleccionadas en el menú Servicios , en lugar de usar ese término para demonios como lo hace Windows.

Ver también

Referencias

enlaces externos