On 30.03.2018 06:34, Chris Marusich wrote:
I hope to eventually go back and improve the services
documentation further in the manual, once I feel I have a strong enough
grasp of how it all works.
A few thoughts then, that I hope will be of use:
Initially, I had a hard time understanding the talk about "extending",
as the first snippets I looked at seemed rather like adding items to
todo-lists. The 2nd paragraph on
https://www.gnu.org/software/guix/manual/html_node/Service-Composition.html
makes it clear.
So it appears to me that the core of this is that there are daemons and
procedures that attain and control capabilities. Since there may be any
number of things-to-do dependent on operating-system configuration,
requiring access to those capabilities, a DAG is constructed and
flattened to arrive at daemon configuration and executable procedures.
One aspect that makes reading the docs hard are the multiple meanings of
"service" and the rather unspecific "service type", I think. Makes one
think of Smurfs. In fairness: it seems hard to avoid ... maybe:
Could we try to reserve a naked "service" to refer to daemons and
procedures with effects on the operating system? The things that go into
operating-system/services are ... service-building-blocks, latent
services, service-parts, proto-services ... OK; not terribly satisfying.
It is mentioned that service types are the nodes in the services DAG.
Thus they could have been called service-nodes, which would have avoided
confusion with those other *types* of services: ... printing s., desktop
s., database s. ... .
Here I notice that I don't quite get how service-types wrapped in
services in a list of services map to a DAG.
I see 2 main uses cases regarding the documentation:
A. Trying to understand the whole system.
B. Trying to accomplish a specific task and looking for just the
required information.
The given descriptive nature of the documentation so far is alright for
A. To serve B, you'd have to work along questions like:
- Is what I'm trying to accomplish within the scope of services? What
are their capabilities and limitations? (A case like adding files to
/etc might not come to everyone's mind.)
- What is the nature of what I'm tying to do, regarding time of
execution, capabilities, dependencies and permissions? Here an overview
of what service-type allows what?, when?, would shine.
--
Thorsten Wilms
thorwil's design for free software:
http://thorwil.wordpress.com/