El próximo brinco en tecnología

No es habitual que en este espacio escriba acerca del sistema operativo Windows (W$ para mejor referencia); sin embargo hay ocasiones en que lo que sucede o incluso lo que se planea en Redmont nos afecta de una forma global, incluso a nosotros que disfrutamos de las mieles del software libre y somos linuxeros de corazón.

Hace unos días Microsoft anunció que futuras versiones de sus sistemas operativos podrán ejecutar las mismas aplicaciones sin importar el dispositivo en que se encuentren instalados. Esto por supuesto no quiere (no puede querer) decir que habrá un solo W$ para todos los dispositivos computacionales. Como ya escribí en un artículo anterior esto no es posible. Ni siquiera con Linux (el Kernel); es un asunto que depende del hardware mucho mas que del software.

No dudo que M$ intentará vendernos la idea de que se trata de un “único” sistema operativo. Desde ahora puedo afirmar que el W$ que se instale en una PC X86 será incapaz de ejecutarse en una tableta ARM. Eso sí, muy bien podrían preparar un medio de instalación que reconociera el hardware donde se se esté efectuando el proceso y copiar los archivos apropiados.

La única alternativa posible sería que se incluyera un circuito integrado (chip) que hiciera las veces de traductor entre el código X86 y de ARM en ambos sentidos necesariamente (Esto suponiendo que existiera solamente un único código ARM). Ya ni hablar de otras tecnologías tanto CISC como RISC, que obviamente existen. ¿Suena una locura? La verdad es que ya se ha hecho en el pasado, en aquellos tiempos en que las Mac de Apple no usaban los microprocesadores de Intel, tanto en la época de los procesadores Motorola, como en la de los PowerPC.

Si se mira con cuidado es una solución impráctica y seguramente impopular entre los fabricantes de equipo. Así que lo más obvio, incluso lo probado, será seguir el camino de Google y usar una máquina virtual.

M$ lleva años desarrollando su plataforma .NET desde que Sun Microsystems (Hoy parte de Oracle) le ganó una demanda por andar metiéndole mano a Java sin su consentimiento ($). Como no pudo alterar Java en su beneficio simplemente copió y probablemente mejoró la idea original. Al menos Miguel de Icaza (creador de Gnome y de Mono) así lo ha repetido hasta el cansancio.

En este escenario a groso modo estaríamos hablando de un núcleo binario nativo propio para cada plataforma (kernel y servicios) sobre el cual operaría una máquina virtual .NET, también especial para cada plataforma y sobre la cual se asentaría el ambiente gráfico de Windows (¿dónde he visto eso antes?) que podría muy probablemente ser reescrito en .NET, y encima de todo esto se ubicarían las aplicaciones del usuario. ¿Suena muy bonito verdad? La verdad no lo es tanto, trataré de explicarme con la ayuda de dos ejemplos actuales.

En primer término podemos comparar el desempeño de los teléfonos móviles iPhone con iOS, Los Windows Phone y los Android; eso sí en sus respectivas gamas. Cualquiera que haya tenido la oportunidad de probar estos tipos de equipos, constatará que un W$ Phone de gama baja con digamos 512 MB de RAM se comporta mucho mejor que uno equivalente con Android. De igual forma un iPhone se las arreglará mejor que un Android de gama alta, aún cuando estos últimos suelen ser “más máquina”. La razón es simple los W$ Phone y los Android tienen una plataforma nativa, en tanto que los Android usan una máquina virtual.

En segundo lugar tenemos las tabletas equipadas con esa abominación llamada W$ RT; lento y limitado ponen en evidencia que meter un W$ en una plataforma ARM económica no es como se dice por acá: “enchílame otra gorda” (algo sencillo).

Así que si vemos el panorama parece probable que ese hipotético W$ “todo terreno” vaya a tener requisitos de hardware realmente enormes, de forma que pueda solventar con donaire la pesadez propia de su construcción, y el usuario al menos vea que sus programas se comportan de la misma forma en la que lo hacen en su versión actual de W$.

Por supuesto esto no ha detenido a M$ en el pasado, de hecho cada versión mayor de W$ al principio a tenido precisamente esa característica, demandar: mejor y más rápido procesador, mas RAM el doble o aún más, mejor tarjeta de vídeo y un largo etc.

Si revisamos el estado actual de la tecnología podemos ver como la mesa está casi servida: DDR4 lista y con DDR5 en el papel para la RAM, microprocesadores hechos con tecnología de menos de 20 nanometros, almacenamiento SDD subiendo en capacidad y durabilidad en tanto que los precios caen en picada. Microprocesadores ARM de 64 bits y multi núcleo, baterías de grafeno en desarrollo y otro largo etc.

Pero aquí no acaba el asunto, bajo este nuevo supuesto los programas creados para las versiones anteriores de W$ (aquellos que no sean .NET) difícilmente podrán ejecutarse en este nuevo W$. Esto sin duda causará molestia tanto a los usuarios, como a los editores de software que necesariamente tendrán que reescribir muchos de sus productos y que por razones obvias no podrán actualizar “sin costo” a sus clientes.

Para colmo M$ tiene una larga tradición de ofrecer un cierto grado de retro compatibilidad. Asunto muy importante, tanto que fue esta capacidad la que en primer lugar le permitió imponerse a la IBM y su OS/2 y en segundo lugar determinó el larguísimo periodo en que no se pudo usar el núcleo NT para sus productos de escritorio.

Esto podría solventarse con otra máquina virtual (llamémosla Interceptor) que transforme las instrucciones nativas a algo que entienda .NET, para que éste posteriormente las vuelva a enviar en forma nativa al microprocesador, asunto necesario especialmente cuando se trate de plataformas de hardware diferentes. En mis pesadillas puedo ver como M$ pone como requisito instalar al Interceptor en forma de un chip para que los fabricantes puedan tener acceso a una licencia. Ya vimos con el UEFI como M$ es capaz de imponer estos “míseros detalles”.

Las consecuencias de todo lo anterior y la forma en finalmente tomen forma son incalculables para este pobre gatito linuxero. En el mejor de los casos más usuarios descontentos con tener que pagar por cosas que realmente no necesitan migrarán a nuestro sistema operativo. Y en esas hipotéticas súper PC debería verse una notable diferencia de rendimiento en favor de las distribuciones, claro eso si en Gnome no siguen empeñados en meter la pata y si en KDE no se tropiezan. Igualmente muchos editores de software y fabricantes de PC podrían decantarse al fin por las distribuciones del pingüino a fin de evitar una debacle en sus ventas.

Incluso tal vez más programas seguirían el camino de Adobe y migrarían a la nube, produciendo a lo sumo cascarones .NET al estilo de muchas APPs de Android, todo con tal de no depender de los vaivenes de M$.

En el peor de los casos estas nuevas características podrían hacer inviable el instalar una distribución en esas nuevas PC, al menos hasta que los genios del software libre puedan solucionar los obstáculos que les deje M$.

O incluso tal vez Miguel de Icaza tenga razón después de todo y el futuro de Linux esté en .NET, aunque espero que no sea así.

Al final no asusta el brinco. Lo que espanta es el aterrizaje.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s