logoalt Hacker News

genewitchyesterday at 10:03 PM1 replyview on HN

systemd is a massive blob of code that infects every part of a system and all of its subsystems. It completely changed the way system administration was done, the way init scripts work, and added tons of things to init that some argue aren't necessary, like dhcp and DNS.

Newer linux folks like it because they're used to it, people who don't like it use devuan, gentoo, or one of the others that still lets one use openRC or whatever else.

upthread someone mentioned that systemd already has the ability to store the birthdate of a user. Why would an init system need that? It doesn't, but here we are.


Replies

Melonaitoday at 12:12 AM

Maybe I'm about to be too pedantic, but I never quite got the argument of systemd being massively bloated based on examples of it including DNS and DHCP. Sure it's a mono-repository that includes all these services, but in the end you do run them separately? The actual "systemd, the init system" doesn't have DNS, DHCP or a user birthday database built-in, those are contained in their own services, namely systemd-resolved, systemd-networkd, and systemd-userdbd respectively, and, although systemd does genuinely lead you down the path of using them (which might be a real problem!), there isn't actually a definite requirement to do so. systemd will gladly run your BIND, ISC DHCP and NetworkManager for you if you tell it to, no? In fact we do so at my place of work. Just because they are under the same project as the init system doesn't mean they are one monolith, I think. To me that feels like saying "Why does the GNU C library include a bootloader!".

Now it's not like there's not plenty to dislike about systemd, it is a wide-reaching project that has managed to get a huge mindshare of the lower-level services needed to run a basic Linux server or desktop, and that has caused many utilities and services to appear that have a hard dependency on it, which is obviously bad for anyone running services that aren't part of the systemd package set, just take a look at NixOS, it's practically built purely on systemd, with efforts to support alternative init systems essentially archived at this point. Plenty of people also quite dislike Lennart, or how involved corporations are in the systemd development, and other people have loads of other reasons. One of my own gripes is speed for quite a few basic procedures in networkd. There's enough stuff to hate about it! I think it's not really necessary to pretend that your init system runs a DNS server and stores birthdays.