No es tan simple!

En los comentarios de mi artículo anterior sobre el video de Xgl, mi amigo Sebastian Beeche plantea algunas dudas que son muy frecuentes entre los usuarios de Linux y que muchos se autoresponden en forma equivocada o simplemente no consiguen respuesta. Lo que voy a comentar aqui lo hago desde lo que me ha tocado conocer, tanto desde el punto de vista de desarrollador, como el de un simple mortal suscrito a listas de desarrollo, asi que no lo tomen como «la verdad», solo como lo que he observado.

Seba: «Para que Linux sea realmente LA alternativa, además de mejorar la gráfica, hay que hacer que el sistema sea más amable con todo tipo de periféricos».

Esto NO es posible asi como estan las cosas. Linux no va a tener soporte de todo el hardware sin la cooperación de los fabricantes de hardware. Para que un dispositivo pueda ser soportado en Linux se necesita de un driver, y para que exista un driver se debe cumplir una de las siguientes condiciones

  • El fabricante desarrolla el driver para Linux
  • El fabricante entrega las especificaciones del hardware para que un tercero desarrolle el driver para Linux
  • Un tercero, mediante ingeniería inversa, deduce las especificaciones del hardware y escribe su driver para Linux

Salvo honrosos casos, los fabricantes no desarrollan drivers para Linux. Esto tiene diversas explicaciones, una de ellas es no contar con los recursos y/o el know-how de cómo escribir un driver para Linux… y hay que decirlo.. con suerte hacen el driver para Windows, no es raro que el driver para Windows sea muy malo, con mayor razon poco les queda para otros sistemas. Otra explicacion es la masa critica : muchos de ellos esperan que hayan mas usuarios utilizando Linux, mientras que los usuarios esperan a que el fabricante desarrolle los drivers, en esas condiciones es muy dificil que el fabricante desarrolle el driver.

Ok, si el fabricante no desarrolla el driver, entonces por que no entrega las especificaciones? Aqui siempre es el mismo caso, hay un temor del fabricante de revelar «los secretos» de su hardware, estos secretos consideran tanto tecnología que no desean publicar asi como tambien mejoras que se hacen en los drivers para que el hardware se comporte mejor en ciertos tipos de benchmark conocidos. Otro motivo para no entregar las especificaciones es el licenciamiento de tecnologías de terceros, que impide a un fabricante revelar como funciona el 100% del hardware.

Queda entonces una sola alternativa, tratar de adivinar cómo funciona el hardware, pero esta es tan costosa como imposible, ademas que es muy poco el beneficio versus el esfuerzo. Te puedes demorar 1 año en aprender como funciona el 5% de un cierto tipo de hardware, que despues sera desplazado por otro. Por eso si el hardware no tiene driver, es mejor botarlo a la basura o prenderle fuego.

Seba: «No se xq Linux se ha demorado tanto en ese paso final, cuando la gente de Jobs lo sacó en un plazo de un par de años siendo que son un grupo pagado pero MUCHO más reducido que la comunidad total de gente que aporta a Linux»

No es tan asi. Si bien el grupo de gente involucrada con el desarrollo de Linux es muy grande, esta distribuido en muchos proyectos, por lo tanto cada proyecto cuenta con un grupo no tan numeroso de gente (kernel, gcc, Xorg, GNOME, KDE, OpenOffice, etc). Por ejemplo los desarrolladores principales de OpenOffice no son mas de 15, el resto son personas que contribuyen ocasionalmente. Si quieren ver la gente que trabaja en GNOME, y donde viven, pueden ver el mapa de desarrolladores de GNOME, ahora dividan por el número de proyectos que conforman GNOME. Por eso se hace tanto énfasis en las RFDG.

El hecho de que sea un grupo pagado también cambia harto las cosas, te aseguras de que puedan dedicarse 100% al tema. Actualmente en Linux los principales desarrolladores son pagados, pero todos son independientes entre si, no hay una «orden superior» que señale una senda a seguir, sino que todo se debe discutir y acordar, y ponerse de acuerdo no es tan facil. Es quizas una de las principales complicaciones cada vez que se quiere hacer un cambio grande, por lo mismo los grandes avances a veces se han desarrollado sin preguntar mucho a los demas, de paso se evita el fenómeno de Stop Energy.

Si lo llevamos al tema de los drivers, para Apple es un tema mucho mas facil de resolver, simplemente si quiere incluir un tipo determinado de hardware a su propio hardware, puede financiar el desarrollo negociando directamente con el fabricante del hardware y listo. Total el fabricante de hardware se esta jugando la venta de su hardware como parte de las maquinas de Apple, o por ultimo como periférico compatible.

A nivel de software, algo similar esta haciendo Novell mediante una encuesta para saber que aplicación podría portarse a linux llegando a un acuerdo directamente con sus desarrolladores originales.

Seba: «Ahora, siendo super honestos, hay 3 tarjetas de video en el mercado (Ati, Nvidia e Intel) y con eso de más que se puede dar un soporte digno»

Actualmente Nvidia desarrolla un driver para Linux ocultando su código fuente para evitar problemas legales como los mencionados arriba. Su driver es 100% funcional y el soporte es tan bueno como en Windows. Ellos anteriormente habian donado un driver opensource pero esta bastante recortado, por motivos legales solo implementa lo que se podia publicar, además que está intencionalmente ofuscado. El problema es que hasta no hace mucho, nvidia era muy bueno haciendo hardware, pero muy malo escribiendo drivers para Linux, lo que causaba que a muchos usuarios se les colgara el sistema por bugs del driver. Y como no son open source, nadie los puede corregir salvo nvidia. Hoy en dia la situación es muy distinta, y si alguien me pregunta por qué tarjetas de video son las mejores soportadas en Linux, mi respuesta es nvidia. Por ejemplo, su driver propietario con aceleración de la extensión RENDER por hardware hizo posible que xcompmgr funcionara super bien desde el principio, y no me extrañaría que los videos de la demo estén utilizando hardware de nvidia, o bien otro hardware pero con driver que utilice EXA.

En ATI no me queda muy clara la situación. Ellos también tienen una mezcla entre propietario y open source. Hay un driver propietario, que aprovecha casi el 100% el hardware pero que tiene problemas con bugs. También han cooperado para que se puedan escribir drivers open source aunque no se aproveche 100% su funcionalidad. Según entiendo, ellos han ayudado en la construcción del driver open source para sus chips, mediante acuerdos directos entre ellos y algunos (o un) desarrollador(es).

El caso de intel es similar, pero sin driver binario. No puedo decir mucho de esos drivers, mi notebook los usa pero no tengo como compararlo con el de windows (tarea para mas adelante).

Seba: «El sistema de apple de como maneja la data, las instalaciones, los programas y las opciones de usuarios son realmente buenas, en las que hasta un diputado podría hacer uso de ellas (bueno.. no se si tanto 😀 )»

No puedo comentar mucho, porque no conozco como funcionan estas cosas en MacOSX. Pero si puedo decir que al menos en una buena distribución (como Ubuntu), el tema de la instalación de aplicaciones es lo mas sencillo que he visto, siempre y cuando sean aplicaciones open source. Y cuando no son open source, la responsabilidad es unicamente del desarrollador de software, ya que las herramientas para empaquetar, instalar y publicar existen, son de libre uso y son simples de utilizar, si «hasta el Bruno las sabe usar» ;). En Linux cualquier aplicación es simple de instalar siempre y cuando exista un paquete para ella.

Sobre el manejo de «la data» no se a que se refiere exactamente Sebastián, y sobre las opciones de usuario tampoco se que calificaría como «buena», como para ver en que estado esta Linux.

6 Responses to “No es tan simple!”

  1. 6
    Jose Luis Gonzalez Says:

    Quizas en una proxima distribucion de Ubuntu Linux (www.ubuntulinux.org) venga incluido el XGL, mal que mal es una de las distribuciones que esta financiada por un multimillonario y se preocupan de tener todo el soporte posible y aplicaciones usuales.

    Sobre OSX, ya muy pronto existira una emigracion muy completa del OSX para usuarios de intel. No es una distribucion muy legal que digamos pero es todo un proyecto en desarrollo y seria interesante hacer trabajar un computador ordinario con un sistema operativo bonito basado en unix y con muchos drivers de por medio.

    Al final el problema de escojer una alternativa de sistema operativo para dejar de ocupar Windows sea cual sea el motivo, es solo el acostumbrar al usuario a ocupar alternativas. La gente no esta acostumbrada a los cambios radicales menos cuando se trata de tecnologia y software. Cuesta mucho convencer a alguien que, por ejemplo, haya trabajado con Office toda su vida y convencerlo para despues trabajar con OpenOffice.

  2. 5
    Sebastian Beeche Says:

    Valdhir, en OSX te aviso solo cuando debes actualizar…. y recién ahí hacer un click, antes de eso no es necesario… Ahora, tiene el incoveniente de como todo software comercial, es pagado, pero el precio de la licencia es realmente barato, al igual que todos sus software.

  3. 4
    Valdhir Says:

    Sebastian, y como se hace en OSX para actualizar todo el sistema, incluyendo aplicaciones, drivers y el propio sistema operativo?

    Yo solo tengo que apretar un botón desde mi GNU/Linux.

  4. 3
    Francisco Collao Says:

    Estoy de acuerdo en algunas cosas con sbeeche, lo de mac en estandarizar el sistema de instalacion a lo drag and drop lo encuentro muy bueno para usuarios finales que es para quienes fue logrado el SO. Ahora bien Linux en un ppio tenia otra concepcion y de a poco se ha ido ganando los espacios en desktop. Ademas es muy cierto que las instalaciones de soft en linux es un parto si no lo sabes hacer bien, dependencias y demases.
    En lo que estoy de acuerdo con Fcatrin es que los fabricantes de Hardware, no sueltan sus especificaciones y mucho menos desarrollar un driver para linux, las razones ya las mencionaron en el post. A los chicos q desarrollan drivers para linux hay que levantarles un monumento, sin ellos, la verdad que lo que es actualmente linux no seria ni la mitad.
    Linux por como fue creado y licenciado no tiene o tenia mas bien dicho respaldo de empresas ya que nadie podia hacer negocios con el. (asi pensaban) Por lo tanto no existe toda la parafernalia que tiene apple o M$ sobre la venta y marketeo de sus productos. Linux paso a ser un SO low profile, muy bueno en rendimiento y ocupado para esas finalidades.
    La actualidad es que ahora empresas como RedHat, SuSe o Mandriva han querido dar esa impresion de marketeo con sus respectivos productos, adaptando muchas cosas, entre ellas los drivers y sistemas de empaquetamiento e instalacion. Como lo dijo Franco… en ubuntu es clic and install, de todas formas me gusta mas apt-get 😀

    Un saludo

    PS: Franco necesito contactarte en priv2 please

  5. 2
    Francisco Collao Says:

    Estoy de acuerdo en algunas cosas con sbeeche, lo de mac en estandarizar el sistema de instalacion a lo drag and drop lo encuentro muy bueno para usuarios finales que es para quienes fue logrado el SO. Ahora bien Linux en un ppio tenia otra concepcion y de a poco se ha ido ganando los espacios en desktop. Ademas es muy cierto que las instalaciones de soft en linux es un parto si no lo sabes hacer bien, dependencias y demases.
    En lo que estoy de acuerdo con Fcatrin es que los fabricantes de Hardware, no sueltan sus especificaciones y mucho menos desarrollar un driver para linux, las razones ya las mencionaron en el post. A los chicos q desarrollan drivers para linux hay que levantarles un monumento, sin ellos, la verdad que lo que es actualmente linux no seria ni la mitad.
    Linux por como fue creado y licenciado no tiene o tenia mas bien dicho respaldo de empresas ya que nadie podia hacer negocios con el. (asi pensaban) Por lo tanto no existe toda la parafernalia que tiene apple o M$ sobre la venta y marketeo de sus productos. Linux paso a ser un SO low profile, muy bueno en rendimiento y ocupado para esas finalidades.
    La actualidad es que ahora empresas como RedHat, SuSe o Mandriva han querido dar esa impresion de marketeo con sus respectivos productos, adaptando muchas cosas, entre ellas los drivers y sistemas de empaquetamiento e instalacion. Como lo dijo Franco… en ubuntu es clic and install, de todas formas me gusta mas apt-get 😀

    Un saludo

    PS: Franco necesito contactarte en priv2 please

  6. 1
    Sebastian Beeche Says:

    Con el manejo de la data me refería a como OSX maneja el sistema de paquetes, archivos de instalación, dependencias y esas cosas. Para quienes no saben, instalar un programa es descomprimir el archivo, que habitualmente queda en el escritorio y luego arrastras la aplicación hasta el directorio de Aplicaciones y listo. Se que suena complicado pero es así.. 😀 De hecho desinstalarlas es aún peor, tomas la aplicación desde donde esté (ojo, el que esté en aplicaciones no significa que solo corra estando ahí, la verdad es que corren desde cualquier parte) y la llevas al tarro de basura, eliminas el contenido del tarro y listo!!!
    Pasando a un lado más serio, las Aplicaciones son directorios que traen lo que necesitan para correr que están enmascaradas dentro de un directorio con ícono que lo representa. Ahora, llendo al fondo del tema, le comentaba a Franco que la gente de Apple en un par de años migró todo desde su plataforma propietaria (OS9) a una semi libre (OSX) y no solo con un tema gráfico como se podría pensar. En los moemntos en que salio OSX 10.1 (2002 o antes), era natural conectar una cámara vía FW a un Mac y pasar video y editar en tu programa favorito.. cual era el estado de Linux + FW en ese minuto? Cero soporte. Eso es mucho más que video y hardware cualquiera. O bien colocar un pendrive o un cd sin pensar en si debo montarlo o no y esas cosas (que no tiene nada de malo, pero para el usuario habitual parecen marcianescas) en Mac son totalmente naturales. Así hay muchos ejemplos, y en una cosa en que Linux se está retrasando y quedando muy atrás es en el mercadeo… hay muchos factores que influyen. Apple y OSX no eran nada hasta antes del ipod (x muy bueno que fuese el sistema) hablando de manera comercial. Su gracia?? fácil, sencillo, integrable con TODO el equipo y sistema de ventas unido al software… Resultado… está a la vista. Mientras Linux siga mirando lo que podría llegar a ser y no se decida a «SERLO» le queda un buen tiempo de desarrollo.