Systemd and its components are responsible for too many essential system functions. Init, services, mounts, timers, logging, network config, hostname, DNS resolution, locale, devices, home directories, boot, NTP sync, and I’m sure there are others, can be handled by systemd or one of its components.
Systemd violates the UNIX philosophy of “do one thing and do it well”. Systemd is a complex solution to a complex problem: this thread has several comments by a former Arch Linux maintainer that explains why they’ve switched to systemd, and why the earlier method of using single initscripts was unsustainable.
It is owned and maintained by Red Hat, known for its many controversies.
Some people just don’t like modern things and think that the Linux ecosystem peaked in the 1980s.
Most (though not all) of the popular complaints are completely unreasonable. Those people usually see themselves as moral and righteous and expect the world at large to follow their personal creed. I especially consider the UNIX philosophy to be outdated, and strict adherence to it to be an obstacle for modern apps and systems.
I have some issues with systemd, and I don’t like that one for-profit company has such a massive influence over the entire Linux ecosystem, but I have to acknowledge that it works, it works well enough to counter my personal issues, and that the people whose opinion matters the most (specifically Debian and Arch maintainers) chose it for a good reason.
systemd DOES do one thing really well. Too well. It’s a service manager.
People noticed that it works really well as a framework for their stuff and started plugging all the other stuff in your first bullet point into it. And that also worked really well.
My personal reasons for disliking systemd (note: I still use systemd):
The lead developer of systemd has said multiple times that we should be fine with break POSIX if it means developing faster.
systemd has massive attack surface, making it easier to exploit and result in privilege escalation. It is a highly complex and large codebase that really shouldnt be given the trust of PID 0
systemd is not portable or modular.
It only just barely got musl support. Hope to see it improve in the future.
systemd is much slower than other inits (eg. dinit, s6, openrc)
systemd being the go-to init encourages developers to more heavily depend on it, making it difficult for distros without systemd
The biggest feature I like about systemd is run0, though I wish it was a drop in replacement for sudo. Secondly, I do like that services can be sandboxed.
It’s developed for linux and there is literally 0 linux distributions that are POSIX-compliant, also standard is dead.
It doesn’t, also moving it to any other PID won’t make any difference.
It is modular (IIRC there is only three mandatory parts) and portable.
Was completely on musl side (also musl is as much not portable and modular as systemd 🙃 and in every practical way worse than glibc).
It’s not an init, nor does it present itself like this. Do you have any benchmarks that show this slowness when doing comparable operations?
Why exactly depending on a stable system component is a bad thing? Distros without systemd are moving against the stream, obviously there going to be some problems.
I see from your other comment in the thread that you’re enthusiastic about systemd, and that’s great.
I’m glad we inhabit a software ecosystem broad enough that we can both be happy
I’m not enthusiastic about it, I’m just old enough to remeber how bad were good old times before systemd and a bit miffed how old and untrue statements about it are perpetuated.
(edit) But, honestly, it’s still kind of accurate. Many of the most significant software suites that define the Linux ecosystem in more recent decades were written in the 80s or earlier. X (the display protocol) was released in 1984, and X11 in 1987. GNU Emacs was released in 1985. Vi, in 1976. UNIX System V, from which sysvinit and compatible init systems were adopted, was released in 1983. It’s not a stretch to say that certain people want to regress to the 1980s state, even if the kernel wasn’t around.
It’s a little known fact that the first answer to Linus’ first message announcing his new OS was “You stupid thing, why did you created it? It ruined it! Linux was better before!”.
Off the top of my head, in no particular order:
Most (though not all) of the popular complaints are completely unreasonable. Those people usually see themselves as moral and righteous and expect the world at large to follow their personal creed. I especially consider the UNIX philosophy to be outdated, and strict adherence to it to be an obstacle for modern apps and systems.
I have some issues with systemd, and I don’t like that one for-profit company has such a massive influence over the entire Linux ecosystem, but I have to acknowledge that it works, it works well enough to counter my personal issues, and that the people whose opinion matters the most (specifically Debian and Arch maintainers) chose it for a good reason.
systemd DOES do one thing really well. Too well. It’s a service manager.
People noticed that it works really well as a framework for their stuff and started plugging all the other stuff in your first bullet point into it. And that also worked really well.
My personal reasons for disliking systemd (note: I still use systemd):
The biggest feature I like about systemd is run0, though I wish it was a drop in replacement for sudo. Secondly, I do like that services can be sandboxed.
I mean, so does GNU.
Now I want a shirt that says “Linux ecosystem peaked in 1980s”
If they don’t like systemd but are forced to use it for some reason, I can understand why they might have some negative feelings
Once I switched to a distro with OpenRC, I stopped feeling the need to argue about systemd
You are forced to use a lot of things bit systemd is where you draw a line? 😺
I see from your other comment in the thread that you’re enthusiastic about systemd, and that’s great.
I’m glad we inhabit a software ecosystem broad enough that we can both be happy
I’m not enthusiastic about it, I’m just old enough to remeber how bad were good old times before systemd and a bit miffed how old and untrue statements about it are perpetuated.
Linux was released in 1991.
That makes the shirt funnier
It’s called a hyperbole.
(edit) But, honestly, it’s still kind of accurate. Many of the most significant software suites that define the Linux ecosystem in more recent decades were written in the 80s or earlier. X (the display protocol) was released in 1984, and X11 in 1987. GNU Emacs was released in 1985. Vi, in 1976. UNIX System V, from which
sysvinitand compatible init systems were adopted, was released in 1983. It’s not a stretch to say that certain people want to regress to the 1980s state, even if the kernel wasn’t around.Funny thing is, nothing in the list adheres to the so called unix philosophy.
It’s a little known fact that the first answer to Linus’ first message announcing his new OS was “You stupid thing, why did you created it? It ruined it! Linux was better before!”.
This sign won’t stop me! I can’t read!