Llevo cuatro días trasteando con el flamante T-Mobile G1 (fabricado por HTC bajo el nombre en clave Dream) que acaba de ponerse a la venta este miércoles1 El HTC Dream / T-Mobile G1 se lanzó comercialmente el 22 de octubre de 2008 en Estados Unidos, marcando el debut en producción de Android 1.0 tras la compra de la startup de Andy Rubin por parte de Google en 2005.. El dispositivo es tosco si lo comparas con las líneas pulidas del iPhone de Apple: tiene una barbilla angulada que entorpece el agarre, una pantalla capacitiva que se desliza mediante una bisagra mecánica para revelar un teclado QWERTY completo y una pequeña bola de seguimiento (trackball) que recuerda a las BlackBerry de uso corporativo.
Detrás de ese chasis plástico late un hecho histórico que la comunidad del software libre lleva más de una década esperando sin darse cuenta de su llegada: este teléfono arranca un kernel Linux 2.6.25 sobre un procesador ARM.
El espejismo del escritorio de sobremesa
Durante años, la cantinela en los foros de Slashdot, listas de correo del kernel y convenciones de hackers era invariable: "el próximo año será el año de Linux en el escritorio". Soñábamos con el día en que una distribución de Debian, Fedora o Ubuntu desbancara a Windows XP y Vista de las torres de sobremesa domésticas.
Esa batalla fracasó por razones estructurales evidentes. El escritorio clásico de PC es un cenagal de fragmentación de drivers gráficos propietarios (la eterna tortura con las extensiones GLX de Nvidia y ATI), configuraciones infernales del servidor X11 (xorg.conf) y una inercia comercial inquebrantable de fabricantes de placas base casados con los instaladores binarios de Microsoft.
La ironía es que Linux no ha conquistado los hogares asaltando la torre del salón ni sustituyendo el software ofimático de las oficinas. Ha entrado por la puerta trasera: metido en el bolsillo de millones de usuarios que jamás abrirán una terminal bash ni sabrán qué demonios significa compilar un módulo de kernel.
La cirugía técnica de Google: Linux sin el ecosistema GNU
Para lograr que Linux funcionara con solvencia sobre el chip Qualcomm MSM7201A a 528 MHz y los míseros 192 MB de memoria RAM del HTC Dream, el equipo de Andy Rubin tuvo que ejecutar una amputación casi total del userland tradicional de Unix2 Richard Stallman y la Free Software Foundation han insistido durante años en la denominación «GNU/Linux» para reivindicar que el sistema operativo lo componen las utilidades de usuario tanto como el núcleo. Android es la prueba empírica de un sistema Linux completamente desprovisto de GNU..
Android utiliza el kernel Linux para lo que mejor sabe hacer: gestionar la memoria virtual, alternar los hilos del planificador de tareas, interactuar con el silicio mediante controladores y ofrecer el aislamiento de procesos mediante permisos de usuario tradicionales de Unix (asignando un UID distinto a cada aplicación instalada).
A partir de ahí, la fontanería clásica desaparece: 1. Adiós a la glibc, hola Bionic: Google reemplazó la biblioteca estándar de C de GNU por Bionic, una implementación ligera bajo licencia BSD. La justificación técnica era reducir el consumo de memoria; la motivación comercial real era librar a los fabricantes de chips de la cláusula copyleft de la LGPL, permitiéndoles escribir bibliotecas propietarias sin exponer su código fuente. 2. SurfaceFlinger en lugar de X11: Descartaron el pesado y arcaico servidor de ventanas X11 en favor de un gestor de composición directa de superficies en memoria gráfica. 3. La máquina virtual Dalvik: En lugar de ejecutar binarios compilados directamente para arquitectura ARM o montar la JVM clásica de Sun Microsystems, Dan Bornstein diseñó Dalvik. Es una máquina virtual basada en registros (a diferencia de la JVM estándar, que se basa en una pila abstracta), adaptada para minimizar la huella de instrucciones en procesadores móviles lentos y sortear el campo minado de patentes de Java[^3].
[Aplicaciones de usuario (Java / APK)]
│
▼
[Runtime Dalvik + Framework de Servicios]
│
▼
[Capa de Abstracción de Hardware (HAL) + Bionic libc] (Licencia BSD/Apache)
══════════════════════════════════════════════════════════ Línea divisoria GPL
[Kernel Linux 2.6.25 (GPLv2)] ──> Controladores de radio, pantalla, energía
Esta arquitectura es una obra maestra del pragmatismo de trinchera. Mantiene la licencia GPLv2 confinada estrictamente en el espacio de kernel, levantando una barrera con licencia Apache 2.0 y BSD en el espacio de usuario para que operadoras y fabricantes de hardware puedan empaquetar sus extensiones sin litigios legales.
El futuro: el hogar gobernado por silicio empotrado
Al trastear con el navegador web basado en WebKit del G1 y vincular la cuenta de correo mediante sincronización en segundo plano, la conclusión se vuelve cristalina: el modelo informático dominante acaba de bifurcarse.
El PC de escritorio mantendrá su nicho para tareas de creación pesada, diseño industrial y desarrollo de software. El consumo masivo de computación —la mensajería, la navegación casual, el control del correo y los servicios de mapas— pertenecerá a dispositivos móviles y electrodomésticos conectados permanentemente a la red.
En los próximos diez o quince años veremos miles de millones de pantallas, teléfonos, televisores, pasarelas de red y dispositivos domésticos corriendo alguna variante del kernel Linux. La vieja utopía de los noventa se habrá cumplido, aunque con un sabor agridulce para los puristas del software libre: Linux habrá triunfado como el estándar indiscutible de la infraestructura global, pero lo habrá hecho camuflado como el motor invisible de un ecosistema dominado por servicios centralizados.