The Wayback Machine - https://web.archive.org/web/20140506135435/http://boycottsystemd.org/
  VOLVER

Boicot a systemd

systemd0 es un reemplazo para el demonio de sysvinit utilizado en los s istemas GNU/Linux y Unix, originalmente publicado por Lennart Poettering, un empleado de la compañía Red Hat. Constituye un importante salto en complejidad respecto de su predecesor, atentando con ello en contra de la filosofía Unix; su inherente naturaleza dominante y virulenta lo convierten en un programa que bien podría denominarse un "segundo kernel",  proliferando cada vez más a lo largo del ecosistema de Linux.

Este sitio tiene por objeto servir como un llamado de alerta, para ayudar a posicionarse en contra de la adopción generalizada de systemd, detallando por qué es perjudicial, y persuadiendo a los usuarios para renunciar a su uso.

Descargo de responsabilidad:

No somos de ninguna manera puristas de sysvinit. Reconocemos la necesidad de un nuevo sistema de inicio adecuado para el siglo XXI, pero systemd no lo es.


  EN RESUMEN
  1. 1. systemd se opone diametralmente a la filosofía Unix: "haz una cosa, y hazla bien", comprendiendo una compleja colección de docenas de binarios fuertemente acoplados1. Sus competencias exceden holgadamente a lo que debería considerarse un sistema de inicio, extendiendo sus pérfidos tentáculos a la administración de energía, la administración de dispositivos, los puntos de montaje, los intervalos regulares cron, la encripción de disco, el socket API/inetd, los logs del sistema syslog, entre otros.

  2. 2. El sistema de registro de eventos de systemd (gestionado por journald) se guarda en archivos binarios2 , y solamente legibles a través de journalctl - a diferencia del texto plano, estos archivos son susceptibles a corrupción. Subyacentemente, systemd ejecuta un servidor HTTP embebido para facilitar la lectura de los logs, así como la posibilidad de imágenes QR para enlazarlos. Es una funcionalidad tan improcedente como costosa.

  3. 3. El equipo de systemd es notablemente chauvinista y opuesto a Unix, dada su manifiesta indiferencia por el software no perteneciente a Linux, y la subsecuente incompatibilidad con todos los sistemas no basados en Linux. Además, en tanto que systemd está estrechamente ligado al API del kernel de Linux, el desarrollo sucesivo de systemd genera incompatibilidades con diferentes versiones del kernel.  Esta es una política aislacionista, que esencialmente constriñe al ecosistema de Linux a su propia jaula, y sirve como un obstáculo para la portabilidad del software.

  4. 4. udev y dbus son dependencias forzadas. De hecho, udev se fundió con  systemd hace mucho tiempo3.

  5. 5. Por defecto, systemd guarda los volcados de memoria en los registros de eventos, en vez de devolverlos al sistema de ficheros. Los volcados de memoria deben ser explícitamente consultados mediante systemd-coredumpctl4. Además de ir más allá de toda razón, también crea complicaciones en entornos multiusuario (buena suerte ejecutando gdb en tu volcado de memoria si ha sido introducido dentro del sistema de registro y no tienes acceso de superusuario), en tanto que systemd requiere acceso de superusuario. Asume que los usuarios y los administradores son estúpidos5.

  6. 6. El tamaño de systemd lo convierte en un punto único de fallo. A la fecha presente, systemd tiene 9 reportes CVE desde su concepción en Marzo de 20106. Hasta el día de hoy no parece mucho, pero su carácter despótico lo hará un suculento objetivo para los crackers, teniendo en cuenta que es más pequeño en comparación con el kernel de linux propiamente, pero igual de crítico.

  7. 7. systemd es virulento en su máxima expresión. Su amplitud de funciones así como su sujeción a numerosos paquetes obliga a  los mantenedores de las distribuciones a imponer una conversión en sus sistemas Para muestra, el entorno de GNOME ha implementado systemd como una fuerte dependencia en varias de sus utilidades desde la versión 3.8. En consecuencia, las versiones superiores o iguales a la 3.8 son incompatibles con sistemas no basados en Linux; y debido a la popularidad de GNOME, ello ha participado en que muchos mantenedores se han decantado por incorporar systemd. Su rápida adopción en distribuciones como Debian, Arch Linux, Ubuntu, Fedora, openSUSE ente otros demuestra cuántos se están subiendo al carro, con o sin justificación.  Nótese que systemd se rehusará a iniciar como una instancia de usuario a menos que el sistema lo inicie con él también8.

  8. 8. SystemD se encierra a sí mismo en el PID 1. Debido a que controla gran cantidad de componentes diferentes, significa que hay toneladas de escenarios en los cuales puede crashear y subvertir al sistema por completo. Pero además, significa que muchas actualizaciones del sistema (sin tratarse del kernel) van a requerir un reinicio, como cuando se realizan actualizaciones de Windos. Para ser justo, SystemD provee un mecanismo para reserializarse y reejecutarse a sí mismo en tiempo real. Pero claro, si esto falla, el sistema se cae. Hay muchas formas por las que esto puede ocurrir9  Esto es otro ejemplo de SPOF (punto simple de fallo).

  9. 9. systemd está diseñado con glibc en mente, y no es perfectamente compatble con otras libcs10.

  10. 10. La naturaleza compleja de systemd se antoja más complicada para extender y salir fuera de sus límites.  Pese a que puedes ejecutar scripts más o menos triviales, es más difícil describir un comportamiento que escape fuera de la caja con tantas implementaciones infladas. . Muchos usuarios necesitarán posiblemente escribir programas más complicados que directamente interactúen con la API de systemd o directamente necesitarán modificar systemd.

  11. 11. . En última instancia, el parasitismo de systemd es el símbolo de algo más que systemd en sí mismo. Muestra un cambio radical de pensamiento en la comunidad Linux. No necesariamente positivo. Sino vehementemente postmoderno, monolítico, fuertemente orientado a sistemas de escritorio, limitante de posibilidades, aislacionista, reinventor de la rueda, y un gran anti-patrón en general. Si tu meta es complacer al más bajo denominador común, que así sea. Nosotros sin embargo buscaremos alternativas.

 RECURSOS EXTERNOS Y REFERENCIAS

Referencias

[0] http://www.freedesktop.org/wiki/Software/systemd/
[1] http://people.debian.org/~stapelberg/docs/systemd-dependencies.html
[2] http://www.freedesktop.org/wiki/Software/systemd/journal-files/
[3] https://lwn.net/Articles/490413/
[4] https://web.nvd.nist.gov/view/vuln/search-results?adv_search=true... [truncated; not all entries apply]
[5] http://www.freedesktop.org/software/systemd/man/systemd-coredumpctl.html
[6] https://unix.stackexchange.com/questions/65110/no-more-coredumps-after-migrating-to-systemd
[7] http://forums.gentoo.org/viewtopic-t-965660-start-0.html
[8] http://cgit.freedesktop.org/systemd/systemd/tree/src/core/main.c?id=080ffcb4a124bd77054a3909bbd5f14d62f79b62
[9] http://ewontfix.com/14/
[10] http://lists.freedesktop.org/archives/systemd-devel/2011-July/002935.html

Artículos críticos sobre systemd