[Nottingham] Someone doesn't like systemd

Andy Smith andy at bitfolk.com
Thu Aug 14 01:44:36 UTC 2014


Hello,

On Wed, Aug 13, 2014 at 06:40:58PM +0100, Jason Irwin wrote:
> https://lkml.org/lkml/2014/8/12/459

Wow.

> As for myself...I like some of the ideas that systemd is trying to bring
> in, but some things give me the shivers (binary logs? Really?) and the
> inherent complexity of the system that is trying to *start* the damned PC.

I enjoy reading the debian-devel list, and as you may know Debian
has been having a growing crisis over its init system the last few
years, which came to a sort of a head this year because the need to
make a decision about it before the next stable release prompted the
Technical Committee to get involved.

The tech-ctte had an extremely long-winded debate amongst themselves
with some incredibly emotive input from bystanders. I'm not joking;
there was 5 months of argumentation on this topic:

    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=727708

There are still many hurt feelings amongst those who don't agree for
what they consider to be valid technical reasoning. As a result,
flames regularly flare up again on the debian-devel list. At least
now Debian has some direction, though.

Debian was an important battleground for the anti-systemd crowd.
Given how close the systemd core developers are to Red Hat, it was
pretty much a formality that systemd would be chosen on Red Hat,
CentOS and Fedora.

Ubuntu was of course going all-in with Upstart, but would be greatly
influenced by whatever Debian did.

Other distributions basically don't exist for the purposes of
strategy. They just have too little market share.

But Debian—Debian isn't beholden to a corporate master. Debian isn't
even beholden to a single architecture or even a single kernel
(Debian userland on a FreeBSD kernel was released as a "technology
preview" with the most recent stable release).

If there was any distribution that would choose to not go with
systemd then Debian was it. systemd doesn't even support some of
architectures/kernels that Debian is currently released on, which
was at the heart of many people's objections to it. What was Debian
to say to users of those architectures? "Sorry, you can't use Debian
any more"?

Debian chose systemd by a very narrow margin. They will still be
packaging other init systems and patches to make software work with
those other init systems are welcome (and indeed necessary, for those
architectures where systemd will not function), but their focus will
be on packaging systemd.

Despite the emotive nature even of the tech-ctte's arguments, I do
believe they ended up choosing systemd because it is simply the best
choice for Linux right now.

I think it could very easily have easily gone another way if other
init systems had been better or less problematic in other ways. For
example, you need to sign the Canonical Contributor License
Agreement to work on Upstart, which many people are unwilling to do.

The fact remains that if you intend to use the next stable release
of the GNOME desktop then you need to install systemd, though you do
not need to use it as your init system (PID 1).

Why is that? Well, large parts of the desktop environment rely on
knowing who is logged in locally, in order to mediate access to
local devices (audio, webcam, USB keys, suspend, shutdown, etc.) Up
until now that's been the job of ConsoleKit. ConsoleKit is no longer
maintained and what it does is now part of logind, which is itself
part of systemd. So either you use a modern desktop environment with
systemd, or you don't and you go back to using root to do those
things.

This state of affairs has actually been coming for a long time. It
hasn't blind-sided anyone at the heart of desktop Linux. The hard
truth is that nobody except the systemd crowd pulled together the
ConsoleKit work and the desktop environment work. If anyone had then
I think that Debian would have gone a different way. Not even
Canonical wants to do that part alone and they don't even use GNOME.
They've given up and will be packaging systemd too.

systemd certainly isn't perfect, some of the arguments against its
specific failures are compelling, and hopefully at some point this
will lead to more choice again. A lot of it is borne of ignorance
and/or just reading rants of others though.

Take the "oh no, binary logs!?" thing for example. Structured logs
are useful. But you can still have plain text logs with systemd if
you like—any syslogd you have running will get a plain text copy of
the journal messages too.

When I see an incredibly ranty wall of text about how systemd is
taking over the world, it's a monoculture, the developers are jerks
etc etc then I'm afraid I just have to roll my eyes.

- Taking over the world? Because there currently isn't much choice.
  Why isn't there much choice? Because no one did the work. systemd
  developers did the work. People making these rants could do the
  work. They'd rather keep ranting.

- Monoculture? "Word we use about groups of people doing things we
  don't like."

- Jerk developers with huge egos? Anyone read lkml much lately?
  Quite a few jerks and egomaniacs there.  Linus can be a pretty big
  jerk in case anyone didn't notice. And no, his amazing work
  doesn't absolve him of all transgressions; as plenty of people
  have said, he succeeds *despite* his management style, not
  *because* of it. If the developer being a jerk means we don't use
  their software then I think we need to pack up and find an
  entirely new stack of software!

I would like for all of these people to put their time where their
mouth is and come up with systemd alternatives. Ideally they would
have done this several years ago before Debian made their decision,
because they'd probably have Debian as one of their leading "out of
the box" deployments by now, but it's not too late. There are enough
people who hate systemd to give them a user base.

The rant author hands out some abuse for "Gnome, The Linux
Foundation, freedesktop.org, …"

Outside of Unity (who are relying on the plumbing of GNOME
underneath anyway), the GNOME desktop is going to be what most
newcomers to Linux see. It is by no means perfect.  But they're the
only group with user buy-in big enough to set direction.

freedesktop.org I am not sure are relevant here—their involvement in
systemd is purely as a code hosting repository as far as I am aware.
However, freedesktop.org are responsible for Xorg which took us out
of the dark days of XFree86, and responsible for much
standardisation since. It's a needed thing which no one else is
doing.

There's a theme here, of imperfect but necessary things being done,
and a bunch of people complaining about those things whilst
simultaneously not doing anything about them.

Then there are the folks who are of the opinion that, "my Linux works
fine right now and I don't use systemd so why introduce this
newfangled thing? I mean I have no idea about this thing but it
seems to be upsetting a bunch of people so if I don't need it now
then why does anyone?"

Setting aside from the fact that people's Linuxes *won't* just work
fine soon, because the things ConsoleKit does are going to need to
come from something else, and that thing is systemd's logind
component…

It's been well known that SysV init sucks for a very long time.
Mostly it does not do parallel startups. You can sort of hack it to
kind of do it. There isn't any real dependency resolution. You can
do without both, or use a few ugly hacks, if you have a very simple
system that never changes.

Modern systems are not like that. They have network adapters that
come and go. Disks that come and go. Lots of other pluggable
devices. Our systems today are a lot more *dynamic* than they ever
were before. That stuff happens a lot on desktops, but there are also
many things that are useful for servers. Particularly with
containers and virtualisation you see "virtual" hardware appearing
and disappearing.

To provide a better experience for many desktops and some complex
server setups a new init was needed and that's why people worked on
Upstart, openrc, systemd and others. And systemd is winning so far.

Simple setups—especially simple server setups—could well keep on
working just the same with SysV init or a smaller simpler init like
openrc, but it isn't fair to insist that a general purpose Linux
distribution limit itself to the lowest common denominator.

More advanced users will still be able to use a distribution like
Debian, Gentoo or Arch and banish any hint of systemd from it. Very
shortly (unless someone writes ConsoleKit replacements, or unless
they accept the logind part of systemd) they will have to accept
some degradation of desktop functionality, but advanced users can
probably cope with that.

I fear change as much as the next old timer, and I'm not looking
forward to the learning curve I'll experience everywhere with
systemd. In some cases, since my desktops tend to be Ubuntu, I
already put in time getting familiar with Upstart (from SysV) and
now I'm going to have to relearn the same things in systemd! But
this is progress for you.

> Thoughts?

My thoughts are that the poster is a loon and this is a needed
change. If Debian hadn't picked systemd then they would have picked
Upstart or openrc and there'd be just as much upheaval for less
gain. I imagine that was the thought process in every other
distribution also.

I think that people who hate that should spend the energy supporting
alternatives, because there will be fringe distributions that never
default to systemd (just the weight of anti-systemd opinion would
seem to suggest an audience). If their predictions of doom are
accurate then the open source world will soon see the light and it
will be their work that everyone flocks to.

Cheers,
Andy

-- 
http://bitfolk.com/ -- No-nonsense VPS hosting



More information about the Nottingham mailing list