systemd: The Coup Against Unix


In the beginning, Unix had a philosophy: do one thing well.

Small programs. Text streams. Composability. Each tool focused, auditable, replaceable.

Then Lennart Poettering arrived.

The Coup:

In 2010, Poettering announced systemd — a replacement for the traditional SysV init system. The stated goal: faster boot times, better dependency management, modern service supervision.

The actual result: PID 1 absorbed the operating system.

Before systemdAfter systemd
init starts servicessystemd starts services
syslog handles logsjournald handles logs (binary)
cron handles timerssystemd-timerd handles timers
dhclient handles DHCPsystemd-networkd handles DHCP
resolv.conf handles DNSsystemd-resolved handles DNS
udev handles devicessystemd-udevd handles devices
separate concernsone binary to rule them all

PID 1 — the first process, the ancestor of all processes — traditionally did one thing: start services.

Now PID 1 manages your network, resolves your DNS, writes your logs in binary format, schedules your tasks, mounts your filesystems, manages your containers, handles your logins, and controls your device permissions.

This is not an init system. This is an operating system inside your operating system.

The Unix Philosophy, Violated:

flowchart LR
    subgraph UNIX["Unix Philosophy"]
        U1["init"]
        U2["syslog"]
        U3["cron"]
        U4["dhclient"]
        U5["udev"]
    end

    subgraph SYSTEMD["systemd Philosophy"]
        S1["PID 1<br/>THE MONOLITH"]
    end

    U1 --> S1
    U2 --> S1
    U3 --> S1
    U4 --> S1
    U5 --> S1

    style U1 fill:#334155,stroke:#94a3b8
    style U2 fill:#334155,stroke:#94a3b8
    style U3 fill:#334155,stroke:#94a3b8
    style U4 fill:#334155,stroke:#94a3b8
    style U5 fill:#334155,stroke:#94a3b8
    style S1 fill:#7f1d1d,stroke:#dc2626,stroke-width:3px

The text log format survived 40 years of Unix history. Human readable. Grep-able. Parseable by any tool in any language.

journald replaced it with binary logs. To read your own logs, you must use journalctl. You must trust the binary format. You must hope corruption does not destroy everything.

When a text log corrupts, you lose some lines. When a binary journal corrupts, you may lose everything.

The Dependencies:

Try to remove systemd from a modern Linux distribution.

$ apt remove systemd
The following packages will be REMOVED:
  systemd gnome-shell ubuntu-desktop network-manager
  pulseaudio gdm3 cups [... 847 more packages]

This operation will remove your entire desktop.
Do you wish to continue? [y/N]

This is not dependency management. This is hostage-taking.

Poettering’s software is now so deeply embedded that removing it removes the operating system. This was not an accident. This was strategy.

The Adoption:

Distributionsystemd Status
Red Hat/FedoraCreated it. Mandatory.
DebianAdopted 2014 after civil war
UbuntuFollows Debian
ArchAdopted early
GentooOptional (OpenRC alternative)
SlackwareRefused
DevuanDebian fork, specifically to escape systemd
AlpineUses OpenRC. Clean.
All BSDsRefused. Forever.

Debian’s adoption vote in 2014 nearly split the project. Developers resigned. Forks were created. The community fractured.

Poettering’s response to criticism: mass blocking on social media. Bug reports closed as “not a bug.” Architectural concerns dismissed as “haters.”

This is not open source collaboration. This is dictatorship with a GitHub account.

Why Red Hat Pushed It:

Red Hat employs Poettering. Red Hat controls Fedora. Red Hat was acquired by IBM for $34 billion.

IBM sells enterprise support contracts. Complex systems require more support. systemd is complex.

Cui bono? Who benefits?

When your init system requires a team of specialists to debug, you purchase support contracts. When text logs become binary journals, you need commercial tools to analyze them.

systemd did not emerge from community need. It emerged from corporate strategy.

What systemd Absorbs Next:

The project continues expanding:

  • systemd-homed: User home directory management
  • systemd-oomd: Out-of-memory killer
  • systemd-boot: Bootloader
  • systemd-cryptenroll: Disk encryption management
  • systemd-sysext: System extensions
  • systemd-measure: TPM measurements

At this rate, systemd will eventually replace the kernel. Lennart will not stop until PID 1 is the only process and Linux is merely a driver for systemd.

The BSD Refuge:

FreeBSD has rc.d — shell scripts, text configuration, Unix philosophy preserved.

OpenBSD has rc — even simpler, even cleaner.

NetBSD has rc.d — portable across all supported architectures.

None of them have systemd. None of them will adopt systemd.

# FreeBSD service management
service nginx start
service nginx stop
sysrc nginx_enable="YES"

# OpenBSD service management
rcctl start nginx
rcctl enable nginx

# Human readable. Text based. No binary journals.

When Linux distributions debated systemd adoption, the BSDs watched from across the river. They saw the fire. They did not cross.

The Devuan Resistance:

In 2014, a group of Debian developers refused the coup. They forked Debian and removed systemd entirely. They called it Devuan.

Devuan proves systemd is not necessary. Every package that “requires” systemd was patched to work without it. The hostages were freed.

Devuan still ships. Devuan still updates. Devuan demonstrates that the “dependencies” were artificial lock-in, not technical necessity.

The Lesson:

Poettering built a monolith and called it “modern.” Distributions adopted it and called it “progress.” Critics were blocked and called “toxic.”

But the BSDs refused. Slackware refused. Alpine refused. Devuan forked and refused.

You have a choice:

  1. Accept systemd — Join the monolith. Learn journalctl. Trust the binary logs. Hope PID 1 does not crash and take everything with it.

  2. Use BSD — rc scripts. Text logs. Unix philosophy. Programs that do one thing well.

  3. Use Devuan/Alpine — Linux without the coup. Proof that escape is possible.

I run FreeBSD. My init is shell scripts. My logs are text files. My PID 1 starts services and nothing else.

Poettering cannot reach me here.

The Final Irony:

Lennart Poettering now works on improving boot security and system integrity.

The man who made PID 1 into a monolithic attack surface now concerns himself with security.

This is like an arsonist becoming a fire safety inspector.

The BSDs remain standing. The BSDs remain simple. The BSDs remain Unix.

Come home to BSD. We have text logs.

— Kim Jong Rails, Supreme Leader of the Republic of Derails