Next: , Up: Definición de servicios   [Contents][Index]


12.18.1 Composición de servicios

Definimos un servicio como, de manera genérica, algo que extiende la funcionalidad del sistema operativo. Habitualmente un servicio es un proceso—un daemon—iniciado cuando el sistema arranca: un servidor de shell seguro, un servidor Web, el daemon de construcción de Guix, etc. A veces un servicio es un daemon cuya ejecución puede ser iniciada por otro daemon—por ejemplo, un servidor FTP iniciado por inetd o un servicio D-Bus activado por dbus-daemon. De manera ocasional, un servicio no se puede asociar a un daemon. Por ejemplo, el servicio “account” recopila cuentas de usuaria y se asegura que existen cuando el sistema se ejecuta; el servicio “udev” recopila reglas de gestión de dispositivos y los pone a disposición del daemon eudev; el servicio /etc genera el contenido del directorio /etc del sistema.

Los servicios de Guix se conectan a través de extensiones. Por ejemplo, el servicio de shell seguro extiende Shepherd—el sistema de inicio, el cual se ejecuta como PID 1—proporcionando las líneas de órdenes para arrancar y parar el daemon de shell seguro (see lsh-service); el servicio UPower extiende el servicio D-Bus proporcionando su especificación .service, y extiende el servicio udev al que proporciona reglas de gestión de dispositivos (see upower-service); el servicio del daemon de Guix extiende Shepherd proporcionando las líneas de órdenes para arrancar y parar el daemon, y extiende el servicio de cuentas proporcionando una lista de cuentas de usuarias de construcción que necesita (see Servicios base).

Al fin y al cabo, los servicios y sus relaciones de “extensión” forman un grafo acíclico dirigido (GAD). Si representamos los servicios como cajas y las extensiones como flechas, un sistema típico puede proporcionar algo de este estilo:

Grafo típico de extensiones de servicios.

En la base, podemos ver el servicio del sistema, el cual produce el directorio que contiene todo lo necesario para ejecutar y arrancar el sistema, como es devuelto por la orden guix system build. See Referencia de servicios, para aprender acerca de otros servicios mostrados aquí. See la orden guix system extension-graph, para información sobre cómo generar esta representación para una definición particular de sistema operativo.

Técnicamente, las desarrolladoras pueden definir tipos de servicio para expresar estas relaciones. Puede haber cualquier número de servicios de un tipo dado en el sistema—por ejemplo, un sistema que ejecuta dos instancias del shell seguro GNU (lsh) tiene dos instancias de lsh-service-type, con parámetros diferentes.

La siguiente sección describe la interfaz programática para tipos de servicio y servicios.


Next: Tipos de servicios y servicios, Up: Definición de servicios   [Contents][Index]