Información blog

Linux, tutoriales, noticias, sistemas, redes y seguridad informática, entre otras cosas.

domingo, 4 de diciembre de 2016

Drivers; una asunto ventajoso y desventajoso al mismo tiempo en Linux

Hoy quiero hablaros sobre uno de los temas más... polémicos dentro del mundo de GNU Linux; los drivers. Generalmente, cuando hablamos de las ventajas y desventajas que tienen los sistemas Windows y Linux, podemos hablar de las libertades ofrecidas del software libre, de la flexibilidad que ofrecen los sistemas GNU Linux, o la diferencia entre la curva de aprendizaje que uno padece con Windows y con Linux... Y también un tema bastante sonado en su día, que ahora lo es menos, es la compatibilidad de los drivers; pues generalmente es más probable que un sistema Windows tenga más posibilidades de ser compatible que Linux... O al menos esa es la creencia popular.


Lo cierto es que las quejas acerca de los drivers en Linux siempre ha sido un tema bastante recurrente; tema que afortunadamente ha ido mejorando notablemente con el paso del tiempo, y que salvo exceptuando algunos casos concretos, como podrían ser los drivers de NVIDIA, ya no son un problema tan grande como solían ser en su día... ¿Pero eso a qué se debe? ¿Es decir, por qué esa diferencia que había por aquel entonces es menor ahora?

Lo cierto es que esta mejora no sería real en la actualidad sin la ayuda de todos los contribuyentes al Kernel de Linux y la gestión de las mejoras de éste realizadas por Linus Torvalds. Este kernel, usado en una gran número de sistemas, contiene un enorme número de funcionalidades que posibilitan la comunicación entre el hardware y el software, y obviamente, entre estas funcionalidades están incluidos dichos drivers...

Esto es algo bastante curioso porque es algo que únicamente pasa con este tipo de funcionamiento, ya que en Windows, por ejemplo la situación es completamente opuesta. Me explico: Cualquier periférico que se fabrique, tiene que ser fabricado para que sea compatible con Windows; y no solo con Windows en sí, sino con las diferentes versiones de éste (XP, 7,8, 10); el fabricante de dicho periférico tiene que tomarse la molestia en realizar toda la tarea, y no solo eso sino que tiene que preocuparse en que sea operativo en todas las versiones de Windows existentes.

En el Kernel de Linux la actitud es generalmente lo contrario, pues son los contribuyentes del Kenel los que tienen que adaptar el producto a dicho Kernel... Afortunadamente los fabricantes han  ido adoptando una actitud mucho más contributiva, en la que aportan su ayuda al kernel, ya sea dándoles el driver adaptado para el kernel, o al menos otorgándoles la información suficiente para que los programadores puedan crear su propio driver de tal forma en que el periférico pueda integrarse en los sistemas que contengan dicho Kernel instalado.

¿Esto es una método más o menos eficiente? La respuesta más sincera sería... Depende. El hecho de que el fabricante haga todo el trabajo de integración de drivers por ti, es algo increíblemente cómodo, pues en caso de que luego el periférico no fuese compatible, sería su problema y no un problema del Kernel o del sistema operativo. Pero esa ventaja representa al mismo tiempo una desventaja, ya que si por algún casual el fabricante no integrase su producto para un entorno en concreto, ya sea por la obsolescencia del producto por falta de recursos, el usuario final se quedaría en la estacada, haciendo que esa persona, que ha desembolsado una cantidad determinada para comprar dicho producto, se quede en la estacada; y esto, se mire de por donde se mire, es un gran problema de cara al usuario final.

Os pongo sobre una situación real que he visto recientemente. Una persona de mi entorno, compró hace varios días un periférico antiguo que necesitaba para poder comunicar su ordenador, con Windows 10, con un dispositivo que, obviamente, también era antiguo (si bien este funcionaba correctamente). Imaginaros su sorpresa al conectar el equipo y ver que no lo reconocía, y que peor aún; que los drivers que había publicado el fabricante eran válidos únicamente hasta Windows 7... En cambio al conectarlo a mi portátil con Linux, sí. ¿Por qué?

Esto es debido en buena parte a la filosofía tomada por el kernel de Linux; y es que si un driver es añadido a una versión de Kernel, todas las versiones posteriores lo incluyen, y generalmente no es eliminado dicho driver hasta muchísimos años después, cuando el periférico no es solo obsoleto, sino que no es usado por absolutamente nadie... Con lo que generalmente, a excepción de los drivers más nuevos podemos tener la certeza de que nuestros sistemas Linux van a ser 100% compatibles con nuestros periféricos, independientemente de los años que éstos lleven el mercado e independientemente del tipo de sistema operativo que se éste usando, siempre y cuando dicho sistema operativo tenga una versión de kernel compatible...

Con esto no quiero hablar a favor ni de la forma de trabajar uno ni del otro, pero indudablemente cada forma de trabajar es curiosa y en mi opinión son evidentes tanto las ventajas como las desventajas.

En conclusión podríamos decir que si bien Windows sigue estando por encima de Linux en términos de adaptabilidad de los periféricos más recientes; la filosofía de Linux ayuda a que una vez estos drivers han sido añadidos al núcleo, éstos perduren en el paso del tiempo, siendo un gran punto a favor de estos sistemas.

Espero que os haya resultado interesnate.

Saludos.