Demonio (informática)

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Programa informático que funciona como un proceso de fondo
Los componentes de algunos entornos de escritorio de Linux que son daemons incluyen D-Bus, NetworkManager (aquí se llama sin trabajoPulseAudio################################################################################################################################################################################################################################################################), y Avahi.

En los sistemas operativos informáticos multitarea, un daemon (o) es un programa informático que se ejecuta como un proceso en segundo plano, en lugar de estar bajo el control directo de un usuario interactivo. Tradicionalmente, los nombres de los procesos 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 de computadora 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 cuando el proceso init inicia directamente el demonio. Además, un demonio iniciado mediante bifurcación y 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 solicitudes de red, actividad de hardware u otros programas realizando alguna tarea. Demonios como cron también pueden realizar tareas definidas en horarios programados.

Terminología

El término fue acuñado por los programadores del Proyecto MAC del MIT. Según Fernando J. Corbató, que trabajó en el Proyecto MAC en 1963, su equipo fue el primero en utilizar el término daemon, inspirado en el demonio de Maxwell, un agente imaginario en física y termodinámica que ayudaba a clasificar moléculas, afirmando, "Comenzamos a usar la palabra demonio para describir procesos en segundo plano que trabajaban 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 que actúa en segundo plano.

En el sentido general, demonio 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:

Muchas personas equiparan la palabra "demonio" con la palabra "demonio", implicando algún tipo de conexión satánica entre UNIX y el inframundo. Esto es un malentendido. "Daemon" es en realidad una forma mucho mayor de "demonio"; los demonios no tienen ningún 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 "Daemon personal" era similar al concepto moderno de un "ángel guardián"—eudaemonia es el estado de ser ayudado o protegido por un espíritu amable. Por regla general, los sistemas UNIX parecen estar infestados de daemons y demonios.

Una caracterización adicional del simbolismo mitológico es que un demonio es algo que no es visible pero que siempre está presente y actúa según su voluntad. En el Teages, atribuido a Platón, Sócrates describe su propio demonio personal como algo así como el concepto moderno de 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 estoy a punto de hacer y nunca me insta a seguir.

En el uso moderno en el contexto del software informático, la palabra daemon se pronuncia DEE-mən o DAY-mən.

Términos alternativos para daemon son servicio (usado 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 el uso informático, se racionalizó como un sinónimo de Disk And Execution MONitor.

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

Implementaciones

Sistemas tipo Unix

En un sentido estrictamente técnico, un proceso de sistema tipo 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 terminal de control. Sin embargo, de manera más general, un demonio puede ser cualquier proceso en segundo plano, ya sea hijo del proceso de inicio o no.

En un sistema tipo 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 eliminando variables innecesarias del medio ambiente.
  • Ejecutar como una tarea de fondo al forjar y salir (en el padre "half" del tenedor). Esto permite que el padre de daemon (proceso de llamada o inicio) reciba notificación de salida y continúe su ejecución normal.
  • Partiendo de la sesión de invocación, generalmente realizada por una sola operación, setsid():
    • Disociarse de la tty controladora.
    • Crear un nuevo período de sesiones y convertirse en el líder del período de sesiones.
    • Convertirse en un líder del grupo de procesos.
  • Si el daemon quiere asegurarse de que no adquirirá un nuevo tty controlador incluso por accidente (que sucede cuando un líder de sesión sin un tty controlador abre un tty libre), puede tenedor y salir de nuevo. Esto significa que ya no es un líder de sesión en el nuevo período de sesiones, y no puede adquirir un tty controlador.
  • Configuración del 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 (permitiendo que no sea montado).
  • Cambiar el umask a 0 para permitir open(), creat(), y otras llamadas del sistema operativo para proporcionar sus propias máscaras de permiso y no depender del umask del callador.
  • Desscriptores de archivos redirigidos 0, 1 y 2 para las corrientes estándar (estdin, stdout y stderr) a /dev/null o un archivo de registro, y cerrar todos los otros descriptores de archivos heredados del proceso padre.

Si el proceso lo inicia un demonio de superservidor, como inetd, launchd o systemd, el demonio del superservidor realizará esas funciones para el proceso, excepto los demonios de estilo antiguo que no se convierten para ejecutarse en systemd y se especifican como Type=forking y "multiproceso" servidores de datagramas en inetd.

MS-DOS

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

Windows NT

En los sistemas Microsoft Windows NT, los programas llamados servicios de Windows realizan las funciones de demonios. Se ejecutan como procesos, normalmente 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, 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 (sc comando), los comandos net start y net stop o el sistema de secuencias de comandos PowerShell.

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

Mac OS y macOS clásicos

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

macOS, que es un sistema Unix, utiliza demonios pero utiliza 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.

Contenido relacionado

Pantera Mac OS X

Mac OS X Panther es la cuarta versión principal de macOS, el sistema operativo de escritorio y servidor de Apple. Siguió a Mac OS X Jaguar y precedió a Mac...

Telescopio terrestre

a El alcance de la mancha es un telescopio compacto de alta potencia optimizado para una observación detallada de objetos distantes. Se utilizan como...

USSRonald Reagan

USS Ronald Reagan es un superportaaviones de propulsión nuclear de clase Nimitz al servicio de la Marina de los Estados Unidos. El noveno barco de su clase...
Más resultados...
Tamaño del texto:
Copiar