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.
