Hacker News new | ask | show | jobs
by effie 1329 days ago
Why? That is a very good question!

Libc and linux kernel are good solutions to well defined problems: a standard C library, and a kernel. They pretty much do what is expected, sometimes they do more, but not by much.

Systemd? It is not a good replacement for an init system for the users. Instead, it is an OS functionality accretion for the benefit of distributors, a baroque monstrosity that provides mediocre buggy solutions to too many problems that have nothing to do with init. It boots nondeterministically (socket activation is not such a universally great idea), sometimes hangs randomly, it disrespects the user when ignoring keyboard input while waiting 90s or indefinitely for some condition, or launching zillions of bogus hog processes for every user login event. Some of these can be mitigated on a production server, but bad taste remains.

1 comments

>Libc and linux kernel are good solutions to well defined problems: a standard C library, and a kernel

That's subjective. I've talked to a lot of Windows users who all say Linux is a terrible solution for them. I don't think most Debian developers feel they should suddenly drop everything and start making Linux exactly like a copy of Windows just to please those people. They voted on this several times, they wanted systemd.

>it is an OS functionality accretion for the benefit of distributors

There's no problem with this. Most users don't touch the init system that much. They interact with it primarily through the package manager installing service files.

>solutions to too many problems that have nothing to do with init

Those are all optional add-ons for users who are having thoes problems.

>It boots nondeterministically (socket activation is not such a universally great idea)

This is also only an option. You don't have to use socket activation. It's there if you want it and you don't need to strictly order services.

>sometimes hangs randomly, it disrespects the user when ignoring keyboard input while waiting 90s or indefinitely for some condition

Not sure what this means or what keyboard input you were pressing. In systemd the keyboard shortcut to force reboot is pressing Ctrl+Alt+Del 7 times: https://www.freedesktop.org/software/systemd/man/systemd-sys...

>or launching zillions of bogus hog processes for every user login event

Not sure what this means either. You can disable those.

> That's subjective. I've talked to a lot of Windows users who all say Linux is a terrible solution for them.

That's a different statement. I said those linux parts are good solutions to a libc library and unix kernel. Not good solutions to needs of Windows users.

> Most users don't touch the init system that much.

Most BFU users don't touch the init system. If you're a developer/administrator/power user, you do. Yes there is more BFUs (website users, android users) than power users, but that does not mean that the latter group should be pushed to not care about their init system.

> Those are all optional

Not in practice; some of those options are integrated and others are chosen by the distributions. It's hard to reconfigure the system to opt out of journald or user session control.

> You don't have to use socket activation. It's there if you want it and you don't need to strictly order services.

Yes, but that won't solve the problem entirely, systemd is non-deterministic init system where you can't fix the boot order reliably.

> Not sure what this means or what keyboard input you were pressing. In systemd the keyboard shortcut to force reboot is pressing Ctrl+Alt+Del 7 times

Ctrl+C, Ctrl+Z. I mean I don't always want to reboot because something went wrong in the boot process and systemd is stalling. I want info from my init what went wrong, and the option to fix the problem in the shell if possible. This is often not allowed by systemd when it could.

> Not sure what this means either. You can disable those.

It means systemd launches bogus processes slowing down the system. It's well known, it's in the trackers, yes I can and i do disable them.

The point is this sucks and neither the systemd developers neither the distribution(rhel and derivatives) care to fix this.