Time to ditch Systemd
The whole systemd debate has been kind of absurd from the start. But, from the outside, what looked like a classic nerd war (a la emacs vs. vim, spaces vs. tabs) now sits at the center of a new effort to enforce control onto, in my opinion, all linux computers that access the internet (so all of them).
Not everyone would agree with that take. That’s fine, like I said, the debate has been absurd and toxic. I don’t actually care what you think, this post is to share where I currently am at with it and the changes I plan to implement.
Although there were a lot of “junk” arguments against systemd, the key argument against systemd that I heard echoed over and over again (and literally never refuted beyond “well we have to to do what we want”) basically boiled down to people not liking how centralized it was. This wasn’t the Unix way. The discussion about security and privacy was definitely referenced many many many times and people were accused of being conspiracy theorists for feeling uncomfortable with a single process owning so much of the core platform services of all key major linux distributions.
I am “well-versed” in linux at this point, but I am not an OS developer so I stayed out of the conversation but tried to understand the politics on both sides and also at least some of the technical details surrounding systemd (what is an init system? what problem was systemd solving? why did they think it was critical? why were the major distros picking this new thing up so quickly? Why is everyone so angry?)
I’ve watched over the last years as systemd has systematically consumed more and more core OS services (networking, DNS, logging, users, notifications, bootloaders, etc.), as many very observantly warned that they would. There’s always a pretty “mid” technical reason why systemd should also own [insert new system here], but then it gets merged and people move on and distros start using it because it’s there.
Systemd’s enthusiasm for implementing new age-verification laws, in my opinion, is exactly what all those “conspiracy theorists” were yelling about. I’m not attributing malice or anything, but at this point, systemd’s goals are no longer aligned with what I consider to be safe, private computing. I’ve seen some disappointing arguments looking a lot like the toxic conversations of yore. But a lot of them are “well we’ve gotta support the businesses”. Oh yeah? What happened to people?? To users??
The weakest take I’ve seen are “we’re just providing interfaces, you don’t have
to use them”. Boiled any frogs lately? Last week I actually started exploring
building operating systems. Nothing fancy, just basically shimming in my own
init process built using Go’s system primitives to get things up and running.
init sees all. It has to to perform its job. If an interface exists,
someone, something will figure out how to call it and when it does, how
confident are you about the information it contains? I am uncomfortable with
the very interface existing at the OS level to query my personal information
from my computer.
The “choice” to solve this at the OS is IMO, illegal. Let’s start there; that should be enough. However, in addition to the legality, it is fundamentally incorrect from a technical perspective, and deeply dangerous to the privacy of citizens of the US. From what I’ve read, social media fought for these laws so that they didn’t have to take responsibility for age verification. Isn’t it also weird that it’s the same folks actively building surveillance infrastructure around the country and doing major corporate capture of our government?
That systemd proactively started complying with laws that they should probably be actively opposed to, just shows me that their politics are misaligned with mine going forward. Same for Windows and Apple, but I already treat those devices as basically “papers please” machines. In hindsight, systemd looks like a terribly obvious effort to do corporate captures of the major linux distros.
If you can shim your code in at the /init level, then you own the user’s system.
Full stop. If you’re shimming in a bunch of interfaces I didn’t ask for that
are specifically design to record, share, and eventually verify data I do not
want to provide, then you can get bent. If you wish to call folks who share
this attitude “conspiracy theorists,” then so be it. I challenge you to really
think about the technical reality of ceding your init system to organizations
comfortable supporting, enabling, “just building the interfaces for” actively
dangerous legislation.
I’ve been enjoying NixOS lately on several systems. Their very disappointing Discourse conversation on the topic emphasized that NixOS is deeply integrated with systemd and although some folks have looked into replacing it, NixOS is unlikely to do so and switching init systems is not generally possible. But, more interestingly, I saw a number of people discussing how to best comply. At this point, life is too short to bother. If you can’t call out government surveillance technology for what it is, then I’m out. I kind of feel for companies like System76 (based in CO, probably selling most of their computers to people in CA, tough), but also I think shutting down, relocating operations, civil disobedience, malicious compliance, etc. are all options. These are all just hard choices and we all will probably be faced with a point where it feels like “too far.” I’m hitting it for myself and gonna start working to change something.
I’m gonna go try and find (build?) my next thing.
- ParrotOS’s take.
- EndeavourOS’s funnier (“we don’t even track ISO downloads much less…”), but I worry not viable, take
2026-04-23