¿Alguna vez te has quedado mirando una pantalla de «Index of» y has sentido que estabas entrando en la trastienda de un museo? No hay diseño, no hay botones brillantes, ni rastro de esa experiencia de usuario pulida que nos venden hoy en día. Solo hay texto, fechas y tamaños de archivo. La verdad es que, para los que llevamos unos cuantos años trasteando con Linux, encontrarnos con una ruta como /ubuntu/pool/main/g/gfxboot-theme-ubuntu/ es casi como leer un diario de bitácora de la historia de la informática en España y en el mundo.
Si te fijas bien en esa lista de archivos que cuelgan de un servidor en Chile (un saludo a la gente de Hostenode, por cierto, que mantener espejos de repositorios no es moco de pavo), lo que ves no son solo paquetes. Son las piezas de un puzle que definieron cómo se veía tu ordenador justo en ese momento crítico: cuando le das al botón de encendido y esperas a que la magia ocurra. Vamos a desgranar qué demonios es esto del gfxboot-theme y por qué, aunque parezca un rincón polvoriento del servidor, es fundamental para que tu Ubuntu no parezca una terminal de los años 80 desde el segundo uno.
¿Qué es exactamente el gfxboot-theme-ubuntu?
Para que nos entendamos, antes de que el escritorio de Ubuntu aparezca con sus iconos y su fondo de pantalla color berenjena, hay un proceso de «negociación» entre el hardware y el software. El gestor de arranque (normalmente GRUB en nuestros sistemas) es el encargado de decir: «Vale, aquí tengo el kernel, vamos a cargarlo». Pero claro, presentarle al usuario una lista de texto blanco sobre fondo negro es un poco… soso. Y ahí es donde entra gfxboot.
Este paquete es, esencialmente, el «maquillaje» del menú de arranque. Es lo que permite que, cuando metes un USB de instalación o un Live CD, veas esos menús con iconos, puedas elegir el idioma con una interfaz gráfica sencilla y veas el logo de Ubuntu presidiendo la pantalla. No es solo estética; es la primera capa de accesibilidad. Si mal no recuerdo, en las versiones más antiguas de Ubuntu, este era el componente que nos permitía pulsar F2 para cambiar el idioma o F6 para añadir parámetros extraños al kernel cuando nuestra tarjeta gráfica se ponía tonta.
Ojo con esto: no es lo mismo que el tema de GRUB que ves en una instalación normal en disco duro. El gfxboot-theme-ubuntu está muy enfocado a los medios de instalación y al entorno «Live». Es esa primera impresión que se lleva alguien que prueba Linux por primera vez. Y ya sabemos lo que dicen de las primeras impresiones.
Analizando la cronología de los archivos: Un viaje de 2014 a 2020
Si echamos un vistazo a los archivos del repositorio, vemos una progresión que cuenta una historia. Tenemos versiones que van desde la 0.16.1 hasta la 0.23.3. ¿Qué nos dice esto? Pues mucho más de lo que parece a simple vista.
- La era de 2014 (Versión 0.16.1): Esta versión coincide con el lanzamiento de Ubuntu 14.04 LTS, apodado Trusty Tahr. En aquel entonces, todavía estábamos muy inmersos en la estética de Unity. Los archivos
.debde esa época pesan unos 337k. Es curioso cómo algo tan pequeño puede gestionar toda la interfaz de arranque de millones de ordenadores. - El salto a 2016 (Versión 0.20.1 y 0.21.0): Aquí entramos en la época de Xenial Xerus (16.04). Si te fijas en el tamaño de los archivos, hay un incremento. Pasamos de esos 337k a casi 481k en la versión 0.21.0. ¿Por qué? Probablemente por la inclusión de activos gráficos de mayor resolución. Las pantallas 4K empezaban a asomar la patita y no podías tener un menú de arranque que se viera como un sello de correos en un monitor moderno.
- La madurez de 2020 (Versión 0.23.3): Esta es la versión que acompaña a Ubuntu 20.04 LTS (Focal Fossa). El archivo ya roza los 509k. Es la culminación de un estilo visual que ha intentado ser sobrio pero elegante.
La verdad es que ver estas fechas (10-04-2014, 15-04-2016, 11-04-2020) me hace pensar en cuántas veces habremos quemado una ISO en un pendrive usando estas versiones exactas. Es la infraestructura invisible que hace que todo funcione.
¿Qué significan todas esas extensiones? (.dsc, .tar.xz, .deb)
Si eres nuevo en el mundo de los repositorios de Debian o Ubuntu, ver tanto archivo con el mismo nombre pero distinta extensión puede marear un poco. Pero vaya, que tiene su lógica interna y es bastante robusta. Vamos a destriparlo como si estuviéramos en una charla de bar, pero con código de por medio.
1. El archivo .dsc (Debian Source Control)
Este es un archivo de texto pequeño. No contiene el programa en sí, sino la «receta» y la firma. Es donde se dice quién es el mantenedor, qué dependencias tiene el paquete para ser construido y, lo más importante, los hashes de verificación (MD5, SHA1, SHA256). Es la garantía de que nadie ha metido mano en el código entre el desarrollador y tu ordenador. Si abriéramos el gfxboot-theme-ubuntu_0.23.3.dsc, veríamos algo parecido a esto:
Format: 3.0 (native) Source: gfxboot-theme-ubuntu Binary: gfxboot-theme-ubuntu Architecture: any Version: 0.23.3 Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Standards-Version: 3.9.8 Build-Depends: debhelper (>= 9), gfxboot-dev (>= 4.4.8-1)
Es, básicamente, el DNI del paquete.
2. El archivo .tar.xz o .tar.gz
Aquí es donde vive el código fuente. El paso de .gz (Gzip) en 2014 a .xz (LZMA) en las versiones posteriores no es casualidad. El formato .xz comprime mucho mejor, y en el mundo de los repositorios, ahorrar unos cuantos megas cuando multiplicas por millones de descargas es un ahorro real en costes de ancho de banda para la comunidad.
3. El archivo .deb
Este es el producto final. El que instalas con un sudo dpkg -i o el que gestiona apt automáticamente. Si te fijas, hay versiones para amd64 (64 bits) e i386 (32 bits). Aunque los 32 bits están más muertos que el reproductor de casetes, en 2016 todavía se mantenían con fuerza para dar vida a ordenadores antiguos que muchos de nosotros aún tenemos por casa acumulando polvo.
¿Cómo se cocina un tema de gfxboot?
No creas que esto es solo cambiar un par de imágenes JPG y ya está. Gfxboot utiliza un lenguaje de programación propio, bastante cercano a Forth, lo cual es… bueno, digamos que «especial». No es algo que toques todos los días como Python o JavaScript. Es un entorno de ejecución muy limitado porque, recuerda, en el momento en que esto corre, todavía no hay sistema operativo cargado. No hay drivers complejos, no hay gestión de memoria avanzada.
Si tuviéramos curiosidad por ver qué hay dentro de uno de estos paquetes .deb, podríamos hacer un pequeño experimento en nuestra terminal (siempre con cuidado, que nos conocemos):
# Descargamos el paquete (ejemplo de la versión 2020) wget https://mirror.hnd.cl/ubuntu/pool/main/g/gfxboot-theme-ubuntu/gfxboot-theme-ubuntu_0.23.3_amd64.deb # Extraemos el contenido sin instalarlo dpkg-deb -x gfxboot-theme-ubuntu_0.23.3_amd64.deb temp_folder/ # Navegamos para ver qué hay cd temp_folder/usr/share/gfxboot/themes/ubuntu/ ls -R
Lo que encontrarías ahí dentro son archivos de fuentes tipográficas, scripts de configuración y una serie de archivos binarios que el cargador de arranque entiende. Es un micromundo fascinante. La verdad es que admiro a la gente que mantiene esto; es trabajar en la oscuridad para que los demás veamos la luz al encender el PC.
La importancia de los espejos (mirrors) en la infraestructura global
Mencionar que estos archivos están alojados en mirror.hnd.cl en Chile nos da pie a hablar de algo vital: la descentralización. Ubuntu no es solo Canonical en Londres o servidores en Estados Unidos. Es una red global. En España, por ejemplo, tenemos espejos fantásticos mantenidos por universidades como la de Zaragoza o empresas de telecomunicaciones.
¿Por qué es importante que existan estos «Index of» repartidos por el mundo? Por tres razones fundamentales:
- Latencia: Si estás en Santiago de Chile, descargar este paquete desde un servidor local es instantáneo. Si tuvieras que irte a un servidor en Frankfurt, la cosa cambia.
- Redundancia: Si el servidor principal de Ubuntu se cae (que ha pasado, aunque poco), el ecosistema sigue vivo gracias a estos espejos.
- Preservación: Estos directorios actúan como archivos históricos. Gracias a que alguien no borró la versión de 2014, hoy podemos reconstruir o reparar sistemas antiguos que todavía cumplen funciones críticas en alguna oficina o taller.
Es curioso pensar que un servidor en Chile está guardando una pieza de software que quizás un técnico en Madrid necesita mañana para recuperar un servidor antiguo. La red es un pañuelo, la verdad.
¿Por qué el gfxboot-theme está perdiendo protagonismo?
Aquí me pongo un poco melancólico. Con la llegada masiva de UEFI (el sustituto de la BIOS de toda la vida) y el Secure Boot, la forma en que arrancamos nuestros ordenadores ha cambiado radicalmente. GRUB ha tomado casi todo el control y el uso de gfxboot se ha quedado muy relegado a los medios de instalación tradicionales.
Hoy en día, la mayoría de las distribuciones buscan un arranque «silencioso» (flicker-free boot). Quieren que desde que pulsas el botón hasta que ves el escritorio, solo veas el logo del fabricante de tu placa base o un logo de Ubuntu muy minimalista, sin menús, sin distracciones. Ese proceso es mucho más complejo técnicamente porque implica pasar el control de la tarjeta gráfica del firmware al kernel sin que la pantalla parpadee ni una sola vez.
Vaya, que el gfxboot-theme-ubuntu es un poco como esos carteles de neón de las películas antiguas: cumplen su función, son icónicos, pero la tecnología moderna prefiere pantallas LED integradas que ni notas que están ahí. Aun así, para los que instalamos sistemas a menudo, ver ese menú de bienvenida de Ubuntu sigue siendo una señal de «todo va a salir bien».
Un detalle técnico para los más curiosos
Si alguna vez te da por personalizar tu propio Live USB y quieres cambiar algo de este tema, te vas a encontrar con un archivo llamado bootlogo. No es una imagen. Es un archivo comprimido que contiene todo el entorno gráfico del arranque. Para manipularlo se suele usar la herramienta gfxboot (que está en los repositorios como gfxboot-dev).
Recuerdo que hace años, en algunos foros de Linux en España, la gente se dedicaba a crear temas personalizados para sus distros derivadas. Era una forma de identidad. «Mi Linux arranca con una foto de la Sierra de Guadarrama», decían algunos. Y todo eso era posible gracias a que el código de estos paquetes es abierto y está ahí, disponible en esos directorios pool/main/g/ para quien quiera descargarlo y destriparlo.
Para que nos entendamos, el flujo de trabajo para modificar esto sería algo así (simplificando mucho, que no quiero aburriros):
- Instalas las herramientas de desarrollo.
- Descargas el código fuente (el
.tar.xzque veíamos antes). - Modificas los archivos
.pcxo.jpginternos. - Vuelves a compilar el
bootlogousando los scripts degfxboot. - Cruzas los dedos para no haber roto nada y pruebas en una máquina virtual.
Es un proceso artesanal, casi de orfebrería digital.
La seguridad en el arranque: No todo es estética
A veces tendemos a pensar que estos paquetes son «tonterías visuales», pero en el directorio que estamos analizando, la presencia de los archivos .dsc y las firmas digitales nos recuerda que el arranque es el momento más vulnerable de un ordenador. Si alguien consiguiera sustituir el gfxboot-theme por una versión maliciosa en un repositorio oficial, podría engañar al usuario para que introduzca contraseñas o, peor aún, cargar un kernel modificado.
Por eso, aunque veamos una lista de archivos simple en un servidor HTTP, por debajo hay toda una infraestructura de claves GPG. Ubuntu confía en sus desarrolladores, y nosotros confiamos en Ubuntu. Esa cadena de confianza es lo que permite que, cuando descargas el gfxboot-theme-ubuntu_0.23.3_amd64.deb, sepas que es el original y no una imitación barata con malas intenciones.
Al final del día, este «Index of» es un testamento de cómo se construye el software libre: de forma transparente, organizada y accesible. No hay secretos. Si quieres saber cómo se hizo el menú de arranque de Ubuntu 16.04, ahí tienes el código fuente. Si quieres ver cómo ha evolucionado el tamaño de los binarios, ahí tienes las fechas. Es una biblioteca pública de conocimiento técnico.
La próxima vez que te encuentres con una página de este estilo, no la cierres rápido buscando una web más bonita. Quédate un momento, mira las fechas, observa los cambios de tamaño y piensa en todo el trabajo que hay detrás de cada uno de esos archivos. Porque, aunque parezcan solo nombres en una pantalla blanca, son los cimientos sobre los que se apoya tu sistema operativo favorito.
Y es que, la verdad, hay algo reconfortante en saber que, pase lo que pase, siempre habrá un servidor en algún lugar del mundo guardando la versión exacta de ese tema de arranque que tanto nos gustaba en 2014. Es nuestra pequeña forma de inmortalidad digital.
Deja una respuesta