Fork it

Have you been paying attention to the rise-and-rise of systemd? First it came for Fedora, and I said nothing, because I didn’t use Fedora (or if I did, I didn’t use it long enough. I’ve swapped OSes about 14 times in the three years since systemd first appeared!). Then it came for Ubuntu (which I’ve never used, so I wouldn’t have said anything about it then, either). And this year it came for Red Hat 7 (and CentOS 7), rendering all my automation scripts useless at a stroke, and I did have a few things to say about it which weren’t terribly complimentary.

Debian also signed up to be absorbed by the systemd borg earlier this year, and last month a bunch of Debian developers decided to fork Debian in response. Whether their proposed “devuan” distro ever makes it beyond concept stage is going to be interesting to watch, but even if it doesn’t, it shows that there’s something of a civil war about systemd. A lot of people (including me, for whatever that’s worth) don’t like it.

Why? Because it started out as a way of initializing Linux (replacing ye ancient System V init, with its myriad shell scripts), but has rapidly morphed into a suite of 69 closely-coupled binaries that do everything from handling logins to detecting new hardware as it’s plugged in and assigning names dynamically to network devices which vary depending on your hardware vendor. It does all its work through variously cryptic or obscure commands and logs its efforts in binary logs (so no awking or grepping them for you!) The lead developers tend to think any bugs discovered are problems in other people’s code, not theirs; which has earned them an expletive-laden dressing down from Linus Torvalds himself in the past.

For many, the big issue with systemd is that it wraps so much functionality into itself, it’s morphing into an operating system all on its own that just happens to use Linux as its kernel. The old days of plugging together components from many disparate sources and wrapping them all up as a distro are passing in the pursuit of ‘coherence’ and consistency. This has immediate impacts on other operating systems out there: the systemd developers have explicitly declared they are not going to make systemd portable to OSes like the BSDs, for example. Since Gnome has made systemd an external dependency, too, this makes the desktop environment situation on the BSDs and other non-systemd OSes more problematic than it should be.

The analogy I use is Solaris, where to change IP address you used to edit /etc/hosts, various files in /etc/inet and a dollop of ifconfig to be going on with …and now everything is done by calling ipadm which does all the text file editing for you in the background. It’s a slicker interface for sure, but I’m not so sure it makes for a nicer experience of Unix, for you feel as if you’ve lost control (and understanding of what’s doing what and why).

The another analogy to use is Windows: by wrapping every core piece of functionality into opaque executables that output obscure binaries and with massive inter-dependencies, the systemd guys have essentially re-invented svchost and the Microsoft approach to system management!

I suspect Linux will get slicker and more consistent to manage as systemd takes over, but it won’t be the Linux of yore -which, of course, makes me an old fuddy-duddy who’s resistant to change. But I’m not convinced this particular sweeping change is required -and it’s being handled by a bunch of developers who haven’t inspired much confidence in the sort of people who you ought to be able to inspire confidence in if you’re going to attempt such profound changes to an OS.

It’s made me rethink my choice of operating systems again, anyway: I shall definitely be sticking with Debian on my file servers, but I shan’t be upgrading to Jessie when it’s released in a month or two’s time. On my desktop, I don’t know: currently (and since August) it’s Linux Mint Debian Edition, but LMDE is due to switch to using Jessie sources once they are stable, and at that point, systemd comes to a PC near me unless I take avoidance action. Weirdly, there’s not lot of choice: with most of the mainstream distros succumbing to systemd, it’s looking more and more as if Windows 8.1 (and eventually 10) will be making an appearance on my hard disk once more. Or maybe I’ll have to buy a Mac, if ToH permits (which is unlikely!)

Watch the systemd space, anyway: there are revolutionary times ahead, and a lot of them won’t be pleasant, I think.