|
|
|
|
|
by RidingPegasus
2538 days ago
|
|
Always interested in why exactly systemd is bad? There's a lot of negative PR and not much evidence of why people shouldn't use it. Comes across as like the same recommendations of "don't use chrome, use this fork instead", one that's run by a tiny team of people who face very little consequences for messing up. |
|
* build system actively makes it difficult to build one component without the others, seemingly for political rather than technical reasons
* build system relies on Python, making bootstrapping more difficult (not quite desirable for "building blocks to build an OS from")
* needless overlap with countless other pre-existing projects including binfmt-support, lxc/runc, and libdbus
* cgroups2 hierarchy model which is unworkable for rootless containers unless they register with systemd via dbus or are running directly as systemd services
* The dependency model has lots of corner cases and gotchas. OpenRC and the LSB headers are much simpler and just as effective.
* Events are done in a hacky way: device events are performed by tucking "SYSTEMD_WANTS=..." away in a udev rule somewhere, IPC and timer events have their own unit types. This model is not extensible, and it obscures the policy rules that can be used to start a particular service.
* All the positive PR and marketing has left a bad taste in my mouth. Why did RedHat fly Lennart across the world dozens of times just to sell this hunk of C to literally anybody that would listen? It was a waste of petrol and shows that systemd did not win on merits alone.
* does not make any attempts at portability, and does not follow any pre-existing standardized interfaces that can be easily emulated on other OSs.
* Reliant on dbus as its primary IPC mechanism, when it does not even need a bus in the first place. JSON over a socket could have been a simpler and cleaner choice.