Pocs components de programari han generat tanta passió i tanta ràbia com systemd. Per a uns és la peça que finalment va modernitzar l’arrencada de Linux. Per a d’altres, un monstre que es va menjar mitja distribució i va trepitjar la filosofia UNIX pel camí. Si alguna vegada has vist com s’encenia una discussió en un fòrum només d’esmentar aquesta paraula, aquí et conto d’on ve tot aquest soroll, sense prendre partit.
Què és systemd exactament
systemd és alhora un sistema d’init i un gestor de serveis per a Linux. L’init és el primer procés que arrenca el nucli, el famós PID 1, i des d’aquí posa en marxa tota la resta: la xarxa, els discos, els serveis de fons, les sessions d’usuari. Durant dècades aquesta tasca la feia SysV init amb una col·lecció d’scripts de shell que s’executaven en ordre, l’un darrere l’altre.
systemd va canviar aquest model. En comptes d’scripts seqüencials fa servir fitxers de configuració declaratius anomenats unit files, escrits en un format senzill, i arrenca els serveis en paral·lel respectant-ne les dependències. El projecte va sortir de la mà de Lennart Poettering i Kay Sievers, tots dos a Red Hat en aquell moment. Poettering el va presentar l’abril de 2010 amb un article al seu blog titulat “Rethinking PID 1”, on proposava repensar des de zero com hauria d’arrencar un sistema operatiu modern.
Per què es va adoptar tan de pressa
Els avantatges que defensen els seus partidaris són concrets i, en bona part, mesurables:
- Arrencada més ràpida, gràcies a l’inici paral·lel dels serveis i a l’activació per sockets (un servei pot esperar “adormit” fins que alguna cosa el necessita).
- Gestió unificada amb una única ordre,
systemctl, per arrencar, aturar, habilitar o consultar l’estat de qualsevol servei. - Registres centralitzats mitjançant
journald, que recull i estructura els logs del sistema en un sol lloc. - Maneig sòlid de dependències i processos, recolzant-se en els cgroups del nucli per supervisar i contenir el que s’executa.
Aquests punts forts van convèncer primer Fedora, que el 2011 va ser la primera gran distribució a activar systemd per defecte. La van seguir openSUSE i Arch Linux, i el salt definitiu va arribar amb Red Hat Enterprise Linux 7 el juny de 2014, que el va convertir en l’init estàndard del món empresarial. Ubuntu també el va acabar adoptant i va deixar enrere el seu propi sistema Upstart.
El terratrèmol a Debian
El cas de Debian mereix capítol a part, perquè va ser on la polèmica va arribar al punt àlgid. El Comitè Tècnic del projecte va debatre durant mesos, entre 2013 i 2014, quin init havia de ser el predeterminat a Debian 8 “jessie”. Sobre la taula hi havia systemd, Upstart, OpenRC i el veterà sysVinit. El febrer de 2014 el comitè va votar a favor de systemd.
La decisió va ser tan tensa que diversos desenvolupadors de pes, inclosos membres del mateix comitè i el mantenidor del paquet de systemd, van dimitir dels seus càrrecs pel desgast i la pressió d’aquelles discussions. Pocs episodis de la història recent del programari lliure han deixat tantes cicatrius.
Per què genera tant de debat
Si systemd és tan ràpid i còmode, d’on surt el rebuig. Les crítiques no són capritxoses i val la pena entendre-les:
- Trenca la filosofia UNIX. La màxima tradicional, “fes una sola cosa i fes-la bé”, xoca amb un systemd que ha anat absorbint funcions que abans corresponien a programes separats i independents: gestió de logs, de xarxa, de sessions, de DNS, de zona horària…
- És gran i centralitzat. En concentrar tantes responsabilitats en un únic projecte, una part molt important del sistema passa a dependre’n. Això preocupa qui valora la modularitat i la capacitat de substituir peces.
- Acoblament. Molts paquets acaben donant per fet que systemd hi és present, cosa que dificulta viure’n sense encara que un ho vulgui.
Els seus defensors responen que aquesta integració és justament el que aporta coherència i solidesa, i que comparar components interns amb una regla dels anys setanta és discutible. El debat, en el fons, és tan tècnic com filosòfic.
Les alternatives i la resistència
L’adopció no va ser universal, i d’aquella tensió van néixer projectes que ofereixen viure sense systemd. El més simbòlic és Devuan, un fork de Debian anunciat a finals de 2014 i la primera versió estable del qual va arribar el maig de 2017, amb sysVinit, runit o OpenRC com a alternatives. Altres opcions per a qui prefereix un altre camí:
- MX Linux, que permet arrencar amb sysVinit i només fa servir systemd-shim quan cal.
- Void Linux, construïda des de zero al voltant del minimalista runit.
- Gentoo, que manté OpenRC com a opció de primera classe.
- Slackware, fidel durant anys a un esquema d’init clàssic a l’estil BSD.
No hi ha una resposta correcta. systemd va guanyar la batalla de l’adopció majoritària perquè va resoldre problemes reals de gestió de serveis en sistemes moderns i complexos, i avui és l’estàndard de facto. Però la comunitat que defensa la simplicitat, la modularitat i la llibertat d’escollir continua ben viva, i aquesta és una de les grans virtuts del programari lliure: sempre queda una altra porta oberta.
