Next: Tipos de servicios y servicios, Up: Definición de servicios [Contents][Index]
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:
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]