miércoles, 5 de noviembre de 2014

Editorial, ideas sobre systemd y la libertad de elección (viene de OsNews)

A finales de agosto decidí actualizar mi laptop a Centos 7 (tenía 6.5). Es una configuración de arranque doble (W7/Centos) y lo primero que sucedió fue que deje de ver las particiones de Windows (bueno, las dejó de ver el sistema, yo sabía que ahí estaban, o las cosas hubieran sido muy diferentes). Luego de encontrar y editar a mano el archivo de configuración del GRUB volví a tener mi configuración habitual, o eso creí, porque Centos 7 viene con systemd en ves de el sistema de init tradicional. No les hago el cuento completo, al final, me regrese a Centos 6.5 y acabé virtualizando el 7 sobre KVM, porque sospecho que al final me van a hacer como le hago a mis hijos con algunas medicinas que saben a mierda, "abre la boca o no vas al parque". Luego de varios meses dándole cabezazos, imprimiendo cheatsheets y viendo como la guerra se inflama sale este artículo editorial en OsNews que plantea un punto muy lógico sobre todo el asunto, creo que el autor lo tiene muy claro, es un asunto de opciones (o de falta de ellas). La gente que trabaja entornos empresariales la va a tener en china, visto que RedHat ya se pasó y se han quedado tan panchos (al final es su criatura). Veremos en que termina todo esto que ya parece novela con amenazas de muerte y toda la cosa (*che mundo loco, risa da). Es miércoles, les saludo, espero les sea de utilidad y hasta el siguiente.  

Editorial, ideas sobre systemd y la libertad de elección.

Durante el año pasado he estado leyendo un montón de comentarios sobre la nueva tecnología de init, systemd. Algunas personas piensan que systemd es maravilloso, las rodillas de la abeja. Otros afirman que systemd está roto por diseño. Algunos ven systemd como una fuerza unificadora, una manera de unir a la mayoría de las distribuciones de Linux. Otros ven systemd como una mancha en crecimiento que se está convirtiendo poco a poco en una porción demasiado grande del sistema operativo. Una cosa que me ha sorprendido un poco es lo mucho que la gente se preocupa por systemd, ya sea a favor o en contra. Las personas a favor, de buena fe (y, a veces falsamente) hacen afirmaciones sobre lo maravilloso que systemd es y lo que supuestamente puede hacer. Los opositores afirman que systemd dividirá a la comunidad Linux y llevará a muchos usuarios técnicos hacia otros sistemas operativos. Hay un gran despliegue publicitario y, sorprendentemente, pocas personas presentan hechos.

Un hilo de discusión que leí recientemente comparó el asunto de systemd a otras "guerras santas" que han sucedido en la comunidad de código abierto. Las personas siempre están eligiendo peleas entre la licencia BSD y la GPL, el escritorio GNOME y KDE, el editor vi y Emacs. Dondequiera que hay diferencias habrá gente que discuta sobre qué opción es la mejor. Algunas personas reclaman que el debate sobre systemd es diferente, que es más grande, es decir que va a hacer más para fragmentar la comunidad Linux. Otros ven systemd como sólo un argumento más en una larga larga lista de argumentos, y (mientras que unas pocas personas obstinadas pelean) la mayoría de nosotros vamos seguir de largo como siempre hemos hecho.

Al principio pensé que esta gente, los que ven el caso de systemd como otro argumento mas en la pila gigante de los debates de código abierto, estaban en lo cierto. Realmente, no hay nada de especial en el debate sobre systemd que lo diferencie de otros temas. Hemos seguido "flame wars" similares entre los fans de Clang o GCC, micro-núcleos y diseños monolíticos, GTK y Qt. ¿Y qué si hay otra discusión mas sobre las tecnologías de init?

Bueno, después de ciertas consideraciones, yo creo que hay algo en el debate systemd que lo distingue. Hay algo más grande acerca de la lucha por systemd que le da peso adicional. En concreto, los otros argumentos que he mencionado, los muchos debates sobre las tecnologías que han aparecido en el pasado, eran casi siempre entre dos opciones que estaban ampliamente disponibles para la mayoría de la gente. La gran mayoría de las distribuciones de Linux empaquetan tanto Clang como GCC, casi todas ellas proporcionan ambas librerías GTK y QT, la mayoría de las grandes distribuciones empaquetan KDE y GNOME (o tienen ediciones de la comunidad que lo hacen por ellos). Casi todas las distribuciones de Linux hacen disponible tanto Emacs como vi. Hay un montón de distribuciones que usan paquetes RPM y muchas que utilizan paquetes DEB y si alguien realmente quiere usar ambos, existen herramientas para convertir los paquetes entre los dos formatos. En la comunidad de Linux cada vez que hay elecciones hay debate. Cada vez que hay una elección, la mayoría de las distribuciones hacen disponibles las dos opciones y dejan que la gente seleccione la utilidad que más les gusta.(Hay algunas distribuciones "especializadas" o con un enfoque exclusivo, pero son relativamente raras.)

Lo que diferencia el debate sobre systemd es que la mayoría de las distribuciones, no ofrecen una opción. Cuando instalamos CentOS o openSUSE o OpenMandriva no hay una pantalla de opciones ofreciendo una tecnología de inicio u otra. Muy pocas distribuciones hacen (razonablemente) fácil el cambio de un sistema de inicio a otro. La nueva opción, systemd, llegó y de repente la vieja tecnología init (SysV o Upstart) fue dejado de lado, ya no está disponible para los usuarios que querían las alternativas. Esto es inusual. Cuando sale un nuevo editor de texto o gestor de ventanas o compilador las distribuciones generalmente no desechan la vieja tecnología a favor de la nueva. Cuando existe disponible un nuevo conjunto de herramientas por lo general no desechamos todas las demás opciones, las mantenemos todas, dejando que la gente decida que utilidades funcionan mejor para ellos. Con systemd la mayoría de las distribuciones están empujando el problema, insistiendo en que los usuarios adopten systemd o se muden a otra distribución y la lista de las distribuciones que ofrecen alternativas a systemd se está reduciendo rápidamente.

La mayoría de las distribuciones han aceptado tranquilamente systemd. Fedora y Arch son experimentales y por lo general adoptan nuevas tecnologías, así que la mayoría de la gente que usa estas distribuciones aceptaron systemd como lo harían con cualquier otra tecnología nueva y brillante. Al parecer las comunidades de openSUSE y la familia Mandriva también aceptaron systemd con relativamente poco esfuerzo. Sin embargo, cuando systemd fue elegido como el nuevo sistema de inicio de Debian y  fue aceptado como una dependencia de algún software, hubo una fuerte reacción. Al principio me pareció extraño. Me preguntaba por qué los usuarios de Debian reaccionaban con tanta fuerza contra la adopción de systemd donde otros habían aceptado en silencio el nuevo software de inicio. Creo que parte de la razón por la que los usuarios de Debian están en pie de guerra es que Debian es un proyecto muy conservador y no cambia rápidamente. Debian apuesta por la tecnología probada, por el software maduro, y systemd no llega allí todavía. Pero creo que el problema más grande es la elección. Debian intenta ser universal, ofreciendo un sinnúmero de opciones. Usted puede ejecutar Debian en un gran número de arquitecturas y hay varios ports que utilizan diferentes núcleos. Pero ahora el liderazgo de Debian quiere adoptar una (y sólo una) tecnología de init.

Quiero que piensen en esto por un momento. El proyecto Debian nos deja elegir qué kernel del sistema operativo queremos (Linux, Hurd o FreeBSD), pero pronto los usuarios de Debian tendrán la opción de una sola tecnología init si quieren ser capaces de ejecutar todo el software disponible en los repositorios de Debian. Eso me hace retroceder y creo que le sienta mal a muchos usuarios de Debian, personas que también están acostumbradas a un buffet de opciones.

En la actualidad existe un debate en el campo de Debian en cuanto a si Debian debería permitir a los usuarios elegir su propia tecnología init (systemd o SysV) y me da mucha curiosidad ver que es lo que resulta. Debian, la distribución que ofrece tradicionalmente la mayor libertad de elección, decidirá pronto si atar a la gente a un software de init o permitir la elección. El hecho de que la pregunta esté aún abierta a debate para mí se siente extraño y va a demostrar cuán surrealista se ha puesto el debate en torno a systemd. Debian pronto dará la espalda a su tradición de libertad o se convertirá en una de las pocas distribuciones de Linux que continúan ofreciendo opiniones. Si el liderazgo de Debian está aún medio dormido al timón se darán cuenta de cuantos usuarios nuevos pueden ganar si continúan ofreciendo libertad de elección en lo que a init se refiere. La elección sobre si se debe usar o no systemd es algo que está desapareciendo rápidamente de la comunidad Linux y Debian tiene la oportunidad de ser uno de los pocos proyectos que sostienen a la filosofía de la libertad del usuario. Esperemos que la elijan ampliamente.