We (as in Linux users) used to make fun of Windows for how stupid everything was. You need a GUI for configuration because many options are hidden away in some kind of cryptic registry, deploying services is a PITA etc. Now we have somehow (d)evolved to that same mess. For instance, SystemD and SELinux are such a pain to work with (each for different reasons) that it feels like I have to fight my OS. Wanting an OS that works for me, instead of against me, was one of the major reasons why I switched from Windows to BSD and then Linux back in the 90s.
There's definitely something to be said for *BSD's boring, predictable simplicity. But perhaps there's some kind of force that automatically drives operating systems to bewildering compelxity as their user base grows?
Nobody is forcing SELinux on you, you can turn it off and that's that.
If you're on a Red Hat based system most of policy is there out of the box, providing you with pretty nice additional protection without too much tinkering.
systemd-as-init is/was not the problem. systemd-as-kitchen-sink is where people started getting annoyed.
It needs journald (which can't ship logs off-host like rsyslog, so you needed to run rsyslog anyway), it pulled in udevd, it's doing DNS, it's doing time syncing, it's doing DHCP/IP and VXLAN(!), it has a boot manager (formerly gummiboot), it's tracking user logins, it's ….
Too. Damn. Big.
See: https://www.freedesktop.org/software/systemd/man/systemd-jou...
* https://tools.ietf.org/html/rfc5424
* https://en.wikipedia.org/wiki/Syslog
How do I send/forward/import it into my SIEM/ELK/Splunk?
I'm already using syslog for all my networking events as well as Windows logging (via a translator).
Maybe I'm just getting old and change is starting to grate on me. But systemd does feel like everything-and-the-kitchen-sink.
As for SELinux, sure, you can turn it off. At which point it's useless. The pain begins when you actually want to use it and existing policies aren't enough. It is hugely complex. Tooling (like ausearch and audit2allow) is, erhm, not very good. Want to allow something non standard? Better be prepared to spend a couple of hours. Don't forget to turn your new policy into a module file. And then compile that into a pp file, which is another kind of module? And then don't forget to install that file. I remember administering Windows NT and 2K boxen and really hating how its policies worked, well, SELinux now makes me feel the same.
Both of these tools make a lot assumptions about how things should be done, and they're pushing these assumptions onto the user, whether or not they agree.
And hey, I get it, these are complex domains, and we should be very happy that people are giving us Free (both sense) Software in the first place. But boy, if I could pay €100 to have a sensible operating system, I would. Just not €100 per machine -_-
People don't hate systemd without reason.
There are many cases where it follows some course of behavior that doesn't follow typical user patterns like the principle of least surprise. Example is the dns/resolv.conf issue.
This was a few years ago, so it is very likely that the particular bug that annoyed me was solved since then. Nevertheless, the bug was so unbelievably stupid and it was not only just a coding error but also a problem caused by the wrong architecture of systemd, so I could not accept that it is possible to trust software developers that can make such mistakes.
After that bad experience, I have never touched systemd again.
Even if this was several years ago, systemd had already been in use for several years, so the bug could not be excused by systemd being experimental or something like that.
I use mostly Gentoo Linux, which fortunately does not use systemd, so I had been shielded from its problems. I had heard about some systemd-related controversies, but I had paid no attention to them. I had seen some systemd presentations, which seemed reasonable enough.
One day I was in a hurry, but I had to install Linux on a new computer. Gentoo is nice, but if you do not have a pre-prepared customized installation image, so that you have to install it from scratch, it may need a few hours for compiling everything from sources and for editing the configuration.
So I decided to install Arch Linux, which used systemd. The installation was fast and everything seemed to work OK.
Systemd was always praised for its supposedly fast boot times, but I have seen no improvement in that, compared to my carefully configured Gentoo systems. On the other hand, the computer with systemd was the first computer that I have ever encountered, among many thousands of computers, from the days of Intel 8080 and until the new Zen 3, which was slow at shutdown.
So while the boot time of systemd was OK, the shutdown time was very long, sometimes more than a minute. What is much worse, sometimes the shutdown failed, which is something that I have never experienced before or after. This was on an Intel NUC with a Skylake CPU, so it was not some esoteric, non-standard hardware.
The shutdown failed sometimes due to a race condition, because the systemd daemons exchanged some messages between themselves through dbus, and, IIRC, sometimes it happened that some daemon died before the sender expected and the sender remained stuck in attempts to send to a non-existing recipient, or maybe the dbus daemon died, so there no longer was who to relay the message.
Race conditions may happen in concurrent programming, but to have a shutdown procedure whose success depends on the success of inter-process communication, that shows that everything was ill-conceived at the highest level.
So then I said farewell to systemd, I wiped Arch and I installed Gentoo, which worked perfectly on that hardware, without systemd, but with its much simpler and more reliable openrc.
It's infuriating when your system won't shut down due to some unknown service, which systemd gives [30 seconds remaining] to quit gracefully. OK, you think, I guess it's reasonable to wait and see if it will close cleanly, so you wait. As soon as the timer hits 0, it jumps up again: [90 seconds remaining]. How are you supposed to know how long to wait? What are you supposed to do if it continues forever? All keyboard input is disabled so there is nothing you can do but hard reset your PC and hope systemd unmounted the filesystems before getting stuck.
It's just an unpleasant software.
The big problem is simple interfaces require more effort on the users part which will never happen for a majority of users. And lets face it, people like me, you and most others here are the extreme minority in computing. We aren't afraid of $ vi /etc/config or echo killuser >/n/pcturret/ctl. But writing documentation is boring and "hard" so it never gets done. People start complaining about docs and someone comes up with the bright idea to automate vi /etc/config by replacing it with a poorly thought out contraption that needs binaries and bolted on protocols. That's exactly what dbus is and is best described as duck tape engineering.
Yesterday one of KDE devs posted an article mentioning this sort of phenomenon and linked to an article depicting it in full[1]. And now that you mention Plan 9 it makes me think, because I always dreamt about Plan9 taking over the world and becoming big and everyone using it, but Plan9 is so great because it has never left the 'geek' circle, while others like Linux (and arguably the BSDs, to a lesser extent) already had.
This is why the 9front/cat-v crowd is cantankerous and the humour as dark and cringy as possible. No likes. No stars. No instagram accounts full of pictures some jerk took in the middle of the sahara to show how shallow they are. We only want well thought out code. Otherwise go away.
Too bad it's stuck with hard coded 32 bit dependency. It also cant build on 64 bit systems unless they have 32bit compat (windows/linux win here). There's a fork maintained by some 9front users called Purgatorio. Charles Forsyth also still pokes at it and just added Risc-V support. It's not dead, just resting. Patches welcome.
On the flip side it windows. That OS doesn't hide in the background, rather it screams for attention 24/7, inserting itself in every little task even when specifically told to back off.