One daemon to rule them all: systemd, a corporate putsch in the Linux ecosystem

Linux is a kernel. It started to be developed in 1991 by Linus Torvalds. The kernel is the core of an operating system, the one that interacts directly with the hardware. You cannot do much just with a kernel, unless you are a hacker, but it is, so to speak, the most essential part of the system.

The Linux kernel is free software and therefore it is also open source software. It is developed by a team of thousands of volunteers, even if many are in the payroll of various corporations. The leader of the development team is still Linus Torvalds. Torvalds, sometimes referred to as a “benevolent dictator”, has a well deserved reputation for being a harsh fellow. However, his leadership is based upon meritocracy. For decades he has demonstrated that the project led by him is a solid, no-nonsense,  piece of software.

Many operating systems use the Linux kernel. Operating systems using the Linux kernel, often referred to as “distributions”, were up to now employed by a minority of users as compared to so called proprietary, non-free, systems. Already a long time ago, Linux first achieved the hegemony in the server market. In recent years, however, the Linux kernel became the most frequently used kernel in the world thanks to the popularity of Android, an operating system developed by Google and used primarily in mobile devices.

Politics in the free software landscape has always been a complex matter. Clashes abound in its short history and the power balance between the most influential independent developers, the corporations and the rest of the community is a precarious, fragile and always evolving construct. One that is about to change, dramatically, in favour of the corporations. And it is not a coincidence that this is happening right now, when the commercial implications of the Linux kernel have become huge and are expected to grow exponentially in the forthcoming years.

23563MIndeed, a strategy has been devised in order to seize control of the Linux kernel. At the core of this strategy lays a daemon of daemons called systemd.

Initially, systemd was presented as a replacement for the venerable SysVinit offering faster boot times and a number of other improvements. It was early adopted by a number of distributions that served as beta testers. Later, it was incorporated in major distributions either developed or sponsored by the very same corporations which pay the salaries of the main systemd developers. More or less at the same time as this was happening, we also learned that systemd really aimed at being a centralised daemon that would manage every aspect related to system administration, from security policies to network connection or package management.

Per se, this is not necessarily a bad thing for it will simplify things for third party developers and packagers. For instance, a company willing to develop drivers for Linux, instead of producing one installer package for each of the majors distributions, might be able to develop a single systemd-dependent installer that will work in all distros.

However, as a mere init system, systemd already found some opposition from system administrators who preferred human-readable init scripts as opposed to a poorly-documented, highly-obfuscated, ever-evolving and ever-growing binary blob. Soon, others pointed out that such large black-box was a perfect place for back-doors to be hidden…

In addition, the distribution that together with its many derivatives, holds most of the desktop market for Linux, was up to now reluctant to adopt systemd. The declared reason being that they had developed their own init system, upstart. However, it is quite unlikely that Canonical failed to notice the privileged power position that systemd would provided to the other Linux-based corporations should systemd be adopted by all major distros.

As a unified system management interface, an increasing number of other user-land tools, from network managers to entire desktop environments, are now dependent on systemd. But, of course, this is a quite logical development: if you have a single administrative interface that is used by several major operating systems, why not to profit from that unified tool?

This was doubtless an important argument for Debian to adopt systemd as default “init system”. Financially weak, Canonical could not afford not following his parent distribution into adopting systemd, as will the many Ubuntu siblings.

As a consequence, in a few years, every major Linux distro will have two essential components: the Linux kernel and systemd, the universal administrative layer providing inter-distribution compatibility. No Linux-based operating system aiming at being widely used will be able to without systemd. Even those more reluctant, such as Gentoo and Slackware (which, not by coincidence, are the ones that remain more UNIX-like) will be forced to either adopt systemd or to provide some kind of compatibility layer (even if only to be able to install most drivers).

At that stage the power balance in the Linux ecosystem will be significantly keeled in favour of the corporations that lay behind systemd. This will give them more influence than ever and will possibly put them in a position as to impose their interests and agendas without much restriction.

They will doubtlessly try to direct the kernel development policies with the excuse of improving systemd integration and compatibility. I wonder what Torvalds will do at that point… Will he bend the knee in order to preserve some limited control over his creature or will he fight with his usual stubbornness? In the later case, would the corporations dare to fork the kernel and impose the new one upon the distributions that had adopted systemd? Hard to tell, but what it is clear is that the forthcoming months and years are going to be extremely interesting for the development of Linux, namely from the political point of view. The trojan horse is already inside of the fortress, let’s see how the different armies react to the threat.