systemd v1: controversial but dominant Linux init system

systemd v1 (May 2010) by Lennart Poettering and Kay Sievers (Red Hat): parallel init system, socket activation, declarative unit files, unified service management. Adopted as default by Fedora, Debian, Ubuntu, RHEL.

Open Source systemdLennart PoetteringRed HatLinuxInitOpen Source

Replacing SysV init

SysV init (1983) — with sequential shell scripts in /etc/init.d/ and runlevels 0-6 — was the Linux standard for decades. It showed limits, however: slow sequential boot, primitive dependency management, no parallelism, highly variable script quality.

systemd, started by Lennart Poettering and Kay Sievers at Red Hat, was presented on 30 April 2010, with version 1 released on 18 May 2010. Inspiration: Apple macOS launchd. Licence LGPLv2.1+.

Features

  • Parallelism — units started in parallel respecting dependencies
  • Socket activation — daemons start only when needed
  • D-Bus activation — integration with Linux desktops
  • Cgroup integration — per-service process isolation
  • Declarative unit files (*.service, *.socket, *.mount, *.timer, *.target) replace shell scripts
  • journald — binary structured logging
  • systemctl — unified CLI for service management

Example unit file:

[Unit]
Description=My Web App
After=network.target postgresql.service

[Service]
Type=simple
User=webapp
ExecStart=/opt/webapp/server
Restart=on-failure

[Install]
WantedBy=multi-user.target

Adoption

Adoption as default:

  • Fedora 15 (May 2011) — first major distro
  • openSUSE 12.3 (2013)
  • Arch Linux (2012)
  • RHEL 7 (June 2014) — enterprise
  • Debian 8 “Jessie” (April 2015) — after heated debate
  • Ubuntu 15.04 (April 2015) — switch from Upstart

Controversies

systemd is one of the most controversial technologies in recent Linux history:

  • Scope creep — criticism that it includes too many features (journald, resolved, networkd, timesyncd, etc.) beyond pure init
  • Complexity — thousands of lines of C vs. simple shell scripts
  • UNIX philosophy — “do one thing well” violated according to detractors
  • Lock-in — deep dependency hard to uninstall
  • Security concerns — wide attack surface
  • Red Hat governance — some see vendor dominance

Forks and alternatives: Devuan (Debian without systemd), Artix Linux (Arch without systemd), sinit, runit, OpenRC (Gentoo). Alpine Linux does not use systemd.

In the Italian context

systemd is ubiquitously present on Italian Linux servers from 2015-2016 onward. The transition was handled by Italian sysadmins with varying degrees of enthusiasm, but today it is taken for granted.


References: systemd v1 (18 May 2010). Lennart Poettering, Kay Sievers, Red Hat. Licence LGPLv2.1+. Inspired by launchd (Apple). Declarative unit files. journald logging. Adoption as default in Fedora 15, RHEL 7, Debian 8, Ubuntu 15.04.

Need support? Under attack? Service Status
Need support? Under attack? Service Status