29 de octubre de 2013

La buena estrategia de exigir que todos los drivers sean de código abierto

Desde sus inicios se ha criticado a Linux el hecho de no facilitar la creación de drivers propietarios. No sólo porque la propia licencia hace que cualquier driver propietario sea probablemente ilegal, sino por el hecho de no tener una API/ABI estable. Desde sus inicios hay gente que ha predicho que Linux no conseguiría buena compatibilidad de hardware hasta que abandonara esa senda de despreocupación de aficionados y espíritu hacker y se pusieran a hacer las cosas en serio, con profesionalidad, preocupándose por las peticiones de los fabricantes de hardware.

Sin embargo, tras tantos años sin hacer ni caso a esas exigencias, el soporte de hardware es cada vez mejor y más completo, un curioso hecho fácil de constatar al que que los críticos rara vez prestan atención.

Hasta Nvidia está cediendo últimamente y publicando cada vez más información sobre sus tarjetas para ayudar a los desarrolladores del driver libre Nouveau, a pesar de que es el mejor driver propietario para Linux. Los drivers para tarjetas gráficas de AMD cada vez tienen mejor rendimiento, e Intel sigue invirtiendo tiempo y dinero en los suyos. Mesa va a introducir soporte de OpenGL 3.2 y 3.3 en la próxima versión. Se ha tardado, pero están ahí, y una vez que se ponga al día -ahora mismo Mesa tiene que desarrollarse con rapidez sólo para ir disminuyendo la distancia-, soportar hardware de última generación será más fácil.

La guinda del pastel puede ponerla Steam OS: Al igual que ocurrió con los servidores, una vez que Linux se populariza en un sector, los fabricantes de hardware de ese sector tienen la necesidad de que su hardware funcione sin problemas en Linux.

Al final, tras tantos años, no facilitar la creación de drivers propietarios no sólo no ha causado los problemas que muchos predecían, sino que además ha traído ventajas. La ventaja de la portabilidad, o de que los drivers tengan tiempos de soporte y mantenimiento mucho más largos (mucho hardware antiguo que funcionan sobre Linux sin problemas dejaron de hacerlo hace años en versiones modernas de Windows). La ventaja de que no se eliminen características por capricho de un directivo. Y, sobre todo, la ventaja de que no mantener una ABI interna ha permitido a Linux evolucionar con flexibilidad todos estos años para llegar a todos los rincones donde ahora llega.

Y es que los críticos de la ausencia de una ABI de drivers estable, como por ejemplo, Miguel de Icaza, olvidan que los drivers no son un especie de programa que utiliza el kernel como quien utiliza una librería, sino que son parte misma del kernel; y olvidan que los drivers no deberían ser un asunto de fabricantes de hardware, que por definición sólo piensan en vender hardware nuevo y siempre les pesa gastar dinero en soportar el viejo, sino de programadores, a quienes les pagan por soportarlo lo máximo posible.

3 comentarios:

  1. Anónimo6:35 p. m.

    Predicho Diego, predicho ;)

    ResponderEliminar
  2. Anónimo1:26 a. m.

    A mi también me ha extrañado ver "predecido" en vez de "predicho" en el primer párrafo, sobre todo porque Diego suele redactar de manera muy correcta. Por otro lado, estoy totalmente de acuerdo con lo que comenta.

    ResponderEliminar