Why systemd?

Read the 0pointer.de blog from the beginning, it’s written by one of the systemd Owners (Poettering) and is usually written in very “semi-technical” language.

A thumbnail of some highlights that come to mind…

  • Use of Cgroups. This enables closing apps and scripts properly because even re-spawned child processes are tracked. In SyVinit re-spawned processes become orphans aren’t trackable without custom code.
  • Replacement of bash scripts with compiled code (little by little bit). compiled is always faster while bash scripts are easily modified.
  • Major refactoring improvements. Invoking bash scripts for every SysVinit task is not only costly, but requires a lot of redundant code. By presenting hierarchies, systemd follows in many of today’s improvements everywhere in allowing code to be re-usable.
  • Using this same concept of re-usable code, invoking multiple instances of an app (like bash) re-uses the same process, does not require instantiating and running <entire> instances of code for each process, instead <shares> considerable running code.
  • Memory used only for active processes. With SysVinit, invoking processes early to reserve resources utilizes resources. With systemd, a process can be loaded but left inactive.
  • Use of namespaces for isolation and security. A simple but powerful concept, you don’t necessarily need to encrypt or do other expensive things to isolate, a namespace is applied that simply walls off processes that should be isolated.
  • Applies the same commands and management metaphor to <all> subsystems systemd manages. With SysVinit, you need to learn the scripting language and methods for each and every subsystem you want to query, modify, more. This extends also to running multiple distros which use systemd, you can use the same systemd commands on each distro without having to learn distro-specific commands to query or execute basic system functions.
  • A standard way to modify the configuration of <anything> systemd touches. With SysVinit, you have to learn the command syntax for every individual subsystem. With systemd, you simply locate the appropriate Unit file, copy to /etc/system/* and modify your copy. If you make a mistake or want to undo what you’ve done, simply remove your copy. With SysVinit, you might typically have to locate an appropriate init.d file if it exists or create new. Sometimes you have to register (eg a Service) as well. And again, the command syntax will be unique to whatever you’re trying to modify.

I’m sure there are other systemd features I don’t remember at the moment…

TSU

I read the blog from Lennart P. from 17 June and I’m reading something else.

Right or wrong? As stated in the other tread at soapbox I will be :X about the subject for some time. Read and learn.

Regards.

On 2014-06-18 15:06, nrickert wrote:

> I’m pretty sure that is what the “respawn” entries in “/etc/inittab”
> were for, though that facility was not much used.

I was going to say that. Hylafax used it, for instance.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

On 2014-06-18 15:26, Miuku wrote:
>
> nrickert;2649562 Wrote:
>> I’m pretty sure that is what the “respawn” entries in “/etc/inittab”
>> were for, though that facility was not much used.

> It has literally no safety checks, it doesn’t handle .pids and has a
> multitude of other issues - in short, there’s a reason why it wasn’t
> used.

Oh, it was used. Not much, because it was dangerous. People noticed whan
something very important stopped working and they saw a message like
“respawning too fast”, when init gave up on that process.

An error there and the system would not boot.

Once I had my computer crawl because (I think) my modem
was generating interrupts non stop on the serial port,
and “init” was seeing them, using about 100% CPU. Reboot
the modem and things were back to normal - but before doing
that I rebooted the Linux machine more than once, to no avail.

> That is something systemd aims to fix. Which is good.

In a sense, Linux is made of a collection of many different tools and
daemons somewhat loosely interconnected. I think that one of systemd
goals is to integrate all those services, writing them from scratch,
with an integrated API and methodology, so that “controlling” the
computer becomes easier and with more possibilities.

That idea is a good one.

And it is true that in computing it is often easier and better to start
again from scratch, rather than hack at an existing “mixture” :wink:

But… well, the people doing it are not very sensitive, are
controversial, in fact, step on other toes, and actually break things
that worked or the replacements do not do things that were done before,
so things stop working, creating work (not jobs) for others.


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)

Yes, this is my main concern with systemd.

Personally, I will not use “qmail” and I will not use “djbdns”. That’s because I think the author has an attitude problem that is not conducive to a good software project. I see some of that in “systemd”, though probably not as severe.

I won’t quote you all, it would make my post very long.
Thanks for the answers. They were most informative.
This post was not intended to create a war. Rather, I had hoped to create a post that gave newbies and myself a place to learn about systemd and the differences it has with SysVinit. We could then judge for ourselves and there would be no war, at least not in this post.

And nrickert, your not a politician, at least not here, so, if have to criticize, particularly people, please give your conclusion and the facts.

The particular instance that concerned me with the systemd developers, is the one briefly described here. And I have seen other decisions (not related to systemd) by Lennart Poettering that seemed to me to be unwise and unnecessarily authoritarian.

Ah yes, I had not read those articles quite that far. Yes, that was an irresponsible and inconsiderate action of his.

Well on the other hand Linus himself is about as sensitive as a ton of bricks, screams and rages at people and pretty much runs the whole show alone.

It seems to be the only way to get things done nowadays (and this is not just an observation in computing, pretty much every aspect of life nowadays seems to be “do it yourself” or “rage about it until someone does”).

I’m inclined to disagree.

Yes, Linus has interesting rants. But he does seem to be sensitive to the needs of end-users.

It’s my impression that he is also aware of user needs, especially if access to wifi/internet requires root privileges. :wink:

Publicly raging at people and calling them various things isn’t really “sensitivity” in any form you can imagine.

If I called people the things he does here, I would get banned instantly. If I did that on Twitter, same thing but because he’s “Linus”, he gets to do whatever he wants.

Linux kernel swear count

On 2014-06-24 22:46, consused wrote:
>
> nrickert;2650584 Wrote:

>> Yes, Linus has interesting rants. But he does seem to be sensitive to
>> the needs of end-users.
> It’s my impression that he is also aware of user needs, especially if
> access to wifi/internet requires root privileges. :wink:

Or to the printer config! LOL :slight_smile:


Cheers / Saludos,

Carlos E. R.
(from 13.1 x86_64 “Bottle” at Telcontar)