Linux for older phones postmarketOS changes its init system

Good news, everyone! The world's favorite daemon, systemd, is coming to phones.

The team behind the leading replacement OS for end-of-life smartphones are to adopt systemd – to make working with GNOME and KDE easier.

The official postmarketOS blog announced that systemd is coming to postmarketOS. There are solid technical reasons. The announcement explains:

One of the main blockers we found as we collaborate more closely with KDE and GNOME developers is that they have a hard time with our OpenRC-based stack. In order to get KDE and GNOME working at all, we use a lot of systemd polyfills on top of OpenRC.

The Reg asked the project's own Oliver Smith about the reasons for the move. He told us:

KDE and GNOME stacks power three of the four most-used phone UIs that we have in postmarketOS: Plasma Mobile, GNOME Mobile, and Phosh. Our goal is to have postmarketOS become usable by regular folks, who are currently using iOS and Android. So if we don't support KDE and GNOME anymore, then we have no chance of making a system that works for the casual user.

On the other hand, by supporting systemd, we reduce the friction and problems that KDE and GNOME developers face currently, they build their UIs to work with systemd and so we can run them as they intended to. The APIs provided by systemd are actually needed to run a modern smartphone UI on Linux: there isn't really an alternative out there.

Alpine Linux contributor Ariadne Conill enlarged upon this point on her Fediverse instance:

In alpine, we have promised to build something better than openrc for years, but it still isn't here. [It] is basically on life support anyway, and the maintainers primarily focus on Gentoo use-cases.

[…]

I've looked at all of the options outside systemd, and frankly openrc is the one with the most maturity. The landscape is bleak.

The discussion is worth a read, and reinforces our impression that many of the Linux projects seeking to avoid systemd do so by retaining simpler, 20th-century style init systems, often driven by lots of interlinked shell scripts. This works, but it's not adequate for modern requirements – nor easy to maintain.

Another demonstration is that what's left of the commercial Unix world moved away from script-based init systems nearly 20 years ago: Solaris 10 switched to smf in 2005, the same year that Apple released Mac OS X 10.4 "Tiger" with launchd. This is one reason that we are watching the progress of the GNU-free Chimera Linux project with considerable interest.

We talked about postmarketOS back in 2022. The basic idea is to bring older smartphones back to life, after they're no longer supported with updates from their manufacturers, by running a standard Linux OS on them. On the face of it, this is a good idea.

PostmarketOS itself is based on Alpine Linux, which we looked at in 2022, and came away impressed. Alpine Linux avoids two elements used by most more mainstream Linux distros: it doesn't use the standard GNU libc, replacing it with the smaller, lighter musl libc. For some, that's a problem, because for years, musl only supported DNS over UDP: it didn't support DNS over TCP, which broke some applications. However, that issue was fixed last year, as we explained when looking at Alpine 3.18.

Alpine also features on nosystemd.org because it doesn't use Agent P's universally-loved system management daemon; instead, as Conill mentions, it uses OpenRC. As such, we particularly enjoyed this question in the postmarketOS announcement:

Is Alpine cool with this?

We have shared this blog post with the Alpine devs before this publication, and we hope that they understand our reasoning.

Perhaps it is just us, but that does not strike us as a resounding "yes," and we don't foresee Alpine changing similarly any time soon. ®

Bootnote

For context, we thought that this assessment, systemd through the eyes of a musl distribution maintainer, offers interesting perspective. The author is one of the core maintainers of Adélie Linux, a separate distribution from Alpine, although it uses some of the same components: musl libc, OpenRC, and the APK packaging tool.

More about

TIP US OFF

Send us news


Other stories you might like