宋文武 <iyzs...@gmail.com> skribis: > 2015-09-24 15:41 GMT+08:00 Ludovic Courtès <l...@gnu.org>: >> "Thompson, David" <dthomps...@worcester.edu> skribis: >> >>> On Mon, Sep 21, 2015 at 12:00 PM, Ludovic Courtès <l...@gnu.org> wrote: >>>> Andy Wingo <wi...@igalia.com> skribis: >>>> >>>>> On Sun 20 Sep 2015 15:42, l...@gnu.org (Ludovic Courtès) writes: >>>>> >>>>>> I’m quite happy with the result, but comments are welcome! I’ll convert >>>>>> some more services to see how it goes. >>>>> >>>>> Neat! Sounds great. One question: there are some services like colord >>>>> or geoclue that don't need to be managed by DMD, but are just declared >>>>> as services so that their users are created, there /var/foo directories >>>>> are created, etc. The can be started by D-Bus as needed. Does the new >>>>> design support services of this kind? >>>> >>>> Yes it does. > Great news! I don't miss NixOS's modules anymore :-)
Heheh, NixOS modules are a very good competitor. ;-) I think this model handles multiple service instances better than NixOS modules. NixOS services can be enabled/disabled, for instance with ‘services.httpd.enable = true’ or ‘services.openssh.enable = true’, but I don’t think there’s a general mechanism to have multiple instances of httpd or sshd. Also in NixOS any service can do ‘foo.bar = baz’ and change an unrelated OS setting, which is not possible here. I find the fixed-point approach of NixOS modules very elegant, but it also complicates things: It’s easy to enter an infinite recursion, and one has to carefully use ‘mkIf’ and similar constructs where it matters, which is non-obvious. > I think the difference is that we don't seperate options and implementations > like NixOS did, 'service-type' have both in one place. ‘service-type’ is sort-of an interface: it describes how services are composed, but not what they do. > So, our services is highly tie to gexps and dmd (that's ok). The whole thing is rather tied to gexps, but it’s not tied to dmd. dmd is just a service that has nothing special, and (gnu system) does not embed any knowledge about dmd. The only service type that’s known to (gnu system) is ‘boot-service-type’. Thanks for your feedback! Ludo’.