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.
Bravo! You nailed it. The Linux world should be about choice and having that taken away makes the Linux world more like Apple or Microsoft…where choice is very limited.
I hope this is one small blip on the scope and that Debian (and others) reconsider.
Jesse, I TOTALLY agree. FOSS, Linux, GPL and other open source, are all about freedom and choice. No lockdowns. The init choice should absolutely have the same freedom, leave all the tools already created, available for the individual to choose. This IS NOT proprietary. I do believe, that a mass majority left the closed source environments, in part for having a stomach full of all the “under handed” controlling and abuse of end users.
On a side note, just to verify. Did you mean?
Quote: 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 opinions. (options?)
Quote: Let us hope they choose widely. (wisely?)
Jesse, thanks for writing the commentary. Another tool, to remind us all that love open source, to be vigilent for freedom sake. Have a great week, to all. 🙂
BH, you are right, those were typos on my part. I am updating the post with the proper spelling. Thanks for pointing those out.
I highly appreciate that you shared the link to that post on systemd at the Distrowatch Weekly comments section. This is the very first post and comment on systemd I really aim at sharing on all possible platforms and ways.
The main point about systemd is that you cannot without it anymore even today. udev got merged into systemd, so even if you use SysV or Upstart or openRC, you end up at least with installing systemd-udev for hotplugging etc. of devices.
systemd’s behaviour is much like a virus taking over more and more parts of the operating system we used to love. I hope a lot that people start forking (or maybe even have already and I am not aware of) udev and maintain an systemd-independent option. And hopefully the Debian leadership is wise enough to decide for making the init system an additional step of choice within the installation process.
Very interesting take on the systemd debate. I join Pierre in thanking you for linking to this page in DW comments.
However I feel it is misleading to compare such a fundamental piece in an OS architecture as the init system, and the more higher level (and subsidiary) parts that are desktop environments/toolkits, editors and compilers. They are essentially dissimilar parts of an OS divided along a structural/non-structural distinction, and treating them as a whole prevaricate the reasoning.
Indeed, none of the latter softwares are strictly *required* to have a working OS (I’ll take Arch, LFS or Gentoo as examples), while on the other hand none can do without an init system. The license is another different topic: it isn’t an “OS architecture-critical” question as such but a legal one, and is subjected to a wholly different treatment. That’s why init system shouldn’t be thought in the same way as those other considerations.
Init is closer to kernel choice, being another OS-critical aspect; and in this regards freedom of alternatives has never been such a feat among distributions, has it?
You mentioned the Debian BSD kernel ports to illustrate Debian’s policy of offering choice, but no further than one month ago DW reported on Debian’s threat to drop kFreeBSD port “due to concerns over its viability and quality” . It seems projects offering alternative kernels are neither numerous (Gentoo is the only other cited), nor met with high popularity. This shows how OS-critical parts such as kernel and init softwares are to be thought of differently than other bits.
The distinction between fundamental and non-fundamental parts is very important to take into account as it pertains to what I believe is the core activity of distributions: the *integration* of various software pieces to make a fully working operating system.
You mention package formats and the ability to use tools to convert between them; however you don’t challenge the fact every distro mostly offers one way to deal with package management (it is impossible to use dpkg/apt on Fedora, pacman in openSUSE…). This is because package managers are such a fundamental part of system integration: you cannot offer to choose between them all because it would have drastic repercussions on the whole project infrastructure and imply a massive overhead in packaging-related tasks. I believe it is the same with init, which requires many essential parts to be changed in subtle ways, and as such I don’t find abnormal distributions force one onto their users rather than offering to choose which one to use.
Gentoo seems to offer init systems choice, and probably some forks will appear maintaing alternatives. However, like for other core architecture choices, I believe there will be more incentives for projects to join the movement than to strive on a few niche alternatives, although those should and probably will always exist.
I wonder whether people will argue so much about the likely “forced” switch to Wayland a few years down the road: I don’t see a lot of distro maintaining their Xorg implementation when Wayland will have happened, apart from those taking after Ubuntu’s Mir; however it doesn’t seem to upset much of the FLOSS community, and it is rather the fact Canonical went ahead with its fork which was criticized. A bit of a double standard isn’t it? Am I wrong thinking the systemd case has more to do with mass psychology, and a perceived antagony for systemd developpers’ personalities?
Anyway, thanks for reading this long comment, and let’s try to keep our head clear when thinking of different topics 🙂
neitsab, init may be a lower level, fundamental, component, but that does not make it any different from a compiler or other packages on a Linux distribution. That’s just how Linu distros are made. Case in point, Debian currently allows users to switch between using SysV, Upstart and systemd with just two apt-get command lines. At the moment it is trivially easy to switch between very different init systems.
The vote Debian is about to take will decide whether to continue to allow users to exercise their freedom of choice or do away with it. Since the various technologies are already working, there is no reason for the developers to remove that choice. Debian, in its current form, proves it is easy to maintain choice with regards to init technology. If they vote to remove that choice it will be for political, not technical reasons.
By the way, why are you trying to make the debate over systemd seem like a personal issue with the systemd developers? This discussion is not about who is making systemd, it’s about FOSS philosophy and freedom of choice. Please do not attempt to derail the conversation by claiming technical and philosophical issues with systemd have anything to do with the developers behind the software.
I’d also like to point out Debian/KFreeBSD is very much alive. Whether it continues to be an official supported port of Debian or not, the project itself is healthy and continues to be developed. If Debian can give us multiple choices with kernels it will be much easier to give us choice with regards to init.
First off, I’m a Slackware user and I work as a sysadmin, maintaining servers mostly with CentOS 5/6/7 but also some Debian and Ubuntus, so I have experience with different init systems. I like some of what systemd provides but I’m not entirely sold on it.
I think neitsab has a point, in that not many distros actually provide choice abou init systems, and I at least heard zero complains when Ubuntu, Debian and CentOS adopted upstart, so I guess the issue here is not the init system aspect of systemd per se, but the wide scope it’s trying to gain (a.k.a “creeping featurism”, look it up in the jargon file).
On the other hand, my systemd servers still run rsyslog, cron and ntp just fine , i.e. you don’t *have* to use all of the systemd tools and only those, so we still have some choice there.
I also believe that much of the backslash aginst systemd *does* have to do with it’s developers (mostly their “we know better” and “we don’t care” attitude), and that’s what I believe neitsab was pointing, not that your article tried to carry the debate through that avenue (which I think it didn’t).
My biggest fear is that other non-core software is starting to depend on systemd and it’s “my way or the highway”, they don’t want to support alternatives, which is understandable if you consider the burden to maintain support for forcefully deprecated software but still let’s me wondering what will Slackware do if KDE’s Plasma (to give a random example of an unrelated piece of software that I deeply care for) starts requiring some bits from systemd?
I mention this beacuse some Slackers seem to hate systemd with a passion 🙂 but that’s also true in other communities.
Heck, what will happen to the desktop support on the BSDs or Open Solaris? They’re completely left out of the systemd party.
Fortunately some brave souls are working on implementing (some of) the required bits to “emulate” systemd so there’s hope that in the end systmems won’t be the one init to rule them all.
Also, if a there’s one project that can pull of the inmense feature that is to maintain and support several init systems, that’s Debian. The manpower behind Debian is simply amazing.
Ad it’l also benefit their other “architectures” like kFreeBSD, GNU/Hurd and also projects like Nexenta (Illumos + Debian userland) which I think would be a big win.
Wow, what an overly long post I wrote, sorry! 🙂
Ricardo, you raise a lot of good points. A lot of good questions. Most of them I can’t answer with any degree of certainty, but I can answer the question about BSDs and what they will do on the desktop if systemd becomes a part of KDE (and other open source desktops). The PC-BSD project launched Lumina just to cover this possibility. Lumina runs on FreeBSD, PC-BSD, Debian, Ubuntu, OpenBSD and Debian’s kFreeBSD port. It’s still in the beta stage, but rapidly becoming a usable, truly cross-platform desktop interface. I believe if many open source desktops become Linux/systemd only affairs, Lumina will become a sort of “universal” desktop for Linux/BSD/Solaris.
Perhaps we should refer to the 69-plus-daemon system-API complex with a clearly distinct term, to prevent confusion with a single (init) daemon? (systemHAL?)
Just a thought …
Well said. Covers many of the concerns that many of us have, in a clear concise way.
As to Somewhat Reticent’s comment – I’ve started to see systemd referred to as virusd 🙂
I posted a rant to the debian-vote list just under the wire as voting will close shortly. Regarding Linux and choice, this was the condescending response I received from an arrogant DD. I figured he might be a Gnome dev and my post hurt his feelings. LOL!!
So now you know (from the horse’s ass) that Linux is NOT about choice.
Didn’t know whether to laugh, cry or break something . . .
It’s a nice rant – but you posted a broken URL – it should be https://lists.debian.org/debian-vote/2014/11/msg00076.html (missed the final l)