I think it’s largely a combination of curmudgeons that hate change and people who are strict Unix ideologues. systemd, while being objectively better in many ways is a monolith that does more than one thing. This violates some of the Unix program philosophies (small programs that do one thing). The truth is that the script-based inits were terrible for dependency management, which is something that systemd explicitly addresses and is probably one of its greatest strengths, IMO.
That’s very fair. Having managed system services for custom application stacks with hard dependencies on one another, that strength is worth it to me.
I don’t mean to come across as saying that the Unix philosophy is wrong. Just horses for courses. Systems where there is a likelihood of interdependent daemons should probably consider systemd. Where that’s not an issue or complexity is low, more Unix-like inits can still be a solid choice because of their limited scoping and easy modification.
It’s slow and heavy, and it does too many things. It’s a monolithic piece of code so big it’s getting too difficult to maintain, so it has more vulnerabilities than other alternatives. It’s also taking over the whole system, to the point where Linux systems will soon be Systemd/Linux instead of GNU/Linux.
It’s also developed and funded mainly by Microsoft, which is also something people don’t really like. Microsoft are trying to make it similar to Windows in some ways, which makes it way more difficult to debug random errors.
And it doesn’t follow the UNIX guidelines, which is just the cherry on top.
Why do people hate systemd anyway? I’m not that tech-savvy but I’ve always used it and I don’t recall ever having a problem with it
I think it’s largely a combination of curmudgeons that hate change and people who are strict Unix ideologues. systemd, while being objectively better in many ways is a monolith that does more than one thing. This violates some of the Unix program philosophies (small programs that do one thing). The truth is that the script-based inits were terrible for dependency management, which is something that systemd explicitly addresses and is probably one of its greatest strengths, IMO.
EDIT: Corrected capitalization.
On a side note, it’s systemd, no damn uppercase D at the end.
Good point. Fixed.
It’s the main strength, and for that it deserves praise.
For the feature creep that goes into it, and everything hard requiring systemd stuff (way beyond just the init system) just to start, no thanks.
That’s very fair. Having managed system services for custom application stacks with hard dependencies on one another, that strength is worth it to me.
I don’t mean to come across as saying that the Unix philosophy is wrong. Just horses for courses. Systems where there is a likelihood of interdependent daemons should probably consider systemd. Where that’s not an issue or complexity is low, more Unix-like inits can still be a solid choice because of their limited scoping and easy modification.
Again, init system is OK.
Suddenly logind, networkd, resolvd, timesyncd, and every other systemd subsystem is way too much inside the one supposed init system.
It’s slow and heavy, and it does too many things. It’s a monolithic piece of code so big it’s getting too difficult to maintain, so it has more vulnerabilities than other alternatives. It’s also taking over the whole system, to the point where Linux systems will soon be Systemd/Linux instead of GNU/Linux.
It’s also developed and funded mainly by Microsoft, which is also something people don’t really like. Microsoft are trying to make it similar to Windows in some ways, which makes it way more difficult to debug random errors.
And it doesn’t follow the UNIX guidelines, which is just the cherry on top.