Analizando systemd

La relacion Ying-yang es real, systemd lo demuestra

Hablar de systemd es como meterse en un campo de batalla, a un cruce de balas, siendo que si bien no es el demonio que muchos alegan tampoco es que pueda manifestar que es la gloria que Dios Poettering nos envió para conseguir la ascención en el año de GNU/Linux en el escritorio. Ahora les explicaré porqué:

Pros:

systemd está realmente integrado, lo tienes todo en un solo lugar, cosa que para algunos puede resultar de ayuda al manejar herramientas de comportamiento similar.

Soporte de paralelización del arranque, no es algo que hayan inventado o que sean los únicos en hacerlo (OpenRC puede hacerlo con un pequeño cambio en el archivo de configuración), pero ciertamente es un punto positivo que hay que cederles siendo que reduce los tiempos de arranque.

Hace la creación de servicios mucho más simple, si hay que reconocerle algo a systemd es lo facil que ha vuelto los servicios, siendo que a diferencia de otros inits este no usa scripts de shell para arrancar los servicios del sistema (Los cuales no son ilegibles pero requieren algo más de analisis) en su defecto usa archivos de configuración (units) los cuales gozan de una simpleza envidiable. Sin embargo todavía soporta scripts de shell por si alguno requiere hacer funcionar algun servicio que no tenga archivo de unidad.

Definitivamente tiene sus puntos fuertes y para un usuario de escritorio es posible que nisiquiera note la diferencia si está bien implementado. Aunque no todo lo que brilla es oro y tambien hay que mencionar sus faltas:

Contras:

Estár integrado no necesariamente tiene por que ser bueno. systemd le mete mano a muchas cosas que no debería (Y no hablo de journald, eso podría ser razonable hasta cierto punto) como logind, mountd (Para que se supone que está el fstab) coredumpctl, networkd, y más recientemente homed. Si bien muchos de estos son opcionales no quita que sea alarmante que este intente abarcar tanto (Y como un programa sea dependiente de ellos te jodiste si es que no hay alguna solución como eudev o elogind)

Todos sus módulos están en binarios separados, osea que en teoría debería ser portable a otros inits ¿No? Bueno mi querido novato me temo que no, ya que todos ellos se comunican directamente con systemd por lo que aislarlos es un trabajo considerable (Pero no imposible) sin embargo a dia de hoy es perfectamente posible usar cosas como logind o udev fuera de systemd gracias a eudev y elogind.

En lo que respecta a seguridad systemd es un poco dudoso principalmente debido a que su código es mucho más grande y complejo que el de otros inits, abriendo la posibilidad de que existan bugs y fallos de seguridad que los desarrolladores no puedan apreciar a simple vista.

El tamaño del código tambien es importante debido a que dificulta la labor de los desarrolladores al haber más cosas que podrían romperse, un proyecto más grande es más dificil de mantener estable y es conocido que entender el funcionamiento de una máquina más grande tambien es más dificil, limitando la cantidad de desarrolladores que pueda tener el proyecto.

Conclusiones

Sería un hijo de puta si les dijera que huyeran de systemd como la destrucción de GNU/Linux por parte de del demonio Poettering (Debido a que actualmente uso Fedora), pero quería darle un poco de luz al asunto siendo que está muy parcializado. Sinceramente systemd solo resulta como una joda si eres un usuario avanzado ya que cambia mucho de como se venían haciendo las cosas. Del resto por mi que usen lo que deseen, por algo estamos en GNU/Linux, por la libertad de usar el software que mejor nos parezca.