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 qualità 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 iniziale
Red Hat ne prevede l’integrazione in Fedora già dalle prime release successive; altre distro maggiori stanno osservando il progetto ma non hanno ancora preso posizione.
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
Le prime valutazioni nei team Linux italiani sono in corso: la promessa di boot parallelo e gestione dipendenze è attraente, ma la comunità è divisa tra entusiasti e tradizionalisti della filosofia UNIX.
Riferimenti: systemd v1 (18 maggio 2010). Lennart Poettering, Kay Sievers, Red Hat. Licenza LGPLv2.1+. Ispirato a launchd (Apple). Unit files dichiarativi. journald logging.