You can also read The problem with the anti systemd attitude.
This is not just hatred towards systemd, it can do things very well, the direction it is going isn’t great.
You can also read The problem with the anti systemd attitude.
This is not just hatred towards systemd, it can do things very well, the direction it is going isn’t great.
I’ve seen a lot posts against systemd, most of them citing the unix principle as the main argument. But as a user on a desktop computer I don’t understand why would it be bad. Could someone explain it to me?
The crux of the issue, at least as I understand it, is that traditionally you’d build the system components in a way that they were interchangeable by defining some standard-ish API. While you can interchange some Systemd components, since “ststemd-xyz” is just the umbrella name of the project as a whole, so some components are completely independent, the core ones can’t really easily be swapped, and it’s only getting worse, especially as systemd is starting to become a hard requirement, a lot of people are rightfully feeling peeved. There’s a great talk made by a BSD developer that admits the virtues of Systemd while bringing the downsides, so no blind hate, you can google for the video “The tragedy of systemd”.
The Unix principle is the most over-rated design principle ever. It’s sole purpose is to be dragged out when somebody doesn’t like your application. Notably the systemd haters don’t levy the same complaint about Wayland…
It’s based on the idea of programs as “functions” that can be strung together like you often do with things like “cat /etc/passwd | grep user | tr ‘s/:/,/’” (cat put in there to trigger the right people). That’s a great philosophy for cli utilities. But it’s not universally applicable.
The goal is not to make things tiny but to make them “the right size.” You wouldn’t want to run 30 different applications to do what GIMP does and you shouldn’t have to.
And the idea of having dozens of viable replacements for different functions is not a Unix thing but pretty restricted to the Linux ecosystem. And it’s not like it was planned, it just happened because 12 people went out and wrote their own ntp daemons. There wasn’t really much benefit to it. “Oh boy, I can run a different ntpd… And half of them are partially implemented. Hooray?”
I hate Wayland and Systemd.
You’re allowed to have programs whose job is to coordinate other programs. You could totally have a version of gimo that just runs whatever separate program on the buffer.
Sure - it’s just not always a good idea. Would you want to copy your buffer to a dozen different applications applying filters to an image?
It means that you don’t have to fix the set of capabilities at the time you make the program. This is how plugins work.
And there’s no need to copy, sharing memory between processes is easy.
I think this might be the crux of the argument. Wayland is certainly not a cli utility, so there’s no need to argue if or how it impacts that environment.
I’m quite familiar with openRC, so when I was introduced to systemd, it felt quite awkward. I use both, but still prefer openRC, maybe still due to familiarity. If I’m operating in an WM or DE, it doesn’t really matter that much.
It’s been over a decade since I’ve run an ntp daemon. 😉
It’s like building codes. You don’t always know you need a smoke detector, but we have 6 in this apartment.
People suggesting the Unix philosophy needs to prove itself have issues incorporating anyone else’s experience into their own. It’s okay, but watch for that oppositional disorder.
As a user you probably don’t know, and maybe don’t care.
This is more for developers, technology is not magic, vendor/technology-locking can be problematic. It’s not like systemd was made by bad people with bad intention. You may have heard of X11 too. The list could go on, there is a bag amount of legacy in our technology, some would just keep it that way. But some argue for changes thus discussing (and criticizing) those legacy, why it fails on some points and what to do/build from that.
So right now if you’re a desktop user, I don’t see why you would bother indeed. This discussion are still interesting to some devs, for instance here I learned about dinit, and it’s code is damn small and clean, hence it was informative and I will definitely try it.
Application developers are not being forced to integrating with systemd at all. They are choosing to do that because it helps them. The only developers negatively affected by this are the ones developing other init systems that don’t want to provide the same features the application developers want to use.
Yes and no, I said “devs” and you come saying “actually […]” but really people “integrating” software “usually” are developpers. If you want to start a web server you will have to deal with systemd. If you want to check logs, you will also. If you need to debug an application that crashed (in C at least) in a production/test environment (not in “my machine”) you might want to get into core dumps.
Really? In what universe are you living? Any piece of software I built, professionally or not, had to run on debian-based or arch-based linux hence systemd. Did I choose or any fellow developers of my time? No, maybe people 20 years ago, maybe… That really reminds me of conservative views on “social contract” like we all chose the society we are living in.
On desktop systemd is only now getting used for user services. I don’t care that much about it either, but am not a sysadmin.
One annoyance is long shutdown because of systemd or maybe thats youre holding it wrong type of problem…
Definitely a “holding it wrong” or “you’re using Fedora” type of problem.
I really like systemd’s user services.