systemd v1: init system controverso ma dominante su Linux

systemd v1 (maggio 2010) di Lennart Poettering e Kay Sievers (Red Hat): init system parallelo, socket activation, unit files dichiarativi, service management unificato. Adottato come default da Fedora, Debian, Ubuntu, RHEL.

Open Source systemdLennart PoetteringRed HatLinuxInitOpen Source

Sostituire SysV init

Il SysV init (1983) — con script shell sequenziali in /etc/init.d/ e runlevel 0-6 — è stato per decenni lo standard Linux. Mostra però limiti: avvio sequenziale lento, gestione dipendenze primitiva, no parallelismo, script di quality molto variabile.

systemd, avviato da Lennart Poettering e Kay Sievers presso Red Hat, presentato il 30 aprile 2010 e versione 1 rilasciata il 18 maggio 2010. Ispirazione: launchd di Apple macOS. Licenza LGPLv2.1+.

Caratteristiche

  • Parallelismo — unit avviate in parallelo rispettando dipendenze
  • Socket activation — demoni partono solo quando necessario
  • D-Bus activation — integrazione con desktop Linux
  • Cgroup integration — isolamento di processi per servizio
  • Unit files dichiarativi (*.service, *.socket, *.mount, *.timer, *.target) sostituiscono shell scripts
  • journald — logging binario strutturato
  • systemctl — CLI unificata per service management

Esempio 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

Adozione

Adozione come default:

  • Fedora 15 (maggio 2011) — prima major distro
  • openSUSE 12.3 (2013)
  • Arch Linux (2012)
  • RHEL 7 (giugno 2014) — enterprise
  • Debian 8 “Jessie” (aprile 2015) — dopo dibattito acceso
  • Ubuntu 15.04 (aprile 2015) — switch da Upstart

Controversie

systemd è una delle tecnologie più controverse della storia Linux recente:

  • Scope creep — critica che includa troppe funzionalità (journald, resolved, networkd, timesyncd, ecc.) oltre l’init puro
  • Complessità — migliaia di righe C vs. shell scripts semplici
  • Filosofia UNIX — “do one thing well” violata secondo detrattori
  • Lock-in — dipendenza profonda difficile da disinstallare
  • Security concerns — superficie di attacco ampia
  • Governance Red Hat — alcuni vedono dominanza di un vendor

Forks e alternative: Devuan (Debian senza systemd), Artix Linux (Arch senza systemd), sinit, runit, OpenRC (Gentoo). Alpine Linux non usa systemd.

Nel contesto italiano

Systemd è ubiquitariamente presente su server Linux italiani dal 2015-2016 in avanti. La transizione è stata gestita da sysadmin italiani con vari livelli di entusiasmo, ma oggi è dato per scontato.


Riferimenti: systemd v1 (18 maggio 2010). Lennart Poettering, Kay Sievers, Red Hat. Licenza LGPLv2.1+. Ispirato a launchd (Apple). Unit files dichiarativi. journald logging. Adozione come default in Fedora 15, RHEL 7, Debian 8, Ubuntu 15.04.

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi