Version 256 of systemd boasts '42% less Unix philosophy'

And it's subsuming another bit of Linux by replacing sudo

The latest version of the systemd init system is out, with the openly confrontational tag line: "Available soon in your nearest distro, now with 42 percent less Unix philosophy."

As Lennart Poettering's announcement points out, this is the first version of systemd whose version number is a nine-bit value.

Penguins surround laptop. Pic by Shutterstock

Systemd 255 is here with improved UKI support


Version 256, as usual, brings in a broad assortment of new features, but also turns off some older features that are now considered deprecated. For instance, it won't run under cgroups version 1 unless forced.

Around since 2008, cgroups is a Linux kernel containerization mechanism originally donated by Google, as The Reg noted a decade ago. Cgroups v2 was merged in 2016 so this isn't a radical change. System V service scripts are now deprecated too, as is the SystemdOptions EFI variable.

Additionally, there are some new commands and options. Some are relatively minor, such as the new systemd-vpick binary, which can automatically select the latest member of versioned directories. Before any OpenVMS admirers get excited, no, Linux does not now support versions on files or directories. Instead, this is a fresh option that uses a formalized versioning system involving:

… paths whose trailing components have the .v/ suffix, pointing to a directory.

These components will then automatically look for suitable files inside the directory, do a version comparison and open the newest file found (by version).

The latest function, which The Reg FOSS desk suspects will ruffle some feathers, is a whole new command, run0, which effectively replaces the sudo command as used in Apple's macOS and in Ubuntu ever since the first release.

Agent P introduced the new command in a Mastodon thread. He says that the key benefit is that run0 doesn't need setuid, a basic POSIX function, which, to quote its Linux manual page, "sets the effective user ID of the calling process." In other words, sudo does some black magic to make the OS treat a command run by an ordinary, unprivileged user – that's you, peon – as if the superuser, "root," ran that command instead. It's a very old command, dating back to 1980, but it only went mainstream early this century. It was soon so accepted that even by 2006, it was the subject of comics.

Mr Poettering regards this hocus-pocus as a Bad Thing:

In my ideal world, we'd have an OS entirely without SUID. Let's throw out the concept of SUID on the dump of UNIX' bad ideas.

The new alternative does no such sleight of hand. Instead, it just gets the systemd daemon to run the command for you, using a special form of the existing systemd-run command.

Another new command is importctl, which handles importing and exporting both block-level and file-system-level disk images. And there's a new type of system service called a capsule, and "a small new service manager" called systemd-ssh-generator, which lets VMs and containers accept SSH connections so long as systemd can find the sshd binary – even if no networking is available.

We suspect that, as usual, many old xNix hands will grumble that this sort of functionality doesn't belong in an init system. This is arguably true, but the rise of systemd now seems inexorable. A clear majority of distros now use it, and new converts are still appearing. There are still some holdouts, and FreeBSD is right there as a safe space.

The release notes contain a full list of changes, and the project lead has a list of threads describing the new functionality and the reasoning behind it. ®

More about


Send us news

Other stories you might like