can someone explain the systemd hate? i think i understand it but i want to make sure i have a good understanding.
The biggest problem with systemd is the feature creep beyond its original purpose of being a replacement to sysvinit. Contrary to popular belief, it's not like sysvinit's shortcomings were ignored by people prior to systemd's launch. Basically, parallelisation was sorely lacking and orphaned processes were a nightmare to manage. There were other init systems like upstart and OpenRC that were in use for X amount of time (I think RHEL6 used upstart), but systemd was the first
huge leap forward in that respect. There's just one huge problem: systemd began subsuming other, once independent modules like udev, dbus, and so on. It just kept going and going and going, and to this day, systemd exists in this weird limbo where it's both "monolithic" insofar as being one gigantic thing that does a billion other things, and also "modular" because all that billion other things it can do is the result of subsuming other services and modules that used to be managed independently.
Due to the feature creep that systemd has going on, what often happens is that there's an assload of bugs, regressions, and accompanying CVEs with
every new release of systemd that Red Hat deems fit to push out. Do they get patched fairly quickly? Sure. Is this something that wouldn't have happened if systemd remained constrained within its original scope? Also yes. Making matters for systemd all the more irksome is how GNOME is now joined at the fucking hip with systemd when it damn well didn't need to be in the first place. It used to be that GNOME as a desktop environment could operate wholly independently of the init framework that you chose; that proposition went tits-up when the GNOME team decided to dig their heels in and marry features for basic functionality intimately with systemd. It's getting to a point where even workarounds with elogind are no longer feasible because the GNOME team, starting with 3.49 (it's still GNOME 3 to me, even if they drop the 3) decided "yeah, fuck your workarounds, we're gonna make it impossible for a non-systemd distro to even remotely use our crap without systemd as a hard dependency."
Complicating matters further is how Lennart Poettering, the author of systemd, is (and I must emphasise this): a self-righteous
cunt. To be absolutely fair here: he had some pretty damn good ideas. Why should Linux distributions be beholden to POSIX compliance when there ain't a damn Linux distro that shelled out the money for the certification? Why shouldn't Linux distributions leverage wholly novel features and system calls the Linux kernel itself is capable of, yet remained wholly unutilised or underutilised due to fears of breaking with POSIX? Where he went horribly,
horribly wrong was how smug and self-righteous he became. Any problems that emerge from the design and ethos surrounding systemd as a project are immediately WONTFIXed, his own fixes whenever systemd gets borked super bad weren't always up to snuff, and on top of that, he gets a shield from criticism because he allegedly received death threats. Notice how no one ever brings up whether or not those "death threats" were indeed actionable according to law; highly likely that he just got told "KYS faggot" and he decided to make a mountain out of a molehill.
I'm sure there are other areas where systemd is woefully inadequate, but to that end? I just know how it impacts me as an average, everyday jack-off who's highly accustomed to a GTK-based environment. People who intimately know systemd's woes from a sysadmin perspective can elucidate this better than I can.