Linux kernel hacker's open rant about systemd
Linux kernel hacker Christopher Barry has engaged a full frontal assault of the systemd Linux subsystem and its creator, Lennart Poettering, on an "Open Letter to the Linux world" published on the Linux kernel hackers' mailing list. Here's a taste:
[Ed. note: picked up this story from comp.misc. Thanks, Rich!]
So why would very smart people who love and use Linux want to create or embrace such a creepy 'Master of All' daemon? Ostensibly, it's for the reasons they say, as I mentioned at the top. But partially I think it's from a lack of experience. Not a lack as in programming hours, but a lack as in time on the Planet. Intelligence alone is not a substitute for life experience and, yes I'll say it, wisdom. There's no manual for wisdom. Implementing systemd by distros is not a wise move for them over the long term. It will, in fact, be their ultimate undoing.Systemd has been no stranger to controversy. It broke a lot of systems, and important figures in the Linux world have registered their doubt about the replacement to the well-known System V init system, which was a fully transparent collection of human-readable scripts but that led to slow boot times. It will be interesting to see if Barry's rant generates a groundswell of antagonism against the new system, or if it gets ignored, or if it leads to meaningful debate and change.
[Ed. note: picked up this story from comp.misc. Thanks, Rich!]
Second, it carries on the idea of 'file system is a configuration file' mentality. It did work for the SysV-init because that system was already very simple and was easy to discover. Not so with the systemd, you need to create your 'script' in a particular folder, link to it from the things which depend on it, and then do some more soft linking in order to start its dependent services. It's so complicated and undocumented, makes me wonder whether these guys know how to program at all. I mean, just parse a fucking config file for dependencies, what's so hard about it?
Which brings me to the third point. The alleged "eases developers' job" applies only to RedHat developers, not the guys who write the actual servers being run or the users who want to get out of the distribution's boundaries. The whole thing only works if you use your system in the way your distributor intended for you to do. This of course eases the work of RedHat developers since they don't have to deal with silly things like documentation, stable design etc.
On the computer I had before this one, I had sysv-init. I had reduced the whole thing into inittab + one script since I didn't have anything complicated on it. Of course it booted blazingly fast since it didn't need to read hundreds of mini config files. I couldn't do it starting from systemd. Everything is spread around in so many files (and so many soft links), it's impossible for me to wrap my head around.
I do think that sysv-init could be replaced with something better but systemd isn't it. Something which can read a configuration file and start processes (not services, eww) in parallel would be a way forward. There is a lot more to talk about how systemd fails and I'm sure many people have done a more thorough job elsewhere but this is just my two cents.