Distrohopping útil



El ecosistema de Linux no es tan extenso como para llenar blogs con noticias diarias y sin embargo existe la necesidad perpetua de crear contenido para generar clicks y rentabilizar la web. Esta paradoja tiene una difícil solución así que se suele recurrir a cierto tipo de artículos facilones y triviales, precocinados y vacíos de contenido entre los que destacan por su antigüedad y popularidad los dedicados al distrohopping. Numerosos son los blogs, principalmente españoles, dedicados a tan estéril actividad. Esa es la principal razón, como ya comenté, de que en mi blogroll solo aparezcan blogs estadounidenses.

Esta práctica del distrohopping es muy popular entre los escritores de la linuxfera lo que contrasta con los recientes resultados de una encuesta de OMG! Ubuntu!. La muestra de la encuesta tiene bastante sesgo al proceder de una web dedicada a Ubuntu pero en general creo que las cifras no variarían mucho porque las distros son cada vez más similares, diferenciándose en poco más que el fondo de escritorio y unos cuantos paquetes instalados. No le veo sentido a la mayoría de distros que existen hoy ya que la única diferencia sustancial entre ellas es el tipo de empaquetado que usen, ya sea APT, yum, pacman o cualquier otro. Llevo años intentando encontrar diferencias entre ellos y no hay ninguna significativa, ni en velocidad ni funcionamiento. Simplemente son incompatibles entre sí pero su elección acaba siendo totalmente indiferente.

Cierto es que todos compartimos un pasado distrohopper. En mi caso, hace más de siete años que dejé la práctica porque me di cuenta de que las distros son irrelevantes. Escoge cualquiera que funcione bien e instala o desinstala paquetes y añade configuraciones para convertirla en el sistema operativo que necesitas. Yo no salí de Ubuntu porque tenía la comunidad más numerosa y varios programas privativos soportados que en otras distros no aparecían o tardaban en llegar como Chrome, Spotify, Steam o Skype.

Aunque mi tono pueda parecer resentido, no estoy enfadado con los bloggers que se dedican a escribir posts de distrohopping, al contrario, me entristece que pierdan el tiempo con esta actividad en vez de invertirlo en algo más productivo para sí mismos y para la comunidad. Sin embargo, no creo en la crítica si no es constructiva y por eso, aunque pueda parecer contradictorio, voy a presentar un artículo sobre ditrohopping de sistemas que sí merece la pena tener en cuenta por incorporar alguna característica diferenciadora interesante. Lógicamente, la lista es bastante corta y se centra en tres sistemas operativos relacionados con la reciente moda de los contenedores, pero que no han sido elegidos por esa razón sino por las que expongo a continuación.

Alpine Linux


Este es uno de los sistemas operativos que toda la gente que insiste en corregir a los que no escriben GNU/Linux en vez de Linux desprecian porque no lleva código de GNU. En su lugar, incorpora las coreutils de BusyBox, todo ello compilado de forma estática. Esta decisión de diseño no es la única destacable. Alpine Linux es pequeño debido a su renuncia a glibc; musl produce binarios más eficientes, lo que se traduce en que la instalación de este SO en nuestro disco duro sólo ocupe 130MB. También es polémica la utilización de OpenRC como init, dejando de lado al omnipresente systemd. Alpine apuesta por una seguridad muy superior a la de otras distros de uso común con parches del kernel portados de grsecurity. En el espacio de usuario tampoco se quedan cortos al compilar todo como PIEs. Personalmente, todos los contenedores que construyo tienen de base a Alpine Linux pero también es una distro cómoda y manejable como sistema de escritorio, al contrario que otros sistemas para contenedores como los que vamos a seguir analizando u otros sistemas mínimos de compilación estática como stali, Void o Morpheus. Un SO muy interesante sobre el que hay que estar atentos.

CoreOS


CoreOS = Linux + OpenSSH + Docker. Otro sistema mínimo que se desprende de todo artificio para realizar su propósito de forma óptima pero no es esa la razón por la que está aquí sino por su peculiar sistema de arranque transaccional que sigue un esquema dual de particiones root basado en Omaha, el sistema de actualizaciones de Chrome. Su operativa es muy fácil de entender: el sistema arranca en la partición A, si hubiera alguna actualización se descarga e instala automáticamente en la partición B. Estas actualizaciones no son de paquetes por separado sino de todo el rootfs. El siguiente arranque se produce en la partición B, ya actualizada, quedando la partición A como reserva en caso de fallo en la actualización de B para hacer rollback y esperando la siguiente actualización si la primera ha sido exitosa. Esta estrategia novedosa permitiría un modelo de rolling release bleeding edge sin tener que preocuparnos por la inestabilidad que las continuas actualizaciones pudieran ocasionar en nuestro sistema.

RancherOS


En la lucha de los inits, RancherOS ha elegido una solución radical, ninguno. Docker se inicia como PID1, apropiándose de las funciones que un init normal llevaría a cabo. Docker lanza los contenedores del sistema (ntpd, dhcp, udev, console...) y el resto de aplicaciones de usuario como contenedores, igualmente, porque en rancherOS todo el software se presenta contenido y aislado en paquetes Docker.

Si bien todos estos sistemas de los que hemos hablado tienen características diferenciadoras que justifican su uso, o como poco su prueba, es cierto que Canonical ya ha empezado a tomar alguna de estas ideas para incorporarlas en Snappy Ubuntu Core, distro que parece destinada a gobernar en el desarrollo del IoT, así que tarde o temprano esta lista quedará obsoleta y todo el mundo terminará usando Snappy Ubuntu Core como ya ha pasado en el escritorio.

Madurar es acabar usando Ubuntu.