La gran ventaja de x86 frente a ARM

En los últimos años, el uso de ARM ha subido como la espuma gracias principalmente a los smarthpones y las tabletas. Pero en PCs y servidores no ha conseguido cuajar.

La función de un sistema operativo consiste básicamente en comunicar el software con el hardware por lo que este, como pieza de software, debe conocer de forma detallada cómo funcionan los distintos dispositivos y en especial, el procesador. Así que ¿quién mejor que el desarrollador de un sistema operativo para indicar las fortalezas y flaquezas de distintas arquitecturas?

En la convención de Linaro Connect de la semana pasa, Linus Torvalds respondió algunas preguntas. Entre otras cosas preguntaron cuál era su arquitectura favorita a lo que respondió que x86, por encima de ARM.

A pesar de que ARM cada vez se usa más y es, de lejos, la arquitectura sobre la que hay más sistemas basados en Linux funcionando, el creador de esta variante de Unix sigue prefiriendo la arquitectura de Intel. Y sin ningún tipo de duda:
«Lo que importa es toda la infraestructura que gira en torno al conjunto de instrucciones y x86 tiene toda esa infraestructura a mucho niveles».

x86 vs arm
Windows XP funcionando en un procesador ARM sobre QEMU en una Raspberry Pi

Esto que puede sonar un poco ambiguo, es la quid de cuestión. Y es precisamente una de las cosas en las que flaquea el propio Linux: la fragmentación. x86 no solo es una arquitectura sino que es toda una plataforma. En torno a x86 se han definido una serie de normas de riguroso cumplimiento que hacen que cualquier fabricante y marca se ciñan a unos estándares prefijados. Eso hace que un programa compilado para x86 funcione en cualquier ordenador x86 sin tener que preocuparse por quien lo fabrica. No hay distintas versiones de Windows o Linux para según qué fabricantes de placas base o procesadores. A lo sumo tenemos la posibilidad de elegir un sistema compilado para 32 y 64 bits que, para más inri, funcionan indistintamente en cualquier PC comprado en los últimos 10 años.

Con ARM no ocurre eso. ARM deja todos estos aspectos abiertos al fabricante y cada uno personaliza los procesadores a su gusto. Un sistema compilado para un SoC de un fabricante probablemente no funcionará en el de otro fabricante aún cuando ambos estén compilados para la misma versión de ARM.

Como consecuencia, intentar introducir ARM en sectores como el PC o el servidor resulta muy complicado. Que sea necesario hacer modificaciones al software que se ejecuta en función del fabricante del hardware supone un contratiempo que el usuario de un PC o el administrador de un servidor no van a aceptar. Torvalds continúa:
«Personalmente, ARM me ha decepcionado mucho como plataforma, no como conjunto de instrucciones aunque también he tenido mis problemas ahí. Como plataforma, no resulta demasiado agradable para trabajar con ella».

El desarrollador central de Linux finaliza recordando a su Sinclair QL y su pobre soporte que le complicó la vida una temporada:
Finlandia no era el centro del universo en aquella época. Después de aquello, aprendí la lección: nunca jamás compres algo que no tenga una infraestructura.

Esto recuerda en cierta medida el pesimista punto de vista Miod Vallat cuando habló de cómo ARM está dominando el mundo de hoy y los problemas que implican su capacidad de personalización.

Vía PCWorld.

Ver comentarios