Monday, December 28, 2015

Systemd is not the end of the world but someone needs to save us from it

This post has been months in the making. I believed I've reduced the rant-iness to a minimum level. It add nothing to the discussion elsewhere on the Internet. It is however, a burden off my chest.
I became aware of systemd as an init system in recent months as it gained traction in Fedora and it's competition with upstart. I didn't give it much of an interest as it primarily dealt with services that are more associated with the desktop: Plug and Play, power management etc. Imagined my surprise when I installed CentOS7 and it was the default init option. And going back wasn't an option.
The discussion around it's adoption has been intensive. This is a website that documents the fallacies in the arguments against for it and the follow-on discussion for a now-dead website advocating for boycotting it.
 My main beef with systemd is philosophical. Systemd's complexity and how it goes against the concept of "many simple programs doing basic jobs well working together" is not where Linux should be going. While many deride this backward-looking, that concept has served us well and has brought us this far. Yes, I do know that not everything that has brought us this far can carry us into the future but that point is evident only in hindsight. We should try new things but not at the cost of what works.  They should also be subject to discussion and mutual agreement. And finally there should be a transition between what is to what will become.
The opposite of this concept is "one big program doing many things complicated things", the best example being Windows. While some point out that systemd is a collection of applications, they are being developed together as a whole and made inter-dependent.
Another beef is the sense of (or lack thereof) of community around the development. The fan-boy-ism around it and the attitude of the developers (e.g the attitude towards corruption in binary logs) is alienating. Although it runs both ways, it is more healthy on the sysvinit side of things. I understand why there is a strong push-back from parts of the Linux community. This is the age-old difference between Linux users that are excited by solving problems and those that like to go home at the end of the day. Systemd is this complicated box / tool that can be used to solve complex problems in a complex way.  


Finally, it is sobering to note that alternative init systems have been around for a long time. Sysvinit can be replaced in the past. It was a choice. The other sysvinit replacement weren't as good or offered nothing major over sysvinit. The issue is that systemd can't be replaced, not easily, at least.
I think one of the reasons RedHat chose to work closer with CentOS is to ensure the adoption of systemd becomes more prevalent. CentOS would be a threat to systemd if they decided to continue with sysvinit as the default init instead of systemd. Admins would have choice and would stick with sysvinit. It could have been more about maintaining control rather than about community.
All is not lost. I have been around long enough to see "brilliant" ideas get buried because it was evident it wasn't to begin with. EISA comes to mind and that deals with hardware. Yes we need a software interface to manage hardware configuration but do we need one that runs from a removable floppy disk? Who knows, UEFI may go the same way. And of course, Gnome3. A shining example of how many people got it wrong together. Someone termed this as the 'collective stupidity'. I'm going to call this an echo chamber effect. Because you would be surprised, like politics, it doesn't take that many people to take control and influence an open source project.
I've muttered to myself after watching the spinning 3D interactive desktop demos, where many proclaimed that Linux is finally superior to Windows, that from that moment onward, only Linux users can kill Linux. What was a ripple in Gnome3, is now a tsunami.

No comments:

Post a Comment

Recently Popular