On 1/22/21 8:20 PM, Yasha Karant wrote:
> I had not heard the history of SystemD in any detail. What, if any,
> were the software engineering and design justifications for SystemD?
TL;DR synopsis. It's just a tool. A tool that solves a very common and
VERY painful problem for people who build Linux based OS's. And those
developers made the decision. Not the users who, honestly, most of the
time don't have a clue about the pain the developers face. It isn't
perfect, and it causes problems sometimes in the user space. But it
isn't a tool for the users.
I was incredibly active in the Debian community for a number of years
leading up to the SystemD fiasco. You can still find my posts going back
as far as 2002 on the Debian mailing list. The vast majority of my posts
are still publicly accessible (so if you really doubt what I say below,
you can go find my emails on the Debian archives). :-)
Most of my issues regarding SystemD are political, not technical. Though
I've had a number of technical problems over the years and I've filed
bug reports to get most of them fixed - technical is usually the easiest
to fix.
One thing people tend to overlook in these conversations is that systemd
was clearly not meant to help SysAdmins - the fact that does is a by
product. The point was to help system builders and integrators. EG: the
people building the distro that others use; the ones who try to make all
of the sub-services play nice with each other so that the end user can
just click around on a mouse.
You can think of SystemD as the the low level communication of services
that not a whole lot of people (developers nor users) want to do but
everyone who uses a desktop or server depends on to work- it's at the
integrator level where SystemD starts to shine. It helps a lot of the
underpinning communications where most users don't ever dare to tread.
Those dark tunnels where experienced SysAdmins have their eyes gloss
over at the dread they encountered upon their last traversal.
Those places.
By the time you get up to the level where SysAdmins work or even higher
where the users work, most of the time SystemD is just a tool to use.
How you use it and how much you invest in learning it is up to you. But
if you are using a spanner as a hammer because you don't want to learn
how to use a hammer, well...good luck, but you are going to have problems.
"So it's just another tool for services to communicate?"
Essentially, yes.
"Why all the hate?"
Two reasons:
1) Technical:
Because getting all the services to talk to one another is incredibly
difficult. Speaking as someone who used to do a bunch of dbus level
programming to get services to talk to each other, the old InitV methods
sucked. It was painful. And every time there was a new service that did
things differently, it made my work harder. I particularly recall in
~2008 tracing out an issue with a kernel notification to a network card
that caused Pidgin to flip out and spam the dbus to the point of
crashing other completely unrelated services because of a custom
plugin...gah...I was down reading hex code off the kernel processes to
figure that out...and it still gives me
wake-up-screaming-nightmares...But all the users knew was that their
music player would cause a kernel panic - they had no idea it was even a
plugin on Pidgin that was doing it because why would Pidgin (a chat
program ) care if a music file was played? And what did that have to do
with crashing the kernel?
THAT'S the low level communication I'm talking about here. The stuff so
far behind the scenes that the users don't even know nor care it happens.
This is simplifying it quite a bit, but if you think about SystemD as a
single API every program can use to communicate you get the gist of it.
But that API is MONSTER and its growing. So some of us old-school *nix
guys who have a hard time breaking the mentality of "One simple program
to do one simple task" struggle with something like SystemD.
The analogy I used is that for me trying to get these services to talk
to each other before was like herding cats. They don't want to listen,
they want to do their own thing, and by the end of the day I'm tired,
cut, and bloody. However, the alternative is the Marshmallow man from
Ghostbusters - one incredibly large and growing gooie monster...
MANY MANY developers who work on the underpinnings that I know prefer to
fight the one monster they can sort-of-deal-with vs herding cats.
2) Political:
The fiasco was handled badly. Distro developers made the choice, not the
users. Distro developers failed regularly to explain why they made the
choice and often either attempted some detailed technical drivel the
users didn't understand or told them to "shut up or leave".
The reason why I left the Debian community was because of the vitriol
aimed at those of us caught in the middle. Then when it started to get
crazy, they got ban-hammer-happy. I got banned multiple times from the
Debian forums (then reinstated every time because they knew me as
someone who helped out) because I pointed out legitimate bugs. But those
of us pointing out bugs were lost in the sea of outrage so the SystemD
guys wouldn't even listen to valid criticism and errors. The systemd
group itself even went into full lock-down because of the backlash so
you couldn't submit a bug to them at all.
Then I got "banned" TWICE because someone complained of a legit systemd
problem, and I responded with the answer to fix their problem. Why was I
banned for helping? Because, no joke, at that point they just started
auto-banning based on key words.
The first time, one of the devs personally reached out and apologized
because he saw that I was trying to help. The second time, I was just
done. I was sick and tired of the arrogance of the SystemD people and I
was sick of the rage from the users. I backed out of contributing
anything at all to the community for over a year. I still haven't had
the strength to install pure Debian again...I still get sad and angry.
Even reading through the replys others have posted, you can see the pain
and misery caused to others. And most of that is because of politics,
not technical misery. Sure, there is probably that one time that really
irks them. Just like I still remember that time my car sprung a oil leak
which abandoned me in the middle of nowhere over night and I get ANGRY
at that car even though I had 5 years of great reliability from that car
before the incident and another 7 after. I'm not faulting nor
diminishing that bad experience, rather reminding that we often remember
the worst and best while forgetting the every day mundane when SystemD
just did as it needed to and we didn't care that it was doing its thing.
These days, SystemD is just something that is there. It works well
enough for most people that they don't know nor care that it is there.
Even SysAdmins who get low into the internals like me just see it as
another tool. Sure, there are those who have decided that's their hill
to die on - more power to them. I do not want to criticize or speak ill
of their choices. I'm glad that they have a choice. But before I engage
with much more than what I've stated above, I want legit technical
concerns to talk about. Because honestly, right now the number of
systems I manage is in the hundreds and when I come across a system that
DOESN'T have the SystemD tools, it's often more frustrating to me then
all of the issues I have with SystemD combined today. I don't mind
talking about legit technical problems.
As for talking politics? Well, I threw in the political towel with
SystemD years ago. I've had enough biased politics the last few years
shouted at me by the media. I sure as hell don't care to engage in
SystemD politics any more. :-D
I hope that helps.
~Stack~
|