Poettering Uber Alles

The wisdom of Dear Leader Lennart Poettering:

The design of systemd as a suite of integrated tools that each have their individual purposes but when used together are more than just the sum of the parts, that’s pretty much at the core of UNIX philosophy.

I would say that he misunderstands the essence, the substance and possibly even the purpose of the UNIX philosophy… but I think he actually does understand. I think he’s simply being disingenuous, twisting the definition to meet his desires. It’s clear that this is a man who believes that he knows what’s good and what’s not.

This blog post from last September [0pointer.net] lays out in perfect clarity how dismissive he is of contrary points of view:

The toolbox approach of classic Linux distributions is fantastic for people who want to put together their individual system, nicely adjusted to exactly what they need. However, this is not really how many of today’s Linux systems are built, installed or updated. If you build any kind of embedded device, a server system, or even user systems, you frequently do your work based on complete system images, that are linearly versioned. You build these images somewhere, and then you replicate them atomically to a larger number of systems. On these systems, you don’t install or remove packages, you get a defined set of files, and besides installing or updating the system there are no ways how to change the set of tools you get.

[Emphasis mine]

So the toolkit approach is not useful for someone who’s deploying large numbers of commodity servers? This defies logic. It implies that somehow it’s better to use commodity servers built using Lennart’s toolkit than to have the capability to define one’s own toolkit to build your own purpose-built standard image.

He’s ignoring logic here in order to serve his own agenda, which of course consists of being smarter and sleeker and better than some crufty old Linux with 20 years of barnacles on its hull.

Init on Linux emphatically is ugly, but it’s the product of a very large number of people coping with a very large set of circumstances, and finding a solution that is decidedly imperfect, but can be made to address most of the hundreds of thousands of peculiar and unique use cases in the world today.

Quoth Poettering:

The Linux model is the one where you have everything split up, and have different maintainers, different coding styles, different release cycles, different maintenance statuses. Much of the Linux userspace used to be pretty badly maintained, if at all. You had completely different styles, the commands worked differently – in the most superficial level, some used -h for help, and others ––help. It’s not uniform.

This really is the essence of it. When you get right down to it, he’s just pissed at having to deal with other people’s half-assed implementations of everything, and having to make all the bits work to a purpose. It’s just too… democratic. I suspect he feels the same way George W. Bush did when he famously quipped that if he really were a dictator, he’d get a lot more done.

And that’s really the essence of the problem. No matter how good systemd turns out to be, it’s effectively less than a dozen core committers (the top 10 committers have submitted over 90% of the code) dictating how your modular system is going to run. They want a single group (themselves) and a single philosophy (theirs) to occupy pretty much the entire space between the kernel and userland. And that is not the Linux way of doing things.