[ale] [Fwd: Advertising on ale.org] - OT MS vs Apple vs Linux/UNIX

Steve Litt slitt at troubleshooters.com
Sat Sep 12 16:21:58 EDT 2015


On Sat, 12 Sep 2015 22:17:46 +0300
damon at damtek.com wrote:

> 
> Ahhh. No
> It is in response to the long thread and the strong opinions in the
> thread and in fact was not directed at you or anybody else
> specifically.  And IAW Godwin's law, I have now lost the debate.

Yes, you have. Godwin's law doesn't work anymore, and it was always in
bad taste.

> Seriously, it was merely meant in jest. Don't like systemd, don't use
> it. Like systemd, use it. 

The preceding two sentences encapsulate the entire issue.

If systemd were just another modular, replaceable init, everyone you
hear cursing it would be dancing in the streets. And truth be told, a
lot of us might then choose to use systemd in certain use cases.

The problem is, systemd has been engineered from the ground up to
exchange dependencies with every part of the Linux system. The
motivations for doing this are up for debate, but most folks who have
every alt-initted a system will vouch for this: Once you're using a
distro that has incorporated systemd as PID1, replacing systemd or any
part of it is very, very difficult.

For instance, if you currently have sysvinit, OpenRC, runit, s6 or
Epoch, switching to runit, s6 or Epoch involves installing the new
init, making a new run script (runit or s6) or config section (Epoch)
for each *real* process (not the tens of no-reason processes and
one-shots run by systemd). Not trivial, but not difficult for a Linux
knowledgeable person. You also have to make a shutdown script, and you
can find a lot of boilerplate for that on the Internet. It's also
possible that you'll need to make minor alterations to your initramfs,
but that's actually doubtful.

Same thing with a systemd computer: Replace it with runit, s6 or Epoch.
Now you need to find a udev equivalent, compile it, get it working. Or
else you need to do a lot of workarounds with systemd's udev. You need
to take dracut, and use it to create an initramfs that does *nothing
but* mount the root partition, and then hand control to the on-disk
init. As you do this, contemplate the trouble you'll be in if the
systemd industry ever conquers dracut, the way it conquered udev. If
so, you'll be back to hand-creating initramfs. And of course you'll
need to do all the same things I mentioned when describing alt-initting
a non-systemd box.

Consider that if sysvinit had been as monolithically entangled with the
user portion of the OS (and the kernel if they get their way with
kdbus) as systemd is, Red Hat would have had to spend triple what they
did to create a replacement init. But like all the other inits except
systemd, sysvinit is an encapsulated PID1 plus service manager, so it
was easy to replace. The systemd industry climbed the ladder of
modularity, and then pulled the ladder up after them.

I understand you're probably init agnostic, and that's fine. But you
need to be thankful for the people working hard to provide alternatives
to the Redhat funded juggernaut, because if Redhat ever succeeds in
eliminating alternatives to systemd, they'll have a monopoly on Linux.
Most entities who gain a monopoly do not behave well, and the user pays
the price.

SteveT

Steve Litt 
August 2015 featured book: Troubleshooting: Just the Facts
http://www.troubleshooters.com/tjust



More information about the Ale mailing list