Thoughts on systemd and the freedom to choose

Over the past year I’ve been reading a lot of opinions on the new init technology, systemd. Some people think systemd is wonderful, the bee’s knees. Others claim that systemd is broken by design. Some see systemd as a unifying force, a way to unite the majority of the Linux distributions. Others see systemd as a growing blob that is slowly becoming an overly large portion of the operating system. One thing that has surprised me a little is just how much people care about systemd, whether their opinion of the technology is good or bad. People in favour faithfully (and sometimes falsely) make wonderful claims about what systemd is and what it can supposedly do. Opponents claim systemd will divide the Linux community and drive many technical users to other operating systems. There is a lot of hype and surprisingly few people presenting facts.

One discussion thread I read recently compared systemd to other “holy wars” that have happened in the open source community. People are always picking fights between the BSD license and the GPL, the GNOME desktop and KDE, the vi editor and Emacs. Wherever there are differences there will be people to argue over which option is better. Some people are claiming the debate over systemd is different, that it is bigger, that is will do more to fragment the Linux community. Others see systemd as just one more argument in a long, long line of arguments and (while a few opinionated people fight) most of us will continue to get along as we always have.

At first I thought these folks, the ones who saw systemd as just one more small argument in a giant pile of open source debates, were right. Really, there isn’t anything special about the systemd debate that sets it apart from other topics. We have read similar flame wars between fans of Clang or GCC, micro-kernels and monolithic designs, GTK and Qt. So what if there is one more argument over init technologies?

Well, after some consideration, I do believe there is something about the systemd debate which sets it apart. There is something bigger about the fight over systemd which gives it additional weight. Specifically, the other arguments I mentioned, the many debates over technologies that have appeared in the past, were almost always between two choices where both choices were available to most people. The large majority of Linux distributions ship both Clang and GCC, almost all of them provide both GTK and Qt libraries, most of the big name distributions ship KDE and GNOME desktops (or have community editions that do it for them). Just about every Linux distribution makes both Emacs and vi available. There are plenty of distributions that use RPM packages and lots that use Deb packages and if someone really wants to use both, there are tools to convert packages between the two formats. In the Linux community whenever there are choices there is debate. Whenever there is a choice, most distributions ship both options and let people select the utility they like best. (There are a few distributions which specialize or have an exclusive focus, but these are relatively rare.)

What sets the debate over systemd apart is distributions are, for the most part, not offering a choice. When we install CentOS or openSUSE or OpenMandriva there isn’t an option screen offering one init technology or another. Very few distributions make it (reasonably) easy to switch from one init system to another. The new option, systemd, came along and suddenly the old init technology (SysV or Upstart) was tossed aside, no longer available to users who wanted the alternatives. This is unusual. When a new text editor or window manager or compiler comes out distributions usually don’t throw the old technology away in favour of the new one. When a new toolkit becomes available we usually do not throw away all other options, we keep them all, letting people decide which utilities work best for them. With systemd most distributions are pushing the issue, insisting users adopt systemd or move to another distribution and the list of distributions offering alternatives to systemd is rapidly shrinking.

Most distributions accepted systemd fairly quietly. Fedora and Arch are experimental and usually adopt new technologies, so people in those communities accepted systemd as they would most other new, shiny software. It seems openSUSE and the Mandriva family also accepted systemd with a relatively small amount of fuss. However, when systemd was chosen as Debian’s new init system and it was accepted as a dependency for some software, there was a strong backlash. At first I found this odd. I wondered why Debian users would react so strongly against adopting systemd where others had quietly accepted the new init software. I think part of the reason Debian users are so up in arms is Debian is a very conservative project and it does not change quickly. Debian holds out for tried and true technology, for mature software, and systemd isn’t there yet. But I think the bigger issue is choice. Debian tries to be universal, to offer countless choices. You can run Debian on a huge number of architectures and there are several ports using different kernels. But now Debian’s leadership wants to adopt one (and only one) init technology.

I want to let that sink in for a moment. The Debian project lets us choose which operating system kernel we want (Linux, Hurd or kFreeBSD), but soon Debian users will have the choice of just one init technology if they want to be able to run all the software in Debian’s repositories. That strikes me as backward and I think it feels wrong to many Debian users, people who are used to a buffet of choices, too.

There is currently a debate in the Debian camp as to whether Debian should allow users to pick their own init technology (systemd or SysV) and I am very curious to see how it turns out. Debian, the distribution that traditionally offers the most freedom of choice, will soon decide whether to tie people to one init software or to allow choice. The fact that question is even open for debate feels strange to me and it goes to show just how surreal the debate around systemd has become. Debian will soon either turn its back on its tradition of freedom or it will become one of the very few Linux distributions to continue to offer options. If Debian’s leadership is even half awake at the helm they will realize just how many new users they can gain if they continue to offer freedom of choice where init is concerned. Choice about whether to use systemd or not is something that is quickly disappearing from the Linux community and Debian has the opportunity to be one of the few projects holding onto the philosophy of user freedom. Let us hope they choose wisely.