On Dec 25, 2012 3:04 AM, "Canek Peláez Valdés" <can...@gmail.com> wrote:
>
> On Tue, Dec 25, 2012 at 1:38 AM, G.Wolfe Woodbury <redwo...@gmail.com>
wrote:
> [ snip ]
> > From what has been happening with the systemd stuff, I do not see what
> > advantages it really offers over the SysV scheme and its successors like
> > OpenRC.  Someone enlighten me please?
>
> I wrote the following some months ago; I think nothing much has
> changed since then (I added a couple of comments):
>
> Take this with a grain (or a kilo) of salt, since I'm obviously
> biased, but IMHO this are systemd advantages over OpenRC:
>
> * Really fast boot. OpenRC takes at least double the time that systemd
> does when booting, easily verifiable. In my laptop systemd is twice as
> fast as OpenRC; in my desktop is three times faster. (With a solid
> state hard drive, my laptop now boots even faster).
>
> * Really parallel service startup: OpenRC has never been reliable on
> parallel service startup; its documentation says it explicitly. Some
> will tell you that for them "it works", but just like the guys who
> have a separate /usr and refuse to use an initramfs, they just haven't
> been bitten by the inherent problems of it (just ask kernel developer
> Greg Kroah-Hartman). The Gentoo devs recognize that OpenRC is just
> broken with parallel service startup.
>
> * Really simple service unit files: The service unit files are really
> small, really simple, really easy to understand/modify. Compare the 9
> lines of sshd.service:
>
> $ cat /etc/systemd/system/sshd.service
> [Unit]
> Description=SSH Secure Shell Service
> After=syslog.target
>
> [Service]
> ExecStart=/usr/sbin/sshd -D
>
> [Install]
> WantedBy=multi-user.target
>
> with the 84 of /etc/init.d/sshd (80 without comments).
>
> * Really good documentation: systemd has one of the best
> documentations I have ever seen in *any* project. Everything (except
> really new, experimental features) is documented, with manual pages
> explaining everything. And besides, there are blog posts by Lennart
> explaining in a more informal way how to do neat tricks with systemd.
>
> * Really good in-site customization: The service unit files are
> trivially overrided with custom ones for specific installations,
> without needing to touch the ones installed by systemd or a program.
> With OpenRC, if I modify a /etc/init.d file, chances are I need to
> check out my next installation so I can see how the new file differs
> from the old one, and adapt the changes to my customized version.
>
> * All the goodies from Control Groups: You can use kernel cgroups to
> monitor/control several properties of your daemons, out of the box,
> almost no admin effort involved.
>
> * It tries to unify Linux behaviour among distros (some can argue that
> this is a bad thing): Using systemd, the same
> configurations/techniques work the same in every distribution. No more
> need to learn /etc/conf.d, /etc/sysconfig, /etc/default hacks by
> different distros.
>
> * Finally, and what I think is the most fundamental difference between
> systemd and almost any other init system: The service unit files in
> systemd are *declarative*; you tell the daemon *what* to do, not *how*
> to do it. If the service files are shell scripts (like in
> OpenRC/SysV), everything can spiral out of control really easily. And
> it usually does (again, look at sshd; and that one is actully nicely
> written, there are all kind of monsters out there abusing the power
> that shell gives you).
>
> These are the ones off the top of my head; but what I like the most
> about systemd is that it just works, and that it makes a lot of sense
> (at least to me).
>
> Most of systemd features can be implemented in OpenRC, although the
> speed difference will never be eliminated if OpenRC keeps using shell
> files; however, Luca Barbato said that using reentrant busybox the
> speed difference is greatly reduced (I haven't confirmed this, since I
> haven't even installed OpenRC in months).
>
> Now, this set of (IMO) advantages of systemd over OpenRC pile up over
> the advantages of OpenRC over SysV: the most important one (I believe)
> is that OpenRC has dependencies, so a service starts only when another
> has already started. AFAIK, SysV has lacked this since always.
>
> I don't think I have ever heard anyone saying that we should keep
> using SysV; like a lot of Unix legacies, it should just die. OpenRC is
> much better, but it still uses a Turing-complete language (and a
> really slow one) to simply tell services when to start and when to
> stop, and it doesn't reliably keep track of what services are really
> still running (anyone who has ever used the "zap" command in OpenRC
> knows this).
>
> systemd of course has dependencies, a reliable tracking of service
> status (thanks in part to the use of cgroups), and its service files
> can't enter in an infinite loop.
>
> Hope it helps.
>
> Regards.
> --
> Canek Peláez Valdés
> Posgrado en Ciencia e Ingeniería de la Computación
> Universidad Nacional Autónoma de México
>

Thank you. I think that may well be the cleanest set of favorable arguments
I've seen for systemd.

Now, question: could I not create a "/usr" service and make things
dependent on /usr come after it's been mounted? That seems the single, core
missing piece.

Reply via email to