Cómo funciona el desarrollo de los drivers de NVIDIA para Linux
Hace un tiempo atrás, el sitio especializado Phoronix comenzó a recolectar preguntas que sus lectores quisieran realizar a NVIDIA sobre su soporte para el sistema operativo Linux. Las preguntas fueron repondidas por Andy Ritger, quien lidera el equipo de drivers gráficos NVIDIA para UNIX en GPU’s de estaciones de trabajo, escritorio y netbooks.
Sorprendentemente, Andy fue bastante completo y directo en sus respuestas, lo que produjo una entrevista imperdible para todo aquel que quiera conocer el punto de vista de NVIDIA respecto a la plataforma Linux y otros sistemas Unix como Solaris y FreeBSD.
En este artículo publicamos un extracto de lo que nos pareció más interesante.
Andy dice que la mayoría de los ingenieros trabajando en el equipo de Linux usan emacs y/o vim en forma diaria, el código fuente se mantiene a través de Perforce (como en Google) aunque algunos de ellos usan git en forma personal, antes de aplicar los cambios en Perforce.
Cuando llega la hora de poner a prueba el driver, usan un conjunto interno de tests que se encarga de asegurar una correcta implementación de OpenGL. Además usan algunas aplicaciones como Maya, Viewperf, Unigine Tropics, ETQW, Doom 3, Quake 3 y por su puesto, Compiz.
Más del 90% del código es multiplataforma
Se estima que más del 90% del código que está en el driver para Linux es el mismo que se usa para el resto de las plataformas. La compañía ha realizado un esfuerzo para tener una arquitectura en donde gran parte del código sea independiente de la plataforma, lo que hace que el código específico sea muy reducido.
Tanto así, que el módulo que se carga a nivel de kernel es casi completamente independiente del sistema operativo subyacente. La mayor parte del código es el mismo para Windows XP, Vista, 7, MacOSX, Solaris, FreeBSD y Linux. De hecho, el binario nv-kernel.o es el mismo para Solaris, FreeBSD y Linux. La única parte que es específica para cada sistema es la que tiene que interactuar finalmente con el kernel y esa fracción es bastante pequeña.
En la implementación de OpenGL, la única parte que cambia es la que tiene que interactuar con el sistema de ventanas (WGL en Windows y GLX en Unix). Por el lado del código que interactúa con el sistema gráfico X, obviamente es más específico de Unix, aunque no se comparte mucho entre los distintos sistemas. Finalmente, el driver para acelerar la decodificación de video por hardware (VDPAU) usa gran parte del código que fue escrito para Windows (PureVideo).
El segmento de mercado Linux para NVIDIA
Para NVIDIA, el mercado Linux siempre ha sido bastante fuerte, y éste se encuentra principalmente en estaciones de trabajo de gama alta para segmentos específicos de mercado, como por ejemplo la industria energética, automotriz y de producción cinematográfica. Es aquí en donde el impacto de Linux como plataforma para su negocio es medible para NVIDIA.
Aunque no se tienen porcentajes concretos, del total de las estaciones de trabajo de gama alta que se ocupan para visualización, prácticamente la mitad son Linux, y en la creación de contenido digital, como ya se sabe, es principalmente Linux.
Las estaciones de trabajo 3D con Linux son una proporción importante para NVIDIA y es por ahí en donde se han explorado nuevas tecnologías, como por ejemplo el caso de CUDA, en donde la proporción de usuarios con Linux es alta.
Desde el punto de vista de las descargas del driver desde su sitio web, las cifras no reflejan esta realidad, ya que respecto al driver para Windows, las descargas del driver de Linux son sólo un 0,5%. Como muchos usuarios obtienen en driver a través de la misma distribución o en el caso de los segmentos industriales, a través de instalaciones OEM, se sabe que este porcentaje no es muy representativo, y medir de esta forma siempre ha sido un desafío.
Abrir el código fuente del driver: imposible
Abrir el código fuente del driver de NVIDIA es algo que probablemente nunca sucederá, y Andy indica tres razones para ello:
- La competencia en otras plataformas, ya que más del 90% es código compartido con esas plataformas también. Las piezas específicas para Linux son tan pocas y tienen tan poca influencia que no sería práctico liberarlas.
- Hay propiedad intelectual de NVIDIA que está contenida en el driver y no quieren exponer.
- La documentación que mantienen está pensada para ser distribuida en forma interna. Si en algún momento quisieran hacer pública esa documentación, requerirían de un esfuerzo monumental para transformar esos documentos en algo que sea entendible por gente externa a la compañía.
X no es un problema, sino que una oportunidad
Mirando hacia adelante, en NVIDIA creen que las oportunidades de crecimiento están en X, no porque sea malo (de hecho la arquitectura es bastante buena), sino porque la evolución del escritorio Linux está sucediendo ahí e involucra tanto a X, drivers, gestores de ventanas y de composición.
Afortunadamente, X está implementado de tal forma que se puede extender con la flexibilidad necesaria para enfrentar los desafíos que impone el escritorio moderno en Linux.
Link: NVIDIA Developer talks openly about Linux support (Phoronix)
A los 96 años muere Eugene Polley, co-creador d...
Microsoft no usará Aero en el escritorio de Win...
Los cinco puentes más largos del mundo y el pue...
Wörthersee, la bicicleta eléctrica del futuro s...
Facebook prueba un sutil cambio de look para su...
Con éxito total despega el primer vuelo comerci...
Google completa la adquisición de Motorola Mobi...
Facebook: Cierra bolsa con pérdida del 10.99%
36 Comentarios
Cómo funciona el desarrollo de los drivers de NVIDIA para Linux
@vincegeratorix:
ResponderNi siquiera es necesario reiniciar. SOlamente basta con init 1 y luego presionas ctrl+D y tienes tus controladores nuevitos recien sacados del horno.
@mauro
ResponderDe donde sacaste que para instalar un driver de nvidia en Ubuntu hay que hacer todo eso? Arriba te sale un icono que te dice que hay controladores disponibles y te la detecta solo, con 2 clicks ya se instala automaticamente.
Si ni siquiera puedes hacer eso, acabas de quedar en ridiculo pobre weon.
@Trabajosesteban
Por tus palabras se nota que eres un pobre Troll frustrado.
en mi ubuntu es refacil instalar los drivers.
Responder¿Se están escribiendo aplicaciones de uso diaro que hagan uso de CUDA?
Responderofftopic: "sudo su" es lo mas ridículo que he visto en mi vida.
Responderincreible qe mas del 90% del codigo de nvidia sea multiplataforma
Respondereso me pone a pensar: si fuera especifico de cada SO, seria aun ams eficiente?
es por eso qe me gustaria seguir el avance de nuveau y gallium 3D, qe como son tecnologias mas nativas, i amgino si se les bien encamina, podrian conseguir gran perfonrmance ;)
JaD!
Deja tu Comentario