Someone please convince me why I should hate systemd because I still don’t understand why all the hate exists.
The idea as far as I can tell is that it’s responsible for too many things and gives a massive point of failure.
Man, wait until these people hear about the filesystem and kernel.
The very existence of a defined kernel is an insult to the Linux philosophy
hurd “exists”
Does it ? I thought it was never completed !
On the other hand, if you want a microkernel that does exist, there’s Mach. But I don’t think you can replace Linux with it 😆
It’s been two years away for the last 30 years.
People don’t like it because it’s declarative. It felt cool to be able to just put bash files into certain directories to have them executed on startup. That was elegant, in the sense of “everything’s a file”.
systemd is more of an api than a framework, so it’s a different design paradigm.
I hated systemd until I printed out the docs, for some coffee, and sat in a comfy chair to read them front to back. Then I loved it.
Mostly I hated it because I didn’t know how to do things with it.
Also, “journalctl” is kind of an ugly command. But really, who gives a fuck. It’s a well-designed system.
And if a person absolutely must execute their own arbitrary code they can just declare a command to execute their script file as the startup operation on a unit.
My understanding is that some people are die hards to the software philosophy of “do one thing really well”. systemd at the very least does many different things. These people would prefer to chain a bunch of smaller programs together to replicate the same functionality of systemd since every program in the chain fits the philosophy of “does one thing really well”.
For me it’s 3 things
- Do one thing and do it well
- Everything is a file in Linux
- human readable logs
Systemd breaks all three of though by being monolithic and binary. It actually makes you have to jump through more hoops to do things in certain cases. I understand it’s a mindset shift but it really starts making it feel more like Windows with how it works and the registry and event log.
You forgot: use as many dependencies as you need. For example, my init system does not use
xz-utils
.