What's the big deal with systemd?

Systemd was supposed to be an init replacement. What is it now? Soon there will be a kerneld (or linuxd, or OSd) module as well. It looks like an attempt to lock everything on Poettering, to make him indisposable and irreplaceable.

Not to mention that his other projects are PsshhkztAudio and avahi abomination.

What gave you the impression that the projects purpose was only to make an init system?

This?

If you’ve read it then you’ll know that systemd wasn’t created to “just be an init system” that people always complain about it not being. How can it be something it wasn’t meant to just be?

Like the blog says its in the name. its called systemd, not initd and all the distro developers know this and still (most) decided it was a good choice.

edit (not sure why your shitting on pulseaudio either considering its not been ‘his project’ for a long time)

I’ve read it. He talks about PID 1 and creating a sysvinit replacement.
In the very end he just mentions logging, cron, etc. I can only describe it as feature creep. journald, networkd, logind, resolved, localed, his own mount implementation… It’s disgusting. It’s just a matter of time until he decides that configuration should also be stored in binary form and edited only with (his, of course) utilities, and recreates Windows Registry or AIX ODM.

not sure why your shitting on pulseaudio either considering its not been ‘his project’ for a long time

As I recall it, it was often called Pshshshaudio while he was working on it - for a reason. If he left it, it probably means that he left a mess which other people had to fix.

In what way can you describe it as feature creep if in the announcement post of systemd he says its not just an init system?

You linked to it.

You can still not like systemd, but say what it is instead of trying to portray it as just an init system that does to much. It isn’t just an init system by design as described when it was initially announced.

You can’t call it system manager either. It doesn’t “manage” how system runs existing utilities, it adds its own versions of them.

So since that didn’t work its what can we diss instead so we can still hate systemd?

“but its not a system manager” is just another shit argument that doesnt actually say anything. Why not just have your own opinion on why you don’t like it?

What don’t you like about it? We could have an actual discussion and learn more opinions instead of just trying to attack some words or made up rubbish people spread.

PulseAudio is awesome IMO. The only bummer is the equalizing capabilities are a bit meh

OK, if you want to go this way… I don’t really remember what it was, but:

systemd: Starting something… ______________________________oO(Yeah, OK)
systemd: main process exited, status=failure ________________oO(No shit, Sherlock)
systemd: unit Something.service entered failed state ________oO(AND??? What was the error???)

What’s the fucking point of journald? When I troubleshoot some system running systemd, I don’t even bother running journalctl anymore. It’s useless.

In what way is it useless? Anything specific?
Its anecdotal, but I’ve found it quite useful for troubleshooting issues compared to the commonly cited whats wrong with grep argument… Its pretty easy for example to gain information of specific log levels over individual, several, or all logging with a consistent command.

What’s the big deal with systemd?

It’s 10 pounds of shit in a 5 pound bag.

It’s a gross Frankenstein of a program that is doing too much, One of the credos of Linux is to make your tool do the bare minimum to achieve the task, and systemd is a monster.

1 Like

I missed this in my reply. There are too many reasons. The government is not one big “we’re on the same team” organization. I could entirely see the NSA wishing to spy on the CIA and FBI and the rest of the government in general, or any other variation of that scenario.

I mean, if someone else more educated than you on a subject listed reasons <thing> is bad, why would you produce your own list when it’s only going to be a reflection of theirs and probably not as well organized, written, or as detailed?

Obviously people should verify someone’s arguments, and become educated on a subject if they’re going to argue about it, but that still doesn’t mean they’ll become better than someone else’s arguments.

So, that’s a quote from the reddit post I linked. I then googled Lennart Poettering gently push since that phrase is what he actually quoted. First hit was this page:

http://0pointer.de/blog/projects/the-biggest-myths.html

Here is the quote:

One goal of systemd is to unify the dispersed Linux landscape a bit. We try to get rid of many of the more pointless differences of the various distributions in various areas of the core OS. As part of that we sometimes adopt schemes that were previously used by only one of the distributions and push it to a level where it’s the default of systemd, trying to gently push everybody towards the same set of basic configuration. This is never exclusive though, distributions can continue to deviate from that if they wish, however, if they end-up using the well-supported default their work becomes much easier and they might gain a feature or two. Now, as it turns out, more frequently than not we actually adopted schemes that where Debianisms, rather than Fedoraisms/Redhatisms as best supported scheme by systemd. For example, systems running systemd now generally store their hostname in /etc/hostname, something that used to be specific to Debian and now is used across distributions.

Emphasis is mine.

Down in the copyright:

© Lennart Poettering.

Other reasons I don’t like it:

  1. Lennart Poettering is essentially the lead developer for it and who originally started the project.

Why would that be relevant?

Lennart Poettering is the guy who made avahi and PulseAudio. Those are his two other major projects that are notable enough to mention. To say those both have… negative things to be said about them is an understatement. Yes, they generally work. They’re the default for some distros, if not many. But finding people who consider them in a negative light because of how they’re made and the quality of their code is easy. I say this that way because I can’t judge if it is good or bad as I don’t have the knowledge or experience to do so, so I have to defer to others. I can only rely on how often I find people who criticize them, and if it’s a notable amount, then it’s safe to say there’s a good reason to do so.

Having used both, my anecdotes are full of frustration.

I wrote this before dmj made his post.

I like what that reddit user posted elsewhere:

‘Combating fragmentation’ is the same thing as ‘limiting choice’

This is essentially what Lennert is doing with systemd by “gently pushing” people to a similar configuration. Linux is awesome. It was originally built by power users and is currently maintained by that culture of power users. It is used more than anything else in the enterprise, and this was all done on an ecosystem of choice and the UNIX philosophy.

I would list the other reason, but I thought of it at work and have since come home. It will probably come to me tomorrow when I’m at work again. Typical.

I believe they chose it because it makes their job easier as maintainers of a distro and because they require it to support some things users would require. Like GNOME 3. Not necessarily because it’s a good choice for any other technical reason.

Source: https://brashear.me/blog/2015/08/24/results-of-the-2015-slash-r-slash-linux-distribution-survey/

He says in this interview in January of this year that the point of systemd was to handle services better at its core.

Systemd Solving Problems for the Enterprise?

So what problem is systemd solve for enterprise customers? “The problem that systemd currently solves is really at the core: service management. Regardless if you have an enterprise system or you have an embedded system or a desktop system, monitoring computers really need to run many parts, many programs at the same time. There are lower level components that we tend to call services that just provide functionality to other programs and then the higher other ones,” he said.

I mean, he gave you an example. How about actually have a discussion instead of needing others to constantly say exactly what they mean.

Clearly that example shows that other than “it didn’t work”, journald doesn’t give a reason why without prodding. It’s an inconvenience that service logging probably shouldn’t have. It’s already pushing stuff to the terminal, and it already knows something failed. Not pushing the reason why is asinine.

Considering this:

Yeah that makes a lot of sense.

Interestingly, all my anecdotes about PulseAudio that involve frustration came from about the time he left the project.

4 Likes

While true they might want to do that, I think you’d find that actually making this happen they way its described is just not manageable. Keep in mind as well that the NSA would be using RH systems as well, why would they compromise themselves?

The only real problem i have with the site is it acts like a parody site yet people use it to say ‘go look here to why systemd is bad’ and the site says… systemd is bad because it is bad with a few anecdotal links to some old posts.

Thanks, i didn’t know where it was from.

In the context of that whole paragraph… Is this a problem?

There’s arguments to be made if systemd is the correct solution, and whats the best way to better line up distros, but would anyone argue that there are things in Linux that should be so fragmented?

The filesystem of Linux was unified through LFH for example rather than a mess of what ever every distro decided to do.

My thought keeps coming back to the fact that if the distro maintainers generally didn’t agree they wouldn’t use it in the first place.

I think they are the default in all major distributions that count?

It’s worth being careful with this. Linux isn’t about choice. Linux and free software gives you the freedom to do what you want with your software, but don’t confuse that with being given choice.

You only need to look around to see that in reality, choice doesnt really happen in Linux and for good reason.

Wheres your choice in office suite? You have Libre Office, and everything else is pretty much a waste of time and developer time.

Wheres your choice in kernel? You have Linux, that’s it realistically. Anything else is just a hobby.

“choice” is few and far between on Linux and there’s good reason to keep it that way and be careful about how many options we actually do have. Every option you add is another factor of confusion and maintenance.

That’s why you’ll see most distros if not all distros bar one or two don’t actually offer you choice.

What choice really is isn’t the choice of which kernel, or which init system, or which file system standard. Its the flexibility of the system you have, and the rights you have to the system. If you don’t want to use systemd because you don’t like it, you don’t change it to something else, you use a different distro altogether. In reality though that doesnt happen because everyone in industry uses one of a small handful of distros which all pretty much work exactly the same (rh/centos,suse,ubuntu, and the occasional debian).

And i think it does. Along with the other things it set out to do.

The argument really i would rather say it does systemd do them better?

I happen to admire this philosophy (Do one thing and do it well), but let’s not forget that back when Unix was but a gleam in Thompson’s and Ritchie’s eyes, the super computers of the day had less RAM than my wrist watch. A lot less! Doing one thing at a time and doing it well (efficient use of RAM) was mandatory, rather than some lofty philosophy of computing.

Also, would someone please ELI5 why bloat only seems to be an issue with systemd, but no one seems to give two $hits about how unwieldy our favorite monolithic kernel has become. Surely, if anyone is truly concerned about simplicity, transparency, performance and security, the kernel would be a better place to focus, no?

Battening the hatches … awaiting incoming …

why do you think “our favorite monolithic” kernel is unwieldy?

1 Like

Systemd implements such things like if you have a number as the first character of your username, it will run everything you ask it as root.
Pottering is pretty legendary in his lack of understanding/caring of security and when things like the username exploit was brought to his attention his reaction was a combination of “not a bug” “won’t fix” and “you are using it wrong”.

This isn’t a one off case either, there are plenty more.
Also, sure its great your machine boots couple seconds faster, except when its a server and they get booted once a day to once every x months meaning that the performance gained vs the instability incurred isn’t exactly worth it.

Then there is using google dns servers despite other settings in the system, while not something a basic user would care about, a vpn users will leak their info this way which depending where you are, may be anything from benign to life threatening.

Then there are things like “hey, lets use google time servers by default despite google telling us to stop doing that”

Its a clusterfuck, most of the time its fine, sometimes its that dog drinking coffee in a room that is on fire.

2 Likes

This is an anecdotal link? https://judecnelson.blogspot.in/2014/09/systemd-biggest-fallacies.html

It’s a refutation of what Lennert says are myths about systemd, explaining why they aren’t myths. That’s like, the opposite of an anecdote.

This link is someone explaining the over-arching issue with systemd in general which I quote below: http://blog.lusis.org/blog/2014/09/23/end-of-linux/

I know my “technical” arguments are flimsy. The fact is there some really cool shit in systemd including many of the things listed in the linked post.

The problem with systemd is that it is the single most invasive change to Linux in a long line of changes that ultimately mean that Linux may be headed towards uselessness as a server operating system.

Then he goes on to explain how “Desktop Linux” is essentially the primary issue. How (paraphrased) “you can’t produce a distro that is intended for both desktops and servers, and have an OS that’s useful for either.”

Yes. Absolutely, yes. One of the things that makes Linux awesome is choice. This is inherently taking that away for what appears to be dubious reasons (adoption rates).

Essentially, systemd incentivizes distro maintainers to use it by doing two things: Make it handle everything, and make important things require it. Want GNOME? You have to have systemd. Want maintaining your distro to be easier? Use systemd.

It’s a bit of a double whammy forcing adoption. It inherently feels underhanded because the main reason a distro maintainer would choose it is because it makes their job easier before any of the technical reasons.

But now the user or server administrator has less choice in what they can use to run their systems if they want something else other than that setup.

It’s not just walling off specific package choices, but the way entire distros handle things compared to other distros. Then it becomes a job of replicating that distro’s environment without systemd, and while that’s doable now, it may not always be doable. And you still have the packages you can’t use because they rely on systemd.

It’s a bad situation that you wouldn’t want to get worse, but it can easily get worse as systemd is further adopted. Why would anyone call a situation like that a good thing?

Yes, because that’s inherent to having choices. You could literally swap out the wording and it be the same.

“Would anyone argue that there are things in Linux that should offer so many choices?”

If there are good reasons for each way of doing things, then yes, there should be as many choices as possible for those things. Of course there are technical reasons why every option can’t exist, but having some is entirely possible and should be done.

Apples to Oranges. The effort to move things around on a file system level is minimal compared to replacing systemd with something like OpenRC when OpenRC doesn’t exist or isn’t maintained, or your software relies on systemd.

And all distros still do some things differently for where they store stuff on the file system level. Essentially only where it doesn’t matter what is chosen.

That isn’t a silver bullet for accepting systemd as the de facto PID 1. The biggest reason they have to use it is that it makes their jobs easier. Because it covers so many things and makes them compatible with each other, they inherently have to do less work to maintain compatibilty between things like OpenRC and whatever else systemd covers that OpenRC does not.

They have good reasons to make bad decisions and trusting they’re making the best decisions for everyone isn’t a good thing imo.

Now, yes. When Lennert was on them? Doubtful.

You’re right there, but most of what people do with their software is give others choice currently. Imagine a day when GNOME only works with one type of terminal emulator and the rest require you to switch display managers, or just can’t be used.

This isn’t about the user getting to choose, it’s about the developers letting them choose. That’s the base argument against things like systemd. Effectively forcing adoption on two fronts is forcing other developers to limit choice for the users. If only one thing can be said about why it is bad, that’s why.

This is a desktop specific thing. Most of Linux is server based. That’s not to discount it, but to give context for its situation.

Most people who use desktop Linux don’t use this type of software and would rather use something else.

I think it’s telling that LibreOffice is the only viable suite of document editing software. If people were actually interested in that, there’d be more options. I think it being the only one is because few use it relative to the total number of desktop Linux users and because it covers all that needs to be covered for a piece of software like that. There’s little technical reason for even having an alternative. This is not true for PID 1 software.

There are so many reasons what you say is true, and none of them are the one you’re listing it for.

While there are probably good technical reasons for alternative kernels, having software to use with them is very important. Again, there are many reasons that is true, and none of them are the reason you’re listing it here.

Everywhere it could possibly matter is where the choice is. Anything involving user preference and where there isn’t a clear cut “right answer” has a choice. Like Desktop Environment. Like file system (ext4, zfs, btrfs, ntfs, etc etc).

There isn’t a clear cut right answer to PID 1. Or all the alternatives to systemd wouldn’t exist. And it is highly unlikely we now have that clear cut right answer in systemd.

That’s the thing though. Adding another option shouldn’t inherently be “not worth doing” to a developer because other software only works with what currently exists. Systemd, in its “gently pushing” towards a single configuration, is trying to make it that way. To where if I somehow want to make my own PID 1, I have to do it all systemd’s way or it won’t work with what currently exists and so it won’t get adopted even if it could be better. That’s the ecosystem systemd is pushing towards.

The ideal would be all software works with all software. That’s too much maintenance and confusion, yes. But the next best thing is having a few options that all work with each other, or at least some works with some. My PID 1 shouldn’t affect my Desktop Environment choice. That should never be a thing because of the number of abstractions that exist between the two types of software.

One argument doesn’t answer every situation where there aren’t options because there are different reasons why in each situation. Xorg being the de facto display server is what it is simply because it’s so much effort to maintain. That’s usually the main reason for these situations, but it’s not the only one.

PID 1 isn’t that. And it should probably never be that. But again, that’s the direction systemd is going.

And yet here we are.

image

Offering the choice here just means “it would work if you put in the effort and followed the guides.”

Mind you, there has to be a maximum amount of effort worth putting in. I bet you could get GNOME working without systemd. I bet it’s not worth the effort though.

The main issue with a lack of choice, again, is when one thing does not work with another by design and people would have to move heaven and earth to make it so.

But people clearly have plenty of success changing to OpenRC. So I fail to see your point with that since it’s clearly not the case.

Because they have to work and don’t have time to wade through why one way or another is better if both work.

The arguments aren’t about if systemd works. It’s about if systemd is good for linux overall.

Based on its adoption method alone, my belief is “no, it is not.”

I guess you could summarize it with “Systemd itself is mostly fine. It’s how it is handled that is toxic. It is what it has the potential to be and to do to the Linux ecosystem that is toxic.”

What you’re doing is inherently deceitful. Please stop.

More from that 2nd link on systemd-free:

Maturity

This could be classified as technical but it’s not just about the project itself. Systemd IS an immature system. Wikipedia puts the initial release as 3/30/2010. Lennart’s “announcement” has a date of 04/30/2010. Let’s call it four years among friends.

We have a system that has gone from a blog post to being the “comprehensive, integrated and modular platform providing everything needed to bootstrap and maintain an operating system’s userspace”.

I don’t think so.

Let’s also not forget that systemd uptake was LARGELY restricted to Fedora up until the point that the Gnome team decided that logind would be a future requirement. I want that to sink in VERY clearly.

I’ll just say it again. The issue with systemd is how it is being handled more so than the software itself. It has the potential to force the Linux ecosystem into a “my way or the highway” state of affairs for developers, and that is and will always be a bad thing.

3 Likes

An application that integrates an init system, a bootloader, process sandboxing, and a DNS resolver? In my opinion this is a disaster waiting to happen simply because of the sheer complexity of it. On top of that, written in C.

EDIT: And a more technical analysis of systemd: http://blog.darknedgy.net/technology/2015/10/11/0/

Not really favorable.

2 Likes

Using the Bootloader is optional though… most if not all people use GRUB

1 Like