Before anything else, I would like to say that I admit systemd
has brought great change to GNU/Linux. sysvinit
wasn’t the best, and custom scripts for every distro is a pain I’d rather not have.
With that said, Poettering now works for Microsoft, systemd
has basically taken over all of the common/popular distributions (if this is about the argument of “systemd
making it easier for developers”, disclaimer: I don’t know. I’m not a developer), and this has led to a rampant monopolisation of the init system.
Memes aside, this has very real consequences. If you don’t want another CentOS-style “oof, sorry, off to testing” debacle happening with your init system, might want to look at the more “advanced” distributions that let you choose the init system.
I am well aware that systemd works well for the most part, and that gamers and most other people likely don’t care - which is fine, at least for now. I do expect to see a massive turnover in sentiment if something ever happens to systemd
(not that I’d like for that to happen, but no trusting RedHat anymore), but I suppose we’ll get to it when we do.
My sentiments are well enunciated in this recent post on the Devuan forum: https://dev1galaxy.org/viewtopic.php?id=5826
Cheers!
That's the one thing about systemd that is sort of nice. We don't really need to have more than one init system, and it does a sufficiently comprehensive job of being one. If it were only an init system and nothing else, there basically wouldn't be any remaining complaints about it by now.
I do agree somewhat. The main argument coming against it is not following the "Unix philosophy" which I'm a proponent for, making
systemd
annoying.Gosh, don't use a "GNU's Not Unix" system then!
I think you're confused about what "Not Unix" means in the name "GNU's Not Unix". It's nothing to do with the Unix philosophy. It's to do with overcoming the limitations of proprietary Unices from the 1980's. From the GNU Manifesto:
"GNU will be able to run Unix programs, but will not be identical to Unix. We will make all improvements that are convenient, based on our experience with other operating systems. In particular, we plan to have longer file names, file version numbers, a crashproof file system, file name completion perhaps, terminal-independent display support, and perhaps eventually a Lisp-based window system through which several Lisp programs and ordinary Unix programs can share a screen. Both C and Lisp will be available as system programming languages. We will try to support UUCP, MIT Chaosnet, and Internet protocols for communication."
https://www.gnu.org/gnu/manifesto.html
Nah, I'm not confusing anything, I just decent to the level of people claiming that systemd was not following the Unix philosophy.
I disagree.
I don't really have a choice in the matter: most software is written for GNU/Linux systems, which is Unix-like at best. I agree that Linux has had many improvements since then, and I wholeheartedly support and applaud Linux for what it has achieved as a project.
If there was a usable Unix derivative (different from *nix clones) I would seriously consider it, but I don't think there's much development other than AIX and what was Solaris by Sun.
macOS is certified Unix and its technically BSD
I've had good luck with the BSDs over the years. Great system documentation.
Indeed. It is most fantastic to peruse through their documentation, very well written.
And here I'm sitting, thinking that more software is being written for Windows and macOS, a UNIX® Certified Product. (Don't look up Apple's launchd, your brain would meld trying to reconcile your insane claim that systemd "is not following the Unix philosophy" when launchd certifiably is.)
That said, GNU's Not Unix, so GNU/Linux does not have to follow an archaic philosophy anywhere.
To be fair, every part of it is a small binary that generally does a single thing. You don't have to run them all or even install them but they bring a lot of necessary functionality around base host bootstrapping that everyone used to write in shell for every distro.
I find it nice as an operators of multiple infrastructures to be able to log into a Linux system and have all the hosts bootstrapped in a relatively similar fashion with common tools.
Sysv kinda sucked because everyone had to do it all themselves. Then we got sysv, openrc, upstart and then systems and there was a while there where you never knew what you'd get if you logged into a box. And oh look, I gotta remember 10 different config file locations and syntaxes to assign an IP. Different syntaxes to start a daemon. Do I need to install a supervisor or does that come with the init.
People are doing a lot of really cool stuff with Linux OSs assigning IP addresses in 10 different ways or starting programs was never one of them.
Its also not that systemd has a monopoly, there are other init systems out there, but all the big distros, RH, Debian, ubuntu, arch . . . all came to the same decision that it was the best available init and adopted it. There are other options and any one of those projects is big enough to maintain its own init, but no one really finds the value in dedicating reaources, so they haven't.