Pocos componentes de software han generado tanta pasión y tanto enfado como systemd. Para unos es la pieza que por fin modernizó el arranque de Linux. Para otros, un monstruo que se comió media distribución y pisoteó la filosofía UNIX por el camino. Si alguna vez has visto una discusión encenderse en un foro nada más mencionar esta palabra, aquí te cuento de dónde viene todo ese ruido, sin tomar partido.
Qué es systemd exactamente
systemd es un sistema de init y a la vez un gestor de servicios para Linux. El init es el primer proceso que arranca el kernel, el famoso PID 1, y desde ahí pone en marcha todo lo demás: la red, los discos, los servicios de fondo, las sesiones de usuario. Durante décadas esa tarea la hizo SysV init con una colección de scripts de shell que se ejecutaban en orden, uno detrás de otro.
systemd cambió ese modelo. En vez de scripts secuenciales usa archivos de configuración declarativos llamados unit files, escritos en un formato sencillo, y arranca los servicios en paralelo respetando sus dependencias. El proyecto salió de la mano de Lennart Poettering y Kay Sievers, ambos en Red Hat por aquel entonces. Poettering lo presentó en abril de 2010 con un artículo en su blog titulado “Rethinking PID 1”, donde proponía repensar de cero cómo debería arrancar un sistema operativo moderno.
Por qué se adoptó tan rápido
Las ventajas que defienden sus partidarios son concretas y, en buena parte, medibles:
- Arranque más rápido, gracias al inicio paralelo de servicios y a la activación por sockets (un servicio puede esperar “dormido” hasta que algo lo necesita).
- Gestión unificada con un único comando,
systemctl, para arrancar, parar, habilitar o consultar el estado de cualquier servicio. - Logs centralizados a través de
journald, que recoge y estructura los registros del sistema en un único lugar. - Manejo sólido de dependencias y procesos, apoyándose en los cgroups del kernel para supervisar y controlar lo que se ejecuta.
Esto convenció primero a Fedora, que en 2011 fue la primera gran distribución en activar systemd por defecto. Le siguieron openSUSE y Arch Linux, y el salto definitivo llegó con Red Hat Enterprise Linux 7 en junio de 2014, que lo convirtió en el init estándar del mundo empresarial. Ubuntu acabó adoptándolo también y dejó atrás su propio sistema Upstart.
El terremoto en Debian
El caso de Debian merece capítulo aparte, porque fue donde la polémica alcanzó su punto álgido. El Comité Técnico del proyecto debatió durante meses, entre 2013 y 2014, qué init debía ser el predeterminado en Debian 8 “jessie”. Sobre la mesa estaban systemd, Upstart, OpenRC y el veterano sysVinit. En febrero de 2014 el comité votó a favor de systemd.
La decisión fue tan tensa que varios desarrolladores de peso, incluidos miembros del propio comité y el mantenedor del paquete de systemd, dimitieron de sus cargos por el desgaste y la presión de aquellas discusiones. Pocos episodios de la historia reciente del software libre han dejado tantas cicatrices.
Por qué genera tanto debate
Si systemd es tan rápido y cómodo, de dónde sale el rechazo. Las críticas no son caprichosas y conviene entenderlas:
- Rompe la filosofía UNIX. La máxima tradicional, “haz una sola cosa y hazla bien”, choca con un systemd que ha ido absorbiendo funciones que antes correspondían a programas separados e independientes: gestión de logs, de red, de sesiones, de DNS, de zona horaria…
- Es grande y centralizado. Al concentrar tantas responsabilidades en un único proyecto, una parte muy importante del sistema pasa a depender de él. Eso preocupa a quienes valoran la modularidad y la capacidad de sustituir piezas.
- Acoplamiento. Muchos paquetes acaban dando por hecho que systemd está presente, lo que dificulta vivir sin él aunque uno quiera.
Sus defensores responden que esa integración es justo lo que aporta coherencia y solidez, y que comparar componentes internos con una regla de los años setenta es discutible. El debate, en el fondo, es tan técnico como filosófico.
Las alternativas y la resistencia
La adopción no fue universal, y de aquella tensión nacieron proyectos que ofrecen vivir sin systemd. El más simbólico es Devuan, un fork de Debian anunciado a finales de 2014 cuya primera versión estable llegó en mayo de 2017, con sysVinit, runit u OpenRC como alternativas. Otras opciones para quien prefiere otro camino:
- MX Linux, que permite arrancar con sysVinit y solo usa systemd-shim cuando hace falta.
- Void Linux, construida desde cero alrededor del minimalista runit.
- Gentoo, que mantiene OpenRC como opción de primera clase.
- Slackware, fiel durante años a un esquema de init clásico al estilo BSD.
No hay una respuesta correcta. systemd ganó la batalla de la adopción mayoritaria porque resolvió problemas reales de gestión de servicios en sistemas modernos y complejos, y hoy es el estándar de facto. Pero la comunidad que defiende la simplicidad, la modularidad y la libertad de elegir sigue muy viva, y esa es una de las grandes virtudes del software libre: siempre queda otra puerta abierta.
